В «Хакере» несколько лет назад уже разбирали установку Snort, но речь шла о второй версии, а мне хотелось именно третью.
Я давний поклонник Red Hat и всю установку буду выполнять на Rocky Linux 10. Почти все how-to написаны для Ubuntu, поэтому наша версия будет особой.
Предположим, что у нас несколько серверов Snort и нам нужно следить за ресурсами, которые смотрят наружу: почтовым сервером Exchange, обратным прокси на Nginx и пограничным офисным роутером Cisco. Дальше все это соберем на одном сервере Grafana и будем визуализировать атаки.
Внедрив Snort, мы сможем:
- Выявлять не только известные атаки по сигнатурам, но и аномальную активность, например сканирование портов.
- Автоматически блокировать источники атак на Nginx за счет интеграции с Fail2Ban.
- Понимать, что происходит в сети: визуализация в Grafana показывает географию, интенсивность и типы атак.
Итак, начнем.
Скачиваем образ Rocky Linux.
Заходим в гипервизор и создаем виртуальную машину с такими параметрами: 2 vCPU, 4 Гбайт ОЗУ, 25 Гбайт HDD. В итоге получаем свежеустановленный сервер.
Первое, что нужно сделать, — обновить систему:
sudo yum update -yПодключаем нужный репозиторий и устанавливаем необходимые тулзы:
sudo yum -y install epel-release net-tools openssl openssl-devel bind-utils openssh-clients wget telnet traceroute tcpdump zip unzip tar chrony setools-console policycoreutils-python-utils
Так как у меня виртуальная машина на VMware, ставлю VMware Tools:
sudo yum -y install open-vm-tools
Настроим синхронизацию времени нашего сервера Snort и NTP-сервера сети компании (у меня это контроллер домена с именем dc1.mydomain.local):
sudo sed -i 's/^pool .*/server dc1.mydomain.local iburst/' /etc/chrony.conf
sudo systemctl enable chronyd
sudo systemctl restart chronyd
Перезагрузим ОС:
sudo reboot
Устанавливаем библиотеки, нужные для сборки Snort:
sudo yum groupinstall -y "Development Tools"sudo yum install -y libdnet-devel libunwind-devel cmake hwloc-devel luajit-devel
Переходим в каталог opt — именно там будем собирать Snort из исходников:
cd /opt
Установим и соберем библиотеку libdaq для сбора данных:
sudo yum config-manager --set-enabled crb
sudo yum install -y libpcap-devel pcre2-devel
sudo git clone https://github.com/snort3/libdaq.git
cd libdaq
sudo ./bootstrap
sudo ./configure
sudo make
sudo make installcd ../
Установим и соберем инструмент для анализа производительности и управления памятью gperftools:
sudo git clone https://github.com/gperftools/gperftools.git
cd gperftools
sudo ./autogen.sh
sudo ./configure
sudo make
sudo make installcd ../
Установим и соберем сам Snort 3:
sudo git clone https://github.com/snort3/snort3.git
cd snort3
sudo ldconfig
export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATHsudo ./configure_cmake.sh --prefix=/ --enable-tcmalloccd build
sudo make -j"$(nproc)"sudo make installcd ../../
Проверим версию:
sudo echo '/usr/local/lib' | sudo tee /etc/ld.so.conf.d/local.conf
sudo ldconfig
sudo snort -VОтлично, Snort 3 установлен.

Создадим необходимые каталоги и файлы:
sudo mkdir /etc/snort/appid
sudo mkdir /var/log/snort/
sudo touch /var/log/snort/alert_json.txt
sudo chmod 644 /var/log/snort/alert_json.txt
Установим плагин OpenAppID для детекции различных приложений:
sudo wget https://www.snort.org/downloads/openappid/33380 -O snort-openappid-33380.tar.gz
sudo tar -xzvf snort-openappid-33380.tar.gz
sudo cp -R odp /etc/snort/appid
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
