Назад | Перейти на главную страницу

AH01797: клиент отклонен конфигурацией сервера: / usr / share / doc

С некоторого времени (уже более месяца) я вижу в журналах 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, как описано Вот):

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

Я читал похожие вопросы по этой теме, например этот и этот, но для них эти ошибки фактически мешают правильной работе сайта. В моем случае вместо этого html-страницы, к которым боты пытаются получить доступ, не существуют, и поэтому это ожидаемое поведение Apache. Раздражает только то, что Google медленно индексирует мой сайт, хотя инструменты Google для веб-мастеров не показывают никаких ошибок.

Я использую Apache версии 2.4.7 со следующей конфигурацией vhost:

<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. в общем: следует ли мне беспокоиться об этих строках как о признаке неправильной конфигурации, или есть ли им объяснение?

В 2.2 управление доступом на основе имени хоста клиента, IP-адреса и других характеристик клиентских запросов осуществлялось с помощью директив Order, Allow, Deny и Satisfy.

В 2.4 такой контроль доступа осуществляется так же, как и другие проверки авторизации, с использованием нового модуля mod_authz_host. В старые идиомы управления доступом следует заменить с помощью новых механизмов аутентификации, хотя для совместимости со старыми конфигурациями предоставляется новый модуль mod_access_compat.

Похоже, вы уже установили новый Требовать директива, поэтому просто удалите устаревшие директивы доступа и запустите sudo service apache2 reload

Поскольку прошло какое-то время без ответа, я решил (частично) ответить на свой вопрос в соответствии с моими исследованиями.

  1. К сожалению, вопрос, почему роботы Googlebot и Baiduspider пытаются получить доступ к документации Apache через мой сервер, остается без ответа.
  2. В /manual/... URL-адреса отображаются на /usr/share/doc/apache2-doc/manual/... благодаря предустановленному псевдониму в Ubuntu: я думаю, что это так, чтобы было удобно получить доступ к документации. В моем случае это не нужно, поэтому я решил удалить псевдоним, выполнив a2disconf apache2-doc с последующим service apache2 reload.
  3. Нет причин рассматривать записи журнала как признаки неправильной конфигурации, поскольку это скорее желаемое поведение. Перед удалением псевдонима доступ к документации был заблокирован конфигурацией vhost, что привело к возврату кода состояния 403 «Запрещено». После удаления псевдонима сервер правильно возвращает код состояния 404 «Не найден».