Установка suricata kali linux

Установка и использование Suricata на Linux Ubuntu

Данная инструкция протестирована на Linux Ubuntu от 16.04 до 20.04. Установка suricata будет выполнена как из репозиториев, так и исходников. Сетевой трафик для анализа мы будем зеркалировать от Mikrotik.

Перехват трафика и режимы работы

Чтобы определиться со способом установки suricata мы должны понимать принцип перехвата трафика. Есть несколько вариантов, как мы можем использовать программный продукт:

  • IDS — обнаружение вторжений.
  • IPS — предотвращение вторжений.
  • NSM — мониторинг безопасности.

Для организации IPS/IDS/NSM необходимо пропускать сетевой трафик через сервер suricata. Как правило, последний ставится на границе с Интернет. На основе правил и анализа система принимает решение, пропускать трафик или нет. В данном режиме под Linux есть два варианта фильтрации трафика — NFQUEUE и AF_PACKET. Первый работает медленнее, он использует встроенный сетефой фильтр операционной системы. Режим AF_PACKET требует нескольких интерфейсов, а система должна работать в качестве шлюза, при блокировки пакета он не будет передан на второй интерфейс.

При установке suricata из репозитория, работает режим NFQUEUE. Для возможности использования AF_PACKET необходима сборка из исходников.

Для настройки сурикаты в качестве IDS/NSM сервер не обязательно должен находиться на пути сетевого трафика — мы можем зеркалировать пакеты от сетевого оборудования в сторону сурикаты.

В данной инструкции мы рассмотрим пример настройки IDS/NSM с зеркалированием трафика от Mikrotik.

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

Система, крайне, чувствительна ко времени и может начать работать некорректно, если оно не будет настроено правильно.

Для начала настроим часовой пояс:

\cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime

* в данном примере мы выставим московское время.

Затем установим утилиту для синхронизации времени:

apt-get install chrony

И разрешим ее автозапуск:

systemctl enable chrony

Установка

Установку можно выполнить двумя способами:

  1. Из репозитория. Быстрый и удобный способ, но мы получим стандартную сборку без экзотических функций.
  2. Из исходников. Данный метод сложнее, но позволит собрать пакет с дополнительными опциями, например, CUDA для возможности использовать GPU.

Рассмотрим оба процесса.

Из репозитория

apt-get install software-properties-common

Press [ENTER] to continue or ctrl-c to cancel adding it

. нажимаем Enter.

Обновляем список пакетов:

apt-get install suricata

Разрешаем автозапуск сервиса:

systemctl enable suricata

Из исходников

Рассмотрим пример установки пакета безопасности с поддержкой использования AF_PACKET. Процедуру разобьем на несколько этапов.

1. Подготовка к сборке

Устанавливаем необходимые для сборки пакеты:

apt-get install libpcre3 libpcre3-dbg libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap-ng-dev libcap-ng0 make libmagic-dev libjansson-dev libjansson4 pkg-config rustc cargo

Если необходимо использовать Suricata в качестве IPS, также ставим пакеты:

apt-get install libnetfilter-queue-dev libnetfilter-queue1 libnfnetlink-dev libnfnetlink0

Переходим по ссылке https://openinfosecfoundation.org/download/ и копируем ссылку на последнюю (или нужную) версию пакета:

Используя скопированную ссылку, скачиваем архив на сервер:

tar zxvf suricata-*.tar.gz

Переходим в каталог с распакованным архивом:

2. Сборка и установка

По умолчанию, suricata собирается как IDS. Рассмотрим оба варианта для конфигурирования.

а) если собираем для режима IDS:

./configure —prefix=/usr —sysconfdir=/etc —localstatedir=/var

б) если собираем для режима IPS:

./configure —enable-af-packet —prefix=/usr —sysconfdir=/etc —localstatedir=/var

* для возможности работы в режиме IPS необходимо включить опции —enable-af-packet или —enable-nfqueue.

После конфигурирования собираем пакет:

Читайте также:  Finding files in linux containing text

. и устанавливаем его:

После установим конфигурационный файлы:

Для установки и обновления suricata ставим пакеты:

apt-get install python-pip

pip install —upgrade suricata-update

3. Завершение установки

Для полного завершения установки, создадим конфиг по умолчанию и сервис для автозапуска.

И так, создаем файл:

RUN=yes
RUN_AS_USER=
SURCONF=/etc/suricata/suricata.yaml
LISTENMODE=af-packet
IFACE=eth0
NFQUEUE=»-q 0″
CUSTOM_NFQUEUE=»-q 0 -q 1 -q 2 -q 3″
PIDFILE=/var/run/suricata.pid

Загружаем скрипт автозапуска командой:

wget https://www.dmosk.ru/files/suricata -P /etc/init.d

Разрешаем запуск файла:

chmod +x /etc/init.d/suricata

Перечитываем конфигурацию systemd:

Разрешаем автозапуск suricata и стартуем ее сервис:

systemctl enable suricata

systemctl start suricata

Базовая настройка

Для запуска нашего приложения осталось выполнить несколько настроек.

1. Обновление правил

Для этого вводим команду:

Система выполнит загрузку правил и сравнит их с текущими. При необходимости, обновит файлы.

Также необходимо обновить индекс источника правил:

2. Настройка рабочего сетевого интерфейса

После установки, в настройках suricata прописан интерфейс eth0, на котором должен принимать запросы сервер. Однако, рабочий интерфейс может быть другой — посмотреть его можно командой:

Например, в моем случае это ens32:

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens32 :
mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:50:56:81:07:a0 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.15/24 brd 192.168.0.255 scope global ens32
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:fe81:7a0/64 scope link
valid_lft forever preferred_lft forever

И так, меняем по очереди интерфейс в двух файлах.

Источник

Русские Блоги

установка Suricata

Команда suricata —build-info может просматривать информацию, относящуюся к плагину

В условиях постоянного возникновения угроз безопасности системы обнаружения вторжений (IDS) особенно необходимы в сегодняшней среде центров обработки данных. Однако по мере того, как все больше и больше серверов обновляют свои сетевые карты до 10 ГБ / 40 ГБ Ethernet, становится все труднее и труднее выполнять обнаружение вторжений на аппаратных средствах на таких линиях с интенсивными вычислениями. Одним из способов повышения производительности систем обнаружения вторжений является Многопоточная система обнаружения вторжений , Он распределяет работу по глубокой проверке пакетов, интенсивно потребляющую ресурсы ЦП, на несколько параллельных задач. Такое параллельное обнаружение может в полной мере использовать преимущества многоядерного оборудования для легкого увеличения пропускной способности системы обнаружения вторжений. В связи с этим можно выделить два известных проекта с открытым исходным кодом, а именно Suricata с участием Bro 。

Установите Suricata IDS в Linux

Давайте соберем Suricata из исходных файлов, но перед этим нам нужно установить несколько зависимостей, как показано ниже.

Установите зависимости в операционных системах Debian, Ubuntu или Linux Mint

  1. $ sudo apt-get install wget build — essential libpcre3 — dev libpcre3 — dbg automake autoconf libtool libpcap — dev libnet1 — dev libyaml — dev zlib1g — dev libcap — ng — dev libjansson — dev

Установите зависимости в операционных системах CentOS, Fedora или RHEL

  1. $ sudo yum install wget libpcap — devel libnet — devel pcre — devel gcc — c ++ automake autoconf libtool make libyaml — devel zlib — devel file — devel jansson — devel nss — devel

После установки всех зависимых пакетов мы можем приступить к установке Suricata.

Первый изhttp://suricata-ids.org/download/Загрузите исходный код Suricata, а затем соберите его. На момент написания этой статьи номер последней версии — 2.0.8.

  1. $ wget http : //www.openinfosecfoundation.org/download/suricata-2.0.8.tar.gz
  2. $ tar — xvf suricata — 2.0 . 8.tar . gz
  3. $ cd suricata — 2.0 . 8
  4. $ ./ configure — sysconfdir = /etc —localstatedir=/ var

Ниже приводится образец информации о конфигурации.

  1. Suricata Configuration :
  2. AF_PACKET support : yes
  3. PF_RING support : no
  4. NFQueue support : no
  5. NFLOG support : no
  6. IPFW support : no
  7. DAG enabled : no
  8. Napatech enabled : no
  9. Unix socket enabled : yes
  10. Detection enabled : yes
  11. libnss support : yes
  12. libnspr support : yes
  13. libjansson support : yes
  14. Prelude support : no
  15. PCRE jit : yes
  16. LUA support : no
  17. libluajit : no
  18. libgeoip : no
  19. Non — bundled htp : no
  20. Old barnyard2 support : no
  21. CUDA enabled : no
Читайте также:  Ish linux ios frontline support

Теперь его можно скомпилировать и установить.

Исходный код Suricata поставляется с файлом конфигурации по умолчанию. Установите эти файлы конфигурации по умолчанию следующим образом.

  1. $ sudo make install — conf

Как и следовало ожидать, если нет набора правил IDS, Suricata бесполезна. К счастью, Makefile предоставляет нам возможность установки набора правил IDS. Способ установки следующий.

  1. $ sudo make install — rules

Приведенная выше команда установки правила изменится сEmergingThreats.netЗагрузите снимок доступных наборов правил сообщества и сохраните их в каталоге / etc / suricata / rules.

Настройте Suricata IDS в первый раз

Пришло время настроить Suricata. Расположение файла конфигурации: /etc/suricata/suricata.yaml , Воспользуйтесь следующей командой, чтобы открыть этот файл в текстовом редакторе.

  1. $ sudo vi / etc / suricata / suricata . yaml

Файл содержит некоторую базовую конфигурацию, необходимую для работы.

для default-log-dir Ключевое слово определяет расположение файла журнала Suricata.

  1. default — log — dir : /var/ log / suricata /

в vars Ниже раздела вы найдете несколько переменных, которые важны для Suricata. HOME_NET Переменная должна указывать сеть, которую проверяет Суриката. Присваивается EXTERNAL_NET Переменная !$HOME_NET Представляет другие сети, кроме локальной сети. XXX_PORTS Переменные используются для идентификации номеров портов, используемых различными службами. Обратите внимание, что независимо от того, какой порт используется, Suricata может автоматически обнаруживать HTTP-трафик. Так что не имеет значения, правильно ли указан порт.

  1. vars :
  2. HOME_NET : «[192.168.122.0/24]»
  3. EXTERNAL_NET : «!$HOME_NET»
  4. HTTP_PORTS : «80»
  5. SHELLCODE_PORTS : «!80»
  6. SSH_PORTS : 22

host-os-policy Часть его используется для защиты некоторых хорошо известных методов атаки (например, повторной сборки TCP), которые используют собственное поведение сетевого стека операционной системы для избежания обнаружения. В качестве контрмеры путем точной настройки алгоритма механизма обнаружения для целевой операционной системы Hyundai IDC предоставляет метод обнаружения «на основе цели». Следовательно, если вы знаете, в какой операционной системе работает хост, предоставление этой информации Suricata может значительно повысить вероятность успешного обнаружения. Это host-os-policy Смысл существования. В этом примере политикой IDC по умолчанию является Linux. Если для IP-адреса не указана информация об операционной системе, Suricata по умолчанию применяет стратегию обнаружения, основанную на системе Linux. Как показано ниже, при захвате связи с 192.168.122.0/28 и 192.168.122.155 Suricata применит стратегию обнаружения, основанную на системе Windows.

  1. host — os — policy :
  2. # These are Windows machines .
  3. windows : [ 192.168 . 122.0 / 28 , 192.168 . 122.155 ]
  4. bsd : []
  5. bsd — right : []
  6. old — linux : []
  7. # Make the default policy Linux .
  8. linux : [ 0.0 . 0.0 / 0 ]
  9. old — solaris : []
  10. solaris : [ «::1» ]
  11. hpux10 : []
  12. hpux11 : []
  13. irix : []
  14. macos : []
  15. vista : []
  16. windows2k3 : []

В threading В разделе вы можете указать соответствие ЦП для разных потоков Suricata. По умолчанию,Сходство с ЦПЗапрещено использовать ( set-cpu-affinity: no ), что означает, что Suricata распределяет свои потоки по всем доступным ядрам ЦП. Suricata по умолчанию создает поток обнаружения для каждого ядра ЦП. Вы можете указать detect-thread-ratio: N Чтобы отрегулировать это поведение. Здесь будет создано N * M потоков обнаружения, а M представляет собой общее количество ядер ЦП.

  1. threading :
  2. set — cpu — affinity : no
  3. detect — thread — ratio : 1.5

Через указанную выше настройку потока Suricata создаст 1,5 * M потоков обнаружения, где M — общее количество ядер ЦП системы.

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

Читайте также:  Как развернуть экран windows

Используйте Suricata для мониторинга вторжений

Пришло время запустить Suricata, но перед этим нужно выполнить еще один шаг.

При использовании режима захвата pcap настоятельно рекомендуется отключить любые функции удаления пакетов (например, LRO / GRO) на сетевой карте мониторинга Suricata. Эти функции могут мешать захвату пакетов в реальном времени.

Отключите функцию LRO / GRO интерфейса eth0 следующим образом.

  1. $ sudo ethtool — K eth0 gro off lro off

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

  1. Cannot change large — receive — offload

Suricata поддерживает множество режимов работы. Рабочий режим определяет, какой поток будет использовать IDC. Следующая команда может просмотреть всеДоступные режимы работы。

  1. $ sudo / usr / local / bin / suricata — list — runmodes

По умолчанию Suricata использует режим работы autofp (сокращение от auto flow pinned load balancing). В этом режиме пакеты из определенного потока будут выделены в отдельный поток обнаружения. Эти потоки будут выделять соответствующие потоки в соответствии с минимальным количеством необработанных пакетов.

Наконец, давайте запустим Suricata и посмотрим, как она работает.

  1. $ sudo / usr / local / bin / suricata — c / etc / suricata / suricata . yaml — i eth0 — init — errors — fatal

В этом примере мы отслеживаем сетевой интерфейс eth0 в 8-ядерной системе. Как показано выше, Suricata создала 13 потоков обработки пакетов и 3 потока управления. Поток обработки пакетов включает поток захвата пакетов PCAP и 12 потоков обнаружения (производных от 8 * 1.5). Это означает, что 1 поток захвата пакетов в IDS распределяет нагрузку между 12 потоками обнаружения. Поток управления включает в себя 1 поток управления и 2 потока, связанных с подсчетом / статистикой.

Ниже приведен снимок экрана потока, обработанного Suricata (автор:htopПривлечь).

Журналы обнаружения Suricata хранятся в каталоге / var / log / suricata.

  1. $ tail — f / var / log / suricata / fast . log
  1. 04 / 01 / 2015 — 15 : 47 : 12.559075 [**] [ 1 : 2200074 : 1 ] SURICATA TCPv4 invalid checksum [**] [ Classification : ( null )] [ Priority : 3 ] < TCP >172.16 . 253.158 : 22 -> 172.16 . 253.1 : 46997
  2. 04 / 01 / 2015 — 15 : 49 : 06.565901 [**] [ 1 : 2200074 : 1 ] SURICATA TCPv4 invalid checksum [**] [ Classification : ( null )] [ Priority : 3 ] < TCP >172.16 . 253.158 : 22 -> 172.16 . 253.1 : 46317
  3. 04 / 01 / 2015 — 15 : 49 : 06.566759 [**] [ 1 : 2200074 : 1 ] SURICATA TCPv4 invalid checksum [**] [ Classification : ( null )] [ Priority : 3 ] < TCP >172.16 . 253.158 : 22 -> 172.16 . 253.1 : 46317

Журнал также может предоставлять для импорта формат Json:

подводить итоги

В этом руководстве я показал вам, как установить систему обнаружения вторжений Suricata на многоядерный сервер Linux. В отличие от однопоточногоSnort IDSSuricata может легко извлечь выгоду из преимуществ многопроцессорной функции многоядерного оборудования. Хорошая идея — настроить Suricata, чтобы максимизировать ее производительность и дальность обнаружения. Поклонники Сурикаты поддерживаютИнтернет-вики, Если вы планируете развернуть Suricata в своей среде, я настоятельно рекомендую вам пойти туда, чтобы узнать больше.

Добавьте параметр -D при открытии suricata, запустите suricata как демон и сгенерируйте файлы pid в / var / run по умолчанию

После обновления используемых правил оно вступит в силу только в том случае, если команда suricata-update инструмента suricata-update используется для обновления конфигурации и перезапуска suricata.

Официальный документ Suricata, процесс установки CentOS:

И hiredis, и libevent — это пакеты, необходимые для связи между suricata и redis, и при компиляции необходимо указать соответствующие настройки.

—enable-hiredis позволяет модулю redis вступить в силу, —with-libevent-includes = DIR указывает путь к libevent

Эти пакеты, установленные через yum, обычно находятся в / usr / lib или / usr / lib64.

Источник

Оцените статью