在CentOS系统中配置FTP服务器以启用SSL/TLS加密,通常涉及以下几个步骤。这里以vsftpd为例进行说明:
首先,确保已安装vsftpd。如果未安装,可以使用以下命令安装:
sudo yum install vsftpd
Certbot是一个自动化的Let’s Encrypt客户端,用于获取和管理SSL证书。
sudo yum install certbot python2-certbot-ftp
使用Certbot获取SSL证书。假设你的域名是ftp.example.com:
sudo certbot --ftp --ftp-server=vsftpd -d ftp.example.com
按照提示完成证书的获取和安装。Certbot会将证书文件存放在/etc/letsencrypt/live/ftp.example.com/目录下。
编辑vsftpd的主配置文件:
sudo vi /etc/vsftpd/vsftpd.conf
确保以下配置项被正确设置:
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
# SSL配置
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/letsencrypt/live/ftp.example.com/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/ftp.example.com/privkey.pem
ssl_ciphers=HIGH
说明:
ssl_enable=YES:启用SSL。allow_anon_ssl=NO:禁止匿名用户使用SSL。force_local_data_ssl=YES 和 force_local_logins_ssl=YES:强制本地用户的数据连接和登录使用SSL。rsa_cert_file 和 rsa_private_key_file:指定SSL证书和私钥的路径。保存配置文件后,重启vsftpd服务以应用更改:
sudo systemctl restart vsftpd
确保防火墙允许FTP和SSL流量。假设使用的是firewalld:
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
使用支持SSL的FTP客户端(如FileZilla)连接到你的服务器,确保能够正常使用SSL加密连接。
sudo certbot renew --dry-run
如果没有错误,可以设置定时任务自动续期:
sudo crontab -e
添加以下行:
0 0,12 * * * certbot renew --post-hook "systemctl reload vsftpd"
以上步骤完成后,你的CentOS FTP服务器应该已经成功配置了SSL/TLS加密。