如何使用 iptables 阻止 php 扫描

如何使用 iptables 阻止 php 扫描

虽然我不使用 php,但我的服务器上有很多针对 php 文件的扫描。我使用以下规则来阻止那些家伙 -

iptables -I INPUT -p tcp  --dport 80 -m string --string 'php'  --algo bm -j DROP

这条规则可以吗?当我使用没有 dport 的规则时,我最终丢失了管理员 URL,因为管理员 URL 页面在正文的某个地方有字符串 php。我只想扫描 URL,而不是正文。这该怎么做?当我对日志文件进行性能扫描时,失败的扫描会导致问题。例如,我有这些条目

. /phpMyAdmin/scripts/setup.php | 4,750 total ms | 475 avg ms | 584 max ms | 10 calls 
. /myadmin/scripts/setup.php | 4,309 total ms | 478 avg ms | 698 max ms | 9 calls

答案1

忽略规则中扫描发往服务器 80 端口的每个数据包以查找字符串“php”这一事实 - 该规则没有问题。我建议改用字符串“.php”,这样匹配的内容就会更少。

事实是,要阻止这种实际上不会打扰您的流量,应该通过过滤前端代理或您的网络服务器来完成(如果可以的话)。

要明确的是,这不是 iptables 要解决的问题类型。

答案2

这可能最好由 apache / 无论您的 Web 服务器是什么来处理。

至于这是否是一条好的 iptables 规则:显然不是。看来您没有完全理解它在做什么/实施它的含义。如此广泛的规则很可能会破坏很多东西。

我们了解我们的流量并限制 TCP SYN,以防止恶意机器人扫描我们的网络基础设施。

最后:

解决此问题的正确方法是妥善保护和强化您运行的任何 Web 应用程序。扫描本身并不危险。扫描只会发现潜在的漏洞。将这些漏洞隐藏在防火墙后面并不是理想的解决方案。

相关内容