Всем привет!
Все, ну или почти все, прекрасно знают про существование такой прекрасной вещи как fail2ban. Кто не знает, обязательно почитайте.
В общем эта замечательная штука нечто иное, как набор скриптов, которые помогают защитится от подбора паролей. Как это все работает и настраивается я рассказывать не буду, т.к. хочу поделиться с вами опытом использования этой утилиты.
Так вот недано столкнулся с такой проблемой у себя: стали куда то пропадать правила созданные fail2ban в фаерволе. Анализ логов показал следующее:
fail2ban.actions.action: ERROR ...
Причем после каждого рестарта fail2ban или самой системы правила, которые не применились, были разными. Отсюда можно сделать вывод, что сам бан настроен верно.
Прояндексив кучу страниц в интернете и проделав такую же кучу всякой всячины, я нашел один способ побороть это недоразуменее. А именно нужно внести задержку в скрипты, которые создают правила в фаерволе.
Делается это так: берем наше действие:
/etc/fail2ban/actions.d/iptables-multiport.conf
в моем случаи это мультипорт и редактируем его приводя к следующему виду:
actionstart = sleep `perl -e 'print rand(3);'`
iptables -N fail2ban-<name>
iptables -A fail2ban-<name> -j RETURN
iptables -I INPUT -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
actionstop = sleep 1
iptables -D INPUT -p <protocol> -m multiport --dports <port> -j fail2ban-<name>
iptables -F fail2ban-<name>
iptables -X fail2ban-<name>
Конечно же после этого:
service fail2ban restart
Готово, больше ваша система не останется без присмотра замечательной службы антибрутфорса fail2ban.