Я использую 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! Очевидно, это могло измениться с тех пор, как вы разместили свой вопрос, но такие запросы чаще всего выполняются недействительными роботами или знающий хакеры. Небольшая корпорация, которая гораздо лучше использует свои ресурсы.