ProHoster > Blog > Uprava > Smrkanje ali Suricata. 3. del: Zaščita pisarniškega omrežja
Smrkanje ali Suricata. 3. del: Zaščita pisarniškega omrežja
В prejšnji članek obravnavali smo, kako zagnati stabilno različico Suricata na Ubuntu 18.04 LTS. Nastavitev IDS na enem samem vozlišču in omogočanje brezplačnih nizov pravil je precej preprosto. Danes bomo ugotovili, kako zaščititi poslovno omrežje z najpogostejšimi vrstami napadov z uporabo Suricate, nameščene na virtualnem strežniku. Za to potrebujemo VDS na Linuxu z dvema računalniškima jedroma. Količi sredstva po potrebi.
Prenos IDS na virtualni stroj bo morda najprej potreben za teste. Če se s tovrstnimi rešitvami še niste ukvarjali, ne hitite z naročanjem fizične strojne opreme in spreminjanjem omrežne arhitekture. Najbolje je, da sistem izvajate varno in stroškovno učinkovito, da določite svoje računalniške potrebe. Pomembno je razumeti, da bo moral ves promet podjetja potekati skozi eno samo zunanje vozlišče: za povezavo lokalnega omrežja (ali več omrežij) z VDS z nameščenim IDS Suricata lahko uporabite SoftEter - Strežnik VPN za več platform, ki ga je enostavno konfigurirati in zagotavlja močno šifriranje. Internetna povezava v pisarni morda nima pravega IP-ja, zato je bolje, da jo nastavite na VPS. V repozitoriju Ubuntu ni že pripravljenih paketov, programsko opremo boste morali prenesti od koder stran projektaali iz zunanjega repozitorija v storitvi Launchpad (če mu zaupaš):
Seznam razpoložljivih paketov si lahko ogledate z naslednjim ukazom:
apt-cache search softether
Potrebovali bomo softether-vpnserver (strežnik v testni konfiguraciji teče na VDS), kot tudi softether-vpncmd - pripomočke ukazne vrstice za njegovo konfiguracijo.
Za konfiguracijo strežnika se uporablja poseben pripomoček ukazne vrstice:
sudo vpncmd
O nastavitvi ne bomo podrobno govorili: postopek je precej preprost, dobro opisan v številnih publikacijah in ni neposredno povezan s temo članka. Skratka, po zagonu vpncmd morate izbrati element 1, da odprete konzolo za upravljanje strežnika. Če želite to narediti, morate namesto imena vozlišča vnesti ime localhost in pritisniti enter. Skrbniško geslo nastavimo v konzoli z ukazom serverpasswordset, DEFAULT virtualno vozlišče izbrišemo (ukaz hubdelete) in ustvarimo novo z imenom Suricata_VPN, nastavimo pa tudi njegovo geslo (ukaz hubcreate). Nato morate z ukazom hub Suricata_VPN odpreti upravljalno konzolo novega vozlišča, da ustvarite skupino in uporabnika z ukazoma groupcreate in usercreate. Uporabniško geslo se nastavi z uporabo userpasswordset.
SoftEther podpira dva načina prenosa prometa: SecureNAT in Local Bridge. Prva je lastniška tehnologija za izgradnjo virtualnega zasebnega omrežja z lastnim NAT in DHCP. SecureNAT ne zahteva TUN/TAP ali Netfilter ali drugih nastavitev požarnega zidu. Usmerjanje ne vpliva na jedro sistema, vsi procesi pa so virtualizirani in delujejo na katerem koli VPS / VDS, ne glede na uporabljeni hipervizor. Posledica tega je povečana obremenitev procesorja in počasnejša hitrost v primerjavi z načinom lokalnega mostu, ki povezuje virtualno vozlišče SoftEther s fizičnim omrežnim adapterjem ali napravo TAP.
Konfiguracija v tem primeru postane bolj zapletena, saj se usmerjanje izvaja na ravni jedra z uporabo Netfilterja. Naši VDS so zgrajeni na Hyper-V, zato v zadnjem koraku ustvarimo lokalni most in aktiviramo napravo TAP z ukazom bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. Po izhodu iz konzole za upravljanje vozlišča bomo v sistemu videli nov omrežni vmesnik, ki mu še ni bil dodeljen IP:
ifconfig
Nato boste morali omogočiti paketno usmerjanje med vmesniki (ip forward), če je neaktivno:
sudo nano /etc/sysctl.conf
Odkomentirajte naslednjo vrstico:
net.ipv4.ip_forward = 1
Shranite spremembe v datoteko, zapustite urejevalnik in jih uporabite z naslednjim ukazom:
sudo sysctl -p
Nato moramo definirati podomrežje za navidezno omrežje z izmišljenimi IP-ji (na primer 10.0.10.0/24) in vmesniku dodeliti naslov:
sudo ifconfig tap_suricata_vp 10.0.10.1/24
Nato morate napisati pravila Netfilter.
1. Po potrebi dovolite dohodne pakete na poslušajočih vratih (lasniški protokol SoftEther uporablja HTTPS in vrata 443)
3. Dovolite prehajanje paketov iz podomrežja 10.0.10.0/24
sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT
4. Dovoli prehajanje paketov za že vzpostavljene povezave
sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
Avtomatizacijo procesa ob ponovnem zagonu sistema z uporabo inicializacijskih skriptov bomo prepustili bralcem kot domačo nalogo.
Če želite samodejno dodeliti IP odjemalcem, boste morali namestiti tudi neko storitev DHCP za lokalni most. S tem je nastavitev strežnika končana in lahko greste do odjemalcev. SoftEther podpira številne protokole, katerih uporaba je odvisna od zmogljivosti opreme LAN.
netstat -ap |grep vpnserver
Ker naš testni usmerjevalnik deluje tudi pod Ubuntujem, namestimo paketa softether-vpnclient in softether-vpncmd iz zunanjega repozitorija nanj, da bomo uporabljali lastniški protokol. Odjemalca boste morali zagnati:
sudo vpnclient start
Za konfiguracijo uporabite pripomoček vpncmd in izberite localhost kot stroj, na katerem se izvaja vpnclient. Vsi ukazi so narejeni v konzoli: ustvariti boste morali virtualni vmesnik (NicCreate) in račun (AccountCreate).
V nekaterih primerih morate določiti metodo preverjanja pristnosti z ukazi AccountAnonymousSet, AccountPasswordSet, AccountCertSet in AccountSecureCertSet. Ker ne uporabljamo DHCP, se naslov za virtualni adapter nastavi ročno.
Poleg tega moramo omogočiti ip forward (parameter net.ipv4.ip_forward=1 v datoteki /etc/sysctl.conf) in konfigurirati statične poti. Po potrebi lahko na VDS s Suricata konfigurirate posredovanje vrat za uporabo storitev, nameščenih v lokalnem omrežju. Na tem se lahko šteje, da je združitev omrežja končana.
Naša predlagana konfiguracija bo videti nekako takole:
Nastavitev Suricata
В prejšnji članek govorili smo o dveh načinih delovanja IDS: prek čakalne vrste NFQUEUE (način NFQ) in prek ničelne kopije (način AF_PACKET). Drugi zahteva dva vmesnika, vendar je hitrejši - uporabili ga bomo. Parameter je privzeto nastavljen v /etc/default/suricata. Prav tako moramo urediti razdelek vars v /etc/suricata/suricata.yaml in tam nastaviti navidezno podomrežje kot domače.
Za ponovni zagon IDS uporabite ukaz:
systemctl restart suricata
Rešitev je pripravljena, zdaj jo boste morda morali preizkusiti glede odpornosti proti zlonamernim dejanjem.
Simulacija napadov
Za bojno uporabo zunanje storitve IDS je lahko več scenarijev:
Zaščita pred DDoS napadi (primarni namen)
Takšno možnost je težko implementirati znotraj korporativnega omrežja, saj morajo paketi za analizo priti do sistemskega vmesnika, ki gleda na internet. Tudi če jih IDS blokira, lahko lažni promet prekine podatkovno povezavo. Da bi se temu izognili, morate naročiti VPS z dovolj produktivno internetno povezavo, ki lahko prenese ves lokalni omrežni promet in ves zunanji promet. Pogosto je to lažje in ceneje narediti kot razširiti pisarniški kanal. Kot alternativo velja omeniti specializirane storitve za zaščito pred DDoS. Stroški njihovih storitev so primerljivi s stroški virtualnega strežnika in ne zahtevajo zamudne konfiguracije, vendar obstajajo tudi slabosti - odjemalec za svoj denar prejme samo zaščito DDoS, medtem ko lahko svoj IDS konfigurira kot vi kot.
Zaščita pred zunanjimi napadi drugih vrst
Suricata je kos poskusom izkoriščanja različnih ranljivosti v korporativnih omrežnih storitvah, dostopnih z interneta (poštni strežnik, spletni strežnik in spletne aplikacije itd.). Običajno je za to IDS nameščen znotraj LAN-a po mejnih napravah, vendar ima zunaj njega pravico do obstoja.
Zaščita pred notranjimi osebami
Kljub vsem naporom sistemskega skrbnika so lahko računalniki v omrežju podjetja okuženi z zlonamerno programsko opremo. Poleg tega se v lokalnem okolju včasih pojavijo huligani, ki poskušajo izvajati nekatere nezakonite operacije. Suricata lahko pomaga pri blokiranju takšnih poskusov, čeprav je za zaščito notranjega omrežja bolje, da jo namestite znotraj perimetra in jo uporabljate v tandemu z upravljanim stikalom, ki lahko zrcali promet na ena vrata. Zunanji IDS tudi v tem primeru ni neuporaben - vsaj bo lahko ujel poskuse zlonamerne programske opreme, ki živi v LAN, da vzpostavi stik z zunanjim strežnikom.
Za začetek bomo ustvarili še en testni napadalni VPS in na lokalnem omrežnem usmerjevalniku dvignili Apache s privzeto konfiguracijo, nato pa mu bomo posredovali 80. vrata s strežnika IDS. Nato bomo simulirali napad DDoS iz gostitelja, ki napada. Če želite to narediti, prenesite iz GitHub, prevedite in zaženite majhen program xerxes na napadalnem vozlišču (morda boste morali namestiti paket gcc):
Suricata odreže negativca in stran Apache se privzeto odpre, kljub našemu impromptivnemu napadu in precej mrtvemu kanalu "pisarniškega" (pravzaprav domačega) omrežja. Za resnejša opravila raje uporabite Metasploit Framework. Zasnovan je za testiranje penetracije in omogoča simulacijo različnih napadov. Navodila za namestitev dostopna na spletni strani projekta. Po namestitvi je potrebna posodobitev:
sudo msfupdate
Za testiranje zaženite msfconsole.
Na žalost najnovejše različice ogrodja nimajo možnosti samodejnega vdora, zato bo treba izkoriščanja razvrstiti ročno in jih zagnati z ukazom use. Za začetek je vredno določiti odprta vrata na napadenem računalniku, na primer z uporabo nmap (v našem primeru ga bo na napadenem gostitelju v celoti nadomestil netstat), nato pa izberite in uporabite ustrezno Metasploit moduli.
Obstajajo tudi drugi načini za testiranje odpornosti IDS proti napadom, vključno s spletnimi storitvami. Zaradi zanimivosti lahko organizirate stresno testiranje s preskusno različico IP stresor. Če želite preveriti reakcijo na dejanja notranjih vsiljivcev, je vredno namestiti posebna orodja na enega od strojev v lokalnem omrežju. Možnosti je veliko in občasno jih je treba uporabiti ne le na poskusnem mestu, ampak tudi na delujočih sistemih, le to je povsem druga zgodba.