GNU/Linux >> Znalost Linux >  >> Linux

Konfigurace Suricaty jako systému prevence narušení (IPS)

S rostoucí popularitou kybernetické kriminality existuje naléhavá potřeba, aby podniky měly lepší ochranu proti hackerům. Intrusion Prevention System (IPS) je jedním z nejlepších způsobů obrany proti počítačovým útokům. Ale než budete hledat na internetu IPS, vyzkoušejte Suricata.

V tomto tutoriálu se naučíte, jak nakonfigurovat plně funkční Suricata IPS na linuxovém serveru pro ochranu vaší sítě před online hrozbami.

Připraveni? Čtěte dále a začněte chránit svou síť!

Předpoklady

Tento tutoriál bude praktickou ukázkou. Pokud je chcete sledovat, ujistěte se, že máte následující:

  • Linuxový server – Tato ukázka používá Ubuntu 20.04 LTS, ale bude fungovat jakákoli distribuce Linuxu.
  • Uživatel bez oprávnění root s právy sudo.
  • V závislosti na konfiguraci sítě a na tom, jak hodláte Suricata používat, budete možná potřebovat více či méně CPU a RAM pro váš server. Obecně platí, že čím více provozu plánujete zkontrolovat, tím více zdrojů přidělíte Suricatě. Ve vývojářském prostředí plánujte pro začátek použít alespoň 2 CPU a 8 GB RAM, aby Suricata mohla plnit své úkoly, aniž by byla ohrožena kvalita služeb pro všechny uživatele.

Instalace Suricaty a přidání Úložiště PPA

Suricata se na Ubuntu neinstaluje ve výchozím nastavení, ale instalace Suricaty je podobná, jako když instalujete další balíčky do vašeho systému.

1. Spusťte apt update příkaz k aktualizaci dostupných balíčků ve vašem systému.

sudo apt update -y

2. Dále spusťte add-apt-repository příkaz k přidání úložiště PPA spravovaného Open Information Security Foundation (OISF). Přidáním úložiště PPA získáte nejnovější a stabilní verzi Suricata (ppa:oisf/suricata-stable ).

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

3. Spusťte znovu sudo apt update příkaz k načtení nově přidaného úložiště Suricata do indexu balíčků vašeho systému.

sudo apt update -y

4. Nyní spusťte sudo apt policy pro ověření, že jste Suricata PPA přidali správně. Před instalací Suricata

se ujistěte, že vidíte Suricata PPA v seznamu, jak je uvedeno níže
sudo apt policy

5. Spusťte následující příkaz do install suricata na vašem systému.

sudo apt install suricata -y

6. Po dokončení instalace spusťte systemctl status příkazem níže zkontrolujte suricata služba status .

sudo systemctl status suricata

Níže můžete vidět, že služba Suricata je aktivní (běžící).

Konfigurace Suricata

Balíček Suricata se dodává s konfiguračním souborem s názvem suricata.yaml na adrese /etc/suricata adresář. Tento konfigurační soubor má mnoho různých nastavení pro mnoho dalších případů použití. Ale mějte na paměti, že ve výchozím konfiguračním souboru je několik nastavení, která musíte před použitím Suricaty vyladit.

Výchozí režim pro Suricata je režim detekce narušení (IDS), který zaznamenává, ale nezastavuje žádný provoz. Tento režim se používá při konfiguraci a seznamování se Suricatou. Až budete se službou Suricata více spokojeni a lépe pochopíte, na jaké typy provozu vás Suricata upozorní, můžete se rozhodnout zapnout režim IPS.

Suricata připojí pole ve formátu JSON (ID toku komunity). ID toku komunity je 8bajtové pole, které umožňuje korelovat záznamy generované jinými nástroji. Tato funkce je užitečná, když používáte Suricata ve spojení s dalšími nástroji, jako je Bro nebo Elasticsearch.

1. Otevřete /etc/suricata/suricata.yaml soubor ve vašem oblíbeném textovém editoru.

2. Najděte řádek s textem community-id:false a změňte jej na id komunity:true . Uložte změny a ukončete textový editor.

Pokaždé, když prozkoumáte události, uvidíte ID toku komunity v jejich výstupu JSON.

Dále spusťte následující příkaz a vyhledejte zařízení s výchozí trasou ve vašem systému (route show default ). -p příznak říká ip příkaz vytisknout zařízení způsobem čitelným pro člověka, zatímco -j flag vypíše výstup JSON.

Suricata je ve výchozím nastavení nakonfigurována tak, aby snímala pakety z libovolného dostupného síťového rozhraní. Toto chování však můžete změnit a určit rozhraní, které má Suricata poslouchat, když se spustí.

 ip -p -j route show default

Jak vidíte níže, dev Parametr určuje rozhraní, které bude Suricata používat pro sniffování paketů. V této ukázce je rozhraní eth0 , ale vaše rozhraní se může lišit, například tun0, wlan0 a tak dále.

4. Nakonec otevřete /etc/suricata/suricata.yaml konfiguračního souboru, vyhledejte rozhraní parametr pod af-packet oddíl a příslušně jej upravte. V této ukázce eth0 se používá jako rozhraní pro sniffování paketů.

Uložte změny, ale textový editor ponechte zatím otevřený.

Nastavení funkce obnovení živého pravidla

Nyní jste nakonfigurovali Suricata, ale to je jen začátek ochrany vaší sítě. Obvykle byste chtěli přidat pravidla na místě a automaticky je znovu načíst. Jak? Funkce aktualizace pravidel Suricata v reálném čase vám umožňuje aktualizovat pravidla za běhu. Díky tomu nemusíte Suricatu restartovat ručně, aby se nová pravidla projevila.

Otevřete soubor /etc/suricata/suricata.yaml zkopírujte/vložte následující příkazy na konec obsahu souboru a uložte změny. Tyto direktivy vám umožňují aktivovat funkci opětovného načtení aktivních pravidel.

S tímto nastavením, když upravíte/aktualizujete své sady pravidel, změny se projeví bez restartování vaší služby Suricata.

detect-engine:
  - rule-reload: true

Nyní spusťte kill příkaz níže, abyste informovali váš proces Suricata ($(pidof suricata) ) pro aktualizaci pravidel bez restartování.

Příkaz odešle uživatelsky definovaný signál (-usr2 ) na zadané ID procesu, pak Suricata automaticky provede následující:

  • Načtěte novou konfiguraci pro aktualizaci proměnných a hodnot pravidla.
  • Načíst nová pravidla
  • Vytvořit nový detekční modul
  • Vyměňte staré a nové detekční nástroje
  • Ujistěte se, že jsou všechna vlákna aktualizována
  • Uvolněte starý detekční modul
sudo kill -usr2 $(pidof suricata)

Aktualizace sad pravidel Suricata

Funkce opětovného načtení pravidel v reálném čase je připravena, ale nebude mít žádný účel, pokud neaktualizujete své sady pravidel. Ve výchozím nastavení má balíček Suricata omezenou sadu pravidel, která detekuje pouze nejběžnější internetové protokoly umístěné v /etc/suricata/rules adresář.

V tomto okamžiku se zobrazí Vzoru neodpovídají žádné soubory pravidel chybová zpráva, jako je ta níže, kdykoli se pokusíte spustit a používat službu Suricata. Tato chybová zpráva znamená, že neexistují žádné sady pravidel, které by Suricata mohla použít.

Chcete-li tuto chybu opravit, poskytněte své instanci Suricata soubory sady pravidel. Naštěstí má Suricata nástroj s názvem suricata-update které vám pomohou při načítání dalších sad pravidel od poskytovatelů třetích stran.

1. Spusťte níže uvedený příkaz a získejte aktualizaci pro svou instanci Suricata.

sudo suricata-update

Jak můžete vidět níže, výstup ukazuje, že suricata-update příkaz načetl pravidla připojením k https://rules.emergingthreats.net/open/. Příkaz poté uloží nová pravidla do adresáře /var/lib/suricata/rules/ .

Výstup také vytiskne následující:

  • Celkový počet (31737 ) sad pravidel
  • Počet povolených pravidel (24355 )
  • Počet, kolik jich bylo přidáno (31737 )/odstraněno (0 ).

Dále spusťte níže uvedený příkaz a vypište všechny poskytovatele sady pravidel (list-sources ).

suricata-update příkaz načte sady pravidel od mnoha poskytovatelů, včetně bezplatných a komerčních poskytovatelů.

sudo suricata-update list-sources

Níže vidíte malou část seznamu. Poznamenejte si název sady pravidel, ze kterého má Suricata konkrétně načítat sady pravidel. Tento výukový program načítá et/open sady pravidel pro demonstraci (krok tři).

3. Spusťte níže uvedený příkaz pro načtení a zahrnutí (enable-source ) et/open sady pravidel podle vašich pravidel Suricata.

sudo suricata-update enable-source et/open

Nakonec znovu spusťte suricata-update příkaz k načtení nově vybrané sady pravidel.

sudo suricata-update

Ověření konfigurace Suricata

Nakonfigurovali jste Suricata a dokonce jste přidali sady pravidel, takže je čas ověřit vaše změny a zajistit, aby vše fungovalo podle očekávání. Balíček Suricata má vestavěnou ověřovací službu, která vám umožní vidět jakékoli odchylky od aktuální konfigurace.

Spusťte suricata příkaz níže pro ověření změn v konfiguračním souboru Suricata (-c /etc/suricata/suricata.yaml ). Příkaz také zobrazí všechny ověřovací zprávy (-v ).

-T příznak říká Suricatě, aby běžela v „testovacím režimu“ a „shora dolů“. Oba režimy mají přísnější pravidla pro párování paketů a je méně pravděpodobné, že budou falešně pozitivní.

sudo suricata -T -c /etc/suricata/suricata.yaml -v

Vzhledem k tomu, že Suricata je vysoce konfigurovatelný firewall, může dokončení testu trvat několik minut. Pokud nejsou žádné chyby, zobrazí se výstup podobný tomu níže, který ukazuje dokončeno zpráva.

Pokud váš konfigurační soubor obsahuje chyby podobné té níže, Suricata vytiskne každou chybu s uvedením konkrétních řádků způsobujících problémy. Pokud se zobrazí tyto chyby, opravte každý problém s konfigurací jeden po druhém, dokud nebude ověření úspěšné.

Testování pravidel Suricata

Nyní, když jsou vaše konfigurační soubory Suricata ověřeny, můžete spustit Suricata, abyste viděli, že fungují správně. Suricata použijete k testování ET Open (2100498) s curl příkaz k detekci podezřelé aktivity/provozu.

V tuto chvíli má vaše instance Suricata více než 30 000 pravidel, která Suricata načetla z různých sad pravidel. Takže úplný test všech pravidel s jejich vysvětlením se do tohoto tutoriálu nevejde.

1. Spusťte curl níže, abyste vygenerovali nějaký provoz/požadavky/aktivity HTTP z webu TestMyNIDS. TestMyNIDS je e-learningový projekt věnovaný podpoře testů NIDS, ověřování a porovnávání. Web poskytuje jedinečnou platformu pro srovnávací analýzu NIDS a souvisejících nástrojů.

Tento web můžete použít k testování jakékoli podezřelé aktivity/provozu, abyste zjistili, zda vaše nakonfigurovaná sada pravidel funguje podle očekávání.

curl http://testmynids.org/uid/index.html

Data odezvy jsou navržena tak, aby spouštěla ​​falešný poplach, který se vydává za root systému Linux/Unix uživatel. A tento kořen uživatel je v systému, který může být kompromitován.

Dále spusťte grep níže prozkoumejte fast.log soubor v /var/log/suricata/ adresář pro odpovídající výstražnou zprávu 2100498 . Tento příkaz zkontroluje, zda v souboru protokolu není upozornění uživatele.

Kromě souboru fast.log je dalším souborem protokolu, na který je třeba dávat pozor, eve.log ve stejném adresáři.

grep 2100498 /var/log/suricata/fast.log

Uvidíte výstup podobný tomu níže, který ukazuje veřejnou IPv4 adresu vašeho systému.

3. Nyní spusťte jq níže, abyste prozkoumali eve.log soubor. eve.log se také používá pro protokolování událostí, ale ve formátu JSON (/var/log/suricata/eve.json ). Je to eve.json a fast.log soubory, které budete odkazovat na podezřelý provoz a zablokované pokusy. Po nalezení proveďte nezbytná opatření.

jq 'select(.alert .signature_id==2100498)' /var/log/suricata/eve.json

Níže vidíte „signature_id“:2100498 ve výstupu, což je ID podpisu výstrahy, které jste zadali v příkazu.

Můžete také vidět „community_id“:„1:ETRbv54GHTVCayHTUR5OIovK4gh2=“ ve výstupu, což je ID toku komunity, které jste nastavili v /etc/suricata/suricata.yaml soubor.

Toto community_id je užitečné, když používáte Suricata ve spojení s dalšími nástroji, jako je Elasticsearch, abyste získali úplný „zásobník monitorování zabezpečení“ za rozumně nízkou cenu.

Závěr

V tomto tutoriálu jste se naučili, jak nainstalovat a nakonfigurovat Suricata pomocí sad pravidel pro ochranu vaší sítě. Také jste prošli testováním, zda sady pravidel fungují generováním provozu ve vaší síti.

V tomto okamžiku Suricata funguje perfektně s vaší vlastní sadou pravidel pro detekci podezřelých aktivit/provozu ve vaší síti.

Proč na těchto nově nabytých znalostech nepostavit? Možná začít instalací a konfigurací Suricata, Zeek, zásobníku Elasticsearch, aby bylo možné nastavit úplný „zásobník monitorování zabezpečení“?


Linux
  1. Jak nainstalovat denyhosts na Ubuntu Linux 17.04 (bezpečnostní nástroj prevence narušení pro SSH a další)

  2. sudo -k vs. sudo -K

  3. pěkné sudo nebo sudo pěkné?

  1. Instalace a konfigurace php 7x na Centos 8

  2. 5.1 Surround System Subwoofer nefunguje?

  3. Udělte přístup sudo v Debianu a operačním systému Ubuntu

  1. Jak nainstalovat Docker na systém Fedora Linux

  2. Sudo Command v Linuxu

  3. Konfigurace sudo pro povolení příkazů pro uživatele bez oprávnění root v systému Linux