1

很多人(我想)在我的 apache 日志中发现了很多未经授权的访问我的网络服务器的尝试。在找到的 URL 模式中,每次都有类似“/phpmyadmin”的东西。因为这是在我的服务器中找不到的东西,所以我想做的是:“如果有人试图访问phpMyAdmin黑名单它的 IP 并且不再打扰我”有人知道如何使用 Apache 或其他软件 ?提前谢谢!

4

2 回答 2

1

可能这会对你有所帮助。

1) 在 /etc/fail2ban/filter.d/myapachejail.conf 中创建一个过滤器

[INCLUDES]
before = common.conf

[Definition]
failregex = ^.* <HOST> -.*"(:?GET|POST|HEAD) \/(?:\/|)(?:w00tw00t\.at.*|phpMyAdmin.*|whatever.*|anotherone.*\..*)".*

ignoreregex =

2) 更新你的 /etc/fail2ban/jail.local 包括这个监狱

banaction = iptables-multiport

action_mwl = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
           %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s", sendername="%(sendername)s"]

[apachejail]
enabled  = true
port     = http,https
filter   = myapachejail
logpath  = /var/log/apache2/other_vhosts_access.log #<=== THIS MUST BE YOUR LOG FILE
maxretry = 1 # 1: Paranoid mode, 2: Heavy filter, 5: Ban any scanner
action   = %(action_mwl)

3) 检查您的过滤器正则表达式是否匹配任何日志条目

sudo fail2ban-regex /var/log/apache2/other_vhosts_access.log /etc/fail2ban/filter.d/myapachejail.conf

Result:
Lines: 6160 lines, 0 ignored, 108 matched, 6052 missed

4)验证你找到/etc/fail2ban/action.d/iptables-multiport.conf

5)重启fail2ban服务

sudo service fail2ban restart

6) 检查你的新监狱是否正在运行:

 sudo fail2ban-client status

Status
|- Number of jail:  5
`- Jail list:       myapachejail,xxxxx,xxx,xxxxx,xxxx

7)检查fail2ban日志

sudo vim /var/log/fail2ban.log

2014-07-07 07:32:20,926 fail2ban.actions: 警告 [myapachejail] Ban 198.20.69.74 2014-07-07 08:45:36,153 fail2ban.actions: 警告 [myapachejail] Ban 116.10.191.223

7) 检查你的 iptables 是否被禁止:

sudo iptables -L -n

REJECT     all  --  198.20.69.74      0.0.0.0/0            reject-with icmp-port-unreachable
REJECT     all  --  116.10.191.223        0.0.0.0/0            reject-with icmp-port-unreachable
于 2014-07-07T23:09:07.820 回答
0

一个可能的答案似乎是具有特定配置的Fail2ban 。我找到了一个详细解释的帖子:如何使用 Fail2ban 保护 Apache。如果有人有其他有趣的解决方案,请告诉我们。

于 2013-10-03T08:34:57.327 回答