Fail2ban

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Fail2Ban
Тип Система виявлення атак (вторгнень)
Автор Cyril Jaquier
Розробник Cyril Jaquier, Yaroslav Halchenko, Daniel Black, Steven Hiscocks, Arturo 'Buanzo' Busleiman et al.
Перший випуск 2004; 20 років тому (2004)
Стабільний випуск 0.10.0 (9 серпня 2017; 6 років тому (2017-08-09)[1])
Версії 1.0.2 (9 листопада 2022)[2]
Операційна система Unix-like
Мова програмування Python
Ліцензія GPLv2+
Репозиторій github.com/fail2ban/fail2ban
Вебсайт www.fail2ban.org

Fail2Ban — програма захисту серверів від атаки грубою силою. Написана мовою програмування Python, може працювати на POSIX-системах що мають інтерфейс до системи контролю пакетів або файервола, наприклад, iptables або TCP Wrapper.

Принцип роботи[ред. | ред. код]

Fail2ban сканує файли журналів (наприклад, /var/log/apache2/error.log) і забороняє IP-адреси, активність з яких виявляє шкідливі ознаки — велика кількість спроб увійти з неправильно введеним паролем, виконати небезпечні або безглузді дії тощо. В разі виявлення таких аномальних дій, Fail2Ban оновлює правила брандмауера для блокування такої IP-адреси на певний проміжок часу. Програма може бути налаштована і на виконання іншої дії (наприклад, відправлення електронного листа).

Конфігурація за замовчуванням містить фільтри для Apache, Lighttpd, sshd, vsftpd, qmail, Postfix, Courier Mail Server, Asterisk та інших популярних серверних додатків. У фільтрах використовуються регулярні вирази, які можуть бути легко змінені та налаштовані у разі потреби. Наприклад, фільтр sshd-ddos виглядає таким чином:

failregex = ^%(__prefix_line)sDid not receive identification string from <HOST>\s*$

Налаштування[ред. | ред. код]

Стандартні налаштування програми знаходяться у файлі /etc/fail2ban/jail.conf, змінювати налаштування рекомендують в /etc/fail2ban/jail.local, який є копією jail.conf.

Файл містить розділ загальних налаштувань [DEFAULT] та розділи специфічних налаштувань для певних сервісів (для прикладу продемонстрована наявність розділу [ssh]).

[DEFAULT]
ignoreip = 127.0.0.1/8
ignorecommand =
bantime  = 3600
findtime = 600
maxretry = 3
backend = auto
usedns = warn
destemail = root@localhost
sendername = Fail2Ban
sender = fail2ban@localhost
banaction = iptables-multiport
mta = sendmail
protocol = tcp
chain = INPUT
action_ = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
action_mw = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
              %(mta)s-whois[name=%(__name__)s, dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s", sendername="%(sendername)s"]
action_mwl = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
               %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s", sendername="%(sendername)s"]
action = %(action_)s

[ssh]
enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 6

Модифікації[ред. | ред. код]

Посилання[ред. | ред. код]

  1. fail2ban: Daemon to ban hosts that cause multiple authentication errors. 11 листопада 2017. Архів оригіналу за 9 квітня 2018. Процитовано 3 квітня 2018 — через GitHub.
  2. Release 1.0.2 — 2022.