SuperAPI AI 工具集

fail2ban

安全与审计

查看项目

更新于 10-15 23:48

技能介绍

用途:整理 fail2ban 入侵防护的配置与管理要点,包括 jail 配置、过滤规则、封禁/解封管理、日志监控和故障排查。

关键路径与安装:服务单元 fail2ban.service;配置 /etc/fail2ban/jail.local(本地覆盖,切勿编辑 jail.conf);jail 目录 /etc/fail2ban/jail.d/;过滤规则目录 /etc/fail2ban/filter.d/;动作目录 /etc/fail2ban/action.d/;日志用 journalctl -u fail2ban 与 /var/log/fail2ban.log。安装:apt install fail2ban 或 dnf install fail2ban。

主要操作:查看全部 jail 状态 sudo fail2ban-client status;查看指定 jail sudo fail2ban-client status sshd;解封 sudo fail2ban-client set sshd unbanip 1.2.3.4;手动封禁 sudo fail2ban-client set sshd banip 1.2.3.4;测试过滤规则 sudo fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf;重载配置 sudo fail2ban-client reload(可加 jail 名);查看已封禁 IP sudo fail2ban-client get sshd banned。

常见故障:jail 未命中多为过滤正则与日志格式不匹配,可用 fail2ban-regex 测试并检查 datepattern;封禁未生效多为动作配置错误或 iptables 异常;IP 立即被解封多因 ignoreip 包含该 IP;服务无法启动多为 jail.local 语法错误;封禁不持久与 dbpurgeage 或数据库有关;正常用户被封则因 findtime/maxretry 过严。

注意事项:不要编辑 jail.conf,升级会被覆盖,定制写入 jail.local 或 jail.d/*.conf;务必把自身 IP/子网加入 ignoreip 以免把自己锁在外面;systemd-journald 日志需设 backend = systemd;仅 nftables 的系统需显式使用 nftables 动作;bantime.multiplier = true 可让重复违规者获得指数级更长封禁;持久封禁状态存于 /var/lib/fail2ban/fail2ban.sqlite3。参考资料包含 jail.local.annotated、custom-filters.md、docs.md。