FTP(文件传输协议)就是不安全的,意味着它不会加密两台机器之间传输的数据以及用户的凭据。这使得数据和服务器安全面临很大威胁。现在使用 SSL/TLS 证书保护 VSFTPD(Very Secure FTP Daemon)服务。
安装vsftpd这里不再详解,开门见山:
- 生成 SSL/TLS 证书和密钥
mkdir -p /etc/vsftpd/ssl/privatecd /etc/vsftpd/ssl/privateopenssl dhparam req -x509 -nodes -keyout vsftpd.pem -out vsftpd.pem -days 365 -newkey rsa:2048 -subj "/C=CN/ST=BeiJing/L=BeiJing/O=ChinaParrot.cn/OU=blog/CN=ChinaParrot/emailAddress=1362832155@qq.com"命令详解:req - 是 X.509 Certificate Signing Request (CSR,证书签名请求)管理的一个命令。x509 - X.509 证书数据管理。days - 定义证书的有效日期。newkey - 指定证书密钥处理器。rsa:2048 - RSA 密钥处理器,会生成一个 2048 位的密钥。keyout - 设置密钥存储文件。out - 设置证书存储文件,注意证书和密钥都保存在一个相同的文件:/etc/vsftpd/ssl/private/vsftpd.pem。
- 配置vsftpd 使用 SSL/TLS
配置防火墙:firewall-cmd --zone=public --permanent --add-port=990/tcpfirewall-cmd --zone=public --permanent --add-port=40000-50000/tcpfirewall-cmd --reload配置vsftpd.conf文件:anonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022anon_upload_enable=NOanon_mkdir_write_enable=NOdirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESchown_uploads=NOxferlog_file=/var/log/vsftpd.logxferlog_std_format=YESasync_abor_enable=YESascii_upload_enable=YESascii_download_enable=YESftpd_banner=Welcome to FTP Serverchroot_local_user=YESls_recurse_enable=NOlisten=YEShide_ids=YESpam_service_name=vsftpduserlist_enable=NOguest_enable=YESguest_username=ftpvloadvirtual_use_local_privs=YESuser_config_dir=/etc/vsftpd/vconf#sslssl_enable=YESssl_tlsv1_2=YESssl_sslv2=NOssl_sslv3=NOrsa_cert_file=/etc/vsftpd/ssl/private/vsftpd.pemrsa_private_key_file=/etc/vsftpd/ssl/private/vsftpd.pem#我们要阻止匿名用户使用 SSL,然后强制所有非匿名用户登录使用安全的 SSL 连接进行数据传输和登录过程中的密码发送allow_anon_ssl=NOforce_local_data_ssl=YESforce_local_logins_ssl=YES#当选项 require_ssl_reuse 被设置为 YES 时,要求所有 SSL 数据连接都会重用 SSL 会话;这样它们会知道控制通道的主密码。因此,我们需要把它关闭。require_ssl_reuse=NO#ssl_ciphers 选项选择 VSFTPD 允许用于加密 SSL 连接的 SSL 算法。这可以极大地限制那些尝试发现使用存在缺陷的特定算法的攻击者ssl_ciphers=HIGHpasv_min_port=40000pasv_max_port=50000
- 重启服务 systemctl restart vsftpd
- 测试
[root@localhost vsftpd]# ftp ftp> open 127.0.0.1Connected to 127.0.0.1 (127.0.0.1).220 Welcome to FTP ServerName (127.0.0.1:root): test530 Non-anonymous sessions must use encryption.Login failed.421 Service not available, remote server has closed connection
5. FileZilla Client客户端测试
![8ee5e39f12d1f754d8ec2d19838af131.png](https://img-blog.csdnimg.cn/img_convert/8ee5e39f12d1f754d8ec2d19838af131.png)
![1e09e4a29764d333a7d904c88ee3b122.png](https://img-blog.csdnimg.cn/img_convert/1e09e4a29764d333a7d904c88ee3b122.png)