本指南涵盖**服务器端(vsftpd)与客户端(FileZilla)**的SSL加密配置,确保CentOS上的FTP服务通过SSL/TLS加密传输数据。
首先安装vsftpd(FTP服务器)和OpenSSL(证书工具):
sudo yum install vsftpd openssl -y
使用OpenSSL生成自签名证书(有效期365天,密钥长度2048位),存储于/etc/ssl/private目录(需提前创建):
sudo mkdir -p /etc/ssl/private
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.pem \
-out /etc/ssl/private/vsftpd.pem
注意:命令会提示输入国家、组织、域名等信息,可根据实际情况填写(如Common Name填写服务器IP或域名)。
编辑vsftpd主配置文件/etc/vsftpd/vsftpd.conf,添加或修改以下关键参数:
sudo vi /etc/vsftpd/vsftpd.conf
核心配置项:
# 基础安全设置
anonymous_enable=NO # 禁止匿名登录
local_enable=YES # 允许本地用户登录
write_enable=YES # 允许上传文件
chroot_local_user=YES # 将用户限制在主目录
# SSL/TLS加密设置
ssl_enable=YES # 启用SSL
allow_anon_ssl=NO # 禁止匿名用户使用SSL
force_local_data_ssl=YES # 强制数据传输加密
force_local_logins_ssl=YES # 强制登录过程加密
ssl_tlsv1=YES # 仅允许TLSv1协议(禁用SSLv2/3)
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/private/vsftpd.pem # 证书路径
rsa_private_key_file=/etc/ssl/private/vsftpd.pem # 私钥路径
开放FTP服务端口(21)和被动模式端口范围(40000-50000):
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --permanent --add-port=40000-50000/tcp
sudo firewall-cmd --reload
应用配置并启动服务:
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd # 设置开机自启
通过EPEL仓库安装FileZilla(若未启用EPEL,先运行sudo yum install epel-release):
sudo yum install filezilla -y
Ctrl+S)。192.168.1.100)21(默认FTP端口,若服务器修改过则填写对应端口)FTP - 文件传输协议要求显式FTP over TLS(推荐,即FTPES)正常(输入用户名密码)仅使用显式FTP over TLS(确保连接加密)220 (vsFTPd 3.0.3) SSL/TLS connection established)。pasv_enable=YES、pasv_min_port=40000、pasv_max_port=50000,并在防火墙中放行对应端口。chmod 755 /home/username),避免连接失败。