
Доступность Linux-сервера к сети по сути равносильна размещению магнита для ботов. Если вы не настроили никаких мер безопасности, в ваших журналах, вероятно, уже хранятся тысячи неудачных попыток входа в систему; автоматизированные машины постоянно пытаются подобрать комбинации имени пользователя и пароля, чтобы получить контроль над вашим компьютером. атаки методом грубой силы.
Вот тут-то и пригодится Fail2ban — инструмент, который выступает в роли неутомимого сторожа. Это не брандмауэр в строгом смысле слова, а скорее... анализирует системные журналы А когда система обнаруживает попытку взлома, она захлопывает дверь перед лицом злоумышленника, блокируя его IP-адрес с помощью таких инструментов, как iptables или nftables. Давайте посмотрим, как можно оптимизировать её работу, чтобы сделать ваш сервер очень сложным для взлома.
Что такое Fail2ban и как он работает?
Проще говоря, Fail2ban — это демон, который постоянно отслеживает файлы журналов ваших сервисов. Когда он обнаруживает подозрительные шаблоны, соответствующие предопределенным правилам, он выполняет соответствующие действия. фильтрыПрограмма начинает подсчет неудачных попыток. Если IP-адрес достигает лимита разрешенных попыток в течение определенного времени, программа выполняет... действиеЭто обычно включает в себя добавление этого IP-адреса в черный список межсетевого экрана.
Эти конфигурации организованы в так называемые тюрьмы или исправительные учреждения«Запретительная зона» (jail) — это, по сути, набор правил, применяемых к конкретной службе (например, SSH, Apache или MySQL). Таким образом, можно установить очень строгую политику для удалённого доступа и более разрешительную для веб-сервера, обеспечивая тем самым... Вход для посторонних заблокирован. автоматически, без необходимости вручную проверять журналы каждые пять минут.

Установка в соответствии с вашим дистрибутивом Linux.
В зависимости от используемой системы команда для установки может немного отличаться, но, как правило, она доступна почти во всех официальных репозиториях.
- В Ubuntu и Debian: Всё очень просто, нужно всего лишь бежать.
sudo apt updateс последующимsudo apt install fail2ban. - В Rocky Linux или AlmaLinux: Поскольку это корпоративные дистрибутивы, необходимо сначала включить репозиторий EPEL.
sudo dnf install epel-releaseа затем установите пакет с помощьюsudo dnf install fail2ban fail2ban-firewalld. - В Alpine Linux: Используйте менеджер APK с
sudo apk add fail2banА поскольку он использует OpenRC, его необходимо включить с помощью...sudo rc-update add fail2ban defaultи начать сsudo rc-service fail2ban start.

Основная конфигурация: секрет файла .local
Очень распространённая ошибка — это редактирование файла напрямую. jail.confНе делайте этого! Этот файл может быть перезаписан при обновлении системы. Золотое правило — создать копию с именем... тюрьма.местныйЛюбые параметры, добавленные вами во второй файл, будут иметь приоритет над исходным, и ваши изменения будут перезаписаны. защищен от обновлений.
Для начала вы можете клонировать исходный файл с помощью sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local а затем откройте его в своем любимом редакторе, например, nano или vim. В разделе [ПО УМОЛЧАНИЮ] Здесь вы определяете общее поведение системы:
- бантайм: El tiempo que la IP maliciosa se quedará en el congelador. Puede ser en segundos o usando ‘m’ para minutos (ej. 10m).
- findtime: Интервал времени, в течение которого Fail2ban проверяет наличие ошибок. Если пользователь допустит 5 ошибок за час, но время проверки составляет 10 минут, он не будет забанен.
- максимальная попытка: Количество допустимых неудачных попыток, прежде чем система покажет... Хватит, заблокируйте IP-адрес..
- игнорип: Это необходимо, чтобы избежать самоблокировки. Здесь вы должны ввести свои данные. общедоступный IP-адрес или в пределах зоны действия вашей VPN.
Защита конкретных сервисов шаг за шагом
После настройки общих параметров пришло время активировать «тюремные зоны» для служб, которые вас больше всего интересуют. Для эффективной защиты необходимо установить следующие параметры: enabled = true в соответствующем разделе внутри jail.local.
Доступ по SSH (самый важный момент)
Порт 22 — это целевая платформа номер один. Надежная конфигурация должна определять... maxretry = 3 y un
bantime = 3600 (один час). Fail2ban прочтет файл. /var/log/auth.log (в Debian/Ubuntu) или / var / журнал / безопасный (в CentOS/RHEL) для обнаружения сбоев аутентификации и закрытия доступа для злоумышленника.
Веб-серверы (Apache и Nginx)
Если у вас есть веб-сайт или интернет-магазин, боты будут пытаться получить доступ к конфиденциальным ресурсам, таким как... /wp-admin o /login.phpВы можете создавать пользовательские фильтры в /etc/fail2ban/filter.d/ для выявления этих закономерностей. Например, для Защитите WordPressОшибки 403 или неудачные попытки отслеживаются в wp-login.phpблокировка IP-адреса, если он превышает лимиты, установленные в среде выполнения Apache или Nginx.
Базы данных и FTP
В MySQL можно отслеживать журнал ошибок по следующей фразе: Доступ для пользователя запрещенВ случае FTP (например, ProFTPD) крайне важно обеспечить, чтобы logpath Укажите фактический путь к вашим лог-файлам, поскольку, если Fail2ban не сможет найти лог-файл, защита просто не будет работать.
Расширенное управление с помощью fail2ban-client
Для быстрого внесения изменений не всегда нужно редактировать файлы и перезапускать службу. Команда fail2ban-client Это позволяет управлять системой в режиме реального времени с консоли.
Чтобы узнать, какие виртуальные тюрьмы активны и сколько IP-адресов заблокировано, используйте... sudo fail2ban-client statusЕсли вы хотите более подробно изучить такой сервис, как SSH, запустите... sudo fail2ban-client status sshdКроме того, если по ошибке Вы заблокировали коллегу. Или вы можете быстро освободить IP-адрес самостоятельно с помощью команды. sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.
Mantenimiento y разрешение проблем
Если вы заметили, что Fail2ban не блокирует сообщения должным образом, в первую очередь следует проверить собственный лог-файл инструмента. /var/log/fail2ban.log. С помощью tail -f Вы можете в режиме реального времени видеть, кого банят и почему.
Помните, что Fail2ban хранит статус блокировки в базе данных SQLite. /var/lib/fail2ban/fail2ban.sqlite3Следовательно, если вы перезапустите сервер, заблокированные IP-адреса будут разблокированы. останется заблокированным до истечения срока действия штрафных санкций. При внесении изменений в конфигурационные файлы не забывайте применять эти изменения с помощью команды `when`. sudo systemctl restart fail2ban.
Внедрение этого инструмента превращает ваш сервер из лёгкой мишени в автоматизированную крепость, снижая нагрузку на процессор за счёт отбрасывания вредоносного трафика на сетевом уровне и позволяя вам спокойно спать, зная, что боты не смогут взломать его методом перебора паролей. Сочетая использование файлов .local, управление специальными «тюрьмами» и постоянный мониторинг логов, вы достигаете... глубокая защита Незаменим для любого системного администратора Linux.
