Введение
Suricata – это инструмент мониторинга безопасности сети (NSM), который использует наборы созданных сообществом и определенных пользователем сигнатур (также называемых правилами) для анализа и обработки сетевого трафика. Suricata может генерировать события журнала, запускать оповещения и отбрасывать трафик при обнаружении подозрительных пакетов или запросов к любому из множества различных служб, работающих на сервере.
По умолчанию Suricata работает как пассивная система обнаружения вторжений (IDS) для сканирования подозрительного трафика на сервере или в сети. Он генерирует и записывает оповещения для дальнейшего расследования. Также его можно настроить как активную систему предотвращения вторжений (IPS) для записи, оповещения и полного блокирования сетевого трафика, соответствующего определенным правилам.
Вы можете развернуть Suricata на шлюзовом хосте в сети для сканирования всего входящего и исходящего сетевого трафика с других систем, или запустить его локально на отдельных компьютерах в любом из режимов.
В этом руководстве вы узнаете, как установить Suricata и как настроить некоторые из его параметров по умолчанию на Centos 8 Stream под ваши нужды. Вы также узнаете, как загрузить существующие наборы сигнатур (обычно называемые правилами), которые Suricata использует для сканирования сетевого трафика. Наконец, вы узнаете, как протестировать, правильно ли Suricata работает при обнаружении подозрительных запросов и данных в ответе.
Предварительные требования
В зависимости от конфигурации вашей сети и способа использования Suricata вам может потребоваться больше или меньше процессорного времени и ОЗУ для вашего сервера. В целом, чем больше трафика вы планируете проверять, тем больше ресурсов следует выделить для Suricata. В производственной среде планируйте использовать как минимум 2 процессора и 4 или 8 ГБ оперативной памяти для начала. Затем вы можете масштабировать ресурсы в соответствии с производительностью Suricata и объемом трафика, который вам необходимо обрабатывать.
Если вы планируете использовать Suricata для защиты сервера, на котором он работает, вам понадобится:
- Один сервер Centos 8 Stream с 2 или более процессорами, пользователь с правами sudo без прав root и включенным брандмауэром. Чтобы настроить это, вы можете следовать нашему Руководству по начальной настройке сервера с CentOS Linux 8.
В противном случае, если вы планируете использовать Suricata на хосте шлюза для мониторинга и защиты нескольких серверов, вам нужно будет убедиться, что сетевая конфигурация хоста настроена правильно.
Если вы используете DigitalOcean, вы можете следовать этому руководству по Настройке Droplet в качестве шлюза VPC. Эти инструкции должны работать также для большинства серверов на основе CentOS, Fedora и других производных от RedHat.
Шаг 1 — Установка Suricata
Для начала установки Suricata вам потребуется добавить информацию о репозитории программного обеспечения Open Information Security Foundation (OISF) на вашу систему CentOS. Для этого вы можете использовать команду dnf copr enable
. Также вам потребуется добавить репозиторий Extra Packages for Enterprise Linux (EPEL).
Чтобы включить подкоманду Community Projects (copr
) для инструмента управления пакетами dnf
, выполните следующее:
Вам будет предложено установить дополнительные зависимости, а также принять ключ GPG для дистрибутива Linux CentOS. Нажимайте y
и ENTER
после каждого запроса, чтобы завершить установку пакета copr
.
Затем выполните следующую команду, чтобы добавить репозиторий OISF на вашу систему и обновить список доступных пакетов:
Нажмите y
и ENTER
, когда вас попросят подтвердить добавление репозитория.
Теперь добавьте пакет epel-release
, который сделает доступными некоторые дополнительные зависимости для Suricata:
Когда вас попросят импортировать ключ GPG, нажмите y
и ENTER
, чтобы принять.
Теперь, когда у вас включены необходимые репозитории программного обеспечения, вы можете установить пакет suricata
с помощью команды dnf
:
Когда вам будет предложено добавить GPG-ключ для репозитория OISF, нажмите y
и ENTER
. Теперь пакет и его зависимости будут загружены и установлены.
Затем активируйте suricata.service
, чтобы он запускался при перезагрузке системы. Используйте команду systemctl
, чтобы включить его:
Вы должны получить вывод, подобный следующему, указывающий, что служба активирована:
OutputCreated symlink /etc/systemd/system/multi-user.target.wants/suricata.service → /usr/lib/systemd/system/suricata.service.
Прежде чем перейти к следующему разделу этого руководства, в котором объясняется, как настроить Suricata, остановите службу, используя команду systemctl
:
Остановка Suricata гарантирует, что при редактировании и тестировании файла конфигурации любые изменения, которые вы внесете, будут проверены и загружены при следующем запуске Suricata.
Шаг 2 — Настройка Suricata Впервые
Пакет Suricata из репозиториев OISF поставляется с файлом конфигурации, который охватывает широкий спектр сценариев использования. Режим по умолчанию для Suricata — режим IDS, поэтому трафик не будет отбрасываться, а только регистрироваться. Оставление этого режима в установленном по умолчанию состоянии является хорошей идеей, когда вы изучаете Suricata. Как только вы настроите Suricata и интегрируете его в свою среду, и поймете, какие виды трафика он будет предупреждать, вы сможете включить режим IPS.
Однако в установленной по умолчанию конфигурации все еще есть несколько параметров, которые вам может потребоваться изменить в зависимости от вашей среды и потребностей.
(Опционально) Включение идентификатора потока сообщества
Suricata может включать поле идентификатора сообщества в своем JSON-выводе, чтобы облегчить сопоставление отдельных записей событий с записями в наборах данных, созданных другими инструментами.
Если вы планируете использовать Suricata с другими инструментами, такими как Zeek или Elasticsearch, добавление идентификатора сообщества сейчас – хорошая идея.
Чтобы включить эту опцию, откройте файл /etc/suricata/suricata.yaml
с помощью vi
или вашего предпочтительного редактора:
Найдите строку 120, которая содержит # Идентификатор потока сообщества
. Если вы используете vi
, введите 120gg
, чтобы перейти прямо к строке. Ниже этой строки находится ключ community-id
. Установите его в true
, чтобы включить настройку:
. . .
# Идентификатор потока сообщества
# Добавляет поле 'community_id' в записи EVE. Они предназначены для обеспечения
# записей предсказуемым идентификатором потока, который можно использовать для сопоставления записей с
# выводом других инструментов, таких как Zeek (Bro).
#
# Принимает 'seed', который должен быть одинаковым для всех датчиков и инструментов,
# чтобы сделать идентификатор менее предсказуемым.
# включить/отключить функцию идентификатора сообщества.
community-id: true
. . .
Теперь, когда вы исследуете события, у них будет идентификатор вроде 1:S+3BA2UmrHK0Pk+u3XH78GAFTtQ=
, который вы можете использовать для корреляции записей в различных инструментах NMS.
Сохраните и закройте файл /etc/suricata/suricata.yaml
. Если вы используете vi
, вы можете сделать это, нажав ESC
, затем :x
, а затем ENTER
, чтобы сохранить и выйти из файла.
Определение сетевых интерфейсов, которые следует использовать
Вам может потребоваться переопределить сетевой интерфейс или интерфейсы по умолчанию, которые вы хотели бы, чтобы Suricata проверяла трафик. Конфигурационный файл, поставляемый в пакете OISF Suricata, по умолчанию проверяет трафик на устройстве с именем eth0
. Если ваша система использует другой сетевой интерфейс по умолчанию, или если вы хотите проверять трафик на нескольких интерфейсах, вам потребуется изменить это значение.
Чтобы определить имя устройства вашего сетевого интерфейса по умолчанию, вы можете использовать команду ip
следующим образом:
Флаг -p
форматирует вывод для более удобного чтения, а флаг -j
выводит результат в формате JSON.
Вы должны получить вывод, подобный следующему:
Output[ {
"dst": "default",
"gateway": "203.0.113.254",
"dev": "eth0",
"protocol": "static",
"metric": 100,
"flags": [ ]
} ]
Строка dev
указывает на устройство по умолчанию. В этом примере вывода устройство – выделенный eth0
интерфейс. Ваш вывод может показывать имя устройства, такое как ens...
или eno...
. Независимо от имени, запомните его.
Теперь вы можете отредактировать конфигурацию Suricata и проверить или изменить имя интерфейса. Откройте файл конфигурации /etc/suricata/suricata.yaml
с помощью vi
или вашего предпочтительного редактора:
Прокрутите файл до строки, содержащей af-packet:
, примерно на строке 580. Если вы используете vi
, вы также можете перейти к этой строке непосредственно, введя 580gg
. Под этой строкой указан интерфейс по умолчанию, который Suricata будет использовать для проверки трафика. Отредактируйте строку, чтобы совпадать с вашим интерфейсом, как в следующем выделенном примере:
# Поддержка высокоскоростного захвата для Linux
af-packet:
- interface: eth0
# Количество потоков приема. "auto" использует количество ядер
#threads: auto
# Идентификатор кластера по умолчанию. AF_PACKET будет балансировать нагрузку пакетов на основе потока.
cluster-id: 99
. . .
Если вы хотите проверить трафик на дополнительных интерфейсах, вы можете добавить больше объектов YAML вида - interface: eth...
. Например, чтобы добавить устройство с именем enp0s1
, прокрутите вниз до конца раздела af-packet
, примерно на строку 650. Чтобы добавить новый интерфейс, вставьте его перед разделом - interface: default
, как в следующем выделенном примере:
# Для настройки eBPF и XDP, включая обход, фильтрацию и балансировку нагрузки, пожалуйста,
# см. документацию/doc/userguide/capture-hardware/ebpf-xdp.rst для получения дополнительной информации.
- interface: enp0s1
cluster-id: 98
- interface: default
#threads: автоматически
#use-mmap: нет
#tpacket-v3: да
Обязательно выберите уникальное значение cluster-id
для каждого объекта - interface
.
Оставьте редактор открытым и перейдите к следующему разделу, где вы настроите перезагрузку правил в реальном времени. Если вы не хотите включать эту настройку, то можете сохранить и закрыть файл /etc/suricata/suricata.yaml
. Если вы используете vi
, то сделайте это с помощью ESC
, затем :x
и ENTER
для сохранения и выхода.
Настройка Перезагрузки Правил в Реальном Времени
Suricata поддерживает перезагрузку правил в реальном времени, что означает, что вы можете добавлять, удалять и редактировать правила без необходимости перезапуска процесса Suricata. Чтобы включить опцию перезагрузки в реальном времени, прокрутите вниз конфигурационного файла и добавьте следующие строки:
. . .
detect-engine:
- rule-reload: true
С этой настройкой вы сможете отправить системный сигнал SIGUSR2
текущему процессу, и Suricata перезагрузит все измененные правила в память.
A command like the following will notify the Suricata process to reload its rulesets, without restarting the process:
Часть команды $(pidof suricata)
вызывает подоболочку и находит идентификатор процесса запущенного демона Suricata. Начальная часть команды sudo kill -usr2
использует утилиту kill
для отправки сигнала SIGUSR2
идентификатору процесса, который возвращает подоболочка.
Эту команду можно использовать каждый раз при выполнении suricata-update
или при добавлении или редактировании собственных пользовательских правил.
Сохраните и закройте файл /etc/suricata/suricata.yaml
. Если вы используете vi
, вы можете сделать это с помощью ESC
, затем :x
и ENTER
для подтверждения.
Шаг 3 — Обновление наборов правил Suricata
На этом этапе урока, если бы вы попытались запустить Suricata, вы бы получили предупреждающее сообщение, подобное следующему в журналах, указывающее на отсутствие загруженных правил:
Output<Warning> - [ERRCODE: SC_ERR_NO_RULES(42)] - No rule files match the pattern /var/lib/suricata/rules/suricata.rules
По умолчанию пакет Suricata включает ограниченный набор правил обнаружения (в каталоге /etc/suricata/rules
), поэтому включение Suricata на данном этапе обнаружит только ограниченное количество нежелательного трафика.
Suricata включает инструмент под названием suricata-update
, который может загружать наборы правил из внешних источников. Выполните его следующим образом, чтобы загрузить актуальный набор правил для вашего сервера Suricata:
Вы должны получить вывод, подобный следующему:
Output19/10/2021 -- 19:31:03 - <Info> -- Using data-directory /var/lib/suricata.
19/10/2021 -- 19:31:03 - <Info> -- Using Suricata configuration /etc/suricata/suricata.yaml
19/10/2021 -- 19:31:03 - <Info> -- Using /usr/share/suricata/rules for Suricata provided rules.
. . .
19/10/2021 -- 19:31:03 - <Info> -- No sources configured, will use Emerging Threats Open
19/10/2021 -- 19:31:03 - <Info> -- Fetching https://rules.emergingthreats.net/open/suricata-6.0.3/emerging.rules.tar.gz.
100% - 3062850/3062850
. . .
19/10/2021 -- 19:31:06 - <Info> -- Writing rules to /var/lib/suricata/rules/suricata.rules: total: 31011; enabled: 23649; added: 31011; removed 0; modified: 0
19/10/2021 -- 19:31:07 - <Info> -- Writing /var/lib/suricata/rules/classification.config
19/10/2021 -- 19:31:07 - <Info> -- Testing with suricata -T.
19/10/2021 -- 19:31:32 - <Info> -- Done.
Выделенные строки указывают, что suricata-update
загрузил бесплатные правила угроз Emerging Threats ET Open Rules и сохранил их в файл /var/lib/suricata/rules/suricata.rules
Suricata. Он также указывает количество обработанных правил; в этом примере добавлено 31011 правил, из которых 23649 были активированы.
Добавление поставщиков правил
Инструмент suricata-update
может загружать правила из различных бесплатных и коммерческих поставщиков наборов правил. Некоторые наборы правил, такие как набор ET Open, который вы уже добавили, доступны бесплатно, в то время как другие требуют платной подписки.
Вы можете получить список поставщиков правил по умолчанию, используя флаг list-sources
с suricata-update
, например, так:
Вы получите список источников, аналогичный следующему:
Output. . .
19/10/2021 -- 19:27:34 - <Info> -- Adding all sources
19/10/2021 -- 19:27:34 - <Info> -- Saved /var/lib/suricata/update/cache/index.yaml
Name: et/open
Vendor: Proofpoint
Summary: Emerging Threats Open Ruleset
License: MIT
. . .
Например, если вы хотите включить правила tgreen/hunting
, вы можете активировать их с помощью следующей команды:
Затем снова запустите suricata-update
, и новый набор правил будет добавлен к существующим правилам ET Open и любым другим, которые вы загрузили.
Шаг 4 — Проверка конфигурации Suricata
Теперь, когда вы отредактировали файл конфигурации Suricata, чтобы включить опциональный идентификатор сообщества, указать интерфейс сети по умолчанию и включить перезагрузку правил в реальном времени, хорошей идеей будет протестировать конфигурацию.
Suricata имеет встроенный режим тестирования, который проверит файл конфигурации и любые включенные правила на корректность. Проверьте ваши изменения из предыдущего раздела, используя флаг -T
, чтобы запустить Suricata в тестовом режиме. Флаг -v
выведет дополнительную информацию, а флаг -c
указывает Suricata, где находится его файл конфигурации:
Тест может занять некоторое время в зависимости от количества CPU, выделенных для Suricata, и количества правил, которые вы добавили, поэтому будьте готовы подождать минуту или две, пока он завершится.
С стандартным набором правил ET Open вы должны получить вывод, подобный следующему:
Output21/10/2021 -- 15:00:40 - <Info> - Running suricata under test mode
21/10/2021 -- 15:00:40 - <Notice> - This is Suricata version 6.0.3 RELEASE running in SYSTEM mode
21/10/2021 -- 15:00:40 - <Info> - CPUs/cores online: 2
21/10/2021 -- 15:00:40 - <Info> - fast output device (regular) initialized: fast.log
21/10/2021 -- 15:00:40 - <Info> - eve-log output device (regular) initialized: eve.json
21/10/2021 -- 15:00:40 - <Info> - stats output device (regular) initialized: stats.log
21/10/2021 -- 15:00:46 - <Info> - 1 rule files processed. 23879 rules successfully loaded, 0 rules failed
21/10/2021 -- 15:00:46 - <Info> - Threshold config parsed: 0 rule(s) found
21/10/2021 -- 15:00:47 - <Info> - 23882 signatures processed. 1183 are IP-only rules, 4043 are inspecting packet payload, 18453 inspect application layer, 107 are decoder event only
21/10/2021 -- 15:01:13 - <Notice> - Configuration provided was successfully loaded. Exiting.
21/10/2021 -- 15:01:13 - <Info> - cleaning up signature grouping structure... complete
Если в вашем файле конфигурации есть ошибка, то режим тестирования сгенерирует конкретный код ошибки и сообщение, которые вы можете использовать для устранения неполадок. Например, включение файла правил, который не существует под названием test.rules
, приведет к ошибке, подобной следующей:
Output21/10/2021 -- 15:10:15 - <Info> - Running suricata under test mode
21/10/2021 -- 15:10:15 - <Notice> - This is Suricata version 6.0.3 RELEASE running in SYSTEM mode
21/10/2021 -- 15:10:15 - <Info> - CPUs/cores online: 2
21/10/2021 -- 15:10:15 - <Info> - eve-log output device (regular) initialized: eve.json
21/10/2021 -- 15:10:15 - <Info> - stats output device (regular) initialized: stats.log
21/10/2021 -- 15:10:21 - <Warning> - [ERRCODE: SC_ERR_NO_RULES(42)] - No rule files match the pattern /var/lib/suricata/rules/test.rules
С этой ошибкой вы можете затем отредактировать свой файл конфигурации, чтобы указать правильный путь или исправить недопустимые переменные и параметры конфигурации.
Как только тестовый режим Suricata успешно завершится, вы можете перейти к следующему шагу, который заключается в запуске Suricata в режиме демона.
Шаг 5 — Запуск Suricata
Теперь, когда у вас есть действующая конфигурация и набор правил Suricata, вы можете запустить сервер Suricata. Выполните следующую команду systemctl
:
Вы можете проверить состояние службы, используя команду systemctl status
:
Вы должны получить вывод, подобный следующему:
Output● suricata.service - Suricata Intrusion Detection Service
Loaded: loaded (/usr/lib/systemd/system/suricata.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2021-10-21 18:22:56 UTC; 1min 57s ago
Docs: man:suricata(1)
Process: 24588 ExecStartPre=/bin/rm -f /var/run/suricata.pid (code=exited, status=0/SUCCESS)
Main PID: 24590 (Suricata-Main)
Tasks: 1 (limit: 23473)
Memory: 80.2M
CGroup: /system.slice/suricata.service
└─24590 /sbin/suricata -c /etc/suricata/suricata.yaml --pidfile /var/run/suricata.pid -i eth0 --user suricata
Oct 21 18:22:56 suricata systemd[1]: Starting Suricata Intrusion Detection Service..
Oct 21 18:22:56 suricata systemd[1]: Started Suricata Intrusion Detection Service.
. . .
Как и при выполнении команды в тестовом режиме, Suricata потребуется минута или две на загрузку и разбор всех правил. Вы можете использовать команду tail
, чтобы следить за определенным сообщением в журналах Suricata, указывающим, что он завершил загрузку:
Вы получите ряд строк вывода, и терминал может казаться заблокированным во время загрузки Suricata. Продолжайте ожидать вывода, пока не получите строку, подобную следующей:
Output19/10/2021 -- 19:22:39 - <Info> - All AFP capture threads are running.
Эта строка указывает на то, что Suricata запущен и готов к проверке трафика. Вы можете выйти из команды tail
, используя CTRL+C
.
Теперь, когда вы убедились, что Suricata работает, следующим шагом в этом руководстве является проверка того, обнаруживает ли Suricata запрос к тестовому URL, который предназначен для генерации оповещения.
Шаг 6 — Проверка правил Suricata
Набор правил ET Open, который вы загрузили, содержит более 30000 правил. Полное объяснение того, как работают правила Suricata, и как их создавать, выходит за рамки этого вводного учебника. В последующем уроке этой серии будет объяснено, как работают правила и как их создавать.
Для целей этого учебника достаточно проверить, обнаруживает ли Suricata подозрительный трафик с использованием сгенерированной вами конфигурации. Руководство по быстрому старту Suricata рекомендует протестировать правило ET Open с номером 2100498
, используя команду curl
.
Запустите следующее, чтобы создать HTTP-запрос, который вернет ответ, соответствующий правилу оповещения Suricata:
Команда curl
выведет ответ вроде следующего:
Outputuid=0(root) gid=0(root) groups=0(root)
Эти примерные данные ответа предназначены для запуска оповещения, имитируя вывод команды id
, которая может быть выполнена на компрометированной удаленной системе с помощью веб-оболочки.
Теперь вы можете проверить журналы Suricata на наличие соответствующего оповещения. Включены два журнала в конфигурации Suricata по умолчанию. Первый находится в /var/log/suricata/fast.log
, а второй – в машинно-читаемом формате в /var/log/suricata/eve.log
.
Изучение /var/log/suricata/fast.log
Для проверки записи в журнале /var/log/suricata/fast.log
, соответствующей вашему запросу curl
, используйте команду grep
. Используя идентификатор правила 2100498
из документации Quickstart, выполните поиск записей, соответствующих ему, с помощью следующей команды:
Если ваш запрос использовал IPv6, то вы должны получить вывод, аналогичный следующему, где 2001:DB8::1
– это общедоступный IPv6-адрес вашей системы:
Output10/21/2021-18:35:54.950106 [**] [1:2100498:7] GPL ATTACK_RESPONSE id check returned root [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 2600:9000:2000:4400:0018:30b3:e400:93a1:80 -> 2001:DB8::1:34628
Если ваш запрос использовал IPv4, то ваш журнал должен содержать сообщение, подобное этому, где 203.0.113.1
– это общедоступный IPv4-адрес вашей системы:
Output10/21/2021-18:35:57.247239 [**] [1:2100498:7] GPL ATTACK_RESPONSE id check returned root [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 204.246.178.81:80 -> 203.0.113.1:36364
Обратите внимание на выделенное значение 2100498
в выводе, которое является идентификатором сигнатуры (sid
), который Suricata использует для идентификации правила.
Изучение /var/log/suricata/eve.log
Suricata также регистрирует события в журнале /var/log/suricata/eve.log
(псевдоним – журнал EVE), используя формат JSON для записей. JSON
Документация Suricata рекомендует использовать утилиту jq
для чтения и фильтрации записей в этом файле. Установите jq
, если у вас его нет в системе, используя следующую команду dnf
:
После установки jq
вы можете фильтровать события в журнале EVE, выполнив поиск сигнатуры 2100498
с помощью следующей команды:
Команда анализирует каждую запись JSON и выводит те из них, у которых есть объект alert
с ключом signature_id
, соответствующим значению 2100498
, который вы ищете. Выход будет похож на следующий:
Output{
"timestamp": "2021-10-21T19:42:47.368856+0000",
"flow_id": 775889108832281,
"in_iface": "eth0",
"event_type": "alert",
"src_ip": "203.0.113.1",
"src_port": 80,
"dest_ip": "147.182.148.159",
"dest_port": 38920,
"proto": "TCP",
"community_id": "1:vuSfAFyy7oUq0LQC5+KNTBSuPxg=",
"alert": {
"action": "allowed",
"gid": 1,
"signature_id": 2100498,
"rev": 7,
"signature": "GPL ATTACK_RESPONSE id check returned root",
"category": "Potentially Bad Traffic",
. . .
}
Обратите внимание на выделенную строку "signature_id": 2100498,
, которую jq
ищет. Также обратите внимание на выделенную строку "community_id": "1:vuSfAFyy7oUq0LQC5+KNTBSuPxg=",
в выводе JSON. Этот ключ – сгенерированный идентификатор потока сообщества, который вы включили в файле конфигурации Suricata.
Каждое предупреждение генерирует уникальный идентификатор потока сообщества. Другие инструменты NMS также могут генерировать тот же идентификатор для возможности перекрестной ссылки на предупреждение Suricata с выводом из других инструментов.
A matching log entry in either log file means that Suricata successfully inspected the network traffic, matched it against a detection rule, and generated an alert for subsequent analysis or logging. A future tutorial in this series will explore how to send Suricata alerts to a Security Information Event Management (SIEM) system for further processing.
Шаг 7 — Обработка предупреждений Suricata
После того как у вас настроены и протестированы оповещения, вы можете выбрать, как ими управлять. Для некоторых сценариев использования достаточно журналировать оповещения для целей аудита; или вы можете предпочесть более активный подход к блокированию трафика от систем, которые генерируют повторяющиеся оповещения.
Если вы хотите блокировать трафик на основе оповещений, которые генерирует Suricata, один из подходов заключается в использовании записей из журнала EVE, а затем добавлении правил брандмауэра для ограничения доступа к вашей системе или системам. Вы можете использовать инструмент jq
для извлечения определенных полей из оповещения, а затем добавить правила UFW или IPtables для блокировки запросов.
Опять же, этот пример – гипотетический сценарий, использующий специально созданные данные запросов и ответов. Ваше знание систем и протоколов, к которым ваша среда должна иметь доступ, является важным для определения того, какой трафик является легитимным, а какой может быть заблокирован.
Вывод
В этом руководстве вы установили Suricata из репозиториев программного обеспечения OISF. Установка Suricata таким образом гарантирует, что вы сможете получать обновления всякий раз, когда выходит новая версия Suricata. После установки Suricata вы отредактировали конфигурацию по умолчанию, чтобы добавить идентификатор потока сообщества для использования с другими средствами безопасности. Вы также включили живую перезагрузку правил и загрузили начальный набор правил.
После того как вы подтвердили конфигурацию Suricata, вы начали процесс и сгенерировали некоторый тестовый HTTP-трафик. Вы убедились, что Suricata может обнаруживать подозрительный трафик, проверив оба стандартных журнала, чтобы убедиться, что они содержат предупреждение, соответствующее правилу, которое вы тестировали.
Для получения дополнительной информации о Suricata посетите официальный сайт Suricata. Для получения более подробной информации о любых из опций конфигурации, которые вы настроили в этом руководстве, обратитесь к руководству пользователя Suricata.
Теперь, когда у вас установлен и настроен Suricata, вы можете перейти к следующему руководству в этой серии Понимание сигнатур Suricata, где вы узнаете, как писать свои собственные пользовательские правила Suricata. Вы узнаете о различных способах создания предупреждений, или даже о том, как полностью блокировать трафик, основываясь на критериях, таких как недопустимые пакеты TCP/IP, содержание DNS-запросов, HTTP-запросы и ответы, а также рукопожатия TLS.
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-suricata-on-centos-8-stream