Tunelis tarp vietovių atsako į vieną klausimą, ar du biurai gali keistis paketais, o svarbiausią palieka atvirą: kuris filialo įrenginys gali pasiekti kurią centrinę paslaugą. Tunelio traktavimas kaip abipusio pasitikėjimo yra kelias, kuriuo svečio nešiojamasis kompiuteris atsiduria tame pačiame maršrute kaip finansų serveris. Sprendimas yra ne geresnis tunelis, o aiškus leidimų sąrašas, taikomas po iššifravimo. Šis vadovas veda tą sąrašą nuo apibrėžimo iki įrodyto atmetimo.

Dirbkite šia tvarka ir neplėskite tunelio maršruto, kol toliau pateikti politikos žingsniai nebus įveikti.

Parašykite matricą prieš liesdami šliuzą

Naudinga eilutė įvardija tris dalykus: šaltinio grupę, paskirties mazgą arba paslaugos tinklą, ir protokolą bei prievadą, kurį programa iš tikrųjų naudoja. Filialas ir duomenų centras nėra įrašai. Privatus DNS ir autentifikavimo paslaugos savo eilutes pelno tik tada, kai programa be jų negali veikti.

Grupuokite šaltinius pagal vaidmenį, o ne pagal potinklio patogumą: darbuotojai, svečiai, administracija. Kai visi trys dalijasi vienu plokščiu LAN, šliuzas negali jų atskirti tinklo lygmenyje, todėl tapatybės kontrolė ar segmentavimas turi ateiti pirmiau. Tada užrašykite matricą raštu, kiekvienoje eilutėje nurodydami savininką ir peržiūros datą.

ŠaltinisPaskirtisPaslaugaSprendimas
filialo darbuotojaiužsakymų programa 10.10.5.10TCP 443leisti iššifruojančiame šliuze
filialo darbuotojaiserverių administravimo VLANbet koksnumanomas atmetimas
svečių Wi-Fibet koks centrinis diapazonasbet koksatmesti prieš tunelį
administracinis šuolio mazgasserverių VLANTCP 22 ir 3389leisti su MFA, mazgo užkarda dar labiau susiaurina

Taikykite ten, kur paketai iššifruojami

Taisyklės, leidžiančios IKE ir ESP, stato tik išorinį tunelį. Vidinis srautas ateina atvirai į tunelio sąsają, ir būtent ten yra leidimų sąrašo vieta: persiuntimo grandinė iššifruojančiame įrenginyje, numatytasis numetimas, viena taisyklė kiekvienai matricos eilutei. Linux šliuzuose tai reiškia įjungtą persiuntimą ir filtro taisykles tunelio įrenginyje, o ne fizinėje jungtyje, kaip aiškina strongSwan persiuntimo vadovas.

Srauto selektoriai yra maršrutizavimo sprendimas, o ne autorizacijos sprendimas. Platus selektorius, apimantis abu potinklius, gali būti teisingas maršrutizavimui, nors užkarda vis dar leidžia tik TCP 443 vienam mazgui. Selektorius derinamas tuneliui ir aprašo, kas į jį gali patekti, o ne ką gali naudoti konkretus įrenginys. Niekada neplėskite užkardos taisyklės todėl, kad selektorius platus.

iptables -A FORWARD -i tun0 -s 10.20.0.0/24 -d 10.10.5.10 -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -i tun0 -j DROP

NAT ir persidengiantys potinkliai keičia taisykles

Kai filialo šliuzas prieš tunelį išverčia kiekvieną mazgą į vieną adresą, kiekviena šaltiniu pagrįsta eilutė sugriūva į tą vieną adresą. Arba nustokite versti tunelio srautą, arba pripažinkite, kad taisyklės turi remtis kuo kitu, pavyzdžiui, pirminiu šaltinio adresu, užfiksuotu prieš vertimą. Tolimasis galas turi tą pačią problemą, nes paskirties mazgas mato adresą po NAT, o ne pirminį.

Persidengiantys diapazonai yra kita spąsta. Dviejų biurų, kurie abu naudoja 192.168.1.0/24, negalima aprašyti vienoje politikos lentelėje neatvaizdavus vienos pusės, o atvaizdavimas nepakeičia adresavimo, kuris nesidubliuoja. Ištaisykite planą prieš rašydami taisykles, kurias vėliau turėsite išnarplioti.

Įrodykite atmetimą, o ne tik sėkmę

Tik leidžiamos programos testavimas įrodo labai mažai, nes leidi taisyklė kažkur aukščiau duoda tą patį rezultatą.

Iš įprasto filialo įrenginio pasiekite numatytą paslaugą ir patvirtinkite, kad visa sesija veikia. Tada pabandykite paskirtį, kuri turi likti uždaryta, pavyzdžiui, administracinį prievadą serveryje, su kuriuo filialas neturi jokio reikalo, ir perskaitykite skaitiklį ar žurnalo įrašą, kuris ją numetė. Taisyklių rinkinio išjungimas norint patikrinti, ar jis veikia, padaro testą negaliojantį ir palieka šliuzą atvirą, kol žiūrite.

Išlaikykite sąrašą gyvą

Programos juda, o taisyklė, kuri pergyvena savo programą, tampa skylė, kurios niekas nevaldo. Priskirkite peržiūros datą eilutei ir, kai paslauga keičia adresą, tame pačiame priežiūros žingsnyje pakeiskite selektoriaus apimtį ir užkardos taisyklę.

Mazgo lygio apribojimai vis dar svarbūs už tunelio: paties serverio užkarda turėtų priimti filialo diapazoną tik tai paslaugai, kurią skelbia. Du suderinti sluoksniai yra lengviau audituojami nei vienas sluoksnis, kuriuo visiškai pasitikima.

Susiję straipsniai