如何使用iptables来阻止php扫描

有很多扫描我的服务器上的PHP文件,但我不使用PHP。 我用下面的规则来阻止那些家伙 –

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

这个规则好吗? 当我使用这个没有dport的时候,我最终失去了pipe理员的url,因为pipe理员的url页面中有stringphp。 我只想扫描url,而不是body。 如何才能做到这一点? 当我执行日志文件的性能扫描时,失败的扫描会引起问题。 例如,我有这些条目

 . /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 

忽略这样一个事实,即你写的规则扫描你的服务器端口80的每个数据包的string“PHP” – 规则是好的。 我build议使用string“.php”,所以更less的事情可能匹配。

事实是,要阻止这种并不真正困扰您的stream量,应该通过过滤前端代理或者通过您的networking服务器(如果可以的话)来完成。

要清楚的是,这不是iptables要解决的问题types。

这可能会更好地处理由Apache /无论您的Web服务器是。

至于这是一个很好的iptables规则:显然不是。 看来你不完全明白它在做什么/实施它的意义。 这个广泛的东西很可能会打破一大堆事情。

我们了解我们的stream量限制TCP SYNs,以防止恶意机器人扫描我们的networking基础设施。

最后:

这个问题的正确解决scheme是妥善保护和加强您运行的任何Web应用程序。 扫描本身并不危险。 扫描只显示潜在的漏洞。 隐藏防火墙后面的空洞并不是一个理想的解决scheme。