为了简明扼要,我将直入主题。似乎有一堆 IP 地址试图访问我的网站上可能包含敏感服务器信息的文件,该网站仍处于由 Linux 和 apache2 提供支持的开发阶段,并且我越来越多地收到 apache2 错误日志,其中某些 IP 试图访问我的服务器上根本不存在的文件。
以下是一些日志
[client 103.153.76.212:64595] script '/var/www/websites/example.com/xmlrpc.php' not found or unable to stat
[client 45.146.164.110:56158] script '/var/www/websites/example.com/index.php' not found or unable to stat
[client 5.188.210.227:31411] script '/var/www/websites/example.com/echo.php' not found or unable to stat
[client 45.146.164.110:32824] script '/var/www/websites/example.com/index.php' not found or unable to stat
[client 128.199.2.210:55528] script '/var/www/websites/example.com/system_api.php' not found or unable to stat
[client 117.50.90.31:43096] script '/var/www/websites/example.com/wp-login.php' not found or unable to stat
[client 143.198.136.88:39108] AH01630: client denied by server configuration: /var/www/websites/example.com/server-status
[client 143.198.136.88:39688] script '/var/www/websites/example.com/info.php' not found or unable to stat
[client 45.146.164.110:34004] script '/var/www/websites/example.com/index.php' not found or unable to stat
我已经将我的网站替换为 example.com,但您明白了,另外我还对这些 IP 地址进行了一些挖掘,但什么也没找到,尽管我的 IP 显示为某个俄罗斯 ISP 所欠。
因此,显然,执行此操作的人正在检查漏洞,但我想自动阻止这些 ip。是否有 Apache2 模块、php 或 python 脚本可用于实现此目的?
答案1
答案2
当你的开发系统是公开的和在线的,而不是阻止特定的“坏 IP 地址”时,常见的方法是相反的:
- 一条毯子“全部拒绝”在所有 IP 地址上
- 仅向有限数量当前需要访问的“已知良好 IP 地址”授予访问权限。
深入了解系统托管的位置,可以通过以下方式实现
- 在外部防火墙和/或安全组中强制执行的访问策略
- 通过服务器本身的访问策略:
- 基于主机的防火墙
- 应用程序特定的访问控制,基于 IP 和/或其他身份验证,例如 Apache:https://httpd.apache.org/docs/2.4/howto/access.html
请注意,对于后者,当应用程序强制执行访问控制策略时,通常这些操作仍会被记录在应用程序日志文件中。