提升 Linux FTP 服务器安全性的核心思路是:减少攻击面、避免明文传输、严格控制权限、配合防火墙与审计。下面按“推荐程度”从高到低给你一套实用方案。
FTP 本身是不安全协议(明文传输)
即使账号密码安全,数据也可能被抓包。
| 方案 | 安全性 | 说明 |
|---|---|---|
| SFTP | ⭐⭐⭐⭐⭐ | SSH 自带,最安全 |
| FTPS | ⭐⭐⭐⭐ | FTP + TLS |
| 普通 FTP | ⭐ | 明文,不推荐 |
sudo apt install vsftpd
编辑配置:
# /etc/vsftpd.conf
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key
生成证书:
sudo openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 \
-keyout /etc/ssl/private/vsftpd.key \
-out /etc/ssl/certs/vsftpd.pem
✅ 防止账号密码被抓包
anonymous_enable=NO
chroot_local_user=YES
allow_writeable_chroot=YES
✅ 防止用户访问 /etc、/root 等系统目录
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
echo ftpuser | sudo tee -a /etc/vsftpd.userlist
sudo usermod -s /sbin/nologin root
或至少:
deny_email_enable=YES
sudo ufw allow 21
sudo ufw allow 40000:50000/tcp
vsftpd 配置被动端口:
pasv_min_port=40000
pasv_max_port=50000
sudo apt install libpam-pwquality
密码策略:
minlen = 12
dcredit = -1
ucredit = -1
sudo apt install fail2ban
[vsftpd]
enabled = true
port = ftp
filter = vsftpd
logpath = /var/log/vsftpd.log
maxretry = 5
bantime = 3600
xferlog_enable=YES
log_ftp_protocol=YES
查看日志:
/var/log/vsftpd.log
/var/log/auth.log
✅ 优先级排序
你可以告诉我:
我可以直接给你 一份可复制的完整安全配置模板。