Snort ali Suricata. Del 2: namestitev in začetna nastavitev Suricata

Če verjamemo statistiki, se obseg omrežnega prometa vsako leto povečuje za približno 50 %. To vodi v povečanje obremenitve opreme in posledično dviga zahteve po zmogljivosti IDS/IPS. Lahko kupite drago specializirano strojno opremo, vendar je tukaj cenejša možnost – uvedba ene od sistemov z odprtokodnim izvorom. Mnogi začetniki administratri menijo, da je namestitev in konfiguracija brezplačne IPS precej zapletena. V primeru Suricate to ni povsem res – namestitev in začetek obrambe pred tipičnimi napadi s paketom brezplačnih pravil lahko opravite v nekaj minutah.

Snort ali Suricata. Del 2: namestitev in začetna nastavitev Suricata
Snort ili Suricata. Deo 1: biramo besplatan IDS/IPS za zaštitu korporativne mreže

Zakaj še ena odprta IPS?

Dolgo časa je bila standardni sistem Snort, ki se razvija od konca devetdesetih let, zato je bila sprva enovita. Tehnične novosti, kot so podpora za IPv6, možnost analize protokolov aplikacijskega nivoja ali univerzalni dostop do podatkov, so se pojavile šele po mnogih letih.

Osnovni motor Snort 2.X je naučil delati z več jedri, vendar je ostal enoviten in zato ne more optimalno izkoristiti prednosti sodobnih strojnih platform.

Težava je bila rešena v tretji različici sistema, vendar so jo pripravljali tako dolgo, da je na trgu že nastala Suricata, napisana iz nič. Leto 2009 je bilo začetek njenega razvoja kot večnitne alternative Snort, ki že ima funkcionalnosti IPS. Koda se širi pod licenco GPLv2, vendar imajo finančni partnerji projekta dostop do zaprte različice motorja. V prvih različicah sistema so se pojavile nekatere težave s skalabilnostjo, vendar so bile razmeroma hitro rešene.

Zakaj Suricata?

V Suricata obstaja več modulov (kot tudi v Snortu): zajem, zbiranje, dekodiranje, odkrivanje in izhod. Privzeto zajeti promet poteka do dekodiranja v enem toku, čeprav to bolj obremeni sistem. Po potrebi lahko tokove ločimo v nastavitvah in jih razporedimo po procesorjih — Suricata se zelo dobro optimizira za konkretno strojno opremo, čeprav to ni več na ravni HOWTO za začetnike. Prav tako je vredno omeniti prisotnost naprednih orodij za inšpekcijo HTTP, ki temeljijo na knjižnici HTP. Ta se lahko uporablja tudi za beleženje prometa brez odkrivanja. Sistem prav tako podpira dekodiranje IPv6, vključno s tuneli IPv4-in-IPv6, IPv6-in-IPv6 in drugimi.

Za zajem prometa se lahko uporabljajo različni vmesniki (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING), v načinu Unix Socket pa lahko avtomatsko analiziramo zajete datoteke PCAP, ki jih je uporabil drug sniffer. Poleg tega modularna arhitektura Suricate poenostavi priključitev novih elementov za zajemanje, dekodiranje, analizo in obdelavo omrežnih paketov. Pomembno je tudi omeniti, da Suricata blokira promet s sredstvi vgrajenega filtra operacijskega sistema. V GNU/Linux sta na voljo dva načina delovanja IPS: preko vrste NFQUEUE (način NFQ) in preko zero copy (način AF_PACKET). V prvem primeru paket, ki pride v iptables, gre v vrsto NFQUEUE, kjer ga lahko obdelujemo na uporabniški ravni. Suricata ga pregleda po svojih pravilih in izda eno od treh odločitev: NF_ACCEPT, NF_DROP in NF_REPEAT. Prva dva ne zahtevata pojasnila, zadnji pa omogoča označevanje paketov in njihovo pošiljanje na začetek trenutne tabele iptables. Način AF_PACKET se ponaša z višjo učinkovitostjo, vendar nalaga sistemu vrsto omejitev: mora imeti dva omrežna vmesnika in delovati kot prehod. Zablokirani paket se enostavno ne posreduje na drugi vmesnik.

Pomembna lastnost Suricate je možnost uporabe rešitev, razvitih za Snort. Administratorju so na voljo, med drugim, zbirke pravil Sourcefire VRT in OpenSource Emerging Threats ter komercialne Emerging Threats Pro. Enoten izhod je mogoče analizirati s priljubljenimi backendi, podprt pa je tudi izhod v PCAP in Syslog. Nastavitve sistema in pravila so shranjena v datotekah formata YAML, ki je lahko berljiv in ga je mogoče obdelati avtomatsko. Motor Suricata prepozna številne protokole, zato v pravilih ni treba vezati na številko vrat. Poleg tega v pravilih Suricata aktivno prakticira koncept flowbits. Za sledenje dogodkom se uporabljajo spremenljivke seje, ki omogočajo ustvarjanje in uporabo različnih števcov in zastavic. Mnogi IDS obravnavajo različne TCP povezave kot ločene entitete in morda ne opazijo povezav med njimi, kar lahko pomeni začetek napada. Suricata skuša videti celotno sliko in v mnogih primerih prepozna zlonamerni promet, razporejen po različnih povezavah. O njenih prednostih bi se lahko dolgo razpravljalo, raje pa se usmerimo na namestitev in nastavitev.

Kako namestiti?

Namestili bomo Suricato na virtualnem strežniku, ki deluje pod operacijskim sistemom Ubuntu 18.04 LTS. Vse ukaze je treba izvajati v imenu superuporabnika (root). Najbolj varen način je dostop do strežnika prek SSH z običajnimi pravicami uporabnika, nato pa uporabiti orodje sudo za pridobitev pravic. Najprej je treba namestiti pakete, ki jih bomo potrebovali:

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

Povežemo zunanji repozitorij:

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

Namestimo najnovejšo stabilno različico Suricate:

sudo apt-get install suricata

Po potrebi prilagodimo konfiguracijske datoteke imena, zamenjamo privzeto uporabljeno eth0 z dejanskim imenom zunanjega vmesnika strežnika. Privzete nastavitve so shranjene v datoteki /etc/default/suricata, uporabniške pa v /etc/suricata/suricata.yaml. Konfiguracija IDS je večinoma omejena na urejanje te konfiguracijske datoteke. V njej je veliko parametrov, katerih imena in nameni se ujemajo z analogi iz Snorta. Sintaksa je sicer popolnoma drugačna, vendar je datoteko lažje brati kot nastavitve Snorta, poleg tega pa je dobro komentirana.

sudo nano /etc/default/suricata

Snort ali Suricata. Del 2: namestitev in začetna nastavitev Suricata

in

sudo nano /etc/suricata/suricata.yaml

Snort ali Suricata. Del 2: namestitev in začetna nastavitev Suricata

Opozorilo! Pred zagonem je treba preveriti vrednosti spremenljivk iz razdelka vars.

Za dokončanje nastavitve bo potrebno namestiti suricata-update za posodabljanje in prenos pravil. To lahko storite zelo preprosto:

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

Nato moramo zagnati ukaz suricata-update za namestitev niza pravil Emerging Threats Open:

sudo suricata-update

Snort ali Suricata. Del 2: namestitev in začetna nastavitev Suricata

Za ogled seznama virov pravil izvedemo naslednji ukaz:

sudo suricata-update list-sources

Snort ali Suricata. Del 2: namestitev in začetna nastavitev Suricata

Posodabljamo vire pravil:

sudo suricata-update update-sources

Snort ali Suricata. Del 2: namestitev in začetna nastavitev Suricata

Ponovno preverimo posodobljene vire:

sudo suricata-update list-sources

Po potrebi lahko omogočimo razpoložljive brezplačne vire:

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

Po tem je potrebno še enkrat posodobiti pravila:

sudo suricata-update

Namestitev in začetna nastavitev Suricate v Ubuntu 18.04 LTS sta tako zaključeni. Naprej sledi najzanimivejše: v naslednjem članku bomo povezali virtualni strežnik z pisarniško omrežje prek VPN in začeli analizirati ves prihajajoči in odhajajoči promet. Posebno pozornost bomo posvetili blokiranju napadov DDoS, aktivnosti zlonamerne programske opreme in poskusom izkoriščanja ranljivosti pri storitvah, dostopnih iz javnih omrežij. Za boljšo predstavo bodo simulirani napadi najpogostejših tipov.

Snort ali Suricata. Del 2: namestitev in začetna nastavitev Suricata

Snort ali Suricata. Del 2: namestitev in začetna nastavitev Suricata

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster