自动禁止来自“wp-login.php”攻击者的IP

当我看到我的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" 

这似乎是暴力攻击。

有一个简单的方法来自动禁止 (与高速公路没有链接) 这些攻击者?

有没有一个工具,在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