Мой веб-сервер 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"
у меня есть два Virtualhost
s определен - один для порта 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]