В этом руководстве вы узнаете, как установить и настроить Suricata на CentOS 8. Suricata – это бесплатный механизм обнаружения сетевых угроз с открытым исходным кодом. Он может функционировать как механизм обнаружения вторжений (IDS), встроенная система предотвращения вторжений (IPS), мониторинг сетевой безопасности (NSM), а также как средство автономной обработки pcap. Он работает, проверяя сетевой трафик с помощью правил и сигнатур, а также поддерживает скрипты Lua для обнаружения сложных угроз.
Благодаря способности записывать журналы в форматах YAML и JSON, Suricata может быть интегрирована с другими инструментами, такими как SIEM, Splunk, Logstash / Elasticsearch, Kibana для дальнейшей обработки и визуализации журналов.
Установка и настройка Suricata на CentOS 8
Системные Требования
Suricata является многопоточным, поэтому, если у вас достаточно ядер, вы можете использовать их как можно больше. Кроме того, выделите достаточно оперативной памяти. В этой демонстрации мы выделили 2 виртуальных ЦП и 4 ГБ ОЗУ нашему серверу Suricata.
Скачать исходный код Suricata
wget https://www.openinfosecfoundation.org/download/suricata-5.0.3.tar.gz -P /tmp
После завершения загрузки извлеките исходный код;
cd /tmp
tar xzf suricata-5.0.3.tar.gz
Перейдите в исходный каталог, соберите и установите Suricata на CentOS 8.
cd suricata-5.0.3
Запустите сценарий настройки, чтобы адаптировать Suricata к системе и убедитесь, что все необходимые зависимости присутствуют.
./configure --sysconfdir=/etc --localstatedir=/var --prefix=/usr/ --enable-lua --enable-geopip
Команда устанавливает Suricata в /usr/bin/suricata, имеет конфигурацию /etc/suricataи используется /var/log/suricataкак каталог журнала. Дополнительные параметры сборки см ./configure —help. В. Скомпилируйте и установите правила и конфигурации Suricata.
make
make install-full
...
22/7/2020 -- 21:14:44 - -- Backing up current rules.
22/7/2020 -- 21:14:44 - -- Writing rules to /var/lib/suricata/rules/suricata.rules: total: 27530; enabled: 20677; added: 27530; removed 0; modified: 0
22/7/2020 -- 21:14:44 - -- Skipping test, disabled by configuration.
22/7/2020 -- 21:14:44 - -- Done.
You can now start suricata by running as root something like:
/usr/bin/suricata -c /etc/suricata/suricata.yaml -i eth0
If a library like libhtp.so is not found, you can run suricata with:
LD_LIBRARY_PATH=/usr/lib /usr/bin/suricata -c /etc/suricata/suricata.yaml -i eth0
The Emerging Threats Open rules are now installed. Rules can be
updated and managed with the suricata-update tool.
For more information please see:
https://suricata.readthedocs.io/en/latest/rule-management/index.html
make[1]: Leaving directory '/tmp/suricata-5.0.3'
Правила Сурикаты
Suricata использует различные наборы правил / сигнатуры для обнаружения подходящих угроз и предупреждения о них. Правила также известны как подписи. Emerging Threats , Emerging Threats Pro и VRT источника пожара – наиболее часто используемые правила.
В большинстве случаев вы можете найти файлы правил в папке /etc/suricata/rules/. Это когда вы устанавливаете Suricata из репозиториев.
ls /etc/suricata/rules/
app-layer-events.rules dhcp-events.rules dns-events.rules http-events.rules kerberos-events.rules nfs-events.rules smb-events.rules stream-events.rules
decoder-events.rules dnp3-events.rules files.rules ipsec-events.rules mod
Правила Emergency Threat обычно хранятся как /var/lib/suricata/rules/suricata.rules. Suricata.rules файл обычно содержит все правила , определенные в правилах файл , расположенный под /etc/suricata/rules/.
Чтобы установить и обновить правила Emergency Threat, используйте suricata-updateкоманду
suricata-update
Это загружается и устанавливается suricata.rules.
Базовая настройка Suricata
Файл конфигурации содержит множество настраиваемых параметров. Однако для нашей базовой настройки мы сосредоточимся только на сетевом интерфейсе, который прослушивает Suricata, и IP-адресе, прикрепленном к этому интерфейсу. Чтобы найти интерфейс и IP-адрес, выполните команду ниже;
ip --brief add
lo UNKNOWN 127.0.0.1/8 ::1/128
enp0s3 UP 10.0.2.15/24
enp0s8 UP 192.168.56.133/24 fe80::12c8:9a8a:6d1:deaf/64
В нашем случае наш интерфейс – enp0s8, а IP-адрес – 192.168.56.133.
Откройте и отредактируйте файл конфигурации Suricata.
vim /etc/suricata/suricata.yaml
В разделе vars вам необходимо настроить Suricata, чтобы различать вашу внутреннюю сеть, которую необходимо защитить, и внешнюю сеть. Это может быть сделано путем определения правильных значений для HOME_NET и EXTERNAL_NET переменных соответственно при адресных группах. HOME_NETПеременная должна включать в себя IP – адрес интерфейса , на котором Suricata прослушивает и все локальные сети для защиты. Эти EXTERNAL_NET переменные должны определить любой IP или сети , которая не является локальным.
...
vars:
# more specific is better for alert accuracy and performance
address-groups:
#HOME_NET: "[192.168.0.0/16,10.0.0.0/8,172.16.0.0/12]"
HOME_NET: "[192.168.56.133]"
#HOME_NET: "[192.168.0.0/16]"
#HOME_NET: "[10.0.0.0/8]"
#HOME_NET: "[172.16.0.0/12]"
#HOME_NET: "any"
EXTERNAL_NET: "!$HOME_NET"
...
В af-packet разделе установите значение интерфейса для вашего имени интерфейса.
...
# Linux high speed capture support
af-packet:
- interface: enp0s8
...
Сохраните и выйдите из файла конфигурации.
Укажите правила Suricata
Определите файлы правил Suricata для использования. В этой демонстрации мы используем правила ET по умолчанию;
...
default-rule-path: /var/lib/suricata/rules
rule-files:
- suricata.rules
...
Запуск Suricata
Прежде чем вы сможете запустить его, вам необходимо указать интерфейс, который он прослушивает, в /etc/sysconfig/suricataфайле конфигурации.
vim /etc/sysconfig/suricata
...
# Add options to be passed to the daemon
#OPTIONS="-i eth0 --user suricata "
OPTIONS="-i enp0s8 --user suricata "
suricata -D -c /etc/suricata/suricata.yaml -i enp0s8