ГлавнаяОперационные системыLinuxНастройка Fail2ban для защиты Apache от DDOS-атаки

Настройка Fail2ban для защиты Apache от DDOS-атаки

Apache — один из наиболее широко используемых и популярных веб-серверов в мире, поэтому важно защитить свой веб-сайт и пользователей от атак методом грубой силы. Fail2ban — это программное обеспечение для предотвращения вторжений с открытым исходным кодом, написанное на Python. Fail2Ban постоянно анализирует файлы журналов различных сервисов (например, Apache, ssh, postfix…), и если обнаруживает вредоносные атаки, то создает правила в брандмауэре, чтобы блокировать IP-адреса хакеров на определенный период времени. Fail2Ban также информирует системного администратора по электронной почте о своей активности.

В этой статье я объясню, как установить Fail2ban и настроить его для мониторинга журналов Apache на предмет попыток вредоносной аутентификации.

Требования

  • Сервер Ubuntu 14.04 с установленным Apache
  • Apache настроен с аутентификацией по паролю

Установка Fail2Ban

Во-первых, убедитесь, что сервер Apache работает и аутентификация по паролю включена.

Далее вы можете установить Fail2ban, выполнив:

sudo apt-get update
sudo apt-get install fail2ban

Настроить Fail2ban для Apache

Fail2ban хранит свой файл конфигурации «jail.conf» в каталоге «/etc/fail2ban/». Он содержит набор

Требования

ильтров для различных сервисов, поэтому не рекомендуется редактировать этот файл. Вам необходимо включить предопределенные тюрьмы Apache, создав файл «/etc/fail2ban/jail.local»:

Чтобы создать новый файл «jail.local», выполните:

sudo nano /etc/fail2ban/jail.local

Добавьте следующий контент:

[apache]
enabled  = true
port     = http,https
filter   = apache-auth
logpath  = /var/log/apache2/*error.log
maxretry = 3
findtime = 600
ignoreip = 192.168.1.227
 
[apache-noscript]
enabled  = true
port     = http,https
filter   = apache-noscript
logpath  = /var/log/apache2/*error.log
maxretry = 3
findtime = 600
ignoreip = 192.168.1.227
 
[apache-overflows]
enabled  = true
port     = http,https
filter   = apache-overflows
logpath  = /var/log/apache2/*error.log
maxretry = 2
findtime = 600
ignoreip = 192.168.1.227
 
[apache-badbots]
enabled  = true
port     = http,https
filter   = apache-badbots
logpath  = /var/log/apache2/*error.log
maxretry = 2
findtime = 600
ignoreip = 192.168.1.227

Сохраните и закройте файл, затем перезапустите Fail2ban, чтобы изменения вступили в силу.

sudo /etc/init.d/fail2ban restart

Вы можете проверить правила, добавленные Fail2Ban, в iptables, используя следующую команду:

sudo iptables -L

Вывод будет выглядеть примерно так:

apache_fail2ban_iptables

Примечание. Подробную информацию о каждой тюрьме можно найти ниже:

  • [apache]: эта клетка используется для блокировки неудачных попыток входа в систему.
  • [apache-noscript]: эта клетка используется для блокировки удаленных клиентов, которые ищут на веб-сайте сценарии для выполнения.
  • [apache-overflows]: эта клетка используется для блокировки клиентов, пытающихся запросить подозрительные URL-адреса.
  • [apache-noscript]: эта клетка используется для блокировки удаленных клиентов, которые ищут на веб-сайте сценарии для выполнения.
  • [apache-badbots]: эта клетка используется для блокировки вредоносных запросов ботов.

Примечание. Подробную информацию о каждом правиле можно найти ниже.

  • enabled: этот параметр означает, что защита Apache включена.
  • port: этот параметр определяет службы, которые отслеживает Fail2ban.
  • filter: этот параметр относится к файлу конфигурации, расположенному в каталоге /etc/fail2ban/filter.d/.
  • logpath: этот параметр определяет расположение файла журнала.
  • bantime: этот параметр определяет количество секунд, в течение которых удаленный хост будет заблокирован на сервере.
  • maxretry: этот параметр определяет количество неудачных попыток входа в систему, прежде чем удаленный хост будет заблокирован на время блокировки.
  • ignoreip: этот параметр позволяет внести определенные IP-адреса в белый список от блокировки.

Проверьте статус блокировки Fail2ban

После активации джейлов вы можете проверить Fail2ban с помощью команды fail2ban-client:

sudo fail2ban-client status

Вы можете увидеть список всех включенных вами джейл.

apache_fail2ban_client_status

Чтобы просмотреть статус конкретной тюрьмы, например apache, apache-badbots, выполнив следующие команды:

sudo fail2ban-client status apache

Вывод выглядит следующим образом:

apache_fail2ban_client_status_apache

Вы также можете вручную установить или разблокировать IP-адреса.

Например, чтобы заблокировать IP-адрес (192.168.1.20) с помощью тюрьмы Apache:

sudo fail2ban-client set apache banip 192.168.1.20

Чтобы разблокировать IP-адрес (192.168.1.21) с помощью тюрьмы Apache:

sudo fail2ban-client set apache unbanip 192.168.1.21

Тестирование Fail2Ban

Важно проверить ваш Fail2ban, работает ли он должным образом или нет. Теперь на удаленном компьютере откройте веб-браузер и введите URL-адрес вашего домена (или IP-адрес вашего сервера). Когда Apache запрашивает аутентификацию, несколько раз введите неверное имя пользователя и пароль. После достижения лимита вы должны быть заблокированы и не сможете получить доступ к сайту.

apache_fail2ban_block_site

Проверьте статус с помощью команды fail2ban-client:

sudo fail2ban-client status apache

Вы увидите, что ваш IP-адрес заблокирован на сайте.

apache_fail2ban_client_ban_status

Заключение

Теперь

Проверьте статус блокировки Fail2ban

an. Использование Fail2ban — хороший и простой способ остановить флуд (атаки грубой силы). Это также хороший способ ограничить количество неверных запросов, которые вы получаете на веб-сервере Apache.

Тестирование Fail2Ban

Заключение

ПОХОЖИЕ СТАТЬИ

Популярные записи