在 Debian 上部署 FTP 服务(常见为 vsftpd 或 proftpd)时,防止暴力破解(Brute Force)通常从 服务配置 + 系统层防护 + 网络层限制 三方面入手。下面以最常见的 vsftpd 为例说明。
编辑 /etc/vsftpd.conf:
max_login_fails=3
anonymous_enable=NO
local_enable=YES
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.allowed_users
然后在文件中只放允许登录的用户。
listen_port=2121
pasv_min_port=30000
pasv_max_port=31000
apt update
apt install fail2ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
编辑 /etc/fail2ban/jail.local:
[vsftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = vsftpd
logpath = /var/log/vsftpd.log
maxretry = 3
bantime = 1h
若使用 syslog:
logpath = /var/log/auth.log
systemctl enable fail2ban
systemctl restart fail2ban
查看状态:
fail2ban-client status vsftpd
apt install libpam-pwquality
编辑 /etc/security/pwquality.conf:
minlen = 12
dcredit = -1
ucredit = -1
deny_email_enable=YES
并确保:
grep root /etc/ftpusers
仅允许信任 IP:
iptables -A INPUT -p tcp --dport 21 -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j DROP
或限制连接速率:
iptables -A INPUT -p tcp --dport 21 -m limit --limit 3/min -j ACCEPT
SFTP 基于 SSH,天然防嗅探和暴破:
apt install openssh-server
限制用户:
Match User ftpuser
ForceCommand internal-sftp
PasswordAuthentication no
并配合:
fail2ban sshd
最小安全组合:
企业级建议:
如果你用的是 proftpd / pure-ftpd,或者想做 Docker 化 FTP + fail2ban,可以继续问我。