Snort aŭ Suricata. Parto 3: Protektante la Oficejan Reton

В antaŭa artikolo ni priskribis kiel ruli la stabilan version de Suricata sur Ubuntu 18.04 LTS. Agordi IDS sur ununura nodo kaj ebligi senpagajn regulojn estas sufiĉe simpla. Hodiaŭ ni eltrovos kiel protekti kompanian reton uzante la plej oftajn specojn de atakoj uzante Suricata instalitan sur virtuala servilo. Por fari tion, ni bezonas VDS en Linukso kun du komputilaj kernoj. La kvanto de RAM dependas de la ŝarĝo: 2 GB sufiĉas por iu, kaj 4 aŭ eĉ 6 povas esti bezonataj por pli seriozaj taskoj.La avantaĝo de virtuala maŝino estas la kapablo eksperimenti: vi povas komenci per minimuma agordo kaj pliigi. rimedoj laŭbezone.

Snort aŭ Suricata. Parto 3: Protektante la Oficejan Retonfoto: Reuters

Konektante retojn

Forigi IDS al virtuala maŝino en la unua loko eble estos bezonata por testoj. Se vi neniam traktis tiajn solvojn, vi ne rapidu mendi fizikan aparataron kaj ŝanĝi la retan arkitekturon. Plej bone ruli la sistemon sekure kaj kostefike por determini viajn komputilajn bezonojn. Gravas kompreni, ke la tuta kompania trafiko devos esti trapasita tra ununura ekstera nodo: por konekti lokan reton (aŭ plurajn retojn) al VDS kun IDS Suricata instalita, vi povas uzi MolaEtero - Facile agordebla, transplatforma VPN-servilo, kiu provizas fortan ĉifradon. Oficeja Interreta konekto eble ne havas realan IP, do estas pli bone agordi ĝin sur VPS. Ne estas pretaj pakaĵoj en la Ubuntu-deponejo, vi devos elŝuti la programaron ĉu de projektejo, aŭ de ekstera deponejo sur la servo Launchpad (se vi fidas lin):

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

Vi povas vidi la liston de disponeblaj pakaĵoj per la sekva komando:

apt-cache search softether

Snort aŭ Suricata. Parto 3: Protektante la Oficejan Reton

Ni bezonos softether-vpnserver (la servilo en la testa agordo funkcias en VDS), same kiel softether-vpncmd - komandliniajn ilojn por agordi ĝin.

sudo apt-get install softether-vpnserver softether-vpncmd

Speciala komandlinia utileco estas uzata por agordi la servilon:

sudo vpncmd

Snort aŭ Suricata. Parto 3: Protektante la Oficejan Reton

Ni ne parolos detale pri la agordo: la proceduro estas sufiĉe simpla, ĝi estas bone priskribita en multaj publikaĵoj kaj ne rekte rilatas al la temo de la artikolo. Mallonge, post komenci vpncmd, vi devas elekti la eron 1 por iri al la servila administra konzolo. Por fari tion, vi devas enigi la nomon localhost kaj premi enen anstataŭ enigi la nomon de la nabo. La pasvorto de administranto estas agordita en la konzolo per la komando serverpasswordset, la DEFAULT virtuala nabo estas forigita (komando hubdelete) kaj nova estas kreita kun la nomo Suricata_VPN, kaj ĝia pasvorto ankaŭ estas agordita (komando hubcreate). Poste, vi devas iri al la administra konzolo de la nova nabo uzante la komandon hub Suricata_VPN por krei grupon kaj uzanton per la komandoj groupcreate kaj usercreate. La uzantpasvorto estas agordita uzante userpasswordset.

SoftEther subtenas du trafikajn transigajn reĝimojn: SecureNAT kaj Local Bridge. La unua estas proprieta teknologio por konstrui virtualan privatan reton kun siaj propraj NAT kaj DHCP. SecureNAT ne postulas TUN/TAP aŭ Netfilter aŭ aliajn fajroŝirmilojn. Enrutado ne influas la kernon de la sistemo, kaj ĉiuj procezoj estas virtualigitaj kaj funkcias en iu ajn VPS / VDS, sendepende de la hiperviziero uzata. Ĉi tio rezultas en pliigita CPU-ŝarĝo kaj pli malrapida rapideco kompare al Loka Ponta reĝimo, kiu ligas la virtualan nabon SoftEther al fizika retoadaptilo aŭ TAP-aparato.

Agordo en ĉi tiu kazo iĝas pli komplika, ĉar vojigo okazas ĉe la kernnivelo uzante Netfilter. Niaj VDS estas konstruitaj sur Hyper-V, do en la lasta paŝo ni kreas lokan ponton kaj aktivigas la TAP-aparaton per la komando bridgecreate Suricate_VPN -device:suricate_vpn -tap:yes. Post eliro de la naba administradkonzolo, ni vidos novan retan interfacon en la sistemo, al kiu ankoraŭ ne estis asignita IP:

ifconfig

Snort aŭ Suricata. Parto 3: Protektante la Oficejan Reton

Poste, vi devos ebligi pakaĵvojadon inter interfacoj (ip antaŭen), se ĝi estas neaktiva:

sudo nano /etc/sysctl.conf

Malkomentu la sekvan linion:

net.ipv4.ip_forward = 1

Konservu la ŝanĝojn al la dosiero, eliru la redaktilon kaj apliku ilin per la sekva komando:

sudo sysctl -p

Poste, ni devas difini subreton por la virtuala reto kun fikciaj IP-oj (ekzemple, 10.0.10.0/24) kaj atribui adreson al la interfaco:

sudo ifconfig tap_suricata_vp 10.0.10.1/24

Tiam vi devas skribi Netfilter-regulojn.

1. Se necese, permesu alvenantajn pakaĵojn sur aŭskultantaj havenoj (Protokolo de SoftEther uzas HTTPS kaj havenon 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. Agordu NAT de la subreto 10.0.10.0/24 al la IP de la ĉefa servilo

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

3. Permesu pasi pakojn el la subreto 10.0.10.0/24

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

4. Permesu pasi pakojn por jam establitaj konektoj

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

Ni lasos la aŭtomatigon de la procezo kiam la sistemo estas rekomencita uzante komencajn skriptojn al la legantoj kiel hejmtaskon.

Se vi volas aŭtomate doni IP al klientoj, vi ankaŭ devos instali ian DHCP-servon por la loka ponto. Ĉi tio kompletigas la agordon de la servilo kaj vi povas iri al la klientoj. SoftEther subtenas multajn protokolojn, kies uzo dependas de la kapabloj de la LAN-ekipaĵo.

netstat -ap |grep vpnserver

Snort aŭ Suricata. Parto 3: Protektante la Oficejan Reton

Ĉar nia testa enkursigilo ankaŭ funkcias sub Ubuntu, ni instalu la softether-vpnclient kaj softether-vpncmd-pakaĵojn de ekstera deponejo sur ĝi por uzi la proprietan protokolon. Vi devos ruli la klienton:

sudo vpnclient start

Por agordi, uzu la ilon vpncmd, elektante localhost kiel la maŝino sur kiu la vpnclient funkcias. Ĉiuj komandoj estas faritaj en la konzolo: vi devos krei virtualan interfacon (NicCreate) kaj konton (AccountCreate).

En iuj kazoj, vi devas specifi la aŭtentikigmetodon per la komandoj AccountAnonymousSet, AccountPasswordSet, AccountCertSet kaj AccountSecureCertSet. Ĉar ni ne uzas DHCP, la adreso por la virtuala adaptilo estas agordita permane.

Krome, ni devas ebligi ip antaŭen (opcio net.ipv4.ip_forward=1 en la /etc/sysctl.conf dosiero) kaj agordi statikajn itinerojn. Se necese, ĉe VDS kun Suricata, vi povas agordi havenon plusendon por uzi la servojn instalitajn en la loka reto. Pri tio, la reto-kunfandiĝo povas esti konsiderita kompleta.

Nia proponita agordo aspektos kiel ĉi tio:

Snort aŭ Suricata. Parto 3: Protektante la Oficejan Reton

Starigante Suricata

В antaŭa artikolo ni parolis pri du manieroj de funkciado de IDS: per la NFQUEUE-vico (NFQ-reĝimo) kaj per nula kopio (AF_PACKET-reĝimo). La dua postulas du interfacojn, sed estas pli rapida - ni uzos ĝin. La parametro estas agordita defaŭlte en /etc/default/suricata. Ni ankaŭ devas redakti la vars-sekcion en /etc/suricata/suricata.yaml, fiksante la virtualan subreton tie kiel hejmon.

Snort aŭ Suricata. Parto 3: Protektante la Oficejan Reton

Por rekomenci IDS, uzu la komandon:

systemctl restart suricata

La solvo estas preta, nun vi eble bezonos testi ĝin pri rezisto al malicaj agoj.

Simulado de atakoj

Povas ekzisti pluraj scenaroj por la bataluzo de ekstera IDS-servo:

Protekto kontraŭ DDoS-atakoj (ĉefa celo)

Estas malfacile efektivigi tian opcion ene de la kompania reto, ĉar la pakaĵoj por analizo devas atingi la sisteman interfacon kiu rigardas la Interreton. Eĉ se la IDS blokas ilin, falsa trafiko povas faligi la datuman ligon. Por eviti ĉi tion, vi devas mendi VPS kun sufiĉe produktiva interreta konekto, kiu povas trapasi la tutan lokan retan trafikon kaj la tutan eksteran trafikon. Ofte estas pli facile kaj pli malmultekosta fari tion ol vastigi la oficejan kanalon. Kiel alternativo, indas mencii specialajn servojn por protekto kontraŭ DDoS. La kosto de iliaj servoj estas komparebla al la kosto de virtuala servilo, kaj ĝi ne postulas tempopostulan agordon, sed ankaŭ estas malavantaĝoj - la kliento ricevas nur DDoS-protekton por sia mono, dum sia propra IDS povas esti agordita kiel vi. Ŝati.

Protekto kontraŭ eksteraj atakoj de aliaj tipoj

Suricata kapablas elteni provojn ekspluati diversajn vundeblecojn en kompaniaj retservoj alireblaj de la Interreto (poŝtservilo, retservilo kaj ret-aplikoj ktp.). Kutime, por tio, IDS estas instalita ene de la LAN post la landlimaj aparatoj, sed preni ĝin eksteren havas la rajton ekzisti.

Protekto kontraŭ internuloj

Malgraŭ la plej bonaj klopodoj de la sistemadministranto, komputiloj en la kompania reto povas esti infektitaj per malware. Krome, foje aperas en la loka ĉirkaŭaĵo huliganoj, kiuj provas fari kelkajn kontraŭleĝajn operaciojn. Suricata povas helpi bloki tiajn provojn, kvankam por protekti la internan reton estas pli bone instali ĝin ene de la perimetro kaj uzi ĝin kune kun administrita ŝaltilo, kiu povas speguli trafikon al unu haveno. Ekstera IDS ankaŭ ne estas senutila en ĉi tiu kazo - almenaŭ ĝi povos kapti provojn de malware vivanta sur la LAN por kontakti eksteran servilon.

Komence, ni kreos alian teston atakantan VPS, kaj sur la loka reto-enkursigilo ni levos Apache kun la defaŭlta agordo, post kio ni plusendos la 80-an havenon al ĝi de la IDS-servilo. Poste, ni simulos DDoS-atakon de atakanta gastiganto. Por fari tion, elŝutu el GitHub, kompilu kaj rulu malgrandan xerxes-programon sur la ataka nodo (vi eble bezonos instali la pakon gcc):

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

La rezulto de ŝia laboro estis kiel sekvas:

Snort aŭ Suricata. Parto 3: Protektante la Oficejan Reton

Suricata fortranĉas la fiulon, kaj la Apache paĝo malfermiĝas defaŭlte, malgraŭ nia senprepara atako kaj la sufiĉe morta kanalo de la "oficeja" (fakte hejma) reto. Por pli seriozaj taskoj, vi devus uzi Metasploit Framework. Ĝi estas desegnita por penetrotestado kaj permesas vin simuli diversajn atakojn. Instalaj instrukcioj disponebla en la retejo de la projekto. Post instalado, ĝisdatigo estas postulata:

sudo msfupdate

Por testado, rulu msfconsole.

Snort aŭ Suricata. Parto 3: Protektante la Oficejan Reton

Bedaŭrinde, al la plej novaj versioj de la kadro mankas la kapablo aŭtomate fendetiĝi, do ekspluatoj devos esti ordigitaj permane kaj rulitaj per la uza komando. Komence, indas determini la pordojn malfermitajn sur la atakita maŝino, ekzemple, uzante nmap (en nia kazo, ĝi estos tute anstataŭigita per netstat sur la atakita gastiganto), kaj poste elektu kaj uzu la taŭgan. Metasploit-moduloj

Estas aliaj rimedoj por testi la fortikecon de IDS kontraŭ atakoj, inkluzive de interretaj servoj. Por scivolemo, vi povas aranĝi strestestadon uzante la provan version IP-stresigilo. Por kontroli la reagon al la agoj de internaj entruduloj, indas instali specialajn ilojn sur unu el la maŝinoj en la loka reto. Estas multaj ebloj kaj de tempo al tempo ili devus esti aplikataj ne nur al la eksperimenta retejo, sed ankaŭ al funkciaj sistemoj, nur ĉi tio estas tute alia historio.

Snort aŭ Suricata. Parto 3: Protektante la Oficejan Reton

Snort aŭ Suricata. Parto 3: Protektante la Oficejan Reton

fonto: www.habr.com

Aldoni komenton