我在 fail2ban 中为我的 owncloud 安装创建了一个新过滤器。当我使用 fail2ban-regex 测试它时,它返回了匹配项,因此我认为它正在工作。然而,当我在监狱中打开它时,它并没有被禁止,我很难弄清楚为什么。
我创建了这个过滤器(owncloud.conf):
[Definition]
failregex = \"message\":"Login failed: '.*' \(Remote IP: '<HOST>\)\"
ignoreregex =
使用 fail2ban-regex 进行测试:
fail2ban-regex /home/villermen/hdd/owncloud/owncloud.log
config/fail2ban/filter.d/owncloud.conf
Running tests
=============
Use failregex file : config/fail2ban/filter.d/owncloud.conf
Use log file : /home/villermen/hdd/owncloud/owncloud.log
Results
=======
Failregex: 80 total
|- #) [# of hits] regular expression
| 1) [80] \"message\":"Login failed: '.*' \(Remote IP: '<HOST>\)\"
`-
Ignoreregex: 0 total
Date template hits:
|- [# of hits] date format
| [440447] ISO 8601
`-
Lines: 440447 lines, 0 ignored, 80 matched, 440367 missed
Missed line(s):: too many to print. Use --print-all-missed to print all 440367 lines
实际监狱:
[owncloud]
enabled = true
filter = owncloud
logpath = /home/villermen/hdd/owncloud/owncloud.log
port = http,https
我正在使用 Ubuntu 14.04 和 Fail2ban 0.8.11-1。
答案1
我自己使用 fail2ban-regex 命令 (-v) 的详细选项解决了这个问题。这会显示它收集了哪些 IP 和时间。这些时间都相差了一个小时。这可能是 ownCloud 中的一个问题,当我找到真正的解决方案时,我会在这里发布。
使固定:
ownCloud 默认使用非系统、非 php 的默认时区 Europe/Berlin(我使用的是 Europe/Amsterdam,比它早一个小时)。我在他们的 config.php 文档. 添加
'logtimezone' => 'Europe/Amsterdam',
成功了,所以现在每个人都可以再次被禁止=)