Fail2Ban - это система для защиты от атак подбором пароля
apt-get install fail2ban
Настройка блокировки подбора пароля в Roundcube:
[Definition] failregex = IMAP Error: Login failed for .* from <HOST>(\. .* in .*?/rcube_imap\.php on line \d+ \(\S+ \S+\))?$ ignoreregex =
[roundcube] enabled = true port = http,https filter = roundcube action = iptables-multiport[name=roundcube, port="http,https"] logpath = /opt/roundcube/logs/errors maxretry = 5 findtime = 600 bantime = 3600
Настройка блокировки подбора пароля в DokuWiki:
Для работы требуется logautherror.
[Definition] failregex = ^.*\[client <HOST>(:\d{1,5})?\].*: authentication failure.*$ ignoreregex =
[apache-dokuwiki] enabled = true port = http,https protocol = tcp filter = apache-dokuwiki logpath = /var/log/apache*/*error.log maxretry = 2
Тестирование:
fail2ban-regex /var/log/apache2/error.log /etc/fail2ban/filter.d/apache-dokuwiki.conf
После перезапуска межсетевого экрана нужно перезапустить и Fail2Ban
Пример с Iptables:
/etc/network/if-pre-up.d/iptables service fail2ban restart
Если в логе:
fail2ban.actions.action: ERROR iptables -D INPUT -p tcp -m multiport --dports ssh -j fail2biptables -F fail2ban-ssh
В файле /usr/bin/fail2ban-client
Ищем:
beautifier.setInputCmd(c)
Добавляем перед ней строку:
time.sleep(0.1)
Результат:
def __processCmd(self, cmd, showRet = True): beautifier = Beautifier() for c in cmd: time.sleep(0.1) beautifier.setInputCmd(c)