配置Linux FTP服务器以使用SSL加密涉及几个步骤。以下是一个基本的指南,使用vsftpd(Very Secure FTP Daemon)作为FTP服务器软件:
首先,确保你的系统上安装了vsftpd和SSL证书。
在Debian/Ubuntu系统上:
sudo apt update
sudo apt install vsftpd
在CentOS/RHEL系统上:
sudo yum install vsftpd
你可以从Let’s Encrypt免费获取SSL证书,或者购买一个证书。
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
编辑vsftpd配置文件 /etc/vsftpd.conf
:
sudo nano /etc/vsftpd.conf
添加或修改以下配置:
# 启用SSL
ssl_enable=YES
# 强制使用SSL连接
force_local_data_ssl=YES
force_local_logins_ssl=YES
# 使用SSL证书和密钥
rsa_cert_file=/etc/letsencrypt/live/yourdomain.com/fullchain.pem
rsa_private_key_file=/etc/letsencrypt/live/yourdomain.com/privkey.pem
# 允许匿名用户登录(如果需要)
anonymous_enable=NO
# 其他安全设置
userlist_enable=YES
tcp_wrappers=YES
# 用户列表文件
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
确保防火墙允许FTP流量。
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp # FTPS数据连接
sudo ufw reload
sudo firewall-cmd --permanent --add-port=21/tcp
sudo firewall-cmd --permanent --add-port=990/tcp
sudo firewall-cmd --reload
sudo systemctl restart vsftpd
使用FTP客户端连接到你的服务器,确保使用的是FTPS(FTP over SSL)。
ftp -v yourdomain.com 21
在连接过程中,你应该会看到SSL握手成功的消息。
你可以使用以下命令验证FTP服务器是否正确配置了SSL:
openssl s_client -connect yourdomain.com:21 -starttls ftp
如果一切配置正确,你应该会看到SSL握手成功的消息。
通过以上步骤,你应该能够成功配置Linux FTP服务器以使用SSL加密。