Zaštitite svoju mrežu od uljeza i neželjenih napada instaliranjem i postavljanjem Snort IDS-a.
Ako ozbiljno razmišljate o mrežnoj sigurnosti, instalacija IPS ili IDS rješenja obavezna je za utvrđivanje mrežnog perimetra i odvraćanje potencijalno neželjenog mrežnog prometa.
Snort je jedno takvo poznato IPS/IDS rješenje otvorenog koda, besplatno za osobnu upotrebu. Naučimo kako možete instalirati i postaviti Snort na Linux za obranu svoje mreže od kibernetičkih napada.
Što je Snort?
Snort je open-source Sustav za otkrivanje i sprječavanje upada u mrežu (NIDS/IPS) softver koji, kao što naziv sugerira, pomaže u osiguravanju vašeg mrežnog perimetra provođenjem pravila i filtara koji otkrivaju i ispuštaju potencijalno zlonamjerne pakete ubačene u vašu mrežu.
Sa Snortom ćete moći izvesti napredno bilježenje mrežnog prometa, njuškanje paketa i analizu te postaviti izradite snažan sustav za sprječavanje upada koji brani vašu mrežu od neželjenih i potencijalno zlonamjernih promet.
Preduvjeti za instaliranje Snort-a
Prije nego što instalirate Snort, potrebno je obaviti neke preliminarne postavke. To uglavnom uključuje ažuriranje i nadogradnju vašeg sustava i instaliranje ovisnosti koje su potrebne Snortu za ispravno funkcioniranje.
Započnite s ažuriranjem i nadogradnjom vašeg sustava.
Na Ubuntu- i Linux distribucije temeljene na Debianu:
sudo apt ažuriranje && apt nadogradnja -y
Na Arch Linuxu i njegovim izvedenicama:
sudo pacman -Syu
Na RHEL-u i Fedori:
sudo dnf nadogradnja
Nakon što je vaš sustav nadograđen, nastavite instalirati ovisnosti koje zahtijeva Snort. Ovo su naredbe koje trebate pokrenuti:
Na Ubuntu i Debianu pokrenite:
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
Na Arch Linuxu pokrenite:
sudo pacman -S gperftools hwloc hyperscan ibdaqlibdnet libmnl libpcap libunwind luajit lz4 openssl pcre pulledporkxz zlib cmake pkgconf
Za RHEL i Fedora izdajte sljedeću naredbu:
sudo dnf instalirajte gcc gcc-c++ libnetfilter_queue-devel git flex bison zlib zlib-devel pcre pcredevel libdnet tcpdump libnghttp2 wget xz-devel -y
Osim toga, također morate ručno instalirati biblioteku za prikupljanje podataka, LibDAQ za Snort kako bi ispravno funkcionirao i također gperftools za generiranje datoteka za izgradnju.
Prvo preuzmite LibDAQ izvorne datoteke sa službene web stranice pomoću naredbe wget. Zatim raspakirajte arhivu i pomaknite se u direktorij koristeći cd. Unutar imenika pokrenite bootstrap i konfigurirati skripte zatim nastavite s pripremom datoteka s make i instalirajte je s napraviti instalaciju naredba.
wget https://www.snort.org/downloads/snortplus/libdaq-3.0.11.tar.gz
tar -xzvf lib*
cd lib*
./bootstrap
./konfigurirati
napraviti
sudo make install
S instaliranim LibDAQ-om morate instalirati još jednu ovisnost: gperftools. Započnite preuzimanjem izvornih datoteka iz GitHub repoa. Ekstrahirajte datoteke, pomaknite se u direktorij i pokrenite skriptu za konfiguriranje. Na kraju instalirajte paket pomoću naredbi make i make install.
wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.10/gperftools-2.10.tar.gz
tar -xvzf gper* && cd gper
./konfigurirati
napraviti
sudo make install
Nakon što su ove ovisnosti instalirane, možete prijeći na sljedeće korake za instalaciju Snorta.
Instalirajte Snort iz izvora na Linux
Nakon što ste završili s preliminarnim postavkama, sada se možete usredotočiti na instalaciju stvarnog softvera. Gradit ćete ga iz izvora, pa prvo uzmite potrebne datoteke za izgradnju.
Koristite naredbu wget ili ručno preuzmite datoteke sa službene stranice za preuzimanje:
wget https://www.snort.org/downloads/snortplus/snort3-3.1.58.0.tar.gz
Preuzimanje datoteka:frknuti
Nakon što završi preuzimanje arhive koja sadrži datoteke za izgradnju, raspakirajte je pomoću naredbe tar:
tar -xzvf frknuti*
Premjestite se u ekstrahiranu mapu, pokrenite konfiguracijsku skriptu, upotrijebite naredbu make za pripremu datoteka i na kraju ih instalirajte s napraviti instalaciju:
cd snort*
./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc
cd build
napraviti
sudo make install
Snort će sada biti uspješno instaliran u vašem sustavu. Međutim, postoji samo još jedan korak koji trebate izvršiti. Kada se novi softver instalira ručno, instalacijski direktorij i potrebne biblioteke možda neće biti automatski uključeni u zadanu putanju sustava. Stoga biste mogli naići na pogreške prilikom pokretanja aplikacije.
Da biste izbjegli ovaj problem, trebate pokrenuti naredbu ldconfig. Sinkronizirat će predmemoriju dijeljene biblioteke sustava s novoinstaliranim bibliotekama i binarnim datotekama. Ili pokrenite naredbu ldconfig iz korijenske ljuske ili upotrijebite sudo prefiks:
sudo ldconfig
Sada ste pokrili sve važne korake potrebne za instalaciju Snorta. Za provjeru instalacije pokrenite naredbu Snort s -V zastavicu i trebali biste vidjeti izlaz koji vraća naziv verzije i druge podatke.
frknuti -V
Nakon što potvrdite instalaciju Snort-a, prijeđite na sljedeće korake da biste ga postavili kao puni IDS/IPS.
Početna konfiguracija Snort-a na Linuxu
Učinkovitost Snort-a gotovo u potpunosti ovisi o kvaliteti skupova pravila kojima je opskrbljen.
Međutim, prije nego što počnete postavljati pravila, trebate konfigurirati mrežne kartice za rad sa Snortom i također morate testirati kako Snort rukuje zadanom konfiguracijom. Započnite konfiguriranjem mrežnih kartica.
Postavite mrežno sučelje na promiskuitetni način rada:
sudo ip link set dev interface_name promisc on
Pomoću ethtoola onemogućite Generic Receive Offload (GRO) i Large Receive Offload (LRO) kako biste spriječili skraćivanje većih mrežnih paketa:
sudo ethtool -K ime_sučelja gro off lro off
Testirajte kako Snort radi sa zadanom konfiguracijom:
snort -c /usr/local/etc/nort/nort.lua
Ovo bi trebalo vratiti uspješnu izlaznu signalizaciju da ste ispravno instalirali i postavili Snort u svom sustavu. Sada se možete petljati s njegovim značajkama i eksperimentirati s različitim konfiguracijama kako biste pronašli najbolji skup pravila za osiguranje vaše mreže.
Postavite pravila i nametnite ih uz Snort
Uz postavljene osnovne postavke, Snort je sada spreman braniti vaš perimetar. Kao što znate, Snort treba skupove pravila za određivanje valjanosti prometa, postavimo nekoliko besplatnih skupova pravila za Snort.
Snort čita skupove pravila i konfiguracije iz određenih direktorija. Prvo, koristeći naredbe mkdir i touch, stvorite nekoliko važnih direktorija za pohranu pravila i drugih relevantnih podataka za Snort:
sudo mkdir -p /usr/local/etc/{liste, so_rules, rules}
sudo dodir /usr/local/etc/rules/local.rules
sudo touch /usr/local/etc/lists/default.blocklist
S ovim kreiranim imenicima možete preuzeti skup pravila zajednice sa službene web stranice pomoću naredbe wget:
wget https://www.snort.org/downloads/community/snort3-community-rules.tar.gz
Nakon što skup pravila završi preuzimanje, izdvojite ga i kopirajte u /usr/local/etc/rules/ imenik.
tar -xvzf snort3-com*
cd snort3-com*
cp * /usr/local/etc/rules/
Za pokretanje Snort-a sa skupom pravila izvršite ovu naredbu:
sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i naziv_sučelja -s 65535 -k nijedan
Raščlamba naredbe:
- -c postavlja put do zadane konfiguracijske datoteke
- -R postavlja putanju do skupa pravila za primjenu
- -i postavlja sučelje
- -s odbacuje ograničenje snaplena
- -k zanemaruje kontrolne zbrojeve
Ovo bi trebalo potvrditi konfiguraciju i nametnuti sve skupove pravila na Snortu. Čim primijeti bilo kakvu smetnju na mreži, upozorit će vas porukom konzole.
Ako želite stvoriti i nametnuti vlastiti skup pravila, o tome možete saznati više od službene stranice dokumentacije.
Postavite bilježenje uz Snort
Prema zadanim postavkama, Snort ne ispisuje nikakve zapisnike. Morate navesti s -L zastavicu za pokretanje Snort-a u načinu zapisivanja, definirajte vrstu datoteke dnevnika i -l zastavica za postavljanje direktorija za bilježenje za Snort za izbacivanje zapisa.
Evo naredbe za pokretanje Snort-a uz omogućeno bilježenje:
sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i naziv_sučelja -s 65535 -k nijedan -L tip_datoteke -l /var/log /frknuti
Raščlamba naredbe:
- -c postavlja put do zadane konfiguracijske datoteke
- -R postavlja putanju do skupa pravila za primjenu
- -i postavlja sučelje
- -s odbacuje ograničenje snaplena
- -k zanemaruje kontrolne zbrojeve
- -L omogućuje način zapisivanja i definira vrstu zapisničke datoteke
- -l definira put za pohranjivanje dnevnika
Imajte na umu da je u primjeru naredbe direktorij zapisivanja postavljen na /var/log/snort. Iako je ovo preporučena praksa, slobodno možete pohraniti svoje zapise negdje drugdje.
Možete čitati log datoteke iz Snort-a iz direktorija koji ste definirali ili ih proslijediti u SIEM softver kao što je Splunk za daljnju analizu.
Dodajte Snort kao demon za pokretanje sustava
Iako ste instalirali i postavili Snort, morate se pobrinuti da se počne izvršavati pri pokretanju i da radi kao pozadinski demon. Ako ga dodate kao uslugu automatskog pokretanja sustava, osigurat ćete da Snort radi i brani vaš sustav sve vrijeme kada je na mreži.
Evo kako dodati Snort pokretački demon u Linuxu:
- Započnite stvaranjem nove systemd servisne datoteke:
dodirnite /lib/systemd/system/snort.service
- Otvorite datoteku u uređivaču teksta po svom izboru i popunite je sljedećim podacima. Možete modificirati zastavice kako bi odgovarale vašim potrebama:
[Jedinica]
Opis=Snort Daemon
After=syslog.target network.target
[Servis]
Tip=jednostavan
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
[Instalirati]
WantedBy=multi-user.target - Spremite i izađite iz datoteke. Zatim, koristeći uslugu i systemctl naredbe, omogućite i pokrenite skriptu:
sudo systemctl omogući snort.service
sudo snort start
Pozadinski demon Snort sada bi trebao raditi. Možete provjeriti status skripte pomoću systemctl status snort naredba. Trebao bi dati pozitivan rezultat.
Sada znate kako zaštititi svoju mrežu pomoću Snort IDS-a
Iako je implementacija IDS-a dobra praksa, to je pasivna mjera nego aktivna. Najbolji način da poboljšate i zajamčite sigurnost svoje mreže je kontinuiranim testiranjem i traženjem nedostataka koje treba popraviti.
Testiranje prodora izvrstan je način za pronalaženje ranjivosti koje se mogu iskoristiti i njihovo zakrpanje.