skip to content
Skesov.pro

Защита SSH от брутфорса на Debian и Ubuntu с помощью Fail2Ban

/ 2 min read

Table of Contents

Каждый публичный сервер с открытым 22-м портом ежедневно подвергается сотням попыток подбора пароля. Чтобы обезопасить систему, необходимо ограничить количество попыток входа и автоматически блокировать атакующих.

Сегодня стандартом для этой задачи является утилита Fail2Ban, которая пришла на смену устаревшим решениям вроде DenyHosts.

Установка Fail2Ban

В Debian и Ubuntu установка выполняется одной командой:

Terminal window
sudo apt update && sudo apt install fail2ban

После установки служба запустится автоматически с настройками по умолчанию.

Настройка защиты SSH

В Fail2Ban не рекомендуется править основной файл jail.conf. Вместо этого создайте локальную копию настроек:

Terminal window
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

Найдите секцию [sshd] и приведите её к следующему виду:

[sshd]
enabled = True
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
# Количество попыток перед блокировкой
maxretry = 5
# Время, на которое блокируется IP (например, 1 час)
bantime = 1h
# Интервал, в течение которого считаются попытки
findtime = 10m

Сохраните файл и перезапустите службу:

Terminal window
sudo systemctl restart fail2ban

Полезные команды

Как посмотреть статус блокировок?

Чтобы узнать, сколько «хакеров» уже попало в бан:

Terminal window
sudo fail2ban-client status sshd

Как разбанить свой IP?

Если вы сами ошиблись с паролем и вас заблокировали (с другого IP):

Terminal window
sudo fail2ban-client set sshd unbanip <ваш_IP_адрес>

Золотое правило безопасности

Блокировка попыток — это хорошо, но вход по SSH-ключам с полным отключением авторизации по паролю — это в разы надежнее.

О том, как создать современный и безопасный SSH-ключ, читайте в нашей следующей статье.