Блокировка IP средствами fail2ban, iptables или иначе

12
J
На сайте с 06.07.2011
Offline
167
1334

Стоит панель vesta, было бы здорово добавить правила и к примеру после кучи таких обращений ип попадал автоматически в бан.


Подскажите пожалуйста, как стандартными средствами блокировать атаки, периодически идут кучи обращений с одного ип. Я его блокирую в nginx конфиге (deny 1.1.1.1;) и атака заканчивается, но хотелось бы что бы блок был на автомате. Сайтов много и обязательное условие что бы не было блокировки гугл бота.


Обращений идёт десятки в каждую секунду к сайту, пример на скриншоте:
Иннокентий Шниперсон
На сайте с 02.07.2022
Offline
15
jano :

Стоит панель vesta, было бы здорово добавить правила и к примеру после кучи таких обращений ип попадал автоматически в бан.


Подскажите пожалуйста, как стандартными средствами блокировать атаки, периодически идут кучи обращений с одного ип. Я его блокирую в nginx конфиге (deny 1.1.1.1;) и атака заканчивается, но хотелось бы что бы блок был на автомате. Сайтов много и обязательное условие что бы не было блокировки гугл бота.


Обращений идёт десятки в каждую секунду к сайту, пример на скриншоте:

Если речь про Wordpress, то там вроде есть в плагине Wordfence защита от такого.

— Вон! — Где? — Вот отсюда!
J
На сайте с 06.07.2011
Offline
167
#2
Иннокентий Шниперсон #:

Если речь про Wordpress, то там вроде есть в плагине Wordfence защита от такого.

Спасибо, помимо wordpress есть другие сайты тоже. Нужно решение независимо от движка.

-S
На сайте с 10.12.2006
Offline
1355
#3
jano #:

Спасибо, помимо wordpress есть другие сайты тоже. Нужно решение независимо от движка.

В вашем случае оптимальным будет использовать тот же cloudflare и настроить фильтры, чем разбираться с fail2ban, iptables или другими утилитами, потому что мануалов и туториалов вагон, смысла в теме мало.


Иннокентий Шниперсон #:
Если речь про Wordpress, то там вроде есть в плагине Wordfence защита от такого.

Блокировать нужно до попадание трафика на CMS, странно создавать нагрузку и не отсеивать трафик раньше.

suffix
На сайте с 26.08.2010
Offline
331
#4
1.

Лёгкий вариант.

ngx_http_limit_req_module  (модуль для nginx) + fail2ban.

В настройках данного модуля устанавливаете сколько соединений с одного ip в минуту плохо и куда писать лог плохишей. В failban в одном конфигурационном файле указываете путь до этого лога ну и правило фильтрации и как банить.

Мануалов по настройке в Гугле тьма ...

2.

Сложный вариант.

modsecurity - разумеется всё это умеет и забанит по тем правилам как настроите (например если с одого и того же ip более 5 подключений в секунду до бан). Прикоучивается и к apache и к nginx. Но это WAF - сложен и можно всё поломать к чертям если накосячить :)

Считаю что для Вас лучшим варантом будет первый.
Клуб любителей хрюш (https://www.babai.ru)
ЛЛ
На сайте с 12.11.2018
Offline
68
#5

Мне тут подсказали. iptables -t filter -I INPUT -p tcp  -m connlimit --connlimit-above 30 --connlimit-mask 32 -j DROP

блокирует ип свыше 30 запросов в секунду к tcp протоколу. Должно помочь.

ЛЛ
На сайте с 12.11.2018
Offline
68
#6
так же можете добавить политику разрешающую ип гугл бота и т.д. 
suffix
На сайте с 26.08.2010
Offline
331
#7
Лелуш Ламперуж #:

Мне тут подсказали. iptables -t filter -I INPUT -p tcp  -m connlimit --connlimit-above 30 --connlimit-mask 32 -j DROP

блокирует ип свыше 30 запросов в секунду к tcp протоколу. Должно помочь.

Когда Вас девушка знакомая спрашивает как в Windows какое-нибудь окошко заблочить чтобы не выскакивало - Вы её править реестр отправляете ? :)))

ЛЛ
На сайте с 12.11.2018
Offline
68
#8
suffix #:

Когда Вас девушка знакомая спрашивает как в Windows какое-нибудь окошко заблочить чтобы не выскакивало - Вы её править реестр отправляете ? :)))

ну решение дельное. А так в гугле полно информации по проблеме. Да и ваше решение подойдёт. Только работать оно будет не пермаментно.

ЛЛ
На сайте с 12.11.2018
Offline
68
#9
да и как пишет автор 10 запросов это очень мало. Скорее всего боты 100% точнее. мне они не мешают.
Д
На сайте с 01.04.2012
Offline
140
#10
-A INPUT -p tcp -m tcp --dport PORT -m connlimit --connlimit-above 3 --connlimit-mask 32 --connlimit-saddr -j REJECT --reject-with icmp-port-unreachable

Мне это помогает и проблем за несколько лет не было.  Вручную прописать в /etc/sysconfig/iptables и перезапустить, но тогда в Vesta в панели ничего не менять, иначе изменит на свое iptables.

PORT - номер порта.
connlimit-above 3 - кол-во параллельных коннектов с IP.


Или как вариант заинклудить для всех сайтов в php.ini файл для проверки на ботов.

PS. CF часто начал менять на черные IP которые в блоке у РКН  (188.114.97.2 и 188.114.96.2 - это какие были замечены ). Там >5000 сайтов и страниц в блоке. На Free тарифе.

VPN/SSD VPS в любой локации на выбор ( https://cp.inferno.name/cart.php ). Скидка 25% для новых заказов по промо-коду OSEN2024
12

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