我有一个托管服务提供商,该提供商有一个基本的 lamp stack 设置。我今天检查了我的 Apache 日志,发现我的 Apache 服务器收到了完全随机的(看起来)请求。例如,这里有两个条目:
174.129.95.125 - - [20/Jul/2011:07:28:27 +0000] "GET http://www.czhlk.com/sony/cheng2/error.asp HTTP/1.1" 200 11322 "http://www.baidu.com" "Mozilla/4.0"
117.41.235.133 - - [20/Jul/2011:07:28:29 +0000] "GET http://113.105.144.166:8083/Payrank.php HTTP/1.1" 200 11315 "http://113.105.144.166:8083/Payrank.php" "Mozilla/4.0"
现在我只运行了一些测试 php 脚本,所以我没想到会有太多流量,但我每秒都会收到几个请求,其中的条目与刚刚发布的条目类似。奇怪的是,如果您查看访问日志中请求的 url,它们并没有引用我机器上的资源。我安装了 chkrootkit,但什么也没发现。我还检查了密码文件和其他区域,看看是否有人可能入侵了我。到目前为止,我还没有发现任何东西,但我不是系统管理员,只是一名软件开发人员。此外,日志中的所有 http 代码都是“200”,这对我来说很奇怪。那么,为什么我的 apache 会为没有请求服务器上任何内容的 http 请求返回 200?我期望的是这样的:
98.248.117.137 - - [20/Jul/2011:07:35:03 +0000] "获取 /index.php" ....
完全不同的网站没有完全合格的 URL。我遗漏了什么,如果这是一个愚蠢的问题,请原谅。
这是我的 mods-available/proxy.conf 文件的内容,到目前为止我没有发现任何问题:
#turning ProxyRequests 并允许所有人进行代理可能会允许#spammers 使用您的代理发送电子邮件。
ProxyRequests Off
<Proxy *>
AddDefaultCharset off
Order deny,allow
Deny from all
#Allow from .example.com
</Proxy>
# Enable/disable the handling of HTTP/1.1 "Via:" headers.
# ("Full" adds the server version; "Block" removes all outgoing Via: headers)
# Set to one of: Off | On | Full | Block
ProxyVia On
答案1
我想说的是,托管服务提供商给您的 IP 地址以前曾被用作僵尸网络的 C&C 或分发节点,而某些恶意软件尚未收到您不再携带这些东西的消息。不幸的是,您对此无能为力,只能骚扰您的提供商并说您想要新的 IP,因为这个 IP 已被污染。您肯定不想保留一个有不良历史的 IP——它很可能在各种黑名单(SMTP 和其他)中,这会对您使用服务器的能力产生不利影响,而且这些请求会消耗您的流量限额(这会让您损失金钱)。
您之所以所有请求都获得 200 的原因可能是因为您有一个 apache 配置指令,它会将所有请求重写到您的 index.php。这就是为什么当您点击所请求的 URL 时,您会获得它的内容。
答案2
您实际上有一个开放的代理。请向您的托管服务提供商报告此问题并寻找更好的代理。