vsftpd + SSL/TLS ๋ก ๊ฒฌ๊ณ ํ ftp ์๋น์ค ๊ตฌ์ฑ
์ธ๋ถ์์ ๋์ฉ๋ ํ์ผ์ ์ ๋ก๋ํ ์ผ์ด ์๊ฒจ์ ์ด๋ค ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ๊น ๊ถ๋ฆฌํ๋ค๊ฐ SCP ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ์ต๋๋ค.
์ ์์๊ฐ ssh ๋ก ์ฐ๊ฒฐํด์ ์์คํ ์ ์ด๋ฆฌ ์ ๋ฆฌ ๋๋ฌ ๋ณด๋ ๊ฒ์ ๋ณด์์ ๋ฌธ์ ๊ฐ ์์ผ๋ ๊ถํ์ด ์ ํ๋ restricted shell(rbash) ์ ๋ก๊ทธ์ธ ์ ธ๋ก ์ค์ ํ๊ธฐ๋ก ํ์ต๋๋ค.
๊ทธ๋ฐ๋ฐ rbash ๋ scp ๊ฐ ๋์ํ์ง ์๋ ๋ฌธ์ ๊ฐ ์์ด์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฐพ๋ค๊ฐ FTP ๋ก ํ์ผ์ ๋ฐ๊ธฐ๋ก ์ ํ์ต๋๋ค.
FTP ๋ ์ค๋๋ ์๋น์ค์ง๋ง IT ์ ์ต์ํ์ง ์์ ์ด๋ ์ด๋ ต์ง ์๊ฒ ์ฌ์ฉํ ์ ์๊ณ ๊ฒ์ฆ๋ ์๋น์ค๋๊น์.
ํ์ง๋ง FTP ๋ ์ํธํ๊ฐ ๋์ง ์์ ํจํท์ด ์ค๊ฐ๋ ๋ฑ์ ๋ณด์ ๋ฌธ์ ๊ฐ ์์ผ๋ฏ๋ก ์ด๋ป๊ฒ ๊ฒฌ๊ณ ํ๊ฒ ํ ๊น ๊ณ ๋ฏผํ๋ค ๋ณด๋ FTP ์๋ฒ์ธ vsftpd ๊ฐ SSL/TLS ๋ฅผ ์ง์ํ๋ ๊ฒ์ ์๊ฒ ๋์ด FTP + SSL/TLS ๋ก ์๋น์ค๋ฅผ ๊ตฌ์ฑํใฑใ ๊ทธ ๊ณผ์ ์ ๊ธฐ๋กํด ๋ด ๋๋ค.
์ค์น
๋จผ์ ํจํค์ง ๋งค๋์ ๋ฅผ ํตํด์ vsftpd ๋ฅผ ์ค์นํ๊ณ ์๋์ผ๋ก ๊ตฌ๋๋๋๋ก ์ค์ ํฉ๋๋ค.
sudo yum install vsftpd systemctl enable vsftpd systemctl restart vsftpd
์ค์
/etc/vsftpd/vsftpd.conf ๋ฅผ ์ด์ด์ ๋ค์ ๋ด์ฉ์ ์ถ๊ฐํฉ๋๋ค.
์ด์ TLS ์ฐ๊ฒฐ์ ์ฌ์ฉํ ์ธ์ฆ์๋ฅผ ์ ์ฅํ ํด๋๋ฅผ ์์ฑํฉ๋๋ค.
sudo mkdir /etc/ssl/private
TLS ์ฐ๊ฒฐ์ ์ฌ์ฉํ RSA ์ธ์ฆ์๋ฅผ ์์ฑํฉ๋๋ค.
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
์์ฑํ ๋ Common name ์๋ ์ฐ๊ฒฐํ ์๋ฒ์ IP ๋ Domain name ์ ์ ์ด์ค๋๋ค.
firewalld ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๋ฐฉํ๋ฒฝ์ ํฌํธ๋ฅผ ์ถ๊ฐํด ์ค๋๋ค.
sudo firewall-cmd --permanent --zone=dmz --add-port=2120-2142/tcp
zone ์ด๋ฆ์ ์ฌ์ฉ์ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ผ๋ฉฐ firewall-cmd --get-active-zone ๋ช ๋ น์ด๋ก ํ์ฑํ๋ ์กด์ ํ์ธํ ์ ์์ต๋๋ค.
๋ฐฉํ๋ฒฝ ์ค์ ์ด ๋๋ฌ์ผ๋ฉด ์ค์ ์ ๋ฐ์ํฉ๋๋ค.
sudo firewall-cmd --reload
๋ง์ฝ ์ฌ์ฉ์๊ฐ home ๋๋ ํฐ๋ฆฌ ์ด์ธ์ ํด๋๋ฅผ ์ฝ์ด์ผ ํ๋ค๋ฉด FTP ์ ์์ ํ ์ด์ธ ํด๋๋ฅผ ์ฝ๊ธฐ ์ํ Linux bind mount ์ฌ์ฉ๋ฒ ๋ฅผ ์ฐธ๊ณ ํด์ ๋์ ํด๋๋ฅผ bind ๋ง์ด๋ ํด์ค๋๋ค.
FileZilla ์ค์
ํ์ผ์ง๋ผ์ Site Manager ์ ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํด ์ค๋๋ค. Port ๋ listen_port ์ด๋ฉฐ Protocol ์ FTP, Encryption ์ Use explicit FTP over TLS ๋ฅผ ์ ํํฉ๋๋ค.
์ฐ๊ฒฐ์ ์ฑ๊ณตํ๋ฉด ์๋์ ๊ฐ์ด ์ธ์ฆ์๋ฅผ ์ ๋ขฐํ๊ฒ ๋๋ ์ฐฝ์ด ๋จ๋ฉฐ Always trust ๋ฅผ ์ฒดํฌํฉ๋๋ค.
๊ฐ์ด ๋ณด๊ธฐ
- FTP ์ ์์ ํ ์ด์ธ ํด๋๋ฅผ ์ฝ๊ธฐ ์ํ Linux bind mount ์ฌ์ฉ๋ฒ
- OpenSSL ๋ก ROOT CA ์์ฑ ๋ฐ SSL ์ธ์ฆ์ ๋ฐ๊ธ
- firewalld ๋ฐฉํ๋ฒฝ ์ฌ์ฉ