Цель урока: Установить, настроить и понять принцип работы fail2ban - важнейшего инструмента для проактивной защиты сервера. Мы научимся настраивать его так, чтобы он автоматически анализировал системные логи, находил в них признаки атак по подбору пароля и блокировал IP-адреса атакующих на уровне файервола.

Часть 1: Теория. Кто стучится в нашу дверь и как работает fail2ban?

Как только ваш сервер появляется в интернете, его немедленно начинают "прощупывать" тысячи автоматизированных ботов. Их главная цель - найти открытые порты (например, SSH на порту 22) и начать брутфорс-атаку (brute-force attack) - методичный перебор миллионов комбинаций логинов и паролей в надежде угадать правильный.

Вы можете увидеть следы этих атак в ваших логах (/var/log/auth.log), где будут сотни строк "Failed password for...".

fail2ban - это ваш автоматический "вышибала" в клубе.

  • Он не заменяет хорошие пароли или SSH-ключи, а дополняет их.

  • Как он работает:

    1. Читает логи: fail2ban постоянно "читает" системные журналы (например, auth.log).

    2. Ищет совпадения: У него есть набор "фильтров" (регулярных выражений), которые описывают, как выглядит строка с неудачной попыткой входа. Например, "Failed password".

    3. Считает попытки: Он считает, сколько раз с одного и того же IP-адреса произошла такая ошибка за определенный промежуток времени.

    4. Принимает меры: Если количество ошибок превышает установленный лимит, fail2ban выполняет "действие" - обычно это команда файерволу (iptables или ufwзаблокировать этот IP-адрес на определенное время.

fail2ban состоит из "тюрем" (jails). Каждая "тюрьма" - это набор правил для одной конкретной службы (SSH, Nginx, почтовый сервер и т.д.).

Часть 2: Практика. Установка и настройка

Шаг 1: Установка

apt update
apt install -y fail2ban

После установки служба fail2ban автоматически запустится и, что самое важное, сразу же активирует защиту для SSH, используя настройки по умолчанию.

Шаг 2: Принцип конфигурации. .conf vs .local
Это самый важный момент в настройке fail2ban.

  • Все файлы конфигурации лежат в /etc/fail2ban/.

  • Файлы с расширением .conf (например, jail.conf) - это файлы по умолчаниюНИКОГДА НЕ РЕДАКТИРУЙТЕ ИХ! При следующем обновлении пакета все ваши изменения будут затерты.

  • Файлы с расширением .local - это ваши файлы для переопределения настроек. fail2ban сначала читает .conf, а потом читает .local и применяет ваши настройки поверх дефолтных.

Золотое правило: Хотите что-то изменить? Скопируйте .conf файл в .local и редактируйте уже .local файл.

Шаг 3: Создание нашего конфигурационного файла
Давайте скопируем основной файл конфигурации, чтобы иметь возможность безопасно вносить изменения.

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Шаг 4: Настройка основных параметров
Теперь откроем наш новый файл для редактирования.

nano /etc/fail2ban/jail.local

Пролистайте файл и найдите секцию [DEFAULT]. Эта секция задает параметры по умолчанию для всех "тюрем". Давайте разберем самые важные из них.

  • bantime: На какое время блокировать IP-адрес. По умолчанию стоит 10m (10 минут). Для большей безопасности можно поставить 1h (1 час) или больше.

  • findtime: Промежуток времени, за который fail2ban считает неудачные попытки. По умолчанию 10m.

  • maxretry: Количество неудачных попыток, после которого IP-адрес будет заблокирован. По умолчанию 5.

Как это читается: "Если с одного IP-адреса за последние 10 минут (findtime) было совершено 5 (maxretry) неудачных попыток, заблокировать его на 1 час (bantime)".

Вы можете изменить эти значения по своему усмотрению. Например:

[DEFAULT]
bantime  = 1h
findtime = 10m
maxretry = 5

Шаг 5: Проверка и включение "тюрем" (jails)
Пролистайте jail.local ниже. Вы увидите множество секций для разных сервисов ([sshd][nginx-http-auth] и т.д.).
По умолчанию большинство из них выключены (enabled = false).

Найдите секцию [sshd]:

[sshd]
enabled = true

Как видите, защита для SSH уже включена по умолчанию. Это самое главное.

Часть 3: Практика. Управление и проверка работы

Шаг 1: Перезапуск fail2ban
После любых изменений в .local файлах нужно перезапустить службу, чтобы она перечитала конфигурацию.

systemctl restart fail2ban

Шаг 2: Проверка статуса с помощью fail2ban-client
Для взаимодействия с работающей службой fail2ban используется утилита fail2ban-client.

  • Посмотреть обший статус и список активных "тюрем":

    fail2ban-client status

    Вывод:

    Status
    |- Number of jail:      1
    `- Jail list:   sshd

    Это подтверждает, что у нас активна одна "тюрьма" - sshd.

  • Посмотреть детальный статус конкретной "тюрьмы":

    fail2ban-client status sshd

    Вывод:

    Status for jail: sshd
    |- Filter
    |  |- Currently failed: 0
    |  |- Total failed:     0
    |  `- File list:        /var/log/auth.log
    `- Actions
       |- Currently banned: 0
       |- Total banned:     0
       `- Banned IP list:

    Здесь мы видим, что пока нет ни текущих неудачных попыток, ни заблокированных IP.

Шаг 3: Тестирование блокировки (опционально, но полезно)
Чтобы увидеть fail2ban в действии, вы можете с другого компьютера (например, с телефона через мобильную сеть, чтобы не заблокировать свой домашний IP) попробовать несколько раз неправильно подключиться к вашему серверу по SSH. После maxretry попыток ваш IP будет заблокирован.

Если вы снова выполните fail2ban-client status sshd, вы увидите, что счетчики failed и banned изменились, а в Banned IP list появится IP "атакующего".

Шаг 4: Как разбанить IP-адрес вручную
Если вы случайно заблокировали себя или другого легитимного пользователя, вы можете снять бан вручную.

# fail2ban-client set [имя_тюрьмы] unbanip [IP_адрес]
fail2ban-client set sshd unbanip 1.2.3.4

Часть 4: Заключение

Поздравляю! Вы установили на свой сервер автоматическую систему активной защиты. fail2ban - это обязательный инструмент для любого публичного сервера. Он значительно снижает риски, связанные с атаками по подбору паролей, и уменьшает "шум" в ваших логах.

Вы научились:

  • Понимать принцип работы fail2ban: анализ логов -> подсчет ошибок -> блокировка.

  • Правильно настраивать его, используя .local файлы, чтобы ваши изменения не затирались при обновлениях.

  • Управлять основными параметрами: bantimefindtimemaxretry.

  • Проверять статус fail2ban и смотреть список заблокированных IP-адресов.

  • Вручную снимать блокировку.

На следующем, 54-м уроке, мы углубимся в тему резервного копирования. Мы изучим различные стратегии бэкапа, такие как полное, инкрементальное и дифференциальное резервное копирование, чтобы вы могли выбрать наиболее подходящий метод для защиты ваших данных.

Перейти к просмотру - УРОК №54.

подарок Промо-код: PROMO15 - скидка 15%! огонь

Введите при оформлении первого заказа на сайте: Hosting-VDS.com

авторское право цифровые решения

Помог ли вам данный ответ? 0 Пользователи нашли это полезным (0 голосов)