Fail2Ban – программа для защиты серверов от атак методом грубой силы, написанная на языке программирования Python, может работать на POSIX-системах имеющих встроенный менеджер пакетов и брандмауэр, например, iptables.
Fail2ban считывает логи (например, /var/log/apache2/error.log) и блокирует IP-адреса, активность которых является подозрительной (например, большое количество попыток войти с неправильно введенным паролем, выполнение опасных или бессмысленных действий и т.д.). В случае обнаружения подобных действий программа обновляет правила брандмауэра для блокировки такого IP-адреса на определенный промежуток времени. Программа может быть настроена и для выполнения другого действия (например, отправки электронного письма).
Конфигурация по умолчанию содержит фильтры для Apache, Lighttpd, sshd, vsftpd, qmail, Postfix, Courier Mail Server, Asterisk и других популярных серверных приложений. В фильтрах используются регулярные выражения, которые могут быть легко изменены и настроены в случае необходимости.
Стандартные настройки программы находятся в файле /etc/fail2ban/jail.conf
, изменять настройки рекомендуют в /etc/fail2ban/jail.local
, который является копией jail.conf
. Файл содержит раздел общих настроек [DEFAULT] и разделы специфических настроек для определенных сервисов (например, наличие раздела [ssh]).
ignoreip = 127.0.0.1/8
bantime = 3600
findtime = 600
maxretry = 3
backend = auto
usedns = warn
banaction = iptables-multiport
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
https://github.com/fail2ban/fail2ban
Fail2web — это графический интерфейс fail2ban, который взаимодействует с экземпляром fail2ban через fail2rest. fail2ban позволяет вам администрировать следующее:
Failregex — удаление и добавление новых failregexes
Заблокированные IP-адреса — запрет и разблокировка IP-адресов
Конфигурация для каждой тюрьмы (jail) — настройка времени поиска, максимального количества повторных попыток и используемых имен для каждой тюрьмы, а также просмотр списка файлов для каждой тюрьмы
Оповещение — уведомления о блокировке и разблокировке IP-адреса в течение настраиваемого пользователем периода времени.
Тестирование регулярных выражений — тестирование регулярных выражений «игнорировать+не выполнить» на текущих журналах для быстрого создания и отладки регулярных выражений.
Отчетность — показывайте время блокировки IP-адреса и демонстрируйте тенденции с помощью визуализации.
https://github.com/Sean-Der/fail2web