Защита Alpine Linux от DDoS-атак с помощью fail2ban и mod_evasive
Введение в защиту от DDoS-атак
DDoS (Distributed Denial of Service) атаки представляют собой серьезную угрозу для любых серверов, включая Alpine Linux. Они направлены на перегрузку системы трафиком, что приводит к недоступности ресурсов для законных пользователей. В этой статье мы рассмотрим два основных инструмента для защиты от таких атак: fail2ban и mod_evasive.
Что такое fail2ban?
fail2ban — это инструмент, который анализирует логи системы и блокирует IP-адреса, которые демонстрируют подозрительную активность. Он эффективен против атак, таких как brute-force (перебор паролей) или сканирование портов.
Установка fail2ban на Alpine Linux
Для установки fail2ban выполните следующие команды:
apk add fail2ban
rc-update add fail2ban default
service fail2ban start
Настройка fail2ban
Основная конфигурация fail2ban находится в файле /etc/fail2ban/jail.local. Создайте этот файл и настройте его под свои нужды:
touch /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local
Добавьте следующий минимальный конфиг:
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/secure
maxretry = 3
Здесь мы настраиваем блокировку для SSH-сервера. Вы можете добавить другие фильтры, такие как apache-badbots или nginx-botscrapers, в зависимости от ваших нужд.
Что такое mod_evasive?
mod_evasive — это модуль для Apache, который защищает сервер от DDoS-атак на уровне HTTP. Он блокирует IP-адреса, которые отправляют слишком много запросов за короткий промежуток времени.
Установка mod_evasive
Если вы используете Apache, установите mod_evasive следующим образом:
apk add apache2-mod-evasive
rc-update add apache2 default
service apache2 start
Настройка mod_evasive
Конфигурация mod_evasive находится в файле /etc/apache2/mods-available/evasive.conf. Откройте его и настройте параметры:
# ДОС (Denial of Service) protection
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
# Дополнительные настройки (опционально)
DOSLogDir "/var/log/evasive"
Эти параметры определяют, как часто и сколько запросов может отправлять один IP-адрес, прежде чем он будет заблокирован.
Проверка работы защиты
Для проверки эффективности настроенной защиты вы можете использовать инструменты, такие как stress-ng, для симуляции DDoS-атак:
apk add stress-ng
stress-ng --http-cli 192.168.1.100 --http-cli-uri / --http-cli-rate 1000 --http-cli-methods GET,POST --http-cli-data 1024 --http-cli-keepalive --timeout 30s
Эта команда отправит 1000 HTTP-запросов в секунду на ваш сервер. Если защита настроена правильно, IP-адрес, с которого идут атаки, должен быть заблокирован.
Логирование и мониторинг
Для эффективного управления защитой важно следить за логами fail2ban и mod_evasive. Логи fail2ban находятся в /var/log/fail2ban.log, а логи mod_evasive — в /var/log/evasive/. Регулярно проверяйте эти файлы на наличие подозрительной активности.
Заключение
Защита от DDoS-атак — это комплексная задача, которая требует постоянного мониторинга и настройки. Инструменты, такие как fail2ban и mod_evasive, значительно упрощают эту задачу, но не заменяют полноценную систему безопасности. Регулярно обновляйте ваши инструменты и следите за новыми угрозами, чтобы обеспечить максимальную защиту вашего сервера.