Apache access.log 解释

Pan*_*kis 6 networking linux logging apache-2.2

在 apache (access.log) 的日志文件中,我找到了如下所示的日志条目:

10.20.30.40 - - [18/Mar/2011:02:12:44 +0200] 
"GET /index.php HTTP/1.1" 404 505 "-" "Opera/9.80 (Windows NT 6.1; U; en) 
Presto/2.7.62 Version/11.01"
Run Code Online (Sandbox Code Playgroud)

意思很明确:IP 为 10.20.30.40 的客户端在 /index.php(即http://mysite.org/index.php)上应用了 GET HTTP 方法,使用 Opera 作为客户端/浏览器接收状态代码 404 . 我不明白的是如下条目:

174.34.231.19 - - [18/Mar/2011:02:24:56 +0200] 
"GET http://www.siasatema.com HTTP/1.1" 200 469 "-" 
"Python-urllib/2.4"
Run Code Online (Sandbox Code Playgroud)

所以在这里我看到的是有人(IP 为 174.34.231.19 的客户端)访问了http://www.siasatema.com并获得了 200 HTTP 状态代码(?)。这对我来说没有意义......我能想到的唯一解释是我的apache服务器就像代理一样!以下是其他一些没有将我的网站作为目的地的请求...

187.35.50.61 - - [18/Mar/2011:01:28:20 +0200] "POST http://72.26.198.222:80/log/normal/ HTTP/1.0" 404 491 "-" "Octoshape-sua/1010120"
87.117.203.177 - - [18/Mar/2011:01:29:59 +0200] "CONNECT 64.12.244.203:80 HTTP/1.0" 405 556 "-" "-"
87.117.203.177 - - [18/Mar/2011:01:29:59 +0200] "open 64.12.244.203 80" 400 506 "-" "-"
87.117.203.177 - - [18/Mar/2011:01:30:04 +0200] "telnet 64.12.244.203 80" 400 506 "-" "-"
87.117.203.177 - - [18/Mar/2011:01:30:09 +0200] "64.12.244.203 80" 400 301 "-" "-"
Run Code Online (Sandbox Code Playgroud)

我相信所有这些都与服务器的某种攻击或滥用有关。有人可以解释一下发生了什么以及如何应对这种情况吗?

更新 1:

我禁用mod_proxy以确保我没有开放代理:

# a2dismod proxy
Run Code Online (Sandbox Code Playgroud)

我从哪里得到消息:

Module proxy already disabled
Run Code Online (Sandbox Code Playgroud)

我确信,没有文件proxy.conf$APACHE/mods-enabled。最后,我在我的浏览器 (Mozzila) 上将我的 IP 设置为代理并尝试访问http://google.com. 我没有被重定向到 google.com,而是出现了我的网页。尝试访问http://ab (!) 时也发生了同样的情况。所以我的服务器并不能真正作为代理工作,因为它不转发请求......但我认为如果我能以某种方式将它配置为返回状态代码 403会更好。

这是我的 apache 配置文件:

<VirtualHost *:80>
    ServerName mysite.org
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/  
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log    
    LogLevel warn    
    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

更新 2:

使用块,我限制使用 GET 和 POST 以外的其他方法......

<Limit POST PUT CONNECT HEAD OPTIONS DELETE 
  PATCH PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
  Order deny,allow
  Deny from all
</Limit>
<LimitExcept GET>
  Order deny,allow
  Deny from all
</LimitExcept>
Run Code Online (Sandbox Code Playgroud)

现在禁止 GET 以外的方法 (403)。我现在唯一的问题是是否有一些技巧可以引导那些尝试使用我的服务器作为代理的人......

Dec*_*ado 6

好的,我可以使用以下 python 代码获得确切的日志消息

import urllib
proxies = {'http':'http://myapacheserevr'}
file_handle = urllib.urlopen('http://www.siasatema.com',proxies=proxies)
Run Code Online (Sandbox Code Playgroud)

这给了我日志条目

192.168.0.28 - - [18/Mar/2011:14:40:40 +0200]“GET http://www.siasatema.com HTTP/1.0”200 453“-”“Python-urllib/1.17”

顺便说一句,我从中得到的只是我默认网页的内容,

所以,是的,有些东西正在通过您的网络服务器进行代理,这可能是黑客在寻找开放的、配置不当的代理来连接和滥用另一个站点。要停止设置:-

ProxyRequests Off 
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我可以通过这样做来复制另一个

$ nc ubuntuvm 80
telnet 64.12.244.203 80
Run Code Online (Sandbox Code Playgroud)

其中给出:- 192.168.0.28 - - [18/Mar/2011:14:58:47 +0200] "telnet 64.12.244.203 80" 400 505 "-" "-"