Защитите свою сеть от злоумышленников и нежелательных атак, установив и настроив Snort IDS.
Если вы серьезно относитесь к сетевой безопасности, установка решения IPS или IDS является обязательным условием для укрепления сетевого периметра и отклонения потенциально нежелательного сетевого трафика.
Snort — одно из таких известных бесплатных решений IPS/IDS с открытым исходным кодом для личного использования. Давайте узнаем, как установить и настроить Snort в Linux для защиты вашей сети от кибератак.
Что такое снорт?
Snort — это программа с открытым исходным кодом. Система обнаружения и предотвращения сетевых вторжений (NIDS/IPS), которое, как следует из названия, помогает защитить периметр вашей сети, применяя правила и фильтры, которые обнаруживают и отбрасывают потенциально вредоносные пакеты, внедряемые в вашу сеть.
С помощью Snort вы сможете вести расширенную регистрацию сетевого трафика, перехватывать и анализировать пакеты, а также устанавливать создать мощную систему предотвращения вторжений, которая защитит вашу сеть от нежелательных и потенциально вредоносных трафик.
Предварительные условия для установки Snort
Прежде чем установить Snort, необходимо выполнить некоторые предварительные настройки. В основном это включает в себя обновление и модернизацию вашей системы и установку зависимостей, необходимых Snort для правильной работы.
Начните с обновления и модернизации вашей системы.
На Ubuntu- и Дистрибутивы Linux на основе Debian:
sudo apt update && apt upgrade -y
В Arch Linux и его производных:
судо пакман -Сю
В RHEL и Fedora:
обновление судо днф
После обновления вашей системы продолжайте устанавливать зависимости, необходимые для Snort. Вот команды, которые вам нужно выполнить:
В Ubuntu и Debian запустите:
sudo apt install -y build-essential autotools-dev libdumbnet-dev libluajit-5.1-dev libpcap-dev zlib1g-dev pkg-config libhwloc-dev cmake liblzma-dev openssl libssl-dev cpputest libsqlite3-dev libtool uuid-dev git autoconf bison flex libcmocka-dev libnetfilter-queue-dev libunwind-dev libmnl-dev ethtool libjemalloc-dev libpcre++-dev
В Arch Linux запустите:
sudo pacman -S gperftools hwloc hyperscan ibdaqlibdnet libmnl libpcap libunwind luajit lz4 openssl pcre pullporkxz zlib cmake pkgconf
Для RHEL и Fedora введите следующую команду:
sudo dnf install gcc gcc-c++ libnetfilter_queue-devel git flex bison zlib zlib-devel pcre pcredevel libdnet tcpdump libnghttp2 wget xz-devel -y
Кроме того, вам также необходимо вручную установить библиотеку сбора данных, LibDAQ для правильной работы Snort, а также gperftools для создания файлов сборки.
Сначала загрузите исходные файлы LibDAQ с официального сайта. с помощью команды wget. Затем распакуйте архив и перейдите в каталог с помощью cd. Внутри каталога запустите начальная загрузка и настроить скрипты затем приступают к подготовке файлов с помощью make и устанавливают его с помощью сделать установку команда.
wget https://www.snort.org/downloads/snortplus/libdaq-3.0.11.tar.gz
смолка -xzvf библиотека*
компакт-диск *
./бутстрап
./настроить
делать
судо сделать установить
После установки LibDAQ вам необходимо установить последнюю зависимость: gperftools. Начните с загрузки исходных файлов из репозитория GitHub. Извлеките файлы, перейдите в каталог и запустите скрипт configure. Наконец, установите пакет с помощью команд make и make install.
wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.10/gperftools-2.10.tar.gz
tar -xvzf gper* && cd gper
./настроить
делать
судо сделать установить
После того, как эти зависимости будут установлены, вы можете перейти к следующим шагам по установке Snort.
Установите Snort из исходного кода в Linux
Выполнив предварительную настройку, теперь вы можете сосредоточиться на установке фактического программного обеспечения. Вы будете собирать его из исходного кода, поэтому сначала возьмите необходимые файлы сборки.
Используйте команду wget или загрузите файлы вручную с официальной страницы загрузки:
wget https://www.snort.org/downloads/snortplus/snort3-3.1.58.0.tar.gz
Скачать:Фыркнуть
После завершения загрузки архива, содержащего файлы сборки, распакуйте его с помощью команды tar:
tar -xzvf фыркнуть*
Перейдите в извлеченную папку, запустите сценарий конфигурации, используйте команду make для подготовки файлов и, наконец, установите их с помощью сделать установку:
cd фырканье*
./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc
сборка компакт-диска
делать
судо сделать установить
Теперь Snort будет успешно установлен в вашей системе. Однако вам нужно выполнить еще один шаг. Когда новое программное обеспечение устанавливается вручную, каталог установки и необходимые библиотеки могут не включаться автоматически в системный путь по умолчанию. Таким образом, вы можете столкнуться с ошибками при запуске приложения.
Чтобы избежать этой проблемы, вам нужно запустить команду ldconfig. Он синхронизирует системный кеш общей библиотеки с недавно установленными библиотеками и двоичными файлами. Либо запустите команду ldconfig из корневой оболочки, либо используйте префикс sudo:
судо ldconfig
Теперь вы выполнили все важные шаги, необходимые для установки Snort. Для проверки установки запустите команду Snort с параметром -V флаг, и вы должны увидеть вывод, возвращающий имя версии и другие данные.
фыркнуть -V
После того, как вы проверили установку Snort, перейдите к следующим шагам, чтобы настроить его как полноценную IDS/IPS.
Начальная настройка Snort в Linux
Эффективность Snort почти полностью зависит от качества поставляемых с ним наборов правил.
Однако, прежде чем вы приступите к настройке правил, вам необходимо настроить сетевые карты для работы с Snort, а также проверить, как Snort обрабатывает конфигурацию по умолчанию. Начните с настройки сетевых карт.
Установите сетевой интерфейс в неразборчивый режим:
sudo ip link set dev interface_name promisc on
С помощью ethtool отключите Generic Receive Offload (GRO) и Large Receive Offload (LRO), чтобы предотвратить усечение больших сетевых пакетов:
sudo ethtool -K имя_интерфейса увеличить выкл.
Проверьте, как Snort работает с конфигурацией по умолчанию:
snort -c /usr/local/etc/snort/snort.lua
Это должно вернуть успешный выходной сигнал о том, что вы правильно установили и настроили Snort в своей системе. Теперь вы можете поэкспериментировать с его функциями и поэкспериментировать с различными конфигурациями, чтобы найти лучший набор правил для защиты вашей сети.
Установите правила и применяйте их с помощью Snort
С базовыми настройками Snort теперь готов защищать ваш периметр. Как вы знаете, Snort нужны наборы правил для определения достоверности трафика, давайте настроим для Snort несколько бесплатных наборов правил, созданных сообществом.
Snort считывает наборы правил и конфигурации из определенных каталогов. Итак, сначала с помощью команд mkdir и touch создайте несколько важных каталогов для хранения правил и других важных данных для Snort:
sudo mkdir -p /usr/local/etc/{списки, so_rules, правила}
sudo touch /usr/local/etc/rules/local.rules
sudo touch /usr/local/etc/lists/default.blocklist
Создав эти каталоги, вы можете загрузить набор правил сообщества с официального сайта с помощью команды wget:
wget https://www.snort.org/downloads/community/snort3-community-rules.tar.gz
После завершения загрузки набора правил извлеките его и скопируйте на /usr/local/etc/rules/ каталог.
смолка -xvzf snort3-com*
cd snort3-com*
cp * /usr/local/etc/rules/
Чтобы запустить Snort с набором правил, выполните следующую команду:
sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i имя_интерфейса -s 65535 -k нет
Разбивка команды:
- -с устанавливает путь к файлу конфигурации по умолчанию
- -Р устанавливает путь к набору правил для принудительного применения
- -я устанавливает интерфейс
- -с отбрасывает ограничение snaplen
- -к игнорирует контрольные суммы
Это должно проверить конфигурацию и применить все наборы правил на Snort. Как только он обнаружит какие-либо нарушения в сети, он предупредит вас сообщением консоли.
Если вы хотите создать и применять свой собственный набор правил, вы можете узнать больше об этом из страницы официальной документации.
Настройте ведение журнала с помощью Snort
По умолчанию Snort не выводит никаких журналов. Вам необходимо указать с помощью -Л флаг, чтобы запустить Snort в режиме ведения журнала, определить тип файла журнала и -л флаг, чтобы установить каталог журналов, в который Snort будет сбрасывать журналы.
Вот команда для запуска Snort с включенным ведением журнала:
sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i имя_интерфейса -s 65535 -k нет -L тип_файла -l /var/log /фыркнул
Разбивка команды:
- -с устанавливает путь к файлу конфигурации по умолчанию
- -Р устанавливает путь к набору правил для принудительного применения
- -я устанавливает интерфейс
- -с отбрасывает ограничение snaplen
- -к игнорирует контрольные суммы
- -Л включает режим ведения журнала и определяет тип файла журнала
- -л определяет путь для хранения журналов
Обратите внимание, что в примере команды для каталога ведения журнала задано значение /var/log/snort. Хотя это рекомендуемая практика, вы можете хранить свои журналы в другом месте.
Вы можете прочитать файлы журнала из Snort из указанного вами каталога или передать их в программное обеспечение SIEM, такое как Splunk, для дальнейшего анализа.
Добавьте Snort в качестве демона запуска системы
Несмотря на то, что вы установили и настроили Snort, вам нужно убедиться, что он запускается при запуске и работает как фоновый демон. Добавление его в качестве автоматически запускаемой системной службы гарантирует, что Snort будет работать и защищать вашу систему в любое время, когда она подключена к сети.
Вот как добавить демон запуска Snort в Linux:
- Начните с создания нового файла службы systemd:
коснитесь /lib/systemd/system/snort.service
- Откройте файл в текстовом редакторе по вашему выбору и заполните его следующими данными. Вы можете изменить флаги в соответствии с вашими потребностями:
[Единица]
Description=Фыркающий демон
After=syslog.target network.target
[Услуга]
Тип=простой
ExecStart=/usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -s 65535 -k none -l /var /log/snort -D -L pcap -i ens33
[Установить]
WantedBy=многопользовательская.цель - Сохраните и закройте файл. Затем с помощью сервиса и команды systemctl, включите и запустите скрипт:
sudo systemctl включить snort.service
sudo фыркать начать
Теперь фоновый демон Snort должен быть запущен и работать. Вы можете проверить статус скрипта, используя статус systemctl фыркать команда. Он должен вернуть положительный результат.
Теперь вы знаете, как защитить свою сеть с помощью Snort IDS
Хотя внедрение IDS является хорошей практикой, это скорее пассивная мера, чем активная. Лучший способ улучшить и гарантировать безопасность вашей сети — постоянно тестировать ее и искать недостатки, которые можно исправить.
Тестирование на проникновение — отличный способ найти уязвимости, которые можно использовать, и исправить их.