Установка и настройка ловушек Artillery на сервере Ubuntu

Artillery – это многоцелевой инструмент для защиты систем на основе Linux, обладающий возможностями хост-ловушек (honeypot), укрепления операционной системы, мониторинга файловой системы и анализа угроз в режиме реального времени. Этот инструмент способен самостоятельно обеспечить достаточный уровень безопасности, но предназначен для использования в составе многоуровневой системы безопасности и продуктивно взаимодействует с брандмауэрами веб-приложений (например, с ModSecurity).

Наиболее полезными функциями Artillery являются хост-ловушки, мониторинг файловой системы и анализ угрозы в режиме реального времени; именно этим функциям и будет уделено основное внимание в данной статье. Хост-ловушка (или honeypot) отвечает сканерам портов и уязвимостей на наиболее часто атакуемых портах (SSH, MSSQL, RPC/SMB и т.д.). При этом сервер Linux кажется предполагаемому злоумышленнику сервером на основе ОС Windows.

Мониторинг файловой системы работает путем активного отслеживания изменений в наиболее часто атакуемых каталогах (/tmp, /var/www) и наиболее важных для взломщика файлов (/etc/passwd, /etc/shadow/, ~/.ssh/authorized_keys). Инструмент Artillery мониторит общие файлы и каталоги по умолчанию, но позволяет пользователю добавлять другие файлы и каталоги, которые нуждаются в отслеживании.

Artillery Threat Intelligence Feed (или ATIF) – одна из наиболее интересных и полезных функций Artillery, которая выделяет его среди других инструментов защиты сервера. ATIF собирает IP-адреса и информацию об известных взломщиках в основной репозиторий, который затем может быть использован любой машиной, на которой установлен Artillery, для обнаружения и запрета вредоносных IP-адресов на сервере в режиме реального времени.

Загрузка и установка Artillery

Для загрузки Artillery нужно установить git. Если на данный момент git не установлен, используйте менеджер пакетов для его установки:

apt-get update && apt-get install git

Затем клонируйте пакеты Artillery:

git clone https://github.com/trustedsec/artillery/ artillery/

Теперь перейдите в каталог Artillery и запустите инсталлятор:

cd /artillery
./setup.py

Появится три вопроса y/n; ответьте yes на все эти вопросы.

Имейте в виду: в конце установки может возникнуть ошибка, сообщающая о том, что /var/artillery/database/temp.database не существует. Если эта ошибка возникла, следующие команды устранят ее:

mkdir /var/artillery/database
touch /var/artillery/database/temp.database
service artillery restart

Настройка Artillery

Инструмент Artillery «из коробки» предварительно настроен для работы на типичных дистрибутивах Linux; тем не менее, настоятельно рекомендуется выполнить пользовательскую настройку программы согласно требованиям VPS. В данном разделе рассматривается редактирование конфигурационного файла.

Откройте конфигурационный файл в редакторе nano:

nano /var/artillery/config

Следующая строка позволяет активировать мониторинг пользовательских каталогов:

MONITOR_FOLDERS=”/var/www”,”/etc”

Просто внесите через запятую в эту строку все каталоги, которые нужно отслеживать, после “/etc”. Например, чтобы мониторить каталог /root, нужно внести в строку MONITOR_FOLDERS запись ”/root”. В результате получится:

MONITOR_FOLDERS=”/var/www”,”/etc”,”/root”

Строка EXCLUDE позволяет исключить из мониторинга определенные папки или файлы. Например, чтобы Artillery не отслеживал /etc/passwd, строка должна выглядеть так:

EXCLUDE=/etc/passwd

Можно также создать белый список IP-адресов. Это полезно при работе в команде; тогда, например, неправильно введенный пароль SSH не станет причиной бана. Рекомендуется внести в белый список хотя бы свой собственный IP-адрес; в таком случае можно будет запускать автоматизированные сканеры портов и уязвимостей на свой сервер (для тестирования) и при этом не попасть в бан. Адреса кольцевой проверки внесены в белый список по умолчанию; внесите в белый список другие IP-адреса через запятую:

WHITELIST_IP=127.0.0.1,localhost,xxx.xxx.xxx.xxx <-замените х своим IP-адресом.

Кроме того, можно указать порты, которые ловушка будет отмечать как открытые. Как уже говорилось, по умолчанию ловушка настраивается на наиболее часто атакуемые порты, но при необходимости такой список можно расширить (разделяя записи запятыми). Например, чтобы добавить порт 1024, измените строку:

PORTS="135,445,22,1433,3389,8080,21,5900,25,53,110,1723,1337,10000,5800,44443"

таким образом:

PORTS="135,445,22,1433,3389,8080,21,5900,25,53,110,1723,1337,10000,5800,44443,1024"

Рекомендуется также включить автоматическое обновление, задав строке AUTO_UPDATE значение on:

AUTO_UPDATE=ON

По умолчанию Artillery пытается смягчить DoS-атаки (Denial of Service) на порты 80 (http) и 443 (https). Если на сервере есть сервисы, запущенные на других портах (8080, 8180, 10000), можно также защитить их от DoS-атак, внеся их в следующую строку через запятую:

ANTI_DOS_PORTS=80,443,8080,8180,10000

Чтобы отключить защиту от DoS, задайте строке ANTI_DOS значение off:

ANTI_DOS=ON

Поддержка Artillery

После установки Artillery нужно запустить как сервис. Artillery делает это самостоятельно еще во время установки Artillery, потому перезагружать сервер нет необходимости.

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

Подобно Apache, сервис Artillery можно запускать и перезапускать, выполнив следующие команды:

service artillery start   # <-Starts the service.
service artillery restart # <-Restarts the service.

Также можно проверить текущее использование системных ресурсов Artillery при помощи ps aux и top  следующим образом:

Узнайте ID процесса, в качестве которого работает Artillery.

ps aux | grep artillery

Замените PID в приведенной ниже команде на ID процесса Artillery.

top -p PID

Важно отметить, что в случае если пользователь не сможет предоставить правильный пароль SSH 4 раза подряд, он будет забанен и больше не сможет подключиться к серверу. Если это происходит с авторизованным пользователем, Artillery предоставляет скрипт для сброса бана, который используется так:

Перейдите в каталог artillery:

cd /var/artillery

Замените ххх ip-адресом забаненного пользователя.

./reset-bans.py xxx.xxx.xxx.xxx

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

Tags: , , , , , , , , ,

Добавить комментарий