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