温馨提示×

如何加固Ubuntu FTP安全

小樊
44
2026-08-02 12:02:12
栏目: 智能运维

加固 Ubuntu 上的 FTP 安全,核心目标是:禁用明文传输、限制用户权限、启用强加密、配合防火墙与日志审计。下面给出一套实战级加固方案,适用于大多数生产环境。


一、优先建议:尽量不用传统 FTP

最安全的 FTP 是不用 FTP

如果可以,请优先使用:

  • SFTP(SSH 内置)
  • FTPS(FTP over TLS)

推荐方案

场景 推荐
仅内部/运维 SFTP
必须兼容 FTP 客户端 FTPS(vsftpd + TLS)

二、使用 vsftpd + TLS(推荐方案)

1️⃣ 安装 vsftpd

sudo apt update
sudo apt install vsftpd -y

2️⃣ 生成 TLS 证书(加密传输)

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

3️⃣ 配置 vsftpd(安全加固版)

编辑:

sudo nano /etc/vsftpd.conf

推荐安全配置

# 基础
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
write_enable=YES

# 禁止 root 登录
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=YES

# 限制用户在家目录
chroot_local_user=YES
allow_writeable_chroot=YES

# TLS 加密
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/certs/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key

# 日志
xferlog_enable=YES
log_ftp_protocol=YES

4️⃣ 禁止 root 登录 FTP

echo "root" | sudo tee -a /etc/vsftpd.userlist

5️⃣ 重启服务

sudo systemctl restart vsftpd
sudo systemctl enable vsftpd

三、创建专用 FTP 用户(最小权限)

sudo useradd -m -s /usr/sbin/nologin ftpuser
sudo passwd ftpuser

如需只允许 FTP:

sudo usermod -s /usr/sbin/nologin ftpuser

四、防火墙与端口安全

1️⃣ 开放必要端口

sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp

并在 vsftpd.conf 中:

pasv_min_port=40000
pasv_max_port=50000

五、SSH / SFTP 安全(如你用 SFTP)

1️⃣ 禁用 SSH 的 FTP(如不需要)

sudo nano /etc/ssh/sshd_config
Subsystem sftp internal-sftp

2️⃣ 限制 SFTP 用户

Match User ftpuser
    ChrootDirectory /home/ftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no

六、日志与入侵检测

查看 FTP 日志

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

防止暴力破解(强烈推荐)

sudo apt install fail2ban -y

FTP 规则示例:

[vsftpd]
enabled = true
port = ftp
filter = vsftpd
logpath = /var/log/vsftpd.log
maxretry = 3

七、安全等级对照表

等级 说明
❌ 明文 FTP 任何生产环境都不允许
⚠ 普通 FTP 仅内网 + 强限制
✅ FTPS 推荐
✅✅ SFTP 最安全

八、快速检查清单 ✅

  • [ ] 禁用匿名登录
  • [ ] 禁用 root 登录
  • [ ] 启用 TLS 加密
  • [ ] 限制用户目录
  • [ ] 防火墙限制端口
  • [ ] 启用 fail2ban
  • [ ] 定期查看日志

如果你愿意,我可以: ✅ 帮你 审计现有 vsftpd 配置 ✅ 给你 一键加固脚本 ✅ 根据你业务场景(公网 / 内网 / 云服务器)定制方案

直接告诉我你的使用场景即可。

0