Ошибка 400 в логе nginx.

zexis
На сайте с 09.08.2005
Offline
388
6783

Примерно раз в 1-2 дня наблюдаю ситуацию появления в логах множества строк с котом шибки 400.

Стоит nginx-0.7.64

Вот пример лога


212.57.145.150 - - [30/Jan/2010:09:30:02 +0000] "GET /?r=100&page=7&top=1 HTTP/1.1" 200 12054 "-" "Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.2.15 Version/10.10"
212.57.145.150 - - [30/Jan/2010:09:30:04 +0000] "GET /g0/b/729/729030TOtE.jpg HTTP/1.1" 200 70274 "http://www.my_site.ru/photo.php?z=TOtE&p=729030" "Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.2.15 Version/10.10"
212.57.145.150 - - [30/Jan/2010:09:30:04 +0000] "GET /g0/b/729/729031S7zB.jpg HTTP/1.1" 200 70274 "http://www.my_site.ru/photo.php?z=S7zB&p=729031" "Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.2.15 Version/10.10"
212.57.145.150 - - [30/Jan/2010:09:30:04 +0000] "GET /g0/b/729/729032HzhE.jpg HTTP/1.1" 200 67393 "http://www.my_site.ru/photo.php?z=HzhE&p=729032" "Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.2.15 Version/10.10"
212.57.145.150 - - [30/Jan/2010:09:30:12 +0000] "-" 400 0 "-" "-"
212.57.145.150 - - [30/Jan/2010:09:30:12 +0000] "-" 400 0 "-" "-"
212.57.145.150 - - [30/Jan/2010:09:30:12 +0000] "-" 400 0 "-" "-"
… вырезано 200 таких запросов . . .
212.57.145.150 - - [30/Jan/2010:09:30:14 +0000] "-" 400 0 "-" "-"
212.57.145.150 - - [30/Jan/2010:09:30:14 +0000] "-" 400 0 "-" "-"

Причем запросов

212.57.145.150 - - [30/Jan/2010:09:30:12 +0000] "-" 400 0 "-" "-"

За 2 секунды было сделано 200 штук.

Я их не стал сюда все копировать для экономии места.

Срабатывает антиддос защита сервера и заносит этот IP в фаервол.

Вопрос

Что это за множественные запросы с кодом 400 ?

Может это у кого-то из посетителей Opera/9.80 глючит?

Для справки

400 Bad Request (Плохой запрос)

Появился в HTTP/1.0.

Запрос не понят сервером из-за наличия синтаксической ошибки. Клиенту следует повторно обратиться к ресурсу с изменённым запросом.

N
На сайте с 06.05.2007
Offline
419
#1

Ну правильно, вы же блокируете клиента, часть запросов получаются незавершенные и nginx их воспринимает как синтаксически неправильные.

Вы действительно не догадались сразу или это такая "шоладемизация" для привлечения внимания к вашему антиддосу ?

Кнопка вызова админа ()
M
На сайте с 16.09.2009
Offline
278
#2
zexis:

Причем запросов
212.57.145.150 - - [30/Jan/2010:09:30:12 +0000] "-" 400 0 "-" "-"
За 2 секунды было сделано 200 штук.
Я их не стал сюда все копировать для экономии места.

Весьма разумная мысль :D. Видимо, не все еще потеряно...

zexis:

Срабатывает антиддос защита сервера и заносит этот IP в фаервол.
Вопрос
Что это за множественные запросы с кодом 400 ?
Может это у кого-то из посетителей Opera/9.80 глючит?

Скорее всего, бот очень быстро закрывает соединение, не дождавшись ответа

от сервера. Например, http://sysoev.ru/nginx/docs/faq.html#econnaborted - т.е. нормальные

клиенты вполне такое могут вызвать.

Выставите подходящий уровень логгирования в nginx - узнаете подробнее.

Скорее всего, в вашем случае будет что-то

типа "client closed prematurely connection while reading client request line".

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
zexis
На сайте с 09.08.2005
Offline
388
#3
netwind:
Ну правильно, вы же блокируете клиента, часть запросов получаются незавершенные и nginx их воспринимает как синтаксически неправильные.

Антиддос защита запускается по крону раз в минуту для анализа лог файла.

Так что каждый отдельный, поступающий запрос она не анализирует и не блокирует.

После того как IP адрес блокируется через фаервол, его в логах уже вообще не будет

zexis добавил 30.01.2010 в 16:19

myhand:

Скорее всего, бот очень быстро закрывает соединение, не дождавшись ответа
от сервера.

Я пока так и не понял бот это или браузер пользователя создает эти ошибки 400.

Сначала вроде идут запросы похожие на серфинг пользователя, а потом БАЦ!

И пошло множество запросов с кодом 400 с одного IP.

Причем по 5-20 запросов в секунду.

N
На сайте с 06.05.2007
Offline
419
#4

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

Возьмите сниффер и посмотрите как эта ситуация возникает на уровне пакетов. Что тут объяснять.

M
На сайте с 16.09.2009
Offline
278
#5
zexis:
И пошло множество запросов с кодом 400 с одного IP.
Причем по 5-20 запросов в секунду.

Если Вас досят - это скорее всего одино из проявлений ddos. И не обязательно,

что именно из-за прерывания запроса файерволом. Отключите блокировку - посмотрите

в лог через некоторое время, ну зачем тут сниффер :).

А если ничего больше о DDoS не свидетельствует - нужно дальше копать. Почему такое

может быть с нормальным клиентом - я привел пример выше.

M
На сайте с 01.12.2009
Offline
235
#6
zexis:
Примерно раз в 1-2 дня наблюдаю ситуацию появления в логах множества строк с котом шибки 400.
Стоит nginx-0.7.64
Вот пример лога

212.57.145.150 - - [30/Jan/2010:09:30:02 +0000] "GET /?r=100&page=7&top=1 HTTP/1.1" 200 12054 "-" "Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.2.15 Version/10.10"
212.57.145.150 - - [30/Jan/2010:09:30:04 +0000] "GET /g0/b/729/729030TOtE.jpg HTTP/1.1" 200 70274 "http://www.my_site.ru/photo.php?z=TOtE&p=729030" "Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.2.15 Version/10.10"
212.57.145.150 - - [30/Jan/2010:09:30:04 +0000] "GET /g0/b/729/729031S7zB.jpg HTTP/1.1" 200 70274 "http://www.my_site.ru/photo.php?z=S7zB&p=729031" "Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.2.15 Version/10.10"
212.57.145.150 - - [30/Jan/2010:09:30:04 +0000] "GET /g0/b/729/729032HzhE.jpg HTTP/1.1" 200 67393 "http://www.my_site.ru/photo.php?z=HzhE&p=729032" "Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.2.15 Version/10.10"
212.57.145.150 - - [30/Jan/2010:09:30:12 +0000] "-" 400 0 "-" "-"
212.57.145.150 - - [30/Jan/2010:09:30:12 +0000] "-" 400 0 "-" "-"
212.57.145.150 - - [30/Jan/2010:09:30:12 +0000] "-" 400 0 "-" "-"
… вырезано 200 таких запросов . . .
212.57.145.150 - - [30/Jan/2010:09:30:14 +0000] "-" 400 0 "-" "-"
212.57.145.150 - - [30/Jan/2010:09:30:14 +0000] "-" 400 0 "-" "-"


Причем запросов
212.57.145.150 - - [30/Jan/2010:09:30:12 +0000] "-" 400 0 "-" "-"
За 2 секунды было сделано 200 штук.
Я их не стал сюда все копировать для экономии места.

Срабатывает антиддос защита сервера и заносит этот IP в фаервол.
Вопрос
Что это за множественные запросы с кодом 400 ?
Может это у кого-то из посетителей Opera/9.80 глючит?

Для справки
400 Bad Request (Плохой запрос)
Появился в HTTP/1.0.
Запрос не понят сервером из-за наличия синтаксической ошибки. Клиенту следует повторно обратиться к ресурсу с изменённым запросом.

защиту выбросите, если дело токо в логах и защите, либо измените параметры в защите.

inetnum: 212.57.145.0 - 212.57.145.255

netname: SURNET-P2P-LINKS

какаето p2p сетка, что у вас за проекты, может защита в данном случаи не подходит, и это нормальное состояние :)

Администратор Linux,Freebsd. построения крупных проектов.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий