LINUX.ORG.RU

GET флуд

 


0

1

Флудят GET запросами сайт, много ip делают по 1-5 конектов тем самым нагружают CPU и оперативку под потолок. Ограничить в iptables по количествую конектов нету смысла. Может быть можно как-то рубить по отсутствующему юзер агенту?

66.132.250.135 - - [13/Apr/2015:16:58:15 +0300] "GET / HTTP/1.1" 200 8364 "-" "-"
194.242.35.214 - - [13/Apr/2015:16:58:15 +0300] "GET / HTTP/1.1" 200 8364 "-" "-"
194.242.35.214 - - [13/Apr/2015:16:58:15 +0300] "GET / HTTP/1.1" 200 8364 "-" "-"
188.121.41.163 - - [13/Apr/2015:16:58:15 +0300] "GET / HTTP/1.1" 200 8364 "-" "-"
31.192.212.130 - - [13/Apr/2015:16:58:15 +0300] "GET / HTTP/1.1" 200 8364 "-" "-"
109.75.164.132 - - [13/Apr/2015:16:58:15 +0300] "GET / HTTP/1.1" 200 8364 "-" "-"



Последнее исправление: User01 (всего исправлений: 1)

много ip делают по 1-5 конектов тем самым нагружают CPU и оперативку под потолок

Ты не видел hi-load. А 1k rps не хочешь? Вот это нагружает, а твои 1-5 курам на смех.

beastie ★★★★★
()
Ответ на: комментарий от User01

Это значит, что проблема у тебя скорее всего не в количестве GET-запросов.

Что за железо? Может у тебя там Pentium I вместо сервера? :-)

У меня есть сайт где в среднем 14 запросов в секунду - никто в потолок не уходит(да и с чего бы?).

Pinkbyte ★★★★★
()
Ответ на: комментарий от Amet13

Ещё, как вариант (то, что хочет ТС, но что не имеет смысла):

if ($http_user_agent = "") { return 403; }

beastie ★★★★★
()
Ответ на: комментарий от Amet13

nginx ставить и перенастраивать проблематично, софт настроен под работу apache, поэтому ищу более простой способ рубонуть соенинения которые не имеют юзер агента. В iptables вроде можно только если укажешь юзер агент, но как быть если он пустой как показано в логе выше?

User01
() автор топика
Ответ на: комментарий от beastie

тоже vps 4 ядра E5620 @ 2.40GHz, 2.5GB оперативки, но в момент атаки, оперативка закладывается под потолок и все ядра аналогично.

User01
() автор топика
Ответ на: комментарий от User01

Вполне может имет смысл пре-подключить nginx перед apache, как прокси и для отдачи статики.

Проблема с apache в том, что он может не больше чем 255 коннектов одновременно (hardcoded value). Nginx же менее рессурсоёмкий и более «умный». С большой вероятностью ты сможешь так в несколько раз снизить нагрузку на apache и не заморачиваться больше «пустыми коннектами».

beastie ★★★★★
()
Ответ на: комментарий от User01

iptables — это в первую очередь L3/4. Что бы фильтровать им L7, нужен уже DPI — а это в разы накладней, чем любые другие решения.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от User01

И да, и нет.
Если боты присылают заголовок с пустым значением, то отловить легко. Если они вообще его не присылают, то, по нагрузке на cpu будет, пофигу кто фильтрует, Apache или дикая регулярка в iptables.
Тупо посмотри откуда запросы, если из стран где у тебя клиентов быть не может, то блочь их сегментами по инфе их whois. Обычно строк 20 помогает на долго.

expelled ★★
()
Ответ на: комментарий от expelled

да так можно и наблочить что и ботов гуглы и яндекса закрыть) cloudflare вроде умеет проверять юзер агента, видел на некоторых сайтах. Может там можно отрезать такие запросы?

User01
() автор топика
Ответ на: комментарий от User01

что и ботов гуглы

Это те ещё досеры, их - можно. :-)

AS ★★★★★
()
Ответ на: комментарий от beastie

Проблема с apache в том, что он может не больше чем 255 коннектов одновременно (hardcoded value).

Што.
Всё прекрасно настраивается, man MaxClients. Там разве что дефолтное значение 256, но никто не мешает поменять.
А с worker mpm у меня апач проксировал и по тысяче одновременных соединений, правда на синтетических тестах.

Reinar
()
Ответ на: комментарий от User01

тоже vps 4 ядра E5620 @ 2.40GHz, 2.5GB оперативки, но в момент атаки, оперативка закладывается под потолок и все ядра аналогично.

Скорее всего плохо настроил апач и нету кэширования (хоть оно в httpd и паршивое).
Какой mpm используется? Если апач так себя ведёт на такой слабенькой нагрузке, то тут или prefork стоит, или веб-приложение делает что-то лютое.

Reinar
()
Ответ на: комментарий от User01

prefork

Ну тогда понятно, чего идёт нагрузка.

апач перестает работать.

А если с логами?

Reinar
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.