Image

База знаний → Защита веб сервера от вредоносных ботов с помощью Fail2Ban

[Виртуальные сервера]
Дата публикации: 01.06.2023

Каждый день на все сайты в интернете заходит большое кол-во ботов, начиная с тех которые нам важны (например yandex, google и т.д.) и заканчивая потенциально несущими угрозу. Проанализировав лог веб сервера Вы увидите подозрительные события. В данный момент все больше развиваются типы взломов использующие социальную инженерию (взлом не самого софта, а нахождения недочетов) оставленных самим разработчиком, администратором. Сегодня мы расскажем как блокировать ботов, которые осуществляют поиск резервных копий, и установленный phpmyadmin. Для блокировки таких ботов мы будем использовать Fail2Ban, фильтр и правило (джейл). Работа проводилась на Centos 7.


Боты поиска резервных копий

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

Добавим фильтр

backup-scan.local

[Definition]

failregex = ^ - - .*./(backup.tgz|backup.zip|backup.tar) HTTP/1.0" 404|301 ignoreregex =

Добавим правило:

[backup-scan]

enabled = true filter = backup-scan action = iptables-multiport[chain="INPUT", name="backup-scan", port="http,https", protocol="tcp", blocktype="REJECT --reject-with icmp-port-unreachable"] sendmail[dest="admin-mail@domain.tld", sender="fail2ban", sendername="Fail2Ban", name="backup-scan"] logpath = /var/www/vhosts/system/*/logs/accesslog

maxretry = 5

Количество попыток можно уменьшить, что существенно увеличит чувствительность и снизит нагрузку на веб службу. Мы рекомендуем владельцам сайтов удалить все резервные копии в виде архивов со своих серверов. Боты также ищут архивы с именем домена и т.д., тут мы привели базовые правила.


Боты поиска phpMyAdmin, руткитов, бэкдоров

Данные боты осуществляют поиск установленного phpMyAdmin с целью дальнейшего поиска в нем уязвимостей и взлома, атак подбора паролей. Инструмент работы с базой phpMyAdmin является очень популярным и периодически подвергается взлому, в зависимости от установленной версии, настроек.

Добавим фильтр: 

phpmyadmin.local

[Definition]

failregex = ^ - - ../(phpmyadm1n|mysqladmin)/index.php ^ - - ../(pma.php|pmd_online.php|db_pma.php) HTTP/1.0" (404|301|200) ignoreregex =

В фильтре мы указали сразу 2 условия, второе будет блокировать боты, которые ищут на ранее взломанных сайтах размещенные скрипты доступа, оставленные злоумышленниками. (рукткиты, бекдоры)

Добавим правило:

[phpmyadmin-scan]

enabled = true filter = phpmyadmin action = iptables-multiport[chain="INPUT", name="phpmyadmin", port="http,https", protocol="tcp", blocktype="REJECT --reject-with icmp-port-unreachable"] sendmail[dest="admin-mail@domain.tld", sender="fail2ban", sendername="Fail2Ban", name="phpmyadmin-scan"] logpath = /var/www/vhosts/system/*/logs/accesslog

maxretry = 5

Не забудьте поменять email в настройках на свой, на него будут приходить уведомления о блокировках с указанием правила, ip адреса. Путь к файлу лога тоже необходимо проверить и указать свой. В нашем случае обрабатываются несколько лог файлов расположенных на одном уровне вложенности, но в разных папках. При необходимости можно задать несколько лог файлов. Мы рекомендуем после работы с phpMyAdmin снимать права чтения чтобы он был недоступен, при частом использовании можно добавить защиту на уровне веб сервера с помощью запароленных папок в htaccass и htpasswd.





Нет комментариев