Защищаем HTTP авторизацию от перебора паролей при помощи fail2ban

В прошлый раз я показал как быстро и непринужденно брутится пароль HTTP авторизации. Теперь защитим её от перебора, при помощи правил fail2ban. Собственно необходимое jail правило в VestaCP уже установлено, но не активировано по умолчанию. По умолчанию активирована только защита от перебора по ssh. Посмотреть текущие активные jail-ы можно командой

fail2ban-client status

Убедившись, что в этом списке ещё нет нужного нам apache-auth откроем следующий конфиг

nano /etc/fail2ban/paths-debian.conf

Тут нужно указать правильный шаблон path к error логам apache, у меня это выглядит так:

apache_error_log = /var/log/apache2/domains/*error.log

далее открываем файл

nano /etc/fail2ban/jail.d/defaults-debian.conf

и добавляем строки

[apache-auth]
enabled = true

одной строкой это делается так:

cat /etc/fail2ban/jail.d/defaults-debian.conf && echo -e "[apache-auth]\nenabled = true" >> /etc/fail2ban/jail.d/defaults-debian.conf

Теперь перезапустим fail2ban

fail2ban-client reload

Проверим статус jail правила

fail2ban-client status apache-auth
Статус jail правила apache-auth
Статус jail правила apache-auth

Просмотрим текущие правила iptables

iptables -L
iptables
iptables

По умолчанию количество попыток(5), время поиска по логам(600), время бана(600) и прочие настройки задаются файлом по умолчанию /etc/fail2ban/jail.conf

Для каждого отдельного jail эти переменные можно изменять тут /etc/fail2ban/jail.d/defaults-debian.conf

Ну что ж, пришло время проверить нашу авторизацию. Для онлайн мониторинга лога будем использовать команду tailf

tailf /var/log/fail2ban.log
fail2ban
fail2ban

После 5 попытки сервер по http и https отвечать перестал. Вообще! TCP пакеты от данного IP заворачиваются в цепочке iptables

iptables reject
iptables reject

И так в течении 600 секунд, пока не выйдет срок бана указанный в конфигурации. Посмотрим вывод fail2ban-client status apache-auth

fail2ban-client status apache-auth
fail2ban-client status apache-auth

Бан можно снять вручную, командой

fail2ban-client set apache-auth unbanip 192.168.56.3

А теперь вновь воспользуемся hydra для перебора нашей http авторизации.

Это абсолютно бесполезно…

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *