1. Блог
  2. Мануали

Fail2Ban: встановлення, налаштування та основні команди

Fail2Ban: встановлення, налаштування та основні команди

Fail2Ban читає журнали служб і тимчасово блокує IP-адреси, з яких ідуть підозрілі спроби входу. Для сервера з відкритим SSH це базовий захист від перебору паролів.

Встановлення

Ubuntu і Debian:

sudo apt update
sudo apt install fail2ban

AlmaLinux, Rocky Linux, RHEL (пакет міститься в репозиторії EPEL):

sudo dnf install epel-release
sudo dnf install fail2ban

Увімкніть службу:

sudo systemctl enable --now fail2ban

Де зберігаються налаштування

Усі файли містяться в /etc/fail2ban/. Файл jail.conf містить типові значення й перезаписується під час оновлення пакета, тому редагувати його не потрібно. Власні налаштування розміщуйте в jail.local або в окремих файлах каталогу /etc/fail2ban/jail.d/.

Загальні параметри

Створіть файл із параметрами, спільними для всіх правил:

sudo nano /etc/fail2ban/jail.d/defaults.conf
[DEFAULT]
ignoreip = 127.0.0.1/8 ::1 198.51.100.7
bantime = 1h
findtime = 10m
maxretry = 5
bantime.increment = true
bantime.maxtime = 1w
  • ignoreip — адреси, які ніколи не блокуються. Додайте сюди свою постійну IP-адресу.
  • maxretry — кількість невдалих спроб до блокування.
  • findtime — інтервал, за який рахуються спроби.
  • bantime — тривалість блокування.
  • bantime.increment — кожне повторне блокування тієї самої адреси триває довше, аж до bantime.maxtime.

Захист SSH

sudo nano /etc/fail2ban/jail.d/sshd.conf
[sshd]
enabled = true
port = ssh
backend = systemd
maxretry = 3

Якщо SSH працює на нестандартному порту, вкажіть його номер у port.

Застосуйте налаштування:

sudo systemctl restart fail2ban

Блокування через nftables

Сучасні дистрибутиви використовують nftables замість iptables. Щоб Fail2Ban створював правила безпосередньо в nftables, додайте в секцію [DEFAULT]:

banaction = nftables-multiport
banaction_allports = nftables-allports

На системах із firewalld використовуйте banaction = firewallcmd-rich-rules. Усі доступні дії лежать у /etc/fail2ban/action.d/, фільтри — у /etc/fail2ban/filter.d/.

Основні команди

Список активних правил:

sudo fail2ban-client status

Стан правила та заблоковані адреси:

sudo fail2ban-client status sshd

Заблокувати адресу вручну:

sudo fail2ban-client set sshd banip 203.0.113.50

Розблокувати адресу:

sudo fail2ban-client set sshd unbanip 203.0.113.50

Зняти всі блокування:

sudo fail2ban-client unban --all

Перевірити, чи спрацьовує фільтр на записах журналу:

sudo fail2ban-regex systemd-journal /etc/fail2ban/filter.d/sshd.conf

Якщо заблокували себе

Підключіться через консоль сервера в панелі керування хостингу (VNC) і виконайте fail2ban-client set sshd unbanip <ваша IP>. Щоб ситуація не повторилася, додайте свою адресу в ignoreip.

Чого Fail2Ban не замінює

Fail2Ban зменшує шум у журналах і зупиняє простий перебір, але не захищає від слабкого пароля, який вгадають із перших спроб. Використовуйте його разом із входом за SSH-ключами та зміною порту SSH.

Відеоінструкція

YouTube video
#fail2ban#ssh#безпека#nftables#захист сервера

Ця стаття іншими мовами:EnglishРусский