我已经在我的虚拟主机中安装了 fail2ban,它通过 access_log 文件监控 wordpress 登录尝试。一旦我将fail2ban配置为使用此正则表达式过滤wp登录:
failregex = ^<HOST> .* "POST /wp-login.php
... 攻击是通过 ipv6 主机更改的。我阅读了fail2ban doc,我注意到fail2ban(还)不支持ipv6。然后,我应用了这个解决方法: fail2ban ipv6 support(法语)
正如您在本教程中所见,我创建了 2 个名为 iptables46* 的新操作,并在 jail.local 中定义了它们,以便在 fail2ban 检测到 ipv4 和 ipv6 的新正则表达式(在修补的 python 脚本中更改)时执行。
我检查了fail2ban日志,它似乎正在检测ipv6调用,但在每个过滤器检测之前都会显示一条警告:
2016-10-26 23:00:55,539 fail2ban.filter [24963]: WARNING Unable to find a corresponding IP address for 127.0.0.1/8: [Errno -2] Name or service not known
2016-10-26 23:00:55,540 fail2ban.filter [24963]: INFO [wp-auth] Found xxxx:xxxx:xxx::xxxx:xxx
(xxxx:xxxx:xxx::xxxx:xxx是攻击者主机ipv6)
我用 : 检查了 fail2ban 状态,fail2ban-regex access_log /etc/fail2ban/filter.d/wp-auth.conf
有很多结果(正则表达式和过滤器都可以),但是主机没有被 iptables 阻止。我检查了 ip6tables:
ip6tables -S | grep f2b
结果:
-A f2b-default -s 2002:5bc8:c41::5bc8:c41/128 -j REJECT --reject-with icmp6-port-unreachable
如果我检查fail2ban过滤器的状态:fail2ban-client status wp-auth:
Status for the jail: wp-auth
|- Filter
| |- Currently failed: 1
| |- Total failed: 93
| `- File list: /opt/wordpress/logs/access_log
`- Actions
|- Currently banned: 1
|- Total banned: 2
`- Banned IP list: xxxx:xxxx:xxx::xxxx:xxx
似乎 ipv6 没有被阻止,因为主机仍在发起请求。
我不知道为什么fail2ban 日志显示警告(与127.0.0.1/8 相关:[Errno -2]),如果创建的ip6table 规则正常...我不知道为什么主机没有被封锁。
任何帮助将不胜感激。