Ubuntu 11.10 上的 Fail2ban 不会禁止自定义过滤器/监狱

Ubuntu 11.10 上的 Fail2ban 不会禁止自定义过滤器/监狱

我正在运行的应用程序记录了错误的登录信息,例如:

Tue, 19 Mar 13 20:46:03 +0000 failed login from iphere !
Tue, 19 Mar 13 20:46:03 +0000 failed login from iphere !
Tue, 19 Mar 13 20:46:03 +0000 failed login from iphere !

我正在尝试禁止无法登录 IP 的人,以防止暴力攻击。注意:iphere 显然是真实 IP。不,不是 127.0.0.1,因为在配置中它被排除在禁止范围之外 :)

我尝试过的方法

  • 搜索并阅读了大约 10 份指南...
  • 重新安装Fail2ban
  • 将后端设置为轮询而不是自动,许多人报告这是一个错误
  • 检查了所有日志
  • 测试了正则表达式
  • 确认 fail2ban 正常运行
  • 使 findtime 和 badtime 变得非常长,以查看是否是时区问题(应用程序存储 GMT 时间戳,而服务器处于 GMT+1)

Fail2ban 使用默认的、未更改的 SSH jail/filter!我尝试登录 SSH 几次,结果被禁止。所以是我的配置出了问题。

我发现一个很好的指南是: http://www.voip-info.org/wiki/view/Fail2Ban+(with+iptables)+And+Asterisk

我应用的修复程序如下:启动/重启时发生 fail2ban.action.action 错误 启动/重启时发生多个 fail2ban.action.action 错误。似乎存在与 iptables 的“竞争”条件。我通过编辑 /usr/bin/fail2ban-client 并添加 time.sleep(0.1) 彻底解决了系统上的问题。这是我在 fail2ban 日志中看到的错误,通过上述方法解决了该问题。

日志文件

日志文件显示 jail 启动正常。除了默认的 SSH 过滤器外,我还可以看到写入 /var/log/myapp.log 的行 fail2ban-client -d 给出了以下内容:

['add', 'myapp', 'polling']
['set', 'myapp', 'addlogpath', '/var/log/myapp.log']
['set', 'myapp', 'maxretry', 3]
['set', 'myapp', 'addignoreip', '127.0.0.1/8']
['set', 'myapp', 'findtime', 60000]
['set', 'myapp', 'bantime', 1800]
['set', 'myapp', 'addfailregex', '.*failed login from <HOST> .*']

下面您将找到我的配置文件。

筛选

/etc/fail2ban/filter.d/myapp.conf
[Definition]
failregex = .*failed login from <HOST> .*

我使用以下方法测试了过滤器:

fail2ban-regex /var/log/myapp.log /etc/fail2ban/filter.d/myapp.conf                                             

结果(没什么特别的,只是匹配列表和这个):成功,匹配总数为 254

所以过滤器应该没问题。

监狱

[myapp]

enabled = true
port = all
filter = myapp
logpath = /var/log/myapp.log
findtime = 60000
bantime = 1800
maxretry = 3
banaction  = iptables-multiport-log

设置这些之后,我显然执行了 fail2ban-client 重新加载和服务 fail2ban 重新启动。

可以这么说,根本没有实施任何禁令。我在这个问题上花了不少时间,但我认为这应该是一件小事,所以我觉得在这里问一下比较好。

相关内容