web-dev-qa-db-ja.com

Apacheaccess.logの解釈

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"

その意味は明らかです:IP 10.20.30.40のクライアントは、ステータスコードを受信する/index.php(つまり、 http://mysite.org/index.php )にGETHTTPメソッドを適用しました404 Opera as client/browser。私が理解していないのは、次のようなエントリです。

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"

したがって、ここで私が見ているのは、誰か(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 "-" "-"

これらはすべて、サーバーの何らかの攻撃または悪用に関連していると思います。誰かが何が起こっているのか、そしてこの状況にどう対処するのかを説明できますか?

更新1:

mod_proxyを無効にして、オープンプロキシがないことを確認しました。

# a2dismod proxy

どこからメッセージを受け取りましたか:

Module proxy already disabled

proxy.confの下に$Apache/mods-enabledファイルがないことを確認しました。最後に、ブラウザ(Mozzila)でIPをプロキシとして設定し、http://google.comにアクセスしようとしました。 google.comにリダイレクトされませんでしたが、代わりに私のWebページが表示されました。アクセスしようとしても同じことが起こりました http://a.b (!)。したがって、私のサーバーはリクエストを転送しないため、実際にはプロキシとして機能しません...しかし、どういうわけか、 ステータスコード4 を返すように構成できれば良いと思います。

これが私の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>

更新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>

現在、GET以外のメソッドは禁止されています(403)。私の唯一の質問は、サーバーをプロキシとして使用する方法を起動するためのトリックがあるかどうかです...

6

さて、私は次のpythonコードを使用して、その正確なログメッセージを取得できます

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

これでログエントリが得られます

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 "

ちなみに、これから返されるのは、デフォルトのWebページのコンテンツだけです。

したがって、はい、何かがWebサーバーを介してプロキシしているのは、おそらくハッカーが別のサイトに接続して悪用するためのオープンで不適切に構成されたプロキシを探していることです。セットを停止するには:-

ProxyRequests Off 

ちなみに私はすることによって他のものを複製することができます

$ nc ubuntuvm 80
telnet 64.12.244.203 80

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

6
Decado

サーバーはオープンプロキシであり、セキュリティ上の問題があります。スパマーはサーバーを介してメールを送信できます。他の人はあなたのサーバーから子pr0nを見ることができます。できるだけ早く修正してください。

変化する

ProxyRequests Off

、プロキシ構成で、それを修正します。

4
Sacx

あなたのApacheはオープンプロキシではないと思います。

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"

リクエストのホスト名としてwww.siasatema.comを使用してApacheサーバーにHTTPリクエストを送信している人である可能性があります。この場合、Apacheサーバーはデフォルトページ(最初の仮想ホスト)を提供します。この種のリクエストを破棄するか、メインページにリダイレクトするように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 "-" "-"

これらは、Apacheが破棄した失敗したリクエストです。

2

ケースは非常に単純だと思います。誰かが正しいIPを使用してサーバーにアクセスしますが、期待する名前ではなく、フロントページを取得します。これは、たとえば次のように生成できます。

ブロードバンドユーザーは、自分のホストファイル(/ etc/hostsまたは/ windows/system32/drivers/etc/hosts)にエントリを追加します

aa.bb.cc.dd rubbishrubbishrubbish.com

ここで、aa.bb.cc.ddはIPアドレスであり、その後は任意のブラウザーを使用してアクセスします http://rubbishrubbishrubbish.com

ログファイルにアクセスと、rubbishrubbishrubbish.comの/の「GET」が表示されます。通常のApacheのインストールでは、URLのホスト名部分ではなく、残りの部分だけに関心があるため、ホームページが返されます。

もちろん、サーバーには、そのIPアドレスまたはFQDN、あるいは(明示的に強制されない限り)Apacheサーバーに認識されている必要のないニックネームを使用してアクセスできることにも注意してください。私のホームWebサーバーには、ipv4とipv6を介して複数の名前でアクセスできますが、サーバー自体はそれらのドメイン名を認識していません。

残りの質問は:なぜですか?答えは、プロキシとして機能するかどうかをテストすることだと思います。そしてするない。また、Python-urllib/2.4もBOTであると報告されています(常にではありません)。

1
Arvi