本文目录导读:

针对FTP暴力破解攻击,可以采取以下多层次拦截措施:
服务端配置加固
修改默认端口
# 在vsftpd配置文件中修改 port=2121
限制连接速率
# vsftpd配置 max_clients=100 max_per_ip=3 local_max_rate=50000
设置失败尝试次数
# vsftpd配置 max_login_fails=3 delay_failed_login=10
防火墙规则
iptables限制连接频率
# 限制单个IP每分钟连接数 iptables -A INPUT -p tcp --dport 21 -m state --state NEW -m recent --set iptables -A INPUT -p tcp --dport 21 -m state --state NEW -m recent --update --seconds 60 --hitcount 5 -j DROP
fail2ban自动封禁
# /etc/fail2ban/jail.local [vsftpd] enabled = true filter = vsftpd logpath = /var/log/vsftpd.log maxretry = 3 findtime = 600 bantime = 3600 action = iptables[name=VSFTPD, port=ftp, protocol=tcp]
认证加固方案
使用强密码策略
# 安装pam模块 apt-get install libpam-cracklib # /etc/pam.d/vsftpd配置 password required pam_cracklib.so retry=3 minlen=12 difok=3
启用双重认证
# 配置Google Authenticator # 安装并配置pam_google_authenticator.so auth required pam_google_authenticator.so
入侵检测系统
配置入侵检测规则
# SNORT规则示例 alert tcp $EXTERNAL_NET any -> $HOME_NET 21 (msg:"FTP暴力破解检测"; flow:to_server,established; content:"530 Login incorrect"; threshold:type threshold, track by_src, count 5, seconds 60; sid:1000001;)
WAF规则配置
# Nginx反向代理限制
location / {
limit_req zone=ftp burst=5 nodelay;
limit_conn addr 3;
}
监控与告警
日志分析
# 实时监控失败登录
tail -f /var/log/vsftpd.log | grep "FAIL LOGIN" | \
while read line; do
ip=$(echo $line | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b")
echo "$(date): 检测到暴力破解IP: $ip" >> /var/log/brute_force_alert.log
done
自动响应脚本
#!/bin/bash
# 自动封禁暴力破解IP
threshold=5
log_file="/var/log/vsftpd.log"
while true; do
tail -n 1 $log_file | grep "FAIL LOGIN" | \
awk '{print $NF}' | sort | uniq -c | \
while read count ip; do
if [ $count -gt $threshold ]; then
iptables -A INPUT -s $ip -j DROP
echo "$(date): IP $ip 已封禁" >> /var/log/auto_block.log
fi
done
sleep 60
done
替代方案
使用SFTP/FTPS替代
# 禁用FTP,仅使用SFTP Subsystem sftp /usr/lib/openssh/sftp-server
应用层防护
# Nginx TCP流转发限制
stream {
server {
listen 21;
proxy_pass ftp_backend;
limit_conn_zone $binary_remote_addr zone=ftp:10m;
limit_conn ftp 3;
}
}
最佳实践建议
- 最小权限原则:仅开放必要端口和权限
- 定期审计:检查日志文件,分析异常模式
- 更新维护:保持FTP服务端软件最新
- 网络隔离:将FTP服务置于DMZ区域
- 备份机制:定期备份配置文件和关键数据
推荐组合方案:
- 立即启用:fail2ban + 连接限制
- 中级防护:+ 双因素认证 + WAF规则
- 高级防护:+ IDS/IPS + 自动响应脚本 + SFTP迁移
通过这些多层次的防护措施,可以有效拦截FTP暴力破解攻击,保护服务器安全。