温馨提示×

centos ftpserver如何加密

小樊
45
2026-10-17 16:24:37
栏目: 网络安全

在 CentOS 上搭建 加密的 FTP 服务器,通常推荐使用 FTPS(FTP over SSL/TLS),而不是明文 FTP。下面以 vsftpd + SSL/TLS 为例,说明如何配置加密。


一、安装 vsftpd

sudo yum install -y vsftpd

启动并设置开机自启:

systemctl start vsftpd
systemctl enable vsftpd

二、生成 SSL 证书

方式 1:自签证书(测试用)

openssl req -x509 -nodes -days 365 \
  -newkey rsa:2048 \
  -keyout /etc/vsftpd/vsftpd.key \
  -out /etc/vsftpd/vsftpd.crt

方式 2:使用已有证书(生产推荐)

将证书放到:

  • 证书:/etc/vsftpd/vsftpd.crt
  • 私钥:/etc/vsftpd/vsftpd.key

三、配置 vsftpd 支持 FTPS

编辑配置文件:

vi /etc/vsftpd/vsftpd.conf

基础加密配置

# 启用 SSL
ssl_enable=YES

# 证书和私钥
rsa_cert_file=/etc/vsftpd/vsftpd.crt
rsa_private_key_file=/etc/vsftpd/vsftpd.key

# 强制使用 TLS(推荐)
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

# 数据传输也加密
force_local_data_ssl=YES
force_local_logins_ssl=YES

# 允许匿名(可选,不建议)
anonymous_enable=NO

# 本地用户
local_enable=YES
write_enable=YES

四、被动模式(防火墙友好)

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

防火墙开放端口:

firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload

五、重启 vsftpd

systemctl restart vsftpd

六、客户端连接方式

类型 说明
FTPS(显式) 端口 21,客户端选择 FTP over TLS
FTPS(隐式) 端口 990(vsftpd 默认不支持隐式)

常用客户端:

  • FileZilla(推荐)
  • WinSCP

七、验证加密是否生效

openssl s_client -connect localhost:21 -starttls ftp

看到证书信息即表示成功。


八、补充建议

  • ✅ 生产环境使用 CA 签发证书
  • ✅ 禁用匿名用户
  • ✅ 使用 chroot 限制用户目录
  • ✅ 考虑更安全的 SFTP(SSH) 替代 FTP

如果你需要:

  • SFTP(基于 SSH)配置
  • 虚拟用户 + 加密
  • SELinux 相关配置

可以继续告诉我你的使用场景。

0 踩