Fail2ban

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.
Інформаційні технології Це незавершена стаття про інформаційні технології.
Ви можете допомогти проєкту, виправивши або дописавши її.
На цю статтю не посилаються інші статті Вікіпедії.
Будь ласка розставте посилання відповідно до прийнятих рекомендацій.