最近有一些客户发出CONNECT请求,或者把我的服务器当成代理服务器,这真让我很烦恼。 我正在使用的当前方法是定期检查access.log过滤出这样的请求和黑客攻击企图(试图访问/ PMA /等)问题是,我怎么能自动化这个过程,使服务器阻止这些IP地址何时检测到这种请求?
考虑到你的担心是通过使用CONNECT方法触发的,也就是你如何确定“不良行为”,为什么不使用CONNECT方法阻止请求呢? 例如,使用<LimitExcept>指令 :
<Directory /> <LimitExcept GET HEAD OPTIONS> Require all denied </LimitExcept> </Directory>
将阻止POST,PUT,DELETE,CONNECT等,同时只允许指定的方法GET,HEAD和OPTIONS。
您可以使用诸如Fail2Ban,Mod-Security等工具来检测和处理不良行为,但是应该预先警告这些工具:(1)将要求您检测/确定什么是“不良”行为,以及(2)在您的服务器上需要(有时是很大的)处理能力。 至于第一个问题,你冒了一些风险,无意中阻止了你真正想要的stream量,无论如何,通过追赶IP地址,你正在玩的是一个“鼹鼠”游戏。 至于第二个,你需要考虑“解决scheme”需要多less服务器资源,而不是你的网页上一个简单的“点击”所需要的服务器资源的less量, 如果你已经采取措施确保点击是无害的 。
另一方面,你的服务器不应该作为一个开放的代理,即使不好的参与者总是试图用它作为代理, 还有很多其他的东西 。 服务器强化是这里的关键。 为此,您可以查看互联网安全中心(CIS)安全基准testing程序 ,该程序可以让您下载免费的指导来加固许多Web服务器和操作系统。
尝试Fail2ban并configurationde Apachefilterhttp://www.fail2ban.org/wiki/index.php/HOWTO_apache_proxy_filter
除了我总是部署的Fail2Ban,并且根本没有发现资源密集的情况,您还可以考虑RepSheet:
http://getrepsheet.com/index.html
有点像Fail2Ban你可以用它来说:“这种types的stream量可能是不需要的,这种types的stream量行为是我所期望的,并希望优先考虑。 您可以使用它添加的头部来构build应用程序级别的逻辑,比如添加Captcha等挑战,或发送到辅助服务器,而不是直接禁止或仅限制。