根据 GET 请求使用规则自动禁止 IP 地址

根据 GET 请求使用规则自动禁止 IP 地址

我正在使用 Apache 在 Ubuntu 18.04 上建立我的第一个网站,并且我每天都会注意到 Apache 错误日志中出现以下内容:

94.102.49.125 - - [07/Feb/2019:11:32:55 +0000] "GET /muieblackcat HTTP/1.1" 301 555 "-" "-"
94.102.49.125 - - [07/Feb/2019:11:32:56 +0000] "GET //phpmyadmin/scripts/setup.php HTTP/1.1" 301 587 "-" "-"
94.102.49.125 - - [07/Feb/2019:11:32:56 +0000] "GET //phpMyAdmin/scripts/setup.php HTTP/1.1" 301 587 "-" "-"
94.102.49.125 - - [07/Feb/2019:11:32:56 +0000] "GET //mysqladmin/scripts/setup.php HTTP/1.1" 301 587 "-" "-"
94.102.49.125 - - [07/Feb/2019:11:32:57 +0000] "GET //phpmyadmin2/scripts/setup.php HTTP/1.1" 301 589 "-" "-"
216.239.90.19 - - [07/Feb/2019:10:04:03 +0000] "GET /accounts/password_reset/ HTTP/1.1" 200 5442 "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.2 Safari/605.1.15"
186.212.109.228 - - [07/Feb/2019:10:23:31 +0000] "GET / HTTP/1.1" 200 726 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
139.162.113.204 - - [07/Feb/2019:10:46:36 +0000] "GET / HTTP/1.1" 400 3404 "-" "HTTP Banner Detection (https://security.ipip.net)"
13.57.233.99 - - [07/Feb/2019:11:01:15 +0000] "GET / HTTP/1.1" 302 3452 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"

经过一些研究,例如 IP 定位和阅读论坛/博客,很明显这些都是旨在识别我的服务器上的任何漏洞的攻击。

因为我是新手,看到很多 ping 都来自同一个 IP,所以我想只需在 .htaccess 文件中为每个 IP 添加一条拒绝规则即可。两天后,我发现这显然不是一个可行的解决方案。

所以我在找其他事情做。我注意到大多数这些请求都在寻找特定的 php 文件,幸运的是,我在请求的位置没有这些文件。

因此,我想知道是否可以在某处定义一条规则,如下所示:

“如果 IP(x) 对 ^*.php 发出请求,则永久拒绝/阻止 IP。”

如果可能的话,我该在哪里定义这样的规则以及用什么语言等等。

提前致谢!

相关内容