1439 字
3 分钟
Fail2ban 完全指南
Fail2ban实战指南:监控检测与MySQL防护配置
一、什么是Fail2ban及其工作原理 ✨
Fail2ban是一款基于日志分析的入侵防护工具,通过监控系统日志文件,自动检测恶意行为并临时封锁攻击者IP地址。它采用"检测-行动"机制,主要包含以下组件:
- 过滤器(Filters):定义日志匹配规则
- 动作(Actions):发现攻击后执行的命令
- 监狱(Jails):将过滤器和动作组合的配置单元
💡 专业提示:Fail2ban不仅适用于SSH防护,还可保护Web服务、数据库、邮件服务器等多种服务
二、Fail2ban核心操作命令大全 🔍
2.1 服务状态查看命令
# 查看fail2ban服务运行状态
sudo systemctl status fail2ban
# 查看所有启用的监狱状态
sudo fail2ban-client status
# 查看特定监狱的详细信息(以sshd为例)
sudo fail2ban-client status sshd
2.2 日志监控与调试命令
# 实时查看fail2ban日志
sudo tail -f /var/log/fail2ban.log
# 查看被禁止的IP列表
sudo fail2ban-client banned
# 测试过滤器匹配规则
sudo fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf
2.3 监狱管理命令
# 启用/禁用特定监狱
sudo fail2ban-client start sshd
sudo fail2ban-client stop sshd
# 手动封禁IP(临时)
sudo fail2ban-client set sshd banip 192.168.1.100
# 解除IP封禁
sudo fail2ban-client set sshd unbanip 192.168.1.100
三、MySQL数据库防护配置指南 🛡️
3.1 创建MySQL专用过滤器
在/etc/fail2ban/filter.d/目录下创建mysql-auth.conf文件:
[Definition]
failregex = ^%(__prefix_line)sAccess denied for user .* from <HOST>$
^%(__prefix_line)s[Warning] Access denied for user .* \(using password: YES\) from <HOST>$
ignoreregex =
3.2 配置MySQL监狱
编辑/etc/fail2ban/jail.local文件,添加以下配置:
[mysql]
enabled = true
port = 3306
filter = mysql-auth
logpath = /var/log/mysql/error.log
maxretry = 3
bantime = 3600
findtime =
Fail2ban 完全指南
https://www.zztzz.com.cn/posts/fail2ban-完全指南/ 部分信息可能已经过时









