温馨提示×

Linux FTPServer怎么开启加密

小樊
38
2026-08-16 22:14:53
栏目: 网络安全

在 Linux 上开启 FTPS(FTP over SSL/TLS) 加密,常见做法是使用 vsftpd + SSL/TLSProFTPD + TLS。下面以 vsftpd(最常用) 为主,给你一份完整的开启加密步骤。


一、FTPS 与 SFTP 的区别(先看清楚)

类型 协议 端口 加密方式
FTPS FTP + SSL/TLS 21(控制)+ 随机数据端口 SSL/TLS
SFTP SSH File Transfer 22 SSH

✅ 本文讲的是 FTPS(FTP over SSL/TLS)


二、安装 vsftpd(如未安装)

# Ubuntu / Debian
sudo apt update
sudo apt install vsftpd

# CentOS / Rocky / Alma
sudo yum install vsftpd

三、生成 SSL 证书(核心步骤)

1️⃣ 创建证书目录

sudo mkdir -p /etc/ssl/private

2️⃣ 生成自签名证书

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

按提示填写信息(Common Name 可填服务器 IP 或域名)


四、配置 vsftpd 启用 SSL/TLS

编辑配置文件:

sudo vim /etc/vsftpd.conf

✅ 基础 FTPS 配置(推荐)

# 启用 SSL
ssl_enable=YES

# 允许匿名用户使用 SSL(可选)
allow_anon_ssl=NO

# 强制本地用户使用 SSL
force_local_data_ssl=YES
force_local_logins_ssl=YES

# SSL 证书路径
rsa_cert_file=/etc/ssl/private/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key

# 协议与加密算法
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

# 被动模式(强烈推荐)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

# 其他基本配置
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

五、放行防火墙端口

1️⃣ FTP 控制端口

sudo ufw allow 21/tcp

2️⃣ 被动端口

sudo ufw allow 30000:31000/tcp

(Firewalld / iptables 同理)


六、重启 vsftpd

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

七、客户端连接测试

✅ 使用支持 FTPS(Explicit TLS) 的客户端:

  • FileZilla
  • WinSCP
  • lftp

连接方式选择:

  • FTP over TLS (Explicit)
  • 端口:21

⚠️ 首次连接会提示证书不可信(因为是自签名证书)


八、常见问题排查

❌ 连接失败 / 超时

  • 检查防火墙
  • 检查云服务器安全组(21 + 被动端口)

❌ 530 Login incorrect

sudo tail -f /var/log/vsftpd.log

❌ 证书错误

  • 证书路径是否正确
  • 权限是否可读
sudo chmod 600 /etc/ssl/private/vsftpd.key

九、进阶(可选)

  • ✅ 使用 Let’s Encrypt 证书
  • ✅ 只允许 TLS 1.2+
  • ✅ 禁用匿名登录
  • ✅ 配合 Fail2ban 防暴力破解

十、建议

生产环境优先使用 SFTP(SSH),更安全、端口少、配置简单
只有在 必须使用 FTP 协议 时才用 FTPS


如果你愿意,可以告诉我:

  • 你用的是 Ubuntu / CentOS / Rocky / Debian?
  • 云服务器还是内网?
  • 是否需要 被动模式 / 匿名 / 多用户?

我可以给你一份 完全匹配你环境的配置

0