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

Странный запрос в access.log, как заблокировать?

Я использую nginx на своем сервере, и несколько дней назад я заметил странный запрос в моем журнале access.log:

77.50.217.37 - - [19/Aug/2011:17:50:50 +0200] "GET http://images.google.com/ HTTP/1.1" 200 151 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; WOW64; .NET CLR 1.1.4322; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)"
174.142.123.42 - - [19/Aug/2011:17:51:59 +0200] "GET http://l08.member.ird.yahoo.com/?.src=ym&login=_420_club_chick_&passwd=112211 HTTP/1.0" 200 151 "-" "MobileRunner-J2ME"
65.52.227.217 - - [19/Aug/2011:17:52:30 +0200] "GET http://javaddiction.biz/index.php HTTP/1.1" 404 570 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
188.72.199.25 - - [19/Aug/2011:17:52:35 +0200] "CONNECT google.com:80 HTTP/1.1" 400 172 "-" "-"
188.72.199.25 - - [19/Aug/2011:17:53:40 +0200] "CONNECT google.com:80 HTTP/1.1" 400 172 "-" "-"

Это запросы на домены, которые мне не принадлежат (google, yahoo ....)

Думаю, это могут быть веб-краулеры, или бот, или ...

Есть ли способ заблокировать такие пакеты, используя fail2ban, iptables или я не знаю что еще ...?

Это безобидные дерьмовые запросы, которые видит каждый веб-сервер в Интернете - скорее всего, сценаристы ищут веб-сервер, который сильно неправильно настроен и позволяет вам делать запросы прокси и использовать CONNECT метод.

Кажется, что ваш сервер настроен надлежащим образом, чтобы отклонять попытки использования CONNECT метод (возвращает HTTP/400 - Bad Request), и я готов поспорить, что если вы подключитесь через telnet и попытаетесь GET http://www.google.com/ вы получите страницу со своего сайта за свои хлопоты.

Единственный способ избавиться от подобного рода вещей - заблокировать весь HTTP-трафик, кроме списка «заведомо хороших» хостов, что лишает возможности общедоступный веб-сервер. Мой лучший совет - расслабиться, выпить пива и не зацикливаться на записях в журналах доступа / ошибок вашего веб-сервера, если только вы не хотите решить конкретную проблему.

Как сказал voretaq7, вы, вероятно, захотите просто оставить их в покое. Ведь они ничего не делают (там уже заблокированы nginx).

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

Один модуль, который я использовал (с Apache, хотя он доступен с nginx), это mod_security. Этот модуль позволяет вам вводить правила, которые сравнивают входящий (и даже исходящий) трафик по различным параметрам, таким как метод, и предотвращают такой доступ по мере необходимости.

В качестве примечания я побежал:

dig -x 188.72.199.25

и вывод говорит:

199.72.188.in-addr.arpa. 3600   IN  SOA ns0.leaseweb.nl. Postmaster.leaseweb.nl. 2013121501 14400 7200 604800 3600

Это не Google и не Yahoo! Очевидно, это могло измениться с тех пор, как вы разместили свой вопрос, но такие запросы чаще всего выполняются недействительными роботами или знающий хакеры. Небольшая корпорация, которая гораздо лучше использует свои ресурсы.