Pradėkite nuo matricos, o ne nuo ugniasienės sintaksės. Lentelę, kurioje vaidmenys vienoje pusėje, o paslaugos kitoje, gali peržiūrėti programos savininkas, aptarti saugumo savininkas ir įgyvendinti tas, kas turi tinklų sietuvą. Ši peržiūra pigesnė nei taisyklių, dėl kurių niekas nesusitarė, derinimas.

Valanda rašymo vėliau sutaupo savaitę taisyklių archeologijos. Dizainas kalba apie tai, kas pasiekia kurią paslaugą, ir būtent ši dalis išlieka po pernumeravimo.

1 žingsnis: pavadinkite vaidmenis prieš tinklus

Pradėkite nuo žmonių, o ne nuo komutatoriaus. Užrašykite kiekvieną grupę, kuri jungiasi nuotoliniu būdu, ir vieną sakinį, aprašantį, ką ta grupė daro, pavyzdžiui, sandėlio darbuotojai, skaitantys atsargų lygius, arba rangovas, prižiūrintis vieną integraciją. Jei dvi grupės gautų identišką prieigą, šiam tikslui jos yra vienas vaidmuo.

Sustokite čia, jei vaidmuo egzistuoja tik dėl organizacinės schemos. Vaidmuo be atskiro paslaugos poreikio tampa identiškų langelių eilute, o identiškos eilutės paskatina ką nors vėliau dėl patogumo suteikti visą potinklį. Skirstykite pagal tai, ką žmonės daro, o ne pagal tai, kas pasirašo jų išlaidas. Šeši vaidmenys mažam biurui paprastai yra per daug, o trys dažnai yra teisingi.

2 žingsnis: paverskite kiekvieną langelį paslaugos teiginiu

Langelis su užrašu „Programos“ netikrinamas. Langelis su užrašu „HTTPS į ERP hostą 443 prievade, iš darbuotojų telkinio“ yra tikrinamas. Pakeiskite kiekvieną tinklo pavadinimą tikslu, protokolu ir prievadu, tada pridėkite priklausomybę, be kurios paslauga neveikia, pavyzdžiui, vidinį resolverį ar tapatybės teikėją.

CheckPasses whenStop if
Destination namedHost and port appear in the cellCell names a VLAN or a subnet
Direction statedInitiator and responder are both clearCell implies two-way access
Dependency listedDNS or identity path is explicitWhole infrastructure range is granted
Negative case writtenAt least one denied pair is recordedOnly allow rules exist

Krypties stulpelis pagauna brangiausias klaidas. Leidimas darbuotojams atidaryti programą nereiškia leidimo programų serveriams atidaryti ryšius atgal į darbuotojų nešiojamus kompiuterius, o būsenos taisyklė, leidžianti pirmą kryptį, dažnai skaitoma taip, lyg leistų antrąją.

3 žingsnis: nuspręskite, kur tapatybė tampa politika

Kažkas turi paversti autentifikuotą sesiją vaidmeniu, kurį tinklų sietuvas gali įgyvendinti. Palaikomos parinktys apima autentifikavimo backend'o teikiamą grupių politiką, patikimus sesijos atributus arba atskirus adresų telkinius kiekvienam vaidmeniui. Visi trys veikia; kliento siunčiama žymė neveikia. Rinkitės mechanizmą, kurį dokumentuoja jūsų tinklų sietuvas, o ne tą, kurį aprašo forumo įrašas.

Adreso, kuris tik atrodo priklausantis VLAN, priskyrimas yra tas pats neatsakymas kitokiu pavidalu. Netgate vadovas apie OpenVPN ugniasienės taisykles aiškiai parodo atskyrimą: leisti tuneliui pakilti yra kitas sprendimas nei leisti srautui praeiti pro jį.

Užsirašykite, kurį mechanizmą pasirinkote ir kur jis sukonfigūruotas. Kai vaidmuo pasikeičia, ta pastaba yra skirtumas tarp vieno pakeitimo ir paieškos trijose sąsajose. Ji taip pat pasako auditoriui, kur pirmiausia žiūrėti.

4 žingsnis: stebėkite šaltinio adresą, kurį mato tikslas

Persiuntimo politika turi atitikti tikrąjį šaltinį prie ribos. Jei tinklų sietuvas verčia VPN klientus į savo adresą, kiekviena žemiau esanti ugniasienė mato vieną šaltinį ir praranda galimybę priimti sprendimus pagal vaidmenį. Jei jis išsaugo kliento adresą, to telkinio grįžimo kelias turi egzistuoti.

Išbandykite abi kryptis prieš rašydami galutines taisykles, tada užrašykite stebimą šaltinį prie kiekvieno langelio. Paleiskite tą patį patikrinimą iš dviejų skirtingų vaidmenų ir palyginkite rezultatą. Jei abu rodo tinklų sietuvo adresą, vaidmenų atskirtis jau prarasta. Matrica, kuri daro prielaidą, kad adresai išsaugomi, kol tinklų sietuvas atlieka šaltinio vertimą, nepavyksta prie pirmos žemesnės ACL.

5 žingsnis: išbandykite kiekvieną langelį prieš išleisdami

Paverskite kiekvieną leidžiamą langelį viena reprezentatyvia operacija, o kiekvieną draudžiamą langelį – neigiamu atveju. Vykdykite abu iš kliento, esančio tikrame vaidmenyje, o ne iš tinklų sietuvo konsolės, nes konsolė apeina kelią, kurį testuojate.

# allowed: staff role reaches the ERP endpoint
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://erp.internal.example/health

# denied: the same role must not reach a management host
nc -vz -w 3 10.30.5.11 22

# observed source address at the destination
sudo tcpdump -ni any 'tcp port 443 and host 10.30.20.15'

Neigiamas atvejis, kuris prisijungia, yra radinys, o ne atsitiktinumas, ir jo vieta matricoje yra nepavykęs langelis, kol taisyklė bus pataisyta. Laikykite testo komandas šalia lentelės, kad kitas peržiūrėtojas jas paleistų iš naujo, o ne atkurtų samprotavimą.

Baigta lentelė išgyvena tinklų sietuvą, kuriam ji buvo parašyta. Taisyklės keičiasi su programine įranga ir tiekėju, o eilutė, sakanti, kad rangovas pasiekia vieną projekto paslaugą, išlieka teisinga, kol tas darbas nesikeičia.

Susiję straipsniai