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

Apache регистрирует полный URL, а не URI

Мой веб-сервер Apache зарегистрировал следующие сообщения на access.log:

46.22.173.131 - - [23/Dec/2014:15:34:54 +0100] "GET http://pl.wikipedia.org/wiki/Special:Search?search=&go=Go HTTP/1.1" 302 482 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
182.254.156.77 - - [23/Dec/2014:16:53:22 +0100] "GET http://www.ly.com/ HTTP/1.1" 302 433 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"`
182.254.208.62 - - [23/Dec/2014:17:57:49 +0100] "GET http://www.ly.com/ HTTP/1.1" 302 433 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"

у меня есть два Virtualhosts определен - один для порта 80, который просто перенаправляет на 443 ... и Virtualhost для порта 443, который входит в ssl_access.log.

Я не понимаю, что означают эти логи? Кто-то пытался получить доступ к этим URL-адресам через мой веб-сервер?

Пожалуйста, помогите мне разобраться в этих журналах.

Всех с Рождеством!

http://wiki.apache.org/httpd/ProxyAbuse:

Почему я вижу, что в моих файлах журнала появляются запросы на иностранные сайты?

Запись access_log, показывающая эту ситуацию, может выглядеть так:

63.251.56.142 - - [25 / июл / 2002: 12: 48: 04 -0700] "GET http://www.yahoo.com/ HTTP / 1.0 "200 1456
Для этой строки журнала код 200 (предпоследнее поле в этом примере) указывает, что запрос был успешным, но см. Ниже объяснение того, что означает «успех» в этой ситуации.

Обычно это является результатом того, что злоумышленники пытаются использовать открытые прокси-серверы для доступа к веб-сайту, не раскрывая своего истинного местоположения. Они могут делать это, чтобы манипулировать рекламными системами с оплатой за клик, добавлять комментарии или ссылочный спам на чужой сайт или просто делать что-то неприятное, не будучи обнаруженными.

Важно предотвратить использование вашего сервера в качестве открытого прокси для злоупотреблений другими сайтами.

В дополнение к отличному ответу faker, 302 код ответа связан с настроенным перенаправлением HTTPS.

Чтобы проверить, уязвимы ли вы для того же эксплойта через HTTPS, выполните следующие команды [источник]:

openssl s_client -connect yourdomain.com:443
[wait for the connection to initialise]
GET http://www.yahoo.com/ HTTP/1.1
Host: www.yahoo.com

Или с curl:

curl -H -x https://domain.name.here:443 www.google.de

В соответствии с Документация Apache, вы не должны получать контент с yahoo.com и должны отображать ответ 404 или 403. Если это произойдет, то эти журналы не о чем беспокоиться, и, скорее всего, это автоматическое сканирование, выполняемое ботами.

Как отмечает @faker, важно настроить ваш веб-сервер так, чтобы его нельзя было использовать в качестве общедоступного прокси. Это должно быть поведением по умолчанию (т.е. проксирование отключено), если вы явно не включили один или несколько прокси-модулей (посмотрите на свой httpd.conf для инструкций LoadModule, которые относятся к прокси-модулям) и не добавили соответствующие Прокси директивы. Тем не менее, если вы хотите, чтобы такие запросы были явно заблокированы и регистрировались как таковые, вы можете сделать то, что я сделал, и добавить такие строки в свой httpd.conf файла .htaccess:

# There is some seriously broken malware that attempts to proxy via our web
# server to www.baidu.com, planeta.ru, etc. The proxy attempt per se isn't
# broken (although we don't allow proxying via this web server). It's that
# only the first request makes any sense. Subsequent requests mangle both the
# HTTP_HOST and REQUEST_URI into nonsensical strings. Eventually the request
# is so mangled Apache responds with a 403 status.
#
# So check the request line to see if it looks like an attempt to proxy via
# our web server. Since we don't allow proxying nip the insanity in the bud.
RewriteCond %{THE_REQUEST} ^GET\s+https?:// [NC]
RewriteRule ^ blocked.php [NC,END,E=REASON:proxy-probe]

У меня есть сценарий "blocked.php", который предоставляет страницу настраиваемого ответа, включая REASON env var, но вы также можете заменить это правило на

RewriteRule ^ - [NC,L,R=403]