Найти в Дзене
Пока не взломали

Про fail2ban до сих пор любят говорить так, будто это почти антиддос

Хотя если без самообмана, fail2ban — это защита от мусора, а не от атаки. Брутфорс, кривые попытки логина, какая-то веб-помойка — да. DDoS — нет. Проблема очень простая. Fail2ban сначала должен дождаться, пока запрос долетит до nginx, попадет в лог, распарсится, и только потом IP уйдет в бан. То есть вся эта схема работает только тогда, когда сервер еще в состоянии спокойно жить и писать логи. А при нормальном флуде ничего он уже не успевает. Если у вас канал 100 мегабит, а туда прилетает 200 мегабит UDP, то на этом кино заканчивается. Канал забит, пакеты не доходят до приложения, логов нет, fail2ban ничего не видит. С SYN-флудом та же логика. До веб-сервера трафик может просто не дожить. Отдельный цирк начинается, когда все это еще и крутится через обычный iptables без ipset. Сначала человек радуется банам, потом раздувает список правил, а потом сервер начинает тратить CPU на этот героизм. Поэтому если хочется хоть какой-то взрослой гигиены, смотреть надо хотя бы в сторону ipset

Про fail2ban до сих пор любят говорить так, будто это почти антиддос

Хотя если без самообмана, fail2ban — это защита от мусора, а не от атаки. Брутфорс, кривые попытки логина, какая-то веб-помойка — да. DDoS — нет.

Проблема очень простая. Fail2ban сначала должен дождаться, пока запрос долетит до nginx, попадет в лог, распарсится, и только потом IP уйдет в бан.

То есть вся эта схема работает только тогда, когда сервер еще в состоянии спокойно жить и писать логи.

А при нормальном флуде ничего он уже не успевает. Если у вас канал 100 мегабит, а туда прилетает 200 мегабит UDP, то на этом кино заканчивается. Канал забит, пакеты не доходят до приложения, логов нет, fail2ban ничего не видит.

С SYN-флудом та же логика. До веб-сервера трафик может просто не дожить.

Отдельный цирк начинается, когда все это еще и крутится через обычный iptables без ipset. Сначала человек радуется банам, потом раздувает список правил, а потом сервер начинает тратить CPU на этот героизм.

Поэтому если хочется хоть какой-то взрослой гигиены, смотреть надо хотя бы в сторону ipset в raw table. А если хочется менее локального взгляда на весь этот мусор, то уже на CrowdSec.

Потому что идея «подождем, пока нас ударят, и потом забаним» — это, конечно, очень трогательно, но к защите от атак имеет довольно отдаленное отношение.