Snort eller Suricata. Del 3: skydda kontorsnÀtet

I den föregÄende artikeln Vi har förklarat hur man kör en stabil version av Suricata pÄ Ubuntu 18.04 LTS. Att konfigurera IDS pÄ en nod och koppla ihop gratis regelpaket Àr ganska enkelt. Idag kommer vi att gÄ igenom hur man anvÀnder Suricata installerat pÄ en virtuell server för att skydda det företagsnÀtverk mot de vanligaste typerna av attacker. För detta behöver vi en VDS pÄ Linux med tvÄ CPU-kÀrnor. MÀngden RAM beror pÄ belastningen: vissa klarar sig med 2 GB, medan mer krÀvande uppgifter kan krÀva 4 eller till och med 6. Fördelen med en virtuell maskin Àr möjligheten att experimentera: du kan börja med en minimal konfiguration och öka resurserna vid behov.

Snort eller Suricata. Del 3: skydda kontorsnÀtetfoto: Reuters

Förenar nÀtverk

Att flytta IDS till en virtuell maskin kan först och frĂ€mst behövas för tester. Om du aldrig har arbetat med liknande lösningar Ă€r det inte vĂ€rt att skynda sig att bestĂ€lla fysiskt hĂ„rdvara och Ă€ndra nĂ€tverksarkitekturen. Det Ă€r bĂ€ttre att prova systemet sĂ€kert och utan onödiga kostnader, för att bestĂ€mma behovet av berĂ€kningsresurser. Det Ă€r viktigt att förstĂ„ att all företagsdata dĂ„ mĂ„ste passera genom en enda extern nod: för att ansluta ett lokalt nĂ€tverk (eller flera nĂ€tverk) till VDS med installerad IDS Suricata kan du anvĂ€nda SoftEther – en lĂ€ttkonfigurerad plattformsoberoende VPN-server som erbjuder pĂ„litlig kryptering. Kontorskopplingen till internet kanske inte har en verklig IP, sĂ„ det Ă€r bĂ€ttre att sĂ€tta upp det pĂ„ en VPS. Det finns inga fĂ€rdiga paket i Ubuntu-repositoriet, sĂ„ programvaran mĂ„ste laddas ner antingen frĂ„n projektets webbplats, eller frĂ„n en extern repository pĂ„ tjĂ€nsten Launchpad (om du litar pĂ„ den):

sudo add-apt-repository ppa:paskal-07/softethervpn
sudo apt-get update

Du kan se en lista över tillgÀngliga paket med följande kommando:

apt-cache search softether

Snort eller Suricata. Del 3: skydda kontorsnÀtet

Vi behöver softether-vpnserver (servern i testkonfigurationen körs pĂ„ VDS), samt softether-vpncmd – kommandoradsverktyg för dess konfiguration.

sudo apt-get install softether-vpnserver softether-vpncmd

För att konfigurera servern anvÀnds ett speciellt kommandoradsverktyg:

sudo vpncmd

Snort eller Suricata. Del 3: skydda kontorsnÀtet

Vi kommer inte att gÄ in pÄ detaljrika instÀllningar: proceduren Àr ganska enkel, den Àr vÀl beskriven i mÄnga publikationer och rör inte direkt Àmnet för artikeln. Om vi sammanfattar, efter att ha startat vpncmd, behöver man vÀlja alternativ 1 för att gÄ till serverns kontrollkonsol. För detta ÀndamÄl mÄste man ange namnet localhost och trycka pÄ Enter istÀllet för att ange namnet pÄ hubben. I konsolen stÀller man in administratörslösenordet med kommandot serverpasswordset, tar bort den virtuella hubben DEFAULT (kommandot hubdelete) och skapar en ny med namnet Suricata_VPN, samt stÀller in dess lösenord (kommandot hubcreate). DÀrefter behöver man gÄ till kontrollkonsolen för den nya hubben med kommandot hub Suricata_VPN för att skapa en grupp och en anvÀndare med kommandona groupcreate och usercreate. AnvÀndarlösenordet stÀlls in med kommandot userpasswordset.

SoftEther stödjer tvÄ trafiköverföringslÀgen: SecureNAT och Local Bridge. Den första Àr en egen teknik för att bygga en virtuell privat nÀtverk med egen NAT och DHCP. SecureNAT krÀver varken TUN/TAP eller konfiguration av Netfilter eller nÄgon annan brandvÀgg. Ruttningen berör inte systemets kÀrna, och alla processer virtualiseras och fungerar pÄ vilken VPS/VDS som helst oavsett vilken hypervisor som anvÀnds. Detta leder till ökad belastning pÄ processorn och minskad hastighet jÀmfört med lÀget Local Bridge, som kopplar den virtuella hubben SoftEther med den fysiska nÀtverksadaptern eller TAP-enheten.

InstÀllningen blir svÄrare i det hÀr fallet, eftersom ruttningen sker pÄ kÀrnnivÄ med Netfilter. VÄra VDS byggs pÄ Hyper-V, sÄ pÄ det sista steget skapar vi en lokal bro och aktiverar TAP-enheten med kommandot bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. NÀr vi lÀmnar kontrollkonsolen för hubben ser vi ett nytt nÀtverksgrÀnssnitt i systemet, som Ànnu inte har tilldelats nÄgot IP:

ifconfig

Snort eller Suricata. Del 3: skydda kontorsnÀtet

Vidare mÄste vi aktivera paketrutten mellan grÀnssnitten (ip forward), om den inte Àr aktiv:

sudo nano /etc/sysctl.conf

Avkommentera följande rad:

net.ipv4.ip_forward = 1

Spara Àndringarna i filen, lÀmna redigeraren och tillÀmpa dem med följande kommando:

sudo sysctl -p

DÀrefter behöver vi bestÀmma en sub-nÀtverksadress för det virtuella nÀtverket med fiktiva IP-adresser (till exempel 10.0.10.0/24) och tilldela en adress till grÀnssnittet:

sudo ifconfig tap_suricata_vp 10.0.10.1/24

Sedan kommer det att krÀvas att vi definierar Netfilter-regler.

1. Vid behov, tillÄt inkommande paket pÄ de lyssnande portarna (SoftEther-protokollet anvÀnder HTTPS och port 443)

sudo iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 992 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 5555 -j ACCEPT

2. StÀll in NAT frÄn nÀtverket 10.0.10.0/24 till serverns huvud-IP

sudo iptables -t nat -A POSTROUTING -s 10.0.10.0/24 -j SNAT --to-source 45.132.17.140

3. TillÄt passerande paket frÄn nÀtverket 10.0.10.0/24

sudo iptables -A FORWARD -s 10.0.10.0/24 -j ACCEPT

4. TillÄt passerande paket för redan etablerade anslutningar

sudo iptables -A FORWARD -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

Vi lÀmnar automatiseringen av processen vid systemstart via init-skript som en övning till lÀsarna.

Om du vill tilldela IP automatiskt till klienterna, mÄste du ocksÄ installera nÄgon form av DHCP-tjÀnst för den lokala bron. Nu Àr serverinstÀllningen klar och vi kan gÄ vidare till klienterna. SoftEther stöder mÄnga protokoll, vars anvÀndning beror pÄ utrustningens kapabiliteter i det lokala nÀtverket.

netstat -ap |grep vpnserver

Snort eller Suricata. Del 3: skydda kontorsnÀtet

Eftersom vÄr testrouter ocksÄ kör Ubuntu, installerar vi mjukvarupaketen softether-vpnclient och softether-vpncmd frÄn ett externt repository för att anvÀnda det proprietÀra protokollet. Vi mÄste starta klienten:

sudo vpnclient start

För att konfigurera anvÀnder vi verktyget vpncmd, och vÀljer localhost som maskin dÀr vpnclient körs. Alla kommandon utförs i konsolen: vi behöver skapa ett virtuellt grÀnssnitt (NicCreate) och ett konto (AccountCreate).

I vissa fall behöver vi ange autentiseringsmetod med kommandona AccountAnonymousSet, AccountPasswordSet, AccountCertSet och AccountSecureCertSet. Eftersom vi inte anvÀnder DHCP, anges adressen för den virtuella adaptern manuellt.

Dessutom behöver vi aktivera ip-forward (parametern net.ipv4.ip_forward=1 i filen /etc/sysctl.conf) och konfigurera statiska rutter. Vid behov kan portöppningar stÀllas in pÄ VDS med Suricata för att anvÀnda tjÀnsterna i det lokala nÀtverket. Nu kan sammanslagningen av nÀtverken anses vara avslutad.

Den föreslagna konfigurationen kommer ungefÀr att se ut sÄ hÀr:

Snort eller Suricata. Del 3: skydda kontorsnÀtet

Konfigurera Suricata

I den föregĂ„ende artikeln Vi har pratat om tvĂ„ arbetslĂ€gen för IDS: genom kö NFQUEUE (NFQ-lĂ€get) och genom zero copy (AF_PACKET-lĂ€get). Den andra krĂ€ver tvĂ„ grĂ€nssnitt, men erbjuder bĂ€ttre prestanda – vi kommer att anvĂ€nda just den. Parametern Ă€r förinstĂ€lld i /etc/default/suricata. Vi behöver ocksĂ„ redigera avsnittet vars i /etc/suricata/suricata.yaml, dĂ€r vi anger det virtuella undermedlet som hemmanĂ€tverk.

Snort eller Suricata. Del 3: skydda kontorsnÀtet

För att starta om IDS anvÀnder vi kommandot:

systemctl restart suricata

Lösningen Àr klar, nu kan det vara nödvÀndigt att kontrollera dess motstÄndskraft mot angripares ÄtgÀrder.

Simulera attacker

Det finns flera scenarier för fÀltanvÀndning av externa IDS-tjÀnster:

Skydd mot DDoS-attacker (huvudsakligt syfte)

Att implementera en sĂ„dan lösning inom företagsnĂ€tverket Ă€r svĂ„rt, eftersom paketen för analys mĂ„ste komma till det grĂ€nssnitt som övervakar internet. Även om IDS blockerar dem, kan parasittrafik överbelasta datakanalen. För att undvika detta behöver man bestĂ€lla en VPS med tillrĂ€ckligt kraftfull internetanslutning som kan hantera all trafik frĂ„n det lokala nĂ€tverket och all extern trafik. Detta Ă€r ofta enklare och billigare Ă€n att utöka kontorets kanal. Som alternativ bör man nĂ€mna specialiserade tjĂ€nster för skydd mot DDoS. Kostnaden för deras tjĂ€nster Ă€r jĂ€mförbar med kostnaden för en virtuell server, samtidigt som man slipper arbetskrĂ€vande instĂ€llningar, men det finns ocksĂ„ nackdelar – klienten fĂ„r endast skydd mot DDoS för sina pengar, medan en egen IDS kan konfigureras hur som helst.

Skydd mot externa attacker av andra typer

Suricata kan hantera försök att utnyttja olika sÄrbarheter i de tjÀnster som Àr tillgÀngliga frÄn internet i företagsnÀtverket (e-postserver, webbserver och webbapplikationer osv.). Vanligtvis installeras IDS inuti det lokala nÀtverket efter grÀnsenhetsenheter, men att ha den utanför Àr ocksÄ en giltig lösning.

Skydd mot interna angripare

Trots alla anstrĂ€ngningar frĂ„n systemadministratören kan datorerna i det företagsnĂ€tverk bli infekterade med skadlig programvara. Dessutom kan ibland störare dyka upp i det lokala nĂ€tverket och försöka utföra oetiska operationer. Suricata kan hjĂ€lpa till att blockera sĂ„dana försök, Ă€ven om det Ă€r bĂ€st att installera den inom perimetern för att skydda det interna nĂ€tverket och anvĂ€nda den tillsammans med en switch som kan spegla trafik till en port. En extern IDS Ă€r ocksĂ„ inte helt onödig – Ă„tminstone kan den upptĂ€cka försök frĂ„n onda program som finns i LAN:et att kontakta externa servrar.

LÄt oss först skapa ytterligare en testande angripande VPS, och pÄ routern i det lokala nÀtverket startar vi Apache med standardkonfigurationen, varefter vi vidarebefordrar den 80:e porten frÄn IDS-servern. NÀsta steg blir att simulera en DDoS-attack frÄn angriparen. För detta behöver vi ladda ner, kompilera och köra ett litet program xerxes pÄ angriparens nod (installationen av paketet gcc kan vara nödvÀndig):

git clone https://github.com/Soldie/xerxes-DDos-zanyarjamal-C.git
cd xerxes-DDos-zanyarjamal-C/
gcc xerxes.c -o xerxes
./xerxes 45.132.17.140 80

Resultatet av dess arbete visade sig vara följande:

Snort eller Suricata. Del 3: skydda kontorsnÀtet

Suricata blockerar skurken, medan standard Apache-sidan öppnas trots vÄr improviserade attack och det relativt svaga bandbredden i "kontors" (faktiskt hemmanÀtverket). För mer seriösa uppgifter bör man anvÀnda Metasploit Framework. Den Àr avsedd för penetrationstestning och gör det möjligt att simulera olika typer av attacker. Installationsinstruktionen Àr tillgÀngligt finns pÄ projektets hemsida. Efter installationen behöver den uppdateras:

sudo msfupdate

För testÀndamÄl startar vi msfconsole.

Snort eller Suricata. Del 3: skydda kontorsnÀtet

TyvÀrr saknar de senaste versionerna av ramverket möjligheten till automatisk hackning, sÄ exploiter mÄste genomgÄs manuellt och köras med kommandot use. Först bör öppna portar pÄ den attackerade maskinen identifieras, exempelvis med hjÀlp av nmap (i vÄrt fall kan det ersÀttas med netstat pÄ den attackerade noden), och sedan vÀlja och anvÀnda lÀmpliga Metasploit-moduler.. 

Det finns ocksÄ andra verktyg för att kontrollera IDS:ens motstÄndskraft mot attacker, inklusive onlinetjÀnster. Av ren nyfikenhet kan vi genomföra ett stresstest med hjÀlp av testversionen av IP Stresser. För att kontrollera reaktionen pÄ handlingar frÄn interna angripare bör speciella verktyg installeras pÄ en av maskinerna i det lokala nÀtverket. Det finns mÄnga alternativ och de bör periodiskt tillÀmpas, inte bara pÄ experimentella miljöer utan Àven pÄ arbetsystem; men det Àr en helt annan historia.

Snort eller Suricata. Del 3: skydda kontorsnÀtet

Snort eller Suricata. Del 3: skydda kontorsnÀtet

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster