PSB Hosting
Настройка fail2ban и UFW: базовая защита Linux-сервера за 30 минут

Настройка fail2ban и UFW: базовая защита Linux-сервера за 30 минут

  1. Главная
  2. Блог
  3. Настройка fail2ban и UFW: базовая защита Linux-сервера за 30 минут

Каждый Linux-сервер, подключенный к интернету, практически сразу начинает подвергаться автоматизированным сканированиям и DDoS-атакам. Даже небольшой VPS может фиксировать сотни попыток подключения по SSH уже в первые часы после запуска. Если не настроить базовую защиту, злоумышленники могут подобрать пароль, получить доступ к конфиденциальным данным. Надежная защита сервера с использованием Fail2ban и UFW позволит снизить сетевую нагрузку и предотвратить сканирование портов, DDoS-атаки.

Что будем настраивать и как это работает

Для базовой защиты Linux-сервера от несанкционированного доступа и автоматических атак чаще всего используют два инструмента: UFW и Fail2ban. Они выполняют разные задачи, но отлично дополняют друг друга. UFW отвечает за фильтрацию сетевого трафика, а Fail2ban - за автоматическую блокировку подозрительных IP-адресов.

UFW - простой и удобный фаервол

UFW или Uncomplicated Firewall — это утилита для настройки и управления брандмауэром в дистрибутивах Ubuntu и Debian. С помощью этой программы можно контролировать входящие и исходящие сетевые соединения. По сути, утилита работает как фильтр: она проверяет каждый сетевой запрос и решает, разрешить его или заблокировать на основе заданных правил. Основные принципы работы UFW:

  • Правила доступа. Администратор указывает, какие порты и сервисы должны быть доступны извне (например, SSH, HTTP, HTTPS).
  • Блокировка лишнего трафика. Все остальные соединения, которые не разрешены явно, блокируются.
  • Контроль исходящих соединений. При необходимости можно ограничить и исходящий трафик.
  • Журналирование. Фаервол может записывать информацию о сетевых попытках подключения в системные логи.

UFW формирует первый уровень защиты сервера, не позволяя случайным или вредоносным подключениям достигать служб системы.

Fail2ban - автоматическая защита от атак

Fail2ban — это мощный инструмент защиты Linux-серверов, который предотвращает брутфорс-атаки (перебор паролей), отслеживая логи (SSH, FTP, Apache) на предмет подозрительной активности. При обнаружении множественных неудачных попыток входа он автоматически блокирует IP-адрес злоумышленника на заданное время. Fail2ban работает по следующему принципу:

  1. Система постоянно анализирует лог-файлы (например /var/log/auth.log).
  2. В логах ищутся повторяющиеся ошибки авторизации или другие подозрительные события.
  3. Если количество ошибок превышает заданный лимит (например 5 попыток за 10 минут), Fail2ban определяет IP-адрес нарушителя.
  4. Этот IP автоматически добавляется в правила firewall и блокируется на определенное время (или навсегда).

Fail2ban не просто блокирует трафик, а динамически изменяет правила firewall, взаимодействуя именно с UFW.

Подготовка: что нужно знать перед стартом

Даже базовая защита Linux-сервера требует внимательного подхода, поэтому лучше заранее убедиться, что система корректно подготовлена к настройке. В первую очередь нужно учитывать следующие факторы:

  • Доступ к серверу с правами администратора. Для установки и настройки инструментов защиты необходимо иметь root-доступ или права пользователя с возможностью выполнения команд через sudo. Большинство административных операций выполняется именно с повышенными правами. Если у пользователя нет прав администратора, настроить сетевой экран и систему блокировки будет невозможно.
  • Наличие активного SSH-доступа. В большинстве случаев Linux-сервер администрируется удаленно через SSH. Перед включением файрвола нужно убедиться, что SSH-служба корректно работает. Пользователь должен знать свой текущий порт (обычно 22), чтобы не потерять доступ при включении фаервола.
  • Обновление системы. Перед установкой новых инструментов безопасности рекомендуется обновить систему. Это позволит установить последние версии пакетов и предотвратить программные сбои. Обычно используется стандартная команда: sudo apt update && sudo apt upgrade.

Перед настройкой файрвола нужно понять, какие сервисы работают на сервере и какие порты они используют. Это необходимо, чтобы правильно настроить правила доступа. Посмотреть список активных портов можно командой: sudo ss -tulnp. Если сервер уже используется, перед внесением изменений рекомендуется сохранить текущие настройки системы. Например, можно сделать резервные копии конфигурационных файлов: /etc/ufw/ /etc/fail2ban/. Это позволит быстро восстановить предыдущие настройки в случае ошибки.

Шаг 1. Быстрая настройка UFW

Настройка UFW для защиты Linux-сервера включает в себя четыре основных этапа:

  1. Установка и проверка. Убедитесь, что UFW установлен (sudo apt install ufw) и проверьте его статус (sudo ufw status).
  2. Определение политик по умолчанию. Если требуется блокировать все входящие подключения, то вводится: sudo ufw default deny incoming. Если же пользователь стремится разрешить все исходящие подключения, то ему нужно ввести в командную строку: sudo ufw default allow outgoing.
  3. Разрешение SSH. Очень важно разрешить SSH перед запуском программы, чтобы не потерять доступ к серверу.
  4. Включение UFW. Активация брандмауэра командой: sudo ufw enable. Сервер принимает соединения только на разрешенных портах.

UFW поддерживает стабильную работу с IPv4 и IPv6. Перед запуском программы пользователь должен обязательно убедиться, что он разрешил SSH, иначе соединение с сервером будет разорвано.

Шаг 2. Установка и настройка Fail2ban

Установка и настройка Fail2ban для защиты Linux-сервера включают в себя следующие этапы:

  1. Установка пакета. Выполняется обновление репозиториев и установка пакета: sudo apt-get update && sudo apt-get install fail2ban.
  2. Создание локальной конфигурации. Создается файл /etc/fail2ban/jail.local на основе jail.conf, чтобы избежать перезаписи настроек при обновлениях.
  3. Настройка параметров блокировки. Настраиваются основные параметры: время блокировки (bantime), максимальное число попыток (maxretry), временный интервал для подсчета попыток (findtime).
  4. Запуск и проверка. Перезапускается служба (systemctl restart fail2ban) и проверяется статус командой: fail2ban-client status или fail2ban-client status sshd.

Для включения защиты SSH нужно открыть файл конфигурации /etc/fail2ban/jail.local, найти раздел [sshd] и установить enabled = true. Затем пользователю необходимо перезапустить сервис командой: systemctl restart fail2ban. Это позволит надежно защитить сервер от подбора паролей.

Как заставить их дружить: интеграция Fail2ban с UFW

Для успешной интеграции Fail2ban с UFW потребуется выполнить следующие действия:

  1. Установить необходимые пакеты. Установите UFW и Fail2ban, используя команды: sudo apt update sudo apt install ufw fail2ban.
  2. Настроить UFW. Разрешаем SSH, чтобы не потерять доступ к серверу. В командной строке нужно указать: sudo ufw allow ssh. Затем включаем firewall, указав: sudo ufw enable.
  3. Создать локальную конфигурацию Fail2ban. Необходимо скопировать дефолтный файл конфигурации, чтобы избежать потери настроек при обновлении: sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local.
  4. Настроить действие (banaction) на UFW. Пользователь должен открыть /etc/fail2ban/jail.local и в разделе [Default] изменить либо добавить строку: banaction = ufw.
  5. Включить защиту SSH. Пользователь должен убедиться, что в том же файле jail.local включен модуль SSH. Чтобы проверить SSH, нужно включить: fail2ban-client status sshd.
  6. Перезапустить систему защиты. Задается соответствующая команда: sudo systemctl restart fail2ban.

Как только Fail2ban обнаружит попытки перебора пароля, он будет автоматически добавлять IP-адрес в список блокировки UFW. Проверить статус можно командой: sudo ufw status.

Проверка: тестируем защиту

После установки и настройки UFW и Fail2ban нужно убедиться, что защита действительно работает. Пользователь должен понять, корректно ли применяются правила брандмауэра, реагирует ли Fail2ban на подозрительную активность и блокируются ли злоумышленники. Сначала нужно убедиться, что брандмауэр UFW активен и применяет правила. Команда для проверки: sudo ufw status verbose. Если UFW выключен, его можно активировать: sudo ufw enable. После этого правила начнут незамедлительно применяться. Для проверки заблокированных IP необходимо задать команду: sudo fail2ban-client status sshd. Самый простой способ проверить Fail2ban - выполнить несколько попыток входа по SSH или ввести неправильный пароль. Если в конфигурации Fail2ban установлено maxretry = 5, то после пяти неудачных попыток IP должен быть заблокирован. Еще один проверенный способ проверки защиты Linux-сервера - анализ логов. Для быстрого и тщательного отслеживания логов задается команда: sudo tail -f /var/log/fail2ban.log.

Полезные команды для управления (шпаргалка)

Среди основных команд для управления Fail2ban и UFW выделяют:

  • Удаление правила: для UFW (sudo ufw delete allow 8080).
  • Проверка статуса защиты SSH: для Fail2ban (sudo fail2ban-client status sshd).
  • Просмотр логов: для Fail2ban (sudo tail -f /var/log/fail2ban.log).

UFW и Fail2ban считаются простыми и эффективными инструментами для защиты Linux-серверов. Эти утилиты отлично подходят для автоматического сканирования портов и блокировки вредоносных IP-адресов. В дальнейшем систему можно усилить, настроив SSH-ключи, отключив вход root и обновив устаревшее программное обеспечение.