温馨提示×

linux ftpserver怎么防攻击

小樊
41
2026-09-11 05:07:44
栏目: 网络安全

在 Linux 上搭建 FTP 服务(如 vsftpd、ProFTPD、Pure-FTPd)时,常面临暴力破解、匿名滥用、目录穿越、明文嗅探等攻击。下面从服务配置、系统层、网络层、运维监控几个维度说明防护方法。


一、FTP 服务本身加固(以 vsftpd 为例)

1. 禁止匿名登录

anonymous_enable=NO

防止匿名用户上传/下载/遍历文件。

2. 限制本地用户 & 锁定根目录

local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

防止用户跳出 home 目录(目录穿越)。

3. 限制可登录用户

userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO

只放行白名单用户。

4. 禁用危险特性

ascii_upload_enable=NO
ascii_download_enable=NO

防止 ASCII 模式导致的命令注入风险。

5. 使用被动模式并限制端口

pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000

便于防火墙精确放行。


二、防暴力破解(非常重要)

1. 使用 Fail2Ban

apt install fail2ban

配置 /etc/fail2ban/jail.local:

[vsftpd]
enabled = true
port = ftp
logpath = /var/log/vsftpd.log
maxretry = 5
bantime = 3600

2. 限制 SSH / FTP 登录频率(pam)

auth required pam_tally2.so deny=5 unlock_time=600

三、网络层防护

1. 防火墙只开必要端口

ufw allow 21
ufw allow 30000:31000/tcp

或 iptables 同理。

2. 限制来源 IP(如只用内网)

ufw allow from 10.0.0.0/8 to any port 21

3. 使用 SFTP 替代 FTP(强烈推荐)

SFTP 基于 SSH,天然加密、防嗅探:

subsystem sftp internal-sftp

禁用 FTP:

systemctl stop vsftpd
systemctl disable vsftpd

四、传输安全

1. 使用 FTPS(FTP over SSL)

ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key
force_local_data_ssl=YES
force_local_logins_ssl=YES

避免账号密码明文传输。


五、系统 & 权限层面

  • FTP 用户使用 nologin shell
usermod -s /usr/sbin/nologin ftpuser
  • 目录权限最小化
chmod 750 /home/ftpuser
  • 定期更新软件
apt update && apt upgrade

六、日志与监控

  • 开启详细日志:
xferlog_enable=YES
log_ftp_protocol=YES
  • 定期分析:
grep "FAIL" /var/log/vsftpd.log

总结建议(最佳实践)

✅ 内网使用 → vsftpd + chroot + fail2ban
✅ 公网使用 → SFTP(首选) 或 FTPS
❌ 公网不要开匿名 FTP
❌ 不要使用明文 FTP

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

  • 用的哪种 FTP 服务(vsftpd / proftpd)
  • 内网还是公网
  • 是否必须要用 FTP(不能改 SFTP)

我可以给你一份可直接用的安全配置模板。

0 踩