Snort или Suricata. Част 2: инсталиране и първоначална конфигурация на Suricata

Ако вярваме на статистиката, обемът на мрежовия трафик нараства с около 50% всяка година. Това води до увеличаване на натоварването на оборудването и по-специално повишава изискванията към производителността на IDS/IPS. Можете да закупите скъпо специализирано оборудване, но има и по-евтин вариант — внедряване на една от системите с отворен код. Много начинаещи администратори смятат, че инсталирането и конфигурирането на безплатна IPS е доста сложно. В случая със Suricata това не е напълно вярно — може да я инсталирате и да започнете да отразявате типични атаки с набор от безплатни правила за няколко минути.

Snort или Suricata. Част 2: инсталиране и първоначална конфигурация на Suricata
Snort или Suricata. Част 1: избираме безплатна IDS/IPS за защита на корпоративната мрежа

Защо е необходима още една отворена IPS?

Дълго време считаната за стандарт система Snort се разработва от края на деветдесетте години, затова първоначално беше еднопоточна. През годините в нея се появиха всички съвременни функции, като поддръжка на IPv6, възможност за анализ на приложения на протоколи или универсален модул за достъп до данни.

Основният движок Snort 2.X се научи да работи с няколко ядра, но така и остана еднопоточен и затова не може оптимално да използва предимствата на съвременните хардуерни платформи.

Проблемът беше решен в третата версия на системата, но тя се подготвяше толкова дълго, че на пазара вече се появи написаната от нулата Suricata. През 2009 година тя започна да се разработва именно като многопоточно алтернатива на Snort, разполагаща от кутията с функции на IPS. Кодът се разпространява под лиценза GPLv2, но финансовите партньори на проекта имат достъп до затворената версия на движка. Някои проблеми с мащабируемостта в първите версии на системата се появиха, но те бяха сравнително бързо решени.

Защо Suricata?

В Suricata има няколко модула (както в Snort): за улавяне, събиране, декодиране, откриване и извеждане. По подразбиране улавяният трафик преминава през декодиране с един поток, въпреки че това е по-натоварващо за системата. При необходимост потоковете могат да бъдат разделени в настройките и разпределени по процесорите — Suricata е много добре оптимизирана за конкретно хардуерно оборудване, макар че това вече не е на ниво HOWTO за начинаещи. Също така си струва да се отбележи наличието в Suricata на напреднали средства за инспекция на HTTP, основани на библиотеката HTP. Те също могат да се използват за протоколиране на трафика без откритие. Системата също така поддържа декодиране на IPv6, включително тунели IPv4-in-IPv6, IPv6-in-IPv6 и други.

За улавяне на трафика могат да се използват различни интерфейси (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING), а в режим Unix Socket може автоматично да се анализират улавяните от друг снифер файлове PCAP. Освен това, модулната архитектура на Suricata опростява свързването на нови елементи за улавяне, декодиране, анализ и обработка на мрежови пакети. Важно е също така да се отбележи, че в Suricata блокирането на трафика се извършва със средствата на вградения филтър на операционната система. В GNU/Linux са налични два варианта на работа на IPS: чрез опашка NFQUEUE (режим NFQ) и чрез zero copy (режим AF_PACKET). В първия случай пакетът, попадащ в iptables, се насочва към опашката NFQUEUE, където може да се обработва на потребителско ниво. Suricata го обработва по своите правила и издава едно от трите решения: NF_ACCEPT, NF_DROP и NF_REPEAT. Първите две не изискват обяснения, а последното позволява маркиране на пакети и изпращането им в началото на текущата таблица iptables. Режимът AF_PACKET се отличава с по-висока производителност, но налага на системата редица ограничения: тя трябва да има два мрежови интерфейса и да работи като шлюз. Блокираният пакет просто не се препраща към втория интерфейс.

Важно свойство Suricata — возможность использования разработок для Snort. Администратору доступны, в частности, наборы правил Sourcefire VRT и OpenSource Emerging Threats, а также коммерческие Emerging Threats Pro. Унифицированный вывод можно анализировать с помощью популярных бэкендов, также поддерживается вывод в PCAP и Syslog. Настройки системы и правила хранятся в файлах формата YAML, который легко читается и может обрабатываться автоматически. Движок Suricata распознает множество протоколов, поэтому в правилах нет необходимости привязываться к номеру порта. Кроме того, в правилах Suricata активно применяется концепция flowbits. Для отслеживания срабатываний используются переменные сессии, позволяющие создавать и применять различные счетчики и флаги. Многие IDS рассматривают разные TCP-соединения как отдельные сущности и могут не увидеть связи между ними, что свидетельствует о начале атаки. Suricata старается видеть общую картину и во многих случаях распознает распределенный по разным соединениям вредоносный трафик. О её преимуществах можно говорить долго, лучше перейдем к установке и настройке.

Как да инсталирам?

Нам предстоит установить Suricata на виртуальный сервер, работающий под управлением Ubuntu 18.04 LTS. Все команды необходимо выполнять от имени суперпользователя (root). Наиболее безопасный вариант — подключиться к серверу по SSH с правами обычного пользователя, а затем применить утилиту sudo для повышения привилегий. Сначала необходимо установить пакеты, которые нам понадобятся:

sudo apt -y install libpcre3 libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev libjansson-dev pkg-config libnetfilter-queue-dev geoip-bin geoip-database geoipupdate apt-transport-https

Подключаем внешний репозиторий:

sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update

Устанавливаем последнюю стабильную версию Suricata:

sudo apt-get install suricata

При необходимост правим конфигурационните файлове с име, заменявайки зададеното по подразбиране eth0 с фактическото име на външния интерфейс на сървъра. Настройките по подразбиране се съхраняват в файла /etc/default/suricata, а потребителските - в /etc/suricata/suricata.yaml. Настройката на IDS в по-голямата си част се ограничава до редактиране на този конфигурационен файл. В него има множество параметри, които по име и предназначение съвпадат с аналогични от Snort. Синтаксисът обаче е напълно различен, но файлът се чете много по-лесно от конфигурациите на Snort, освен това е добре коментиран.

sudo nano /etc/default/suricata

Snort или Suricata. Част 2: инсталиране и първоначална конфигурация на Suricata

и

sudo nano /etc/suricata/suricata.yaml

Snort или Suricata. Част 2: инсталиране и първоначална конфигурация на Suricata

Внимание! Преди стартиране е добре да проверите стойностите на променливите от секцията vars.

За да завършите настройката, е необходимо да инсталирате suricata-update за обновяване и изтегляне на правила. Това е доста просто:

sudo apt install python-pip
sudo pip install pyyaml
sudo pip install <a href="https://github.com/OISF/suricata-update/archive/master.zip">https://github.com/OISF/suricata-update/archive/master.zip</a>
sudo pip install --pre --upgrade suricata-update

След това трябва да стартираме командата suricata-update за инсталиране на набора от правила Emerging Threats Open:

sudo suricata-update

Snort или Suricata. Част 2: инсталиране и първоначална конфигурация на Suricata

За да видим списъка с източниците на правила, изпълняваме следната команда:

sudo suricata-update list-sources

Snort или Suricata. Част 2: инсталиране и първоначална конфигурация на Suricata

Обновяваме източниците на правила:

sudo suricata-update update-sources

Snort или Suricata. Част 2: инсталиране и първоначална конфигурация на Suricata

Преглеждаме отново обновените източници:

sudo suricata-update list-sources

При нужда можете да активирате наличните безплатни източници:

sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklist

След това е необходимо отново да обновите правилата:

sudo suricata-update

Тук инсталацията и първоначалната настройка на Suricata в Ubuntu 18.04 LTS може да се счита за завършена. Накрая започва най-интересното: в следващата статия ще свържем виртуалния сървър с офисната мрежа чрез VPN и ще започнем да анализираме целия входящ и изходящ трафик. Особено внимание ще отделим на блокирането на DDoS атаки, активността на злонамерен софтуер и опитите за експлоатация на уязвимости в услугите, достъпни от обществени мрежи. За илюстрация ще симулираме атаки на най-разпространените типове.

Snort или Suricata. Част 2: инсталиране и първоначална конфигурация на Suricata

Snort или Suricata. Част 2: инсталиране и първоначална конфигурация на Suricata

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster