> Полный список статей есть в [llms.txt](https://docs.f3cloud.com/llms.txt). Markdown-версия есть у каждой страницы, достаточно добавить .md к её адресу. Эта страница в Markdown: [https://docs.f3cloud.com/ru/client-area/kak-zashitit-server-vps-vds-ot-nesankcionirovannogo-dostupa/fail2ban.md](https://docs.f3cloud.com/ru/client-area/kak-zashitit-server-vps-vds-ot-nesankcionirovannogo-dostupa/fail2ban.md).

# Защита от подбора паролей с fail2ban

Как защитить сервер от подбора паролей с помощью fail2ban. Установка, готовый конфиг для SSH, проверка заблокированных адресов и разблокировка своего IP.

Fail2ban следит за журналом входов на сервер. Если с какого-то IP-адреса слишком часто пытаются подобрать пароль, он на время блокирует этот адрес.

Даже если вы уже входите [по SSH-ключам](https://docs.f3cloud.com/ru/client-area/kak-zashitit-server-vps-vds-ot-nesankcionirovannogo-dostupa/ssh-klyuchi.md), fail2ban полезен. Он отсекает ботов, разгружает журналы и помогает быстрее заметить, если происходит что-то необычное.

***

### 1. Установите fail2ban

Команды выполняются на сервере.

#### Ubuntu и Debian

```bash
# Обновляем список пакетов и ставим fail2ban.
# python3-systemd нужен, чтобы fail2ban умел читать системный
# журнал
sudo apt update
sudo apt install -y fail2ban python3-systemd
```
#### AlmaLinux, CentOS, Oracle Linux

```bash
# fail2ban лежит в дополнительном репозитории EPEL, подключаем
# его
sudo dnf install -y epel-release

# Ставим fail2ban
sudo dnf install -y fail2ban
```

***

### 2. Создайте файл настроек

Основной файл настроек fail2ban при обновлениях перезаписывается, поэтому свои настройки кладут в отдельный файл `jail.local`.

```bash
# Создаём свой файл настроек и открываем его в редакторе
sudo nano /etc/fail2ban/jail.local
```

Вставьте в него такие настройки.

```ini
[sshd]
# Включаем защиту SSH
enabled = true
# Порт SSH. Если вы его меняли, укажите свой номер, например
# 2222
port = ssh
# Читаем журнал входов через systemd. Так fail2ban работает и
# там,
# где нет файла /var/log/auth.log, например в Debian 12
backend = systemd
# Сколько неудачных попыток входа разрешено
maxretry = 5
# За какой промежуток времени считаются попытки
findtime = 10m
# На сколько блокировать IP-адрес нарушителя
bantime = 1h
```

Чтобы сохранить файл, нажмите <kbd>Ctrl</kbd> + <kbd>O</kbd> и <kbd>Enter</kbd>, а чтобы выйти из редактора, <kbd>Ctrl</kbd> + <kbd>X</kbd>.

***

### 3. Запустите fail2ban

```bash
# Включаем автозапуск fail2ban и сразу запускаем его
sudo systemctl enable --now fail2ban

# Перезапускаем, чтобы он точно подхватил наш файл настроек
sudo systemctl restart fail2ban

# Смотрим состояние защиты SSH
sudo fail2ban-client status sshd
```

В ответе вы увидите две главные строки.\
**Total failed** показывает, сколько было неудачных попыток входа.\
**Banned IP list** показывает, какие адреса сейчас заблокированы.

Если сервер уже какое-то время в интернете, в списке почти наверняка появятся первые «гости».

***

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

```bash
# Посмотреть заблокированные адреса
sudo fail2ban-client status sshd

# Разблокировать адрес, например если вы сами ошиблись с
# паролем.
# Вместо IP_АДРЕС подставьте нужный адрес
sudo fail2ban-client set sshd unbanip IP_АДРЕС

# Перезапустить fail2ban после изменения настроек
sudo systemctl restart fail2ban
```

> **Если заблокировали вас самих.**
>
> Если fail2ban заблокировал ваш собственный адрес, подключитесь с другого интернета, например с мобильного, или откройте сервер кнопкой <kbd>Консоль</kbd> в списке серверов в личном кабинете. Затем разблокируйте свой адрес командой выше. Через час блокировка в любом случае снимется сама.

> **Для панели 3X-UI.**
>
> У 3X-UI есть своя встроенная настройка fail2ban, она описана в статье [о настройке VLESS + TLS + XHTTP](https://docs.f3cloud.com/ru/vpn-guide/setup-vless-xhttp.md).

***

### Наши ресурсы

**Telegram-канал:** [https://t.me/f3cloud_news](https://t.me/f3cloud_news)\
**Сайт хостинга:** [https://f3cloud.com](https://f3cloud.com/ru)
