fail2ban阻止403错误apache

时间:2014-06-16 19:39:12

标签: apache joomla

我正在与fail2ban进行斗争,以阻止对Joomla管理页面的暴力攻击。

使用Joomla中的扩展程序,我可以阻止IP,因此会出现错误消息。

在apache日志中,这会给出以下日志;

domain.com:80 146.185.150.198 - - [16/Jun/2014:21:29:09 +0200] "GET /administrator/index.php HTTP/1.0" 403 358 "-" "-"

domain.com可能会有所不同,因为服务器上有很多域。

我在fail2ban中有以下配置

jail.local

[administrator]
enabled = true
port    = http,https
filter  = administrator
action   = iptables-multiport[name=ALL, port="http,https"]
logpath = /var/log/apache2/other_vhosts_access.log
maxretry = 3

filter.d / administrator.conf

[Definition]
failregex = [].<HOST> .*HTTP/[0-9.]+" 403
ignoreregex =

我也尝试过failregex:^<HOST> -.GET.*administrator.*.HTTP\/1.0".* 403 .*$

两者都没有。

谁拥有正确的配置才能实现这一目标?

3 个答案:

答案 0 :(得分:2)

最终让它发挥作用,与预期有点不同;

我的过滤器:

 failregex = .* <HOST> - - .*(POST|GET) .*administrator/index.php HTTP.* 403 .*$

现在效果很好,甚至还有更多的登录尝试

答案 1 :(得分:2)

我写了这个插件

http://www.rupostel.com/joomla/hacks/blocking-joomla-brute-force-login-attacks-with-fail2ban-on-ubuntu-server (需要php5.4 +)

基于 http://baxeico.wordpress.com/2014/03/31/joomla-brute-force-attacks-file2ban/

并将其添加到fail2ban config:

\等\的fail2ban \ jail.local

[joomla-error]
enabled = true
port = http,https
filter = joomla-error
logpath = /var/log/joomla.log
maxretry = 7
findtime = 6000
bantime  = 17200

\等\的fail2ban \ filter.d \的Joomla-error.conf

[Definition]

# Option: failregex
# Notes.: matches something like:
# [Mon Mar 31 10:15:00 2014] [error] [client 212.109.14.203] user mywebsite authentication failure
# Values: TEXT
failregex = [[]client <HOST>[]] user .* authentication failure.*

# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =

\等\ rsyslog.d \ 10 joomla.conf

if $programname == 'joomla' then /var/log/joomla.log

该插件将身份验证错误发送到syslog中,即使池位于chroot内,也可以将系统范围的fail2ban与iptables一起使用。

答案 2 :(得分:0)

你可以试试这个:

failregex = ^.* <HOST> .*"(:?GET|POST|HEAD) .* 403 [0-9]{3}.*

或者您可以在在线正则表达式测试器中使用它:http://regex101.com/r/jQ7wQ9/2