CentOS 7.x vsftpd 보안설정 방법
TLS/SSL 을 설정하지 않고 사용하면 보안이 적용되지 않은 FTPS 가 아닌 FTP 접속 방식입니다.
Openssl 로 인증서를 생성해서 보안설정을 해보도록 하겠습니다.
그리고 implicit(990) 와 explicit(21) 두가지 옵션에 대해서 알아봅시다.
openssl 은 yum 으로 설치하면 됩니다.
▶ 인증서 생성 ( -keyout : rsa_private_key_file, -out : rsa_cert_file )
# openssl req -x509 -days 365 -newkey rsa:2048 -nodes -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
Generating a 2048 bit RSA private key
.........................................+++
...........................+++
writing new private key to '/etc/vsftpd/vsftpd.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:KR
State or Province Name (full name) []:Seoul
Locality Name (eg, city) [Default City]:Seoul
Organization Name (eg, company) [Default Company Ltd]:myServer
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:ftp.ivps.kr
Email Address []:
인증서를 만들었습니다.
▶ TLS/SSL 활성화 ( vi /etc/vsftpd/vsftpd.conf )
pasv_enable=YES
pasv_min_port=50001
pasv_max_port=50040
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1_2=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
▶ 방화벽 설정
# firewall-cmd --permanent --zone=public --add-service=ftp
# firewall-cmd --permanent --zone=public --add-port=50001-51000/tcp
# firewall-cmd --reload
이제 접속하면 됩니다.
알드라이브 접속 설정입니다.
FileZilla 를 사용하여도 됩니다.
위의 설정이 explicit 옵션입니다.
implicit 로 접속하려면 아래의 설정을 추가하여야 합니다.
implicit_ssl=YES
listen_port=990
/etc/vsftpd/vsftpd.conf 파일에 위 두 옵션을 추가합니다.
그리고 방화벽에 990 포트를 설정합니다.
# firewall-cmd --permanent --zone=public --add-port=990/tcp
# firewall-cmd --reload
implicit 옵션으로 접속해보시면 됩니다.