Apsaugokite savo tinklą nuo įsibrovėlių ir nepageidaujamų atakų įdiegę ir nustatydami Snort IDS.
Jei rimtai žiūrite į tinklo saugumą, norint sustiprinti tinklo perimetrą ir nukreipti potencialiai nepageidaujamą tinklo srautą, būtina įdiegti IPS arba IDS sprendimą.
„Snort“ yra vienas iš tokių garsių, nemokamas asmeniniam naudojimui ir atvirojo kodo IPS/IDS sprendimų. Sužinokime, kaip įdiegti ir nustatyti „Snort“ sistemoje „Linux“, kad apsaugotumėte tinklą nuo kibernetinių atakų.
Kas yra Snort?
Snort yra atvirojo kodo Tinklo įsibrovimų aptikimo ir prevencijos sistema (NIDS/IPS) programinė įranga, kuri, kaip rodo pavadinimas, padeda apsaugoti jūsų tinklo perimetrą, vykdydama taisykles ir filtrus, kurie aptinka ir pašalina potencialiai kenksmingus paketus, įterptus į tinklą.
Naudodami „Snort“ galėsite atlikti išplėstinį tinklo srauto registravimą, paketų uostymą ir analizę bei nustatyti sukurti stiprią įsibrovimų prevencijos sistemą, kuri apsaugo jūsų tinklą nuo nepageidaujamų ir potencialiai kenkėjiškų eismo.
Būtinos sąlygos norint įdiegti „Snort“.
Prieš diegdami „Snort“, turite atlikti tam tikrą išankstinę sąranką. Tai dažniausiai apima sistemos atnaujinimą ir atnaujinimą bei priklausomybių, kurių reikia, kad „Snort“ tinkamai veiktų, įdiegimą.
Pradėkite nuo sistemos atnaujinimo ir atnaujinimo.
„Ubuntu“ ir „Debian“ pagrindu veikiantys „Linux“ paskirstymai:
sudo apt update && apt upgrade -y
„Arch Linux“ ir jos dariniuose:
sudo pacman -Syu
RHEL ir Fedora:
sudo dnf atnaujinimas
Atnaujinę sistemą, toliau diegkite „Snort“ reikalingas priklausomybes. Čia yra komandos, kurias reikia paleisti:
„Ubuntu“ ir „Debian“ paleiskite:
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
„Arch Linux“ paleiskite:
sudo pacman -S gperftools hwloc hyperscan ibdaqlibdnet libmnl libpcap libunwind luajit lz4 openssl pcre pulledporkxz zlib cmake pkgconf
RHEL ir Fedora atveju išduokite šią komandą:
sudo dnf įdiegti gcc gcc-c++ libnetfilter_queue-devel git flex bison zlib zlib-devel pcre pcredevel libdnet tcpdump libnghttp2 wget xz-devel -y
Be to, taip pat turite neautomatiniu būdu įdiegti duomenų gavimo biblioteką, „LibDAQ“, kad „Snort“ veiktų tinkamai, ir „gperftools“, kad sukurtumėte kūrimo failus.
Pirmiausia atsisiųskite LibDAQ šaltinio failus iš oficialios svetainės naudojant komandą wget. Tada ištraukite archyvą ir perkelkite į katalogą naudodami kompaktinį diską. Katalogo viduje paleiskite bootstrap ir konfigūruoti scenarijų, tada ruoškite failus su make ir įdiekite jį naudodami padaryti įdiegti komandą.
wget https://www.snort.org/downloads/snortplus/libdaq-3.0.11.tar.gz
tar -xzvf lib*
cd lib*
./bootstrap
./configure
padaryti
sudo make install
Įdiegę LibDAQ, turite įdiegti paskutinę priklausomybę: gperftools. Pradėkite paimdami šaltinio failus iš „GitHub“ repo. Išskleiskite failus, perkelkite į katalogą ir paleiskite konfigūravimo scenarijų. Galiausiai įdiekite paketą naudodami make and make install komandas.
wget https://github.com/gperftools/gperftools/releases/download/gperftools-2.10/gperftools-2.10.tar.gz
tar -xvzf gper* && cd gper
./configure
padaryti
sudo make install
Įdiegę šias priklausomybes, galite pereiti prie kitų „Snort“ diegimo veiksmų.
Įdiekite „Snort From Source“ sistemoje „Linux“.
Kai preliminari sąranka nėra atlikta, dabar galite sutelkti dėmesį į tikrosios programinės įrangos diegimą. Kursite jį iš šaltinio, todėl pirmiausia paimkite reikiamus kūrimo failus.
Naudokite komandą wget arba atsisiųskite failus rankiniu būdu iš oficialaus atsisiuntimo puslapio:
wget https://www.snort.org/downloads/snortplus/snort3-3.1.58.0.tar.gz
Parsisiųsti:Šnirštis
Baigę atsisiųsti archyvą, kuriame yra kūrimo failai, ištraukite jį naudodami tar komandą:
tar -xzvf snort*
Perkelkite į ištrauktą aplanką, paleiskite konfigūracijos scenarijų, naudokite komandą make, kad paruoštumėte failus ir galiausiai įdiekite juos naudodami padaryti įdiegti:
cd snort*
./configure_cmake.sh --prefix=/usr/local --enable-tcmalloc
cd pastatymas
padaryti
sudo make install
Snort dabar bus sėkmingai įdiegtas jūsų sistemoje. Tačiau reikia atlikti dar vieną veiksmą. Kai nauja programinė įranga įdiegiama rankiniu būdu, diegimo katalogas ir reikalingos bibliotekos gali nebūti automatiškai įtrauktos į numatytąjį sistemos kelią. Taigi paleidžiant programą gali atsirasti klaidų.
Norėdami išvengti šios problemos, turite paleisti komandą ldconfig. Jis sinchronizuos sistemos bendrinamos bibliotekos talpyklą su naujai įdiegtomis bibliotekomis ir dvejetainiais failais. Paleiskite komandą ldconfig iš šakninio apvalkalo arba naudokite sudo priešdėlį:
sudo ldconfig
Dabar atlikote visus svarbius veiksmus, reikalingus norint įdiegti „Snort“. Norėdami patikrinti įdiegimą, paleiskite komandą Snort su -V ir turėtumėte pamatyti išvestį, grąžinančią versijos pavadinimą ir kitus duomenis.
prunkštelėjo -V
Patikrinę „Snort“ diegimą, pereikite prie kitų veiksmų, kad nustatytumėte jį kaip pilną IDS / IPS.
Pradinė „Snort“ konfigūracija „Linux“.
„Snort“ efektyvumas beveik visiškai priklauso nuo taisyklių rinkinių, su kuriais jis tiekiamas, kokybės.
Tačiau prieš nustatydami taisykles, turite sukonfigūruoti tinklo plokštes, kad jos veiktų su „Snort“, taip pat turite išbandyti, kaip „Snort“ apdoroja numatytąją konfigūraciją. Pradėkite nuo tinklo plokščių konfigūravimo.
Tinklo sąsają nustatykite į „promiscuous“ režimą:
sudo ip saitų rinkinys dev interface_name promisc įjungtas
Naudodami ethtool, išjunkite bendrąjį priėmimo iškrovimą (GRO) ir didelį priėmimo iškrovimą (LRO), kad išvengtumėte didesnių tinklo paketų sutrumpinimo:
sudo ethtool -K sąsajos_pavadinimas gro off lro off
Išbandykite, kaip „Snort“ veikia naudojant numatytąją konfigūraciją:
snort -c /usr/local/etc/snort/snort.lua
Tai turėtų grąžinti sėkmingą išvesties signalą, kad įdiegėte ir teisingai nustatėte „Snort“ savo sistemoje. Dabar galite patobulinti jo funkcijas ir eksperimentuoti su įvairiomis konfigūracijomis, kad surastumėte geriausią tinklo apsaugos taisyklių rinkinį.
Nustatykite taisykles ir vykdykite jas naudodami „Snort“.
Turėdami pagrindinius nustatymus, „Snort“ dabar yra pasirengęs ginti jūsų perimetrą. Kaip žinote, „Snort“ reikia taisyklių rinkinių, kad nustatytų srauto galiojimą. Nustatykime keletą bendruomenės sukurtų nemokamų „Snort“ taisyklių rinkinių.
„Snort“ nuskaito taisyklių rinkinius ir konfigūracijas iš konkrečių katalogų. Taigi pirmiausia, naudodami komandas mkdir ir touch, sukurkite kelis svarbius katalogus taisyklėms ir kitiems svarbiems Snort duomenims saugoti:
sudo mkdir -p /usr/local/etc/{lists, so_rules, taisyklės}
sudo touch /usr/local/etc/rules/local.rules
sudo touch /usr/local/etc/lists/default.blocklist
Sukūrę šiuos katalogus, galite atsisiųsti bendruomenės taisyklių rinkinį iš oficialios svetainės naudodami komandą wget:
wget https://www.snort.org/downloads/community/snort3-community-rules.tar.gz
Baigę atsisiųsti taisyklių rinkinį, ištraukite jį ir nukopijuokite į /usr/local/etc/rules/ katalogas.
tar -xvzf snort3-com*
cd snort3-com*
cp * /usr/local/etc/rules/
Norėdami paleisti Snort su taisyklių rinkiniu, vykdykite šią komandą:
sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i interface_name -s 65535 -k nėra
Komandos suskirstymas:
- -c nustato kelią į numatytąjį konfigūracijos failą
- -R nustato kelią į taisyklę, kurią reikia vykdyti
- -i nustato sąsają
- -s atmeta snaplen limitą
- -k nepaiso kontrolinių sumų
Tai turėtų patvirtinti konfigūraciją ir įgyvendinti visus „Snort“ taisyklių rinkinius. Kai tik jis paims bet kokį tinklo triktį, jis įspės jus konsolės pranešimu.
Jei norite sukurti ir įgyvendinti savo taisyklių rinkinį, daugiau apie jį galite sužinoti apsilankę oficialiuose dokumentacijos puslapiuose.
Nustatykite registravimą naudodami „Snort“.
Pagal numatytuosius nustatymus „Snort“ neišveda jokių žurnalų. Turite nurodyti su -L pažymėkite, kad paleistumėte „Snort“ registravimo režimu, nurodykite žurnalo failo tipą ir -l vėliavėlę, kad nustatytumėte registravimo katalogą, kad Snort išmestų žurnalus.
Štai komanda paleisti „Snort“, kai įjungtas registravimas:
sudo snort -c /usr/local/etc/snort/snort.lua -R /usr/local/etc/rules/snort3-community.rules -i sąsajos_pavadinimas -s 65535 -k nėra -L failo_tipas -l /var/log /snūduriuoti
Komandos suskirstymas:
- -c nustato kelią į numatytąjį konfigūracijos failą
- -R nustato kelią į taisyklę, kurią reikia vykdyti
- -i nustato sąsają
- -s atmeta snaplen limitą
- -k nepaiso kontrolinių sumų
- -L įjungia registravimo režimą ir nustato žurnalo failo tipą
- -l apibrėžia kelią į žurnalų saugojimą
Atminkite, kad pavyzdinėje komandoje registravimo katalogas nustatytas į /var/log/snort. Nors tai yra rekomenduojama praktika, žurnalus galite laikyti kitur.
Galite perskaityti žurnalo failus iš „Snort“ iš savo apibrėžto katalogo arba perduoti juos į SIEM programinę įrangą, pvz., „Splunk“, kad galėtumėte atlikti tolesnę analizę.
Pridėkite „Snort“ kaip sistemos paleidimo demoną
Nors įdiegėte ir nustatėte „Snort“, turite įsitikinti, kad jis pradedamas vykdyti paleidžiant ir veikia kaip foninis demonas. Pridėjus ją kaip automatinio paleidimo sistemos paslaugą, „Snort“ veiks ir gins jūsų sistemą, kai ji yra prisijungusi.
Štai kaip pridėti „Snort“ paleisties demoną „Linux“:
- Pradėkite kurdami naują sistemos paslaugos failą:
palieskite /lib/systemd/system/snort.service
- Atidarykite failą pasirinktoje teksto rengyklėje ir užpildykite jį šiais duomenimis. Galite modifikuoti vėliavėles pagal savo poreikius:
[Vieta]
Aprašymas=Snort Daemon
After=syslog.target network.target
[Paslauga]
Tipas = paprastas
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
[Diegti]
WantedBy=multi-user.target - Išsaugokite ir išeikite iš failo. Tada, pasinaudoję paslauga ir systemctl komandas, įgalinkite ir paleiskite scenarijų:
sudo systemctl įgalinti snort.service
sudo snort start
„Snort“ fono demonas dabar turėtų veikti. Galite patikrinti scenarijaus būseną naudodami systemctl būsena snort komandą. Tai turėtų grąžinti teigiamą rezultatą.
Dabar jūs žinote, kaip apsaugoti savo tinklą naudodami „Snort IDS“.
Nors IDS diegimas yra gera praktika, tai pasyvi priemonė nei aktyvi. Geriausias būdas pagerinti ir garantuoti tinklo saugumą yra nuolat jį tikrinti ir ieškoti trūkumų, kuriuos reikia ištaisyti.
Prasiskverbimo testavimas yra puikus būdas rasti išnaudojamus pažeidžiamumus ir juos pataisyti.