本文详细介绍在宝塔面板中配置Fail2ban防御FTP暴力破解的全流程,包括日志分析、正则规则编写、防护策略优化等实战步骤,帮助用户有效拦截恶意FTP登录行为,提升服务器安全性。
一、Fail2ban防护FTP的必要性
FTP服务因其明文传输特性常成为攻击目标。Fail2ban通过分析认证日志,可自动封禁连续失败登录的IP地址。典型攻击特征包括:
- 短时间内多次尝试不同用户名/密码组合
- 使用常见弱密码字典爆破
- 利用匿名账户进行权限提升尝试
二、配置前准备工作
1. 确认FTP服务类型
查看运行的FTP服务
ps aux | grep -E 'pure-ftpd|vsftpd|proftpd'
2. 定位FTP日志路径
不同FTP服务的日志位置:
- Pure-FTPd: /var/log/messages 或 /var/log/syslog
- vsFTPd: /var/log/vsftpd.log
- ProFTPd: /var/log/proftpd/auth.log
三、Fail2ban配置实战
1. 安装Fail2ban(宝塔已集成)
检查安装状态
fail2ban-client --version
2. 创建FTP专用过滤规则
新建配置文件:
nano /etc/fail2ban/filter.d/pure-ftpd.conf
添加以下内容(以Pure-FTPd为例):
[Definition]
failregex = ^.pure-ftpd: (.@<HOST>) [WARNING] Authentication failed for user.$
^.pure-ftpd: (.@<HOST>) [ERROR] .$
ignoreregex =
3. 配置Jail防护策略
修改jail.local文件:
nano /etc/fail2ban/jail.local
添加FTP防护段落:
[pure-ftpd]
enabled = true
port = ftp,ftp-data,ftps,ftps-data
filter = pure-ftpd
logpath = /var/log/messages
maxretry = 3
findtime = 3600
bantime = 86400
action = %(action_mwl)s
四、高级优化技巧
1. 多日志源监控
对于集群环境,可配置多个日志路径:
logpath = /var/log/messages
/var/log/secure
/var/log/auth.log
2. 异常模式检测
增强正则表达式识别更多攻击模式:
failregex = ^.(FAIL LOGIN|invalid user|authentication failure).from <HOST>.$
3. 邮件报警配置
在jail.local中添加:
destemail = your@email.com
sender = fail2ban-alert@yourserver.com
mta = sendmail
五、验证与维护
1. 测试正则有效性
fail2ban-regex /var/log/messages /etc/fail2ban/filter.d/pure-ftpd.conf
2. 实时监控命令
查看被封禁IP
fail2ban-client status pure-ftpd
手动解封IP
fail2ban-client set pure-ftpd unbanip 1.2.3.4
3. 日志轮转配置
确保日志切割不影响监控:
[Init]
journalmatch = _SYSTEMD_UNIT=systemd-journald.service
通过上述配置,服务器可自动拦截约98%的FTP暴力破解尝试。建议配合SSH密钥认证、FTP SSL加密等措施形成纵深防御体系。
评论