Защита SSH от брутфорса на Debian и Ubuntu с помощью Fail2Ban
/ 2 min read
Table of Contents
Каждый публичный сервер с открытым 22-м портом ежедневно подвергается сотням попыток подбора пароля. Чтобы обезопасить систему, необходимо ограничить количество попыток входа и автоматически блокировать атакующих.
Сегодня стандартом для этой задачи является утилита Fail2Ban, которая пришла на смену устаревшим решениям вроде DenyHosts.
Установка Fail2Ban
В Debian и Ubuntu установка выполняется одной командой:
sudo apt update && sudo apt install fail2banПосле установки служба запустится автоматически с настройками по умолчанию.
Настройка защиты SSH
В Fail2Ban не рекомендуется править основной файл jail.conf. Вместо этого создайте локальную копию настроек:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localsudo nano /etc/fail2ban/jail.localНайдите секцию [sshd] и приведите её к следующему виду:
[sshd]enabled = Trueport = sshlogpath = %(sshd_log)sbackend = %(sshd_backend)s
# Количество попыток перед блокировкойmaxretry = 5
# Время, на которое блокируется IP (например, 1 час)bantime = 1h
# Интервал, в течение которого считаются попыткиfindtime = 10mСохраните файл и перезапустите службу:
sudo systemctl restart fail2banПолезные команды
Как посмотреть статус блокировок?
Чтобы узнать, сколько «хакеров» уже попало в бан:
sudo fail2ban-client status sshdКак разбанить свой IP?
Если вы сами ошиблись с паролем и вас заблокировали (с другого IP):
sudo fail2ban-client set sshd unbanip <ваш_IP_адрес>Золотое правило безопасности
Блокировка попыток — это хорошо, но вход по SSH-ключам с полным отключением авторизации по паролю — это в разы надежнее.
О том, как создать современный и безопасный SSH-ключ, читайте в нашей следующей статье.