LINUX.ORG.RU
ФорумAdmin

linux, можно ли настроить автоматический бан подсетей при ddos атаках?

 ,


0

1

дипсик дал несколько советов, совет с f2b реален?

1. Использование Fail2Ban с подсетями
Fail2Ban можно настроить для блокировки целых подсетей при обнаружении атаки.

Пример настройки:

ini
# /etc/fail2ban/jail.d/ddos.conf
[ddos]
enabled = true
filter = ddos
logpath = /var/log/nginx/access.log # или ваш лог
maxretry = 50  # кол-во запросов до блокировки
findtime = 60   # секунд
bantime = 3600  # время блокировки
banaction = iptables-subnet # специальное действие
Действие для подсетей (/etc/fail2ban/action.d/iptables-subnet.conf):

ini
[Definition]
actionban = iptables -I INPUT -s <ip>/24 -j DROP
actionunban = iptables -D INPUT -s <ip>/24 -j DROP


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

Совет по существу:

Против DDOS на своем (целевом для атаки) сервере ты ничего не сможешь сделать, твой Интернет-канал просто будет забит на 100% вне зависимости от того, что у тебя написано в фаерволле.

Защитой от DDOS занимается вышестоящий пир (твой провайдер) или специализированные организации, через которых ты перенаправишь свой трафик в случае атаки.

INPUT -s /24 -j DROP

Если уж банишь сразу /24 масками, то советую просто

iptables -D INPUT -s 0.0.0.0/0 -j DROP

BOOBLIK ★★★★
()

визуально похоже, но, как минимум, правила должны создаваться в своей цепочке

filter = ddos

самое интересное дипсик не показал? Знал я одного товарища, который защищался баном всего и всех, а потом он добавил в свой вордпресс какой-то плагин, который делал много запросов, и моментально забанился

xgatron
()
Ответ на: комментарий от BOOBLIK

Флуд который забивает канал и ddos для веб сервера - это разные вещи.
Защиту от флуда можно реализовать только на вышестоящем оборудовании, а вот защита от простых ddos для веб-сервера вполне реализуема на f2b

iptables -D INPUT -s 0.0.0.0/0 -j DROP

К чему полумеры? shutdown -h now :)

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

У себя на VPS я просто взял список abuseips и заблокировал их нафиг. Cписок обновляется ежедневно.

Name: bad-ip
Type: hash:ip
Revision: 6
Header: family inet hashsize 65536 maxelem 1048576 bucketsize 12 initval 0xf022b6b9
Size in memory: 3472208
References: 1
Number of entries: 141025

Chain INPUT (policy DROP 1075 packets, 60517 bytes)
 pkts bytes target     prot opt in     out     source               destination
39060 1846K DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            match-set bad-ip src

Набегает примерно мегабайт запросов в день. Аптайм из вывода - два дня.

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

Правильный способ блокировки адресов - через ipset (замена правил в iptables стоит очень дорого).

banaction = iptables-ipset
Работает значительно быстрее.

Для добавления/удаления ip-адреса в BL выполняются команды actionban/actionunban.
В action.d/iptables-ipset.conf

actionban = ipset -exist add <ipmset> <ip> timeout <ipsettime>
actionunban = ipset -exist del <ipmset> <ip>
Эти команды нужно заменить на выполнение скриптов которые меняют ip на сеть.
ipset должен быть типа hash:net, а не hash:ip. Для этого нужно исправить строку «actionstart = ipset -exist create <ipmset> hash:ip ...»

vel ★★★★★
()

я столкнулся с тем что мой заказчик запретил использовать fail2ban поскольку он блокирует все запросы в том числе нужные. получается что клиенты теряют доступ к сайту. если блокируешь сайт. надо именно фильтровать с целью выявления хороших и плохих запросов. для этого наверно поможет mod security.

jura12 ★★
()

Никак, забей.

Защитой от DDOS должен заниматься, как минимум, твой «сосед сверху» (ЕВПОЧЯ(.

А у тебя может быть связка из каких-нибудь IDS/IPS+лямка к «соседу» - но весь этот ералаш требует серьезных денег и обработки рашпилем (не напильником даже).

Говорю, как бывший ведущий инженер-программист Ростелекома (фу), с нуля запускавший новое ядро, получавший статус LIR и прочие веселушки.

tr0_
()