---
title: "Suricata IDS/IPS na pfSense"
url: https://michalasobczak.pl/pl/posts/suricata-ids-and-ips-on-pfsense.html
author: "Michał Sobczak"
description: "Wykrywanie zagrożeń i zapobieganie im. Wprowadzenie: aby zapewnić bezpieczeństwo w sieci, można wdrożyć system IDS lub IPS. Różnica tkwi w drugiej literze – D oznacza wykrywanie (detection), a P zapobieganie (prevention)."
published: 2022-09-25T09:34:54.000Z
updated: 2024-08-29T08:25:15.000Z
language: pl
categories: ["Security"]
tags: ["pfSense", "Security"]
license: CC BY-NC-ND 4.0 (https://creativecommons.org/licenses/by-nc-nd/4.0/)
---
# Suricata IDS/IPS na pfSense

Wykrywanie zagrożeń i zapobieganie im

## Spis treści

-   [Wprowadzenie](#introduction)
-   [Dlaczego IDS/IPS?](#why-idsips)
-   [O samym pfSense](#about-pfsense-itself)
-   [Instalacja i konfiguracja Suricaty w trybie IDS](#suricata-installation-amp-configuration-in-ids-mode)
-   [Włączanie trybu IPS](#enabling-ips-mode)
-   [Analiza zagrożeń](#threats-analysis)

## Wprowadzenie

Aby zapewnić bezpieczeństwo w sieci, można wdrożyć system IDS lub IPS. Różnica tkwi w drugiej literze – D oznacza wykrywanie (detection), a P zapobieganie (prevention). Najpierw uruchamia się system w trybie IDS i dopiero potem konfiguruje go tak, by stał się systemem IPS. Włączenie Suricaty w trybie IPS od samego początku może wprowadzać zamieszanie. Warto najpierw zobaczyć, co dzieje się w sieci, aby mieć pewność, że nie wygeneruje się zbyt wielu fałszywie pozytywnych alertów i blokad.

![Rys. Diagram ruchu](https://michalasobczak.pl/wp-content/uploads/2022/09/traffic.png)
*Rys. Diagram ruchu*

## Dlaczego IDS/IPS?

Możesz zapytać, po co mi system wykrywania lub zapobiegania włamaniom. To zasadne pytanie, bo możesz nie chcieć wiedzieć, co dzieje się w Twojej sieci albo jaki **złośliwy ruch uderza w Twoje serwery**. Ale jeśli **zależy Ci na Twoich danych**, to powinieneś mieć taki system. W niektórych scenariuszach może on też pomóc ograniczyć ruch złej jakości.

## O samym pfSense

Jestem wielkim fanem pfSense chyba od 2017 roku. Wcześniej używałem **packet filter** i szukałem interfejsu użytkownika. Na szczęście znalazłem pfSense, który spełnił moje wymagania. Domyślnie zawiera **firewall i router**, ale można go rozbudować o różne pakiety, takie jak HAProxy, OpenVPN czy IPsec.

## Instalacja i konfiguracja Suricaty w trybie IDS

Ten system IDS/IPS można oczywiście zainstalować jako samodzielny pakiet bez pfSense, ale jest on szczególnie przydatny w połączeniu z instalacją firewalla/routera. Pakiet można znaleźć w menedżerze pakietów pfSense w System, Package Manager, Available Packages:

![Rys. pfSense Package Manager](https://michalasobczak.pl/wp-content/uploads/2022/09/image-8.png)
*Rys. pfSense Package Manager*

Po instalacji stronę konfiguracji Suricaty można znaleźć w menu Services. Możesz zacząć od Global Settings. Zaznacz **„Install ETOpen Emerging Threats rules**” oraz „Hide Deprecated Rules Categories”.

![Rys. Konfiguracja pobierania reguł](https://michalasobczak.pl/wp-content/uploads/2022/09/image-9.png)
*Rys. Konfiguracja pobierania reguł*

Poniżej wybierz żądaną częstotliwość aktualizacji z listy rozwijanej **„Update Interval**”. Ja wybieram „1 DAY”. Możesz też zaznaczyć **„Live Rule Swap on Update”**, co sprawi, że przy aktualizacji reguły będą przeładowywane zamiast restartu usługi.

![Rys. Konfiguracja częstotliwości](https://michalasobczak.pl/wp-content/uploads/2022/09/image-10.png)
*Rys. Konfiguracja częstotliwości*

Dla **„Remove Blocked Hosts Interval**” wybieram od 6 do 24 godzin, w zależności od specyfiki systemu. Nawet jeśli nie zaczynasz w trybie IPS, koniecznie ustaw to przy pierwszej konfiguracji. Lepiej zrobić to teraz, niż pamiętać, żeby wrócić tu po jakimś czasie. Możesz po prostu o tym zapomnieć.

Następnie trzeba **wymusić pobranie reguł** w zakładce Updates. Przeważnie nie uruchamia się ono automatycznie, więc przy pierwszej okazji kliknij tu przycisk Update.

![Rys. Pobieranie reguł](https://michalasobczak.pl/wp-content/uploads/2022/09/image-11.png)
*Rys. Pobieranie reguł*

Jeśli masz przestarzałą instalację pfSense, to istnieje duże prawdopodobieństwo, że pakiet również będzie przestarzały i będzie próbował pobrać nieistniejące reguły. Skończy się to błędem. Nie będę tu opisywał, jak zaktualizować pfSense – zostanie to omówione w osobnym artykule. Jeśli pobieranie reguł działa bez problemu, to wszystko w porządku; jeśli nie, przygotuj się na dodatkową pracę.

Kolejną rzeczą jest **konfiguracja interfejsu**. Przejdź do zakładki Interfaces i dodaj interfejs. Jest tam kilka rzeczy do wybrania, zaczynając od pola wyboru Enable, jeśli chcesz, żeby Suricata działała na tym interfejsie.

![Rys. Ogólne ustawienia interfejsu](https://michalasobczak.pl/wp-content/uploads/2022/09/image-12.png)
*Rys. Ogólne ustawienia interfejsu*

Możesz tu wypróbować różne opcje dla **TLS, file-store i packet log**. Poza TLS pozostałe wymagają w obciążonej sieci mnóstwa miejsca na dysku. Pamiętaj więc, aby przydzielić tu wystarczająco dużo przestrzeni. W tej sekcji jest jeszcze jedna rzecz do skonfigurowania – **„Detect-Engine Profile”**, który zwykle ustawiam na „High” zamiast domyślnego „Medium”. Na razie nie zaznaczasz blokowania sprawców – na początku pozostajemy w trybie IDS zamiast IPS.

Wyborowi tylko **określonych kategorii reguł** poświęcony jest osobny artykuł ([można go znaleźć pod tym linkiem](https://michalasobczak.pl/pl/posts/disabling-uncategorized-internal-suricata-rules-in-pfsense.html)), więc pominę ten temat. Do celów testowych sugeruję włączenie kategorii reguł „3coresec”, „compromised” i „scan”. Gdy to zrobisz, przejdź do zakładki Interfaces i zrestartuj Suricatę na tym interfejsie. Jeśli się nie uruchamia, przejdź do zakładki Logs View i przejrzyj suricata.log w poszukiwaniu informacji diagnostycznych. Najczęściej problem dotyczy rozmiaru pamięci w stosunku do konfiguracji w zakładce Flow/Stream, ale to również temat na inny artykuł.

## Włączanie trybu IPS

Aby przygotować się do trybu zapobiegania, najpierw przejdź do zakładki Alerts i przeglądaj ją przez jakiś czas. W zależności od scenariusza możesz **spędzić dzień, a nawet miesiąc, po prostu próbując zrozumieć, co dzieje się w Twojej sieci/sieciach**. W sieciach korporacyjnych ciekawszy będzie ruch wychodzący niż przychodzący. W przypadku dostawców usług jest odwrotnie, więc to ruch przychodzący należy obserwować.

Warto pamiętać, że pakiet Suricata w pfSense doda Twoje lokalne adresy sieciowe, adresy interfejsów, a nawet podsieci tuneli do **listy pass, chroniąc je przed blokowaniem**. Jeśli chcesz blokować jakieś adresy wewnętrzne, koniecznie sprawdź tę domyślną listę pass albo nawet utwórz własną.

Gdy już poświęcisz trochę czasu na zbadanie, co dzieje się w Twojej sieci, a także w ruchu przychodzącym, czas **włączyć tryb blokowania**. Przejdź do ustawień interfejsu i zaznacz opcję „Block Offenders”.

![Rys. Włączanie trybu IPS, który blokuje sprawców](https://michalasobczak.pl/wp-content/uploads/2022/09/image-13.png)
*Rys. Włączanie trybu IPS, który blokuje sprawców*

Preferuję dwie rzeczy. Pierwsza to wybór **IPS Mode jako „Legacy Mode”**, który kopiuje pakiety zamiast przechwytywać je między kartą sieciową a systemem operacyjnym. Na początek jest to po prostu proste, bo w przeciwieństwie do „Inline Mode” wymaga niewiele dodatkowej pracy. Druga opcja, którą preferuję, to **blokowanie tylko adresów źródłowych** – „Which IP to Block” ustawione na „SRC”.

W przypadku ruchu wychodzącego adres źródłowy będzie lokalny, ale nie zostanie zablokowany, ponieważ znajduje się na liście pass sieci domowej. Jak wspomniałem wcześniej, konfiguracja zależy od charakterystyki sieci, które chcesz monitorować. Jeśli masz więcej ruchu wychodzącego, rozważ blokowanie adresu docelowego. Z jakiegoś powodu zaleca się blokowanie zarówno adresów źródłowych, jak i docelowych. Nie jestem do końca pewien dlaczego, bo wyraźnie nie pasuje to do wszystkich przypadków.

## Analiza zagrożeń

Po zapisaniu konfiguracji zrestartuj usługę Suricata na interfejsie i chwilę poczekaj. Publiczne adresy IPv4 są dobrze znane, więc nie zdziw się, gdy w ciągu kilku minut **zostaniesz przeskanowany i zbadany** przez różnego rodzaju crawlery. Dotyczy to nawet świeżo przydzielonych adresów publicznych. W większości instalacji widzę od 50 do 500 zablokowanych adresów publicznych w ciągu jednego dnia działania Suricaty. W sieciach domowych i biurowych zobaczysz sprawdzanie łączności i aktualizacji z różnych urządzeń. W środowiskach enterprise ruch będzie inny, a ponieważ to szeroki temat, **zostanie omówiony w kolejnym odcinku**. Bądź więc na bieżąco.
