Как защитить SSH с помощью Fail2Ban на Ubuntu 22.04
SSH означает Secure Shell Protocol и является криптографическим сетевым протоколом для безопасной работы сетевых служб в незащищенной сети. Fail2ban – это программный фреймворк для предотвращения вторжений. Fail2ban написан на языке Python и используется для предотвращения атак методом перебора. В следующих параграфах мы установим Fail2ban и предоставим вам команды для управления службой fail2ban. Затем мы перейдем к настройке fail2ban для защиты SSH.
Установка Fail2ban и защита SSH – это простой процесс, который может занять до 15 минут. Давайте начнем!
Предварительные условия
- Свежая установка Ubuntu 22.04
- Привилегии пользователя: root или не root пользователь с привилегиями sudo
Шаг 1. Обновление системы
Мы должны обновить системные пакеты до последних доступных версий и приступить к установке fail2ban.
sudo apt update -y && sudo apt upgrade -y
Шаг 2. Установка Fail2ban
Для установки службы Fail2ban выполните следующую команду:
sudo apt install fail2ban -y
После установки запустите и включите службу:
sudo systemctl enable fail2ban && sudo systemctl start fail2ban
Для проверки работоспособности службы выполните следующую команду:
sudo systemctl status fail2ban
Вы должны получить следующее сообщение:
root@host: sudo systemctl status fail2ban ● fail2ban.service - Fail2Ban Service Loaded: загружен (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled) Active: активен (работает) с Tue 2022-10-04 18:14:04 CDT; 4s ago Docs: man:fail2ban(1) Main PID: 147319 (fail2ban-server) Tasks: 5 (limit: 4575) Память: 11.6M CPU: 338ms CGroup: /system.slice/fail2ban.service └─147319 /usr/bin/python3 /usr/bin/fail2ban-server -xf start Oct 04 18:14:04 host.test.vps systemd[1]: Started Fail2Ban Service. Oct 04 18:14:04 host.test.vps fail2ban-server[147319]: Сервер готов
Шаг 3. Настройка Fail2ban
Файлы конфигурации Fail2ban хранятся в каталоге /etc/fail2ban/ на сервере.
Все параметры конфигурации хранятся в файле jail.conf, но в большинстве случаев не следует изменять этот файл, а вносить пользовательские настройки в файле jail.local или в отдельный файл .conf в каталоге jail.d/. Если редактировать jail.conf, то при следующем обновлении системы содержимое файла может вернуться к состоянию по умолчанию. Поэтому мы сделаем копию оригинального jail.conf с новым именем jail.local.
cp jail.conf jail.local
Теперь мы готовы сделать некоторые изменения для защиты SSH.
Если вы хотите применить какое-либо правило для всех сервисов, поддерживаемых Fail2ban, вам нужно внести изменения в разделе [DEFAULT] в верхней части файла. Например, время запрета по умолчанию установлено на 10 минут, но вы можете увеличить это значение, например, до 60 минут.
bantime = 60m
Другие важные параметры – findtime и maxretry, которые всегда работают вместе. Давайте установим maxretry = 3, а findtime = 5 минут:
findtime = 5m maxretry = 3
Это означает, что клиент будет забанен, если за 5 минут будет 3 неудачных попытки войти на сервер.
Следующие параметры, которые часто используются – это параметры электронной почты. Эти параметры помогут нам получить оповещение по электронной почте, когда fail2ban начнет действовать и банить пользователей. Параметры destemail, sender и mta.
# Адрес электронной почты назначения используется исключительно для интерполяций в конфигурационных файлах. # jail.{conf,local,d/*} destemail = root@localhost # Адрес электронной почты отправителя используется исключительно для некоторых действий sender = root@fq-hostname # Действие электронной почты. Начиная с версии 0.8.1 Fail2Ban использует sendmail MTA для # рассылки. Измените параметр конфигурации mta на mail, если вы хотите # вернуться к обычной "почте". mta = sendmail
Сообщения о запрете отправляются на destemail, sender – это поле FROM в письме, а mta – это почтовая служба. По умолчанию почтовой службой для fail2ban является sendmail, но вы можете настроить любую почтовую службу.
Проверка
Теперь давайте проверим конфигурацию Fail2ban на предмет предыдущих изменений.
ssh user@192.168.0.1 user@192.168.0.1's password: Permission denied, please try again. user@192.168.0.1's password: Permission denied, please try again. user@192.168.0.1's password: user@192.168.0.1: Permission denied (publickey,password). ssh user@92.168.0.1 ssh: connect to host 192.168.1.107 port 22: Connection refused
Как видите, после трех неудачных попыток входа, Fail2ban закрыл SSH соединение. Пользователь будет забанен на 5 минут. Если вы попытаетесь войти в систему в течение этих 5 минут, то соединение будет запрещено, как описано выше.
Вы успешно защитили SSH с помощью Fail2Ban на Ubuntu 22.04.
.
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Вдохновлен www.rosehosting.com
Комментарии (0)