当我看到我的Apache日志other_vhosts_access.log ,我看到许多尝试,从每月几个不同的IP这样的:
www.example.com:80 91.200.xx - - [25/Jun/2017:17:20:19 +0200] "POST /wp-login.php HTTP/1.1" www.example.com:80 91.200.xx - - [25/Jun/2017:17:20:19 +0200] "POST /wp-login.php HTTP/1.1" www.example.com:80 91.200.xx - - [25/Jun/2017:17:20:20 +0200] "POST /wp-login.php HTTP/1.1"
这似乎是暴力攻击。
有一个简单的方法来自动禁止 (与高速公路没有链接) 这些攻击者?
如果我使用Wordpress插件,stream量仍然会进入PHP,浪费资源等。
如果我在Apache层面这样做,肯定会浪费资源
我应该尽可能做到最低水平吗? 即IP表?
有没有一个工具,在other_vhosts_access.log中查找这样的攻击者,并自动禁止他们在iptables ?
我终于find了一个解决scheme(我会看看它是否在几天工作):fail2ban。
我们把它放在/etc/fail2ban/jail.conf :
# # HTTP servers # [apache-wp-login] enabled = true port = http,https filter = apache-wp-login logpath = /var/log/apache2/other*.log maxretry = 6 findtime = 36000 bantime = 36000
然后在/etc/fail2ban/filter.d/apache-wp-login.conf :
[Definition] failregex = .*:(80|443) <HOST> .*/wp-login.php.* ignoreregex =
那么让我们开始服务,看看禁令:
service fail2ban start tail -f /var/log/fail2ban.log
非常有用:这可以帮助debugging过滤正则expression式,看看它是否工作:
fail2ban-regex /var/log/apache2/other_vhosts_access.log /etc/fail2ban/filter.d/apache-wp-login.conf