web-dev-qa-db-ja.com

AH01797:サーバー構成によってクライアントが拒否されました:/ usr / share / doc

かなりの間(1か月以上)、Apacheログに次のような行が表示されます。

180.76.15.138 - - [24/Jun/2015:16:13:34 -0400] "GET /manual/de/mod/module-dict.html HTTP/1.1" 403 396 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
180.76.15.159 - - [24/Jun/2015:16:28:34 -0400] "GET /manual/es/mod/mod_cache_disk.html HTTP/1.1" 403 399 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
66.249.75.86 - - [24/Jun/2015:16:18:01 -0400] "GET /manual/es/programs/apachectl.html HTTP/1.1" 403 436 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
[Wed Jun 24 16:13:34.430884 2015] [access_compat:error] [pid 5059] [client 180.76.15.138:58811] AH01797: client denied by server configuration: /usr/share/doc/Apache2-doc/manual/de/mod/module-dict.html
[Wed Jun 24 16:18:01.037146 2015] [access_compat:error] [pid 2791] [client 66.249.75.86:56362] AH01797: client denied by server configuration: /usr/share/doc/Apache2-doc/manual/es/programs/apachectl.html
[Wed Jun 24 16:28:34.461298 2015] [access_compat:error] [pid 2791] [client 180.76.15.159:25833] AH01797: client denied by server configuration: /usr/share/doc/Apache2-doc/manual/es/mod/mod_cache_disk.html

リクエストは実際にはBaiduspiderとGooglebotから送信されているようです(説明されているようにリバースDNSを使用して確認 here ):

user@server:~$ Host 66.249.75.86
86.75.249.66.in-addr.arpa domain name pointer crawl-66-249-75-86.googlebot.com.
user@server:~$ Host crawl-66-249-75-86.googlebot.com
crawl-66-249-75-86.googlebot.com has address 66.249.75.86

thisthis など、このトピックに関する同様の質問を読みましたが、これらのエラーにより、実際にはサイトが正しく機能していません。代わりに、ボットがアクセスしようとするHTMLページは存在しないため、これはApacheの予想される動作です。 Google Webmaster Toolsにはエラーが表示されませんが、Googleのサイトのインデックス作成が遅いようです。

次の仮想ホスト構成でApacheバージョン2.4.7を使用しています。

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot "/var/www/example.com/public"
    <Directory />
        Options None
        AllowOverride None
        Order Deny,Allow
        Deny from all
        Require all denied
    </Directory>
    <Directory "/var/www/example.com/public">
        Options None
        AllowOverride FileInfo Limit Options=FollowSymLinks 
        Order Allow,Deny
        Allow from all
        Require all granted
    </Directory>

    ErrorLog /var/log/Apache2/example.com/error.log
    CustomLog /var/log/Apache2/example.com/access.log combined
</VirtualHost>

したがって、私の質問は次のとおりです。

  1. baiduspiderとGooglebotが、サイトに存在せず、サイト上のリンクから参照されていないコンテンツに繰り返しアクセスしようとするのはなぜですか。
  2. GET /manual/de/mod/...にマッピングされます/usr/share/doc/Apache2-doc/manual/de/mod/...一方、私の理解では、彼らは/var/www/example.com/public/manual/de/mod/...
  3. 一般的に:設定ミスの兆候としてこれらの行を心配する必要がありますか、それとも説明がありますか?
6
matpen

時間が経てないので、これまでの研究で自分の質問に(部分的に)答えることにしました。

  1. 残念ながら、なぜGooglebotとBaiduspiderが私のサーバーを介してApacheのドキュメントにアクセスしようとしているのかという質問にはまだ答えがありません。
  2. Ubuntuにプリインストールされているエイリアスのおかげで、/manual/...のURLは/usr/share/doc/Apache2-doc/manual/...にマッピングされます。ドキュメントへのアクセスを簡単にするために、エイリアスはそうだと思います。私の場合、これは必要ないので、a2disconf Apache2-docの後にservice Apache2 reloadを発行して、エイリアスを削除することにしました。
  3. ログエントリは望ましい動作であるため、ログエントリを設定ミスの兆候と見なす理由はありません。エイリアスを削除する前に、ドキュメントへのアクセスがvhost設定によってブロックされたため、403 "Forbidden"ステータスコードが返されました。エイリアスを削除した後、サーバーは404 "見つかりません"ステータスコードを正しく返します。
2
matpen

2.2では、クライアントのホスト名、IPアドレス、およびクライアント要求の他の特性に基づくアクセス制御は、Order、Allow、Deny、およびSatisfyの各ディレクティブを使用して行われました。

2.4では、このようなアクセス制御は、新しいモジュールmod_authz_Hostを使用して、他の認証チェックと同じ方法で行われます。 古いアクセス制御イディオムは置き換える必要があります 新しい認証メカニズムにより、古い構成との互換性のために、新しいモジュールmod_access_compatが提供されています。

新しい Require ディレクティブをすでに設定しているようですので、廃止されたアクセスディレクティブを削除してSudo service Apache2 reload

2
Cees Timmerman