Zaščitite svoje omrežje pred vsiljivci in nezaželenimi napadi z namestitvijo in nastavitvijo Snort IDS.

Če se resno ukvarjate z varnostjo omrežja, je namestitev rešitve IPS ali IDS nujna za utrjevanje omrežnega perimetra in odvračanje potencialno nezaželenega omrežnega prometa.

Snort je ena takšnih slavnih, brezplačnih za osebno uporabo in odprtokodnih rešitev IPS/IDS. Naučimo se, kako lahko namestite in nastavite Snort v sistemu Linux za zaščito svojega omrežja pred kibernetskimi napadi.

Kaj je Snort?

Snort je odprtokoden Sistem za odkrivanje in preprečevanje vdorov v omrežje (NIDS/IPS) programska oprema, ki, kot namiguje ime, pomaga pri varovanju vašega omrežnega perimetra z uveljavljanjem pravil in filtrov, ki zaznajo in izločijo potencialno zlonamerne pakete, vstavljene v vaše omrežje.

S programom Snort boste lahko izvajali napredno beleženje omrežnega prometa, vohanje paketov in analizo ter nastavili močan sistem za preprečevanje vdorov, ki ščiti vaše omrežje pred nezaželenimi in potencialno zlonamernimi prometa.

instagram viewer

Predpogoji za namestitev programa Snort

Preden namestite Snort, morate opraviti nekaj predhodnih nastavitev. To večinoma vključuje posodobitev in nadgradnjo vašega sistema ter namestitev odvisnosti, ki jih Snort potrebuje za pravilno delovanje.

Začnite s posodobitvijo in nadgradnjo sistema.

Na Ubuntu- in Distribucije Linuxa, ki temeljijo na Debianu:

sudo apt posodobitev && apt nadgradnja -y

Za Arch Linux in njegove izpeljanke:

sudo pacman -Syu

Na RHEL in Fedora:

nadgradnja sudo dnf

Ko je vaš sistem nadgrajen, nadaljujte z nameščanjem odvisnosti, ki jih zahteva Snort. Tu so ukazi, ki jih morate zagnati:

V Ubuntuju in Debianu zaženite:

sudo apt install -y build-essential autotools-dev libdumbnet-dev libluajit-5.1-dev libpcap-dev zlib1g-dev pkg-config libhwloc-dev cmake liblzma-dev openssl libssl-dev cpputest libsqlite3-dev libtool uuid-dev git autoconf bison flex libcmocka-dev libnetfilter-queue-dev libunwind-dev libmnl-dev ethtool libjemalloc-dev libpcre++-dev

V Arch Linuxu zaženite:

sudo pacman -S gperftools hwloc hyperscan ibdaqlibdnet libmnl libpcap libunwind luajit lz4 openssl pcre pulledporkxz zlib cmake pkgconf

Za RHEL in Fedoro izdajte naslednji ukaz:

sudo dnf namestite gcc gcc-c++ libnetfilter_queue-devel git flex bison zlib zlib-devel pcre pcredevel libdnet tcpdump libnghttp2 wget xz-devel -y

Poleg tega morate ročno namestiti knjižnico za pridobivanje podatkov, LibDAQ za Snort za pravilno delovanje in tudi gperftools za ustvarjanje gradbenih datotek.

Najprej prenesite izvorne datoteke LibDAQ z uradne spletne strani z uporabo ukaza wget. Nato ekstrahirajte arhiv in se premaknite v imenik z uporabo cd. Znotraj imenika zaženite bootstrap in konfigurirati skripti nato nadaljujte s pripravo datotek z make in jih namestite z narediti namestitev ukaz.

wget https://www.snort.org/downloads/snortplus/libdaq-3.0.11.tar.gz
tar -xzvf lib*
cd lib*
./bootstrap
./configure
narediti
sudo make install

Ko je LibDAQ nameščen, morate namestiti še zadnjo odvisnost: gperftools. Začnite tako, da prevzamete izvorne datoteke iz skladišča GitHub. Ekstrahirajte datoteke, premaknite se v imenik in zaženite konfiguracijski skript. Na koncu namestite paket z ukazoma make in make install.

wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.10/gperftools-2.10.tar.gz
tar -xvzf gper* && cd gper
./configure
narediti
sudo make install

Ko so te odvisnosti nameščene, lahko nadaljujete z naslednjimi koraki za namestitev programa Snort.

Namestite Snort iz vira v Linux

Ko ste končali s predhodnimi nastavitvami, se lahko zdaj osredotočite na namestitev dejanske programske opreme. Gradili ga boste iz vira, zato najprej zgrabite potrebne datoteke za gradnjo.

Uporabite ukaz wget ali ročno prenesite datoteke z uradne strani za prenos:

wget https://www.snort.org/downloads/snortplus/snort3-3.1.58.0.tar.gz

Prenesi:Smrkati

Ko se arhiv, ki vsebuje gradbene datoteke, konča s prenosom, ga ekstrahirajte z ukazom tar:

tar -xzvf smrčanje*

Premaknite se v ekstrahirano mapo, zaženite konfiguracijski skript, uporabite ukaz make za pripravo datotek in jih končno namestite z narediti namestitev:

cd snort*
./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc
cd build
narediti
sudo make install

Snort bo sedaj uspešno nameščen v vaš sistem. Vendar morate opraviti samo še en korak. Ko je nova programska oprema nameščena ročno, namestitveni imenik in zahtevane knjižnice morda ne bodo samodejno vključene v sistemsko privzeto pot. Tako lahko pri zagonu aplikacije naletite na napake.

Da bi se izognili tej težavi, morate zagnati ukaz ldconfig. Sinhroniziral bo sistemski predpomnilnik knjižnice v skupni rabi z novo nameščenimi knjižnicami in dvojiškimi datotekami. Zaženite ukaz ldconfig iz korenske lupine ali uporabite predpono sudo:

sudo ldconfig

Zdaj ste pokrili vse pomembne korake, potrebne za namestitev programa Snort. Če želite preveriti namestitev, zaženite ukaz Snort z -V in videli bi izhod, ki vrne ime različice in druge podatke.

smrčati -V

Ko preverite namestitev programa Snort, nadaljujte z naslednjimi koraki, da ga nastavite kot popoln IDS/IPS.

Začetna konfiguracija programa Snort v sistemu Linux

Učinkovitost programa Snort je skoraj v celoti odvisna od kakovosti naborov pravil, ki so mu priloženi.

Preden se lotite nastavljanja pravil, morate konfigurirati omrežne kartice za delo s Snortom in preizkusiti morate tudi, kako Snort obravnava privzeto konfiguracijo. Začnite s konfiguracijo omrežnih kartic.

Omrežni vmesnik nastavite na promiskuitetni način:

sudo ip link set dev interface_name promisc on

Z orodjem ethtool onemogočite Generic Receive Offload (GRO) in Large Receive Offload (LRO), da preprečite obrezovanje večjih omrežnih paketov:

sudo ethtool -K ime_vmesnika gro off lro off

Preizkusite, kako deluje Snort s privzeto konfiguracijo:

smrčanje -c /usr/local/etc/snort/snort.lua

To bi moralo vrniti uspešno izhodno signalizacijo, da ste v svojem sistemu pravilno namestili in nastavili Snort. Zdaj se lahko poigravate z njegovimi funkcijami in eksperimentirate z različnimi konfiguracijami, da poiščete najboljši nabor pravil za zaščito vašega omrežja.

Nastavite pravila in jih uveljavite s programom Snort

Z osnovnimi nastavitvami je Snort zdaj pripravljen za obrambo vašega območja. Kot veste, Snort potrebuje nabore pravil za določanje veljavnosti prometa, zato nastavimo nekaj brezplačnih naborov pravil, ki jih je izdelala skupnost za Snort.

Snort bere nize pravil in konfiguracije iz določenih imenikov. Torej najprej z uporabo ukazov mkdir in touch ustvarite nekaj pomembnih imenikov za shranjevanje pravil in drugih ustreznih podatkov za Snort:

sudo mkdir -p /usr/local/etc/{seznami, so_rules, rules} 
sudo touch /usr/local/etc/rules/local.rules
sudo touch /usr/local/etc/lists/default.blocklist

S temi ustvarjenimi imeniki lahko prenesete nabor pravil skupnosti z uradne spletne strani z ukazom wget:

wget https://www.snort.org/downloads/community/snort3-community-rules.tar.gz

Ko se nabor pravil konča s prenosom, ga ekstrahirajte in kopirajte v /usr/local/etc/rules/ imenik.

tar -xvzf snort3-com*
cd snort3-com*
cp * /usr/local/etc/rules/

Če želite zagnati Snort z naborom pravil, izvedite ta ukaz:

sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i ime_vmesnika -s 65535 -k brez

Razčlenitev ukaza:

  • -c nastavi pot do privzete konfiguracijske datoteke
  • -R nastavi pot do nabora pravil za uveljavitev
  • -jaz nastavi vmesnik
  • -s zavrže mejo snaplen
  • -k ignorira kontrolne vsote

To bi moralo potrditi konfiguracijo in uveljaviti vse nabore pravil za Snort. Takoj ko zazna kakršno koli motnjo v omrežju, vas bo opozoril s sporočilom konzole.

Če želite ustvariti in uveljaviti lasten nabor pravil, lahko o tem izveste več v uradne strani z dokumentacijo.

Nastavite beleženje s Snort

Privzeto Snort ne oddaja nobenih dnevnikov. Določiti morate z -L zastavico za zagon programa Snort v načinu beleženja, določite vrsto datoteke dnevnika in -l zastavico za nastavitev imenika za beleženje, da Snort izpiše dnevnike.

Tukaj je ukaz za zagon programa Snort z omogočenim beleženjem:

sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i ime_vmesnika -s 65535 -k brez -L vrsta_datoteke -l /var/log /smrkati

Razčlenitev ukaza:

  • -c nastavi pot do privzete konfiguracijske datoteke
  • -R nastavi pot do nabora pravil za uveljavitev
  • -jaz nastavi vmesnik
  • -s zavrže mejo snaplen
  • -k ignorira kontrolne vsote
  • -L omogoči način beleženja in definira vrsto dnevniške datoteke
  • -l določa pot za shranjevanje dnevnikov

Upoštevajte, da je v primeru ukaza imenik za beleženje nastavljen na /var/log/snort. Čeprav je to priporočena praksa, lahko svoje dnevnike shranite drugje.

Dnevniške datoteke iz Snorta lahko preberete iz imenika, ki ste ga določili, ali jih posredujete programski opremi SIEM, kot je Splunk, za nadaljnjo analizo.

Dodajte Snort kot demon za zagon sistema

Čeprav ste namestili in nastavili Snort, se morate prepričati, da se začne izvajati ob zagonu in deluje kot demon v ozadju. Če ga dodate kot sistemsko storitev za samodejni zagon, boste zagotovili, da bo Snort deloval in branil vaš sistem ves čas, ko je na spletu.

Tukaj je opisano, kako dodate zagonski demon Snort v Linuxu:

  1. Začnite z ustvarjanjem nove storitvene datoteke systemd:
    dotaknite se /lib/systemd/system/snort.service
  2. Odprite datoteko v urejevalniku besedil po vaši izbiri in jo napolnite z naslednjimi podatki. Zastavice lahko spremenite tako, da ustrezajo vašim potrebam:
    [Enota]
    Opis=Snort Daemon
    After=syslog.target network.target
    [Storitev]
    Vrsta=enostavno
    ExecStart=/usr/local/bin/snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -s 65535 -k none -l /var /log/snort -D -L pcap -i ens33
    [Namesti]
    WantedBy=multi-user.target
  3. Shranite in zaprite datoteko. Nato z uporabo storitve in ukazi systemctl, omogočite in zaženite skript:
    sudo systemctl omogoči snort.service
    sudo snort start

Demon v ozadju Snort bi zdaj moral delovati. Stanje skripta lahko preverite z uporabo systemctl status smrčanje ukaz. Moral bi vrniti pozitiven rezultat.

Zdaj veste, kako zaščititi svoje omrežje s Snort IDS

Čeprav je izvajanje IDS dobra praksa, je pasiven ukrep kot aktiven. Najboljši način za izboljšanje in zagotavljanje varnosti vašega omrežja je, da ga nenehno testirate in iščete napake, ki jih želite popraviti.

Testiranje prodora je odličen način za iskanje ranljivosti, ki jih je mogoče izkoristiti, in njihovo popravljanje.