mod_proxy – 我应该紧张吗?

据我所知,我在Apache生产服务器上禁用了所有mod_proxy的东西。 什么是testing或确认的合理方法? 看看我的httpd.conf,我可以告诉你,任何具有“代理”的行都会被评论,这是值得的。

我想问的是我今天早上在我的logging报告中看到了这个东西:

Connection attempts using mod_proxy: 81.88.124.30 -> 64.12.202.116:443: 1 Time(s) 81.88.124.30 -> 64.12.202.15:443: 1 Time(s) 81.88.124.30 -> 64.12.202.1:443: 1 Time(s) 81.88.124.30 -> 64.12.202.22:443: 1 Time(s) 81.88.124.30 -> 64.12.202.29:443: 1 Time(s) 81.88.124.30 -> 64.12.202.36:443: 1 Time(s) 81.88.124.30 -> 64.12.202.43:443: 1 Time(s) 81.88.124.30 -> 64.12.202.50:443: 1 Time(s) 81.88.124.30 -> 64.12.202.8:443: 1 Time(s) Requests with error response codes 403 Forbidden 64.12.202.116:443: 1 Time(s) 64.12.202.15:443: 1 Time(s) 64.12.202.1:443: 1 Time(s) 64.12.202.22:443: 1 Time(s) 64.12.202.29:443: 1 Time(s) 64.12.202.36:443: 1 Time(s) 64.12.202.43:443: 1 Time(s) 64.12.202.50:443: 1 Time(s) 64.12.202.8:443: 1 Time(s) 

不是我的报告中通常的东西。 所以看起来他已经尝试了403分,我想这很好。 但是是什么让他觉得值得一试呢?

也许他/她正试图弄清楚这是否值得一试。 仅仅向服务器发送代理请求并查看它是否有效就毫无代价,所以通常不加区分地发送这些请求。

仅供参考,确保mod_proxy被禁用的一个确定的方法是确保行

 LoadModule mod_proxy.so proxy_module 

被注释掉了。 它应该只发生在configuration文件一次,但它不会伤害grep它确保。 另外,你可以运行

 apache2ctl -M 

(或者也许是你的系统的一些等价物,在我的/etc/init.d/apache2 modules )列出加载的模块,并validation代理模块是否不在列表中。

要testing以确保您不是开放代理,只需telnet到端口80,然后发送:

 GET http://www.google.com/ HTTP/1.0 

(你最后需要两个两行的返回,但是它被吃掉了)。 你应该找回一个404页面。 如果您退回Google,则表示您已经打开。

在默认情况下,即使启用了mod_proxy模块,Apache 2.x也会通过以下指令默认值禁用代理。

 ProxyRequests Off 

如果你设置为On,那么你是一个开放代理 – 否则AFAIK你应该是安全的。

https://httpd.apache.org/docs/2.0/mod/mod_proxy.html#proxyrequests

您可以closuresProxyRequests,不加载mod_proxy,仍然会得到200响应。 我在客户端的web服务器上运行了一个导致这种行为的configuration – 默认的virtualhost有一个.htaccess指令,通过php脚本发送了所有的请求,'page not found'页面返回了200个响应代码。 你可以从字面上请求任何东西,永远不会得到一个404错误。 不是一个理想的情况,但也不是一个开放的代理。 这是在search引擎索引的地狱..大声笑

FWIW,确保不加载的最好方法是从你的驱动器中删除模块,然后重新启动apache。