Page 1 of 2

Nginx: определить хост, который посылает запрос

Posted: Wed Feb 28, 2018 10:05 am
by pligin
Всем привет.
Возник вопрос после упорного http флуда на север...
Возможно ли в nginx определить имя Хоста/домена с которого идёт запрос?
Например:
Пришел запрос с xxxx.host.com, проверяется по регулярке со списком и если в этом списке есть этот "host.com", то выполняем редирект или 404.
Флудят одни и те же сервера вот и хочу тупо по списку их отсеивать...
Регулярка со списком уже есть.
Всем спасибо

Re: Nginx: определить хост, который посылает запрос

Posted: Wed Feb 28, 2018 10:11 am
by skurudo
Что-то такое, если я правильно понял задачу:
if ($host = 'domain.com' || $host = 'domain2.com') {
return 404;
}

Re: Nginx: определить хост, который посылает запрос

Posted: Wed Feb 28, 2018 10:18 am
by pligin
skurudo wrote:
Wed Feb 28, 2018 10:11 am
Что-то такое, если я правильно понял задачу:
if ($host = 'domain.com' || $host = 'domain2.com') {
return 404;
}
Нет.
$host, насколько я понял, это название Хоста из тела запроса, т.е. кому отправляется запрос, а не от кого

Re: Nginx: определить хост, который посылает запрос

Posted: Wed Feb 28, 2018 10:26 am
by pligin
Нашел ответ на свой вопрос:
нужен модуль ngx_http_rdns_module...
Как проверю, отпишусь

Re: Nginx: определить хост, который посылает запрос

Posted: Wed Feb 28, 2018 10:55 am
by skurudo
Стоит наверное посмотреть примеры запросов, которыми флудят - может было бы проще.

Re: Nginx: определить хост, который посылает запрос

Posted: Wed Feb 28, 2018 2:19 pm
by yariksat
Подкину такую идею как CSF

Re: Nginx: определить хост, который посылает запрос

Posted: Sat Mar 03, 2018 8:26 pm
by pligin
skurudo wrote:
Wed Feb 28, 2018 10:55 am
Стоит наверное посмотреть примеры запросов, которыми флудят - может было бы проще.
Пустые GET

Re: Nginx: определить хост, который посылает запрос

Posted: Sat Mar 03, 2018 8:32 pm
by pligin
yariksat wrote:
Wed Feb 28, 2018 2:19 pm
Подкину такую идею как CSF
Перед тем как подкидывать нужно прочитать вопрос и изучить то, что предлагаете...
1. Если вопрос тут, значит панель VesatCP
2. CSF конфликтует с iptables
3. CSF делает тоже самое, что и iptables...
4. Судя по ману CSF имеет меньше возможностей, чем iptables

Мне нужно имя хоста отправителя запроса, а не блокировка по IP

Re: Nginx: определить хост, который посылает запрос

Posted: Sun Mar 04, 2018 6:37 am
by yariksat
pligin wrote:
Sat Mar 03, 2018 8:32 pm
Перед тем как подкидывать нужно прочитать вопрос и изучить то, что предлагаете...
1. Если вопрос тут, значит панель VesatCP
2. CSF конфликтует с iptables
3. CSF делает тоже самое, что и iptables...
4. Судя по ману CSF имеет меньше возможностей, чем iptables

Мне нужно имя хоста отправителя запроса, а не блокировка по IP
В очередной раз убедился что делай добро и бросай его в воду
1.Ну и что?В панель отлично ставится.И управляется из панели так же отлично.
2.Не заметил,по крайней мере у себя.
3.Может быть.
4.Когда-то ставил именно из-за флуда на порту.С этой задачей он справился превосходно.

Re: Nginx: определить хост, который посылает запрос

Posted: Sun Mar 04, 2018 7:17 am
by pligin
yariksat wrote:
Sun Mar 04, 2018 6:37 am
pligin wrote:
Sat Mar 03, 2018 8:32 pm
Перед тем как подкидывать нужно прочитать вопрос и изучить то, что предлагаете...
1. Если вопрос тут, значит панель VesatCP
2. CSF конфликтует с iptables
3. CSF делает тоже самое, что и iptables...
4. Судя по ману CSF имеет меньше возможностей, чем iptables

Мне нужно имя хоста отправителя запроса, а не блокировка по IP
В очередной раз убедился что делай добро и бросай его в воду
1.Ну и что?В панель отлично ставится.И управляется из панели так же отлично.
2.Не заметил,по крайней мере у себя.
3.Может быть.
4.Когда-то ставил именно из-за флуда на порту.С этой задачей он справился превосходно.
2. В документации это написано. И можно логически подумать - два швейцара не смогут согласованно открывать двери...
3. Не может быть, а так и есть. Зачем изобретать заново велосипед?
4. Интересно какой объем флуда был? Спас потому, что запросов было мало. Использовал CSF потому что с iptables разбираться было впадлу...
iptables имеет обширный функционал...
На мой сайт периодически идет HTTP флуд до 2,5 Млн запросов час - можете посчитать сколько это запросов с секунду. Разных IP несколько тысяч... Поэтому нужно идентифицировать имя хоста.
но ни одно средство не может получить имя хоста и поэтому нужны дополнительные модули