FTP暴力破解如何拦截

wen 开源项目 32

本文目录导读:

FTP暴力破解如何拦截

  1. 服务端配置加固
  2. 防火墙规则
  3. 认证加固方案
  4. 入侵检测系统
  5. 监控与告警
  6. 替代方案
  7. 最佳实践建议

针对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;
    }
}

最佳实践建议

  1. 最小权限原则:仅开放必要端口和权限
  2. 定期审计:检查日志文件,分析异常模式
  3. 更新维护:保持FTP服务端软件最新
  4. 网络隔离:将FTP服务置于DMZ区域
  5. 备份机制:定期备份配置文件和关键数据

推荐组合方案

  • 立即启用:fail2ban + 连接限制
  • 中级防护:+ 双因素认证 + WAF规则
  • 高级防护:+ IDS/IPS + 自动响应脚本 + SFTP迁移

通过这些多层次的防护措施,可以有效拦截FTP暴力破解攻击,保护服务器安全。

抱歉,评论功能暂时关闭!