
Цель урока: Установить, настроить и понять принцип работы fail2ban - важнейшего инструмента для проактивной защиты сервера. Мы научимся настраивать его так, чтобы он автоматически анализировал системные логи, находил в них признаки атак по подбору пароля и блокировал IP-адреса атакующих на уровне файервола.
Часть 1: Теория. Кто стучится в нашу дверь и как работает fail2ban?
Как только ваш сервер появляется в интернете, его немедленно начинают "прощупывать" тысячи автоматизированных ботов. Их главная цель - найти открытые порты (например, SSH на порту 22) и начать брутфорс-атаку (brute-force attack) - методичный перебор миллионов комбинаций логинов и паролей в надежде угадать правильный.
Вы можете увидеть следы этих атак в ваших логах (/var/log/auth.log), где будут сотни строк "Failed password for...".
fail2ban - это ваш автоматический "вышибала" в клубе.
-
Он не заменяет хорошие пароли или SSH-ключи, а дополняет их.
-
Как он работает:
-
Читает логи: fail2ban постоянно "читает" системные журналы (например, auth.log).
-
Ищет совпадения: У него есть набор "фильтров" (регулярных выражений), которые описывают, как выглядит строка с неудачной попыткой входа. Например, "Failed password".
-
Считает попытки: Он считает, сколько раз с одного и того же IP-адреса произошла такая ошибка за определенный промежуток времени.
-
Принимает меры: Если количество ошибок превышает установленный лимит, 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 файлы, чтобы ваши изменения не затирались при обновлениях.
-
Управлять основными параметрами: bantime, findtime, maxretry.
-
Проверять статус fail2ban и смотреть список заблокированных IP-адресов.
-
Вручную снимать блокировку.
На следующем, 54-м уроке, мы углубимся в тему резервного копирования. Мы изучим различные стратегии бэкапа, такие как полное, инкрементальное и дифференциальное резервное копирование, чтобы вы могли выбрать наиболее подходящий метод для защиты ваших данных.
Перейти к просмотру - УРОК №54.
Промо-код: PROMO15 - скидка 15%!
Введите при оформлении первого заказа на сайте: Hosting-VDS.com

