Byrja med matrisa, ikkje med brannmur-syntaksen. Ein tabell med rollar på den eine sida og tenester på den andre kan gåast gjennom av ein applikasjonseigar, diskuterast av ein tryggleikseigar og implementerast av den som har gatewayen. Den gjennomgangen er billegare enn å feilsøkje reglar ingen har vorte samde om.

Ein time med skriving sparar seinare ei veke med reglarkologi. Designet handlar om kven som når kva teneste, og det er den delen som overlever omnummerering.

Steg 1: namnset rollane før netta

Byrja med menneska, ikkje med svitsjen. Skriv ned kvar gruppe som koplar til eksternt, og den eine setninga som skildrar kva gruppa gjer, til dømes lagerpersonale som les lagernivå, eller ein entreprenør som vedlikeheld éin integrasjon. Viss to grupper ville fått same tilgang, er dei éin rolle for dette føremålet.

Stopp her viss ei rolle berre finst på grunn av eit organisasjonskart. Ei rolle utan eige tenestebehov blir ei rad med identiske celler, og identiske rader freistar nokon til seinare å gje eit heilt subnett for enkelheits skuld. Del etter kva folk gjer, ikkje etter kven som signerer utgiftene deira. Seks rollar er vanlegvis for mange for eit lite kontor, og tre er ofte rett.

Steg 2: gjer kvar celle til ei tenesteerklæring

Ei celle som seier «Applikasjonar», kan ikkje testast. Ei celle som seier «HTTPS til ERP-verten på 443, frå personalpoolen», kan. Byt ut kvart nettverksnamn med ein destinasjon, ein protokoll og ein port, og legg deretter til avhengnaden tenesta ikkje kan fungere utan, som den interne resolvaren eller identitetsleverandøren.

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

Retningskolonnen fangar dei dyraste feila. Løyve for personalet til å opne ein applikasjon betyr ikkje løyve for applikasjonsserverar til å opne samband tilbake til dei berbare maskinene til personalet, og ein tilstandsbasert regel som tillèt den første retninga, blir ofte lesen som løyve til den andre.

Steg 3: avgjer kvar identitet blir policy

Nokon må gjere ei autentisert økt om til ei rolle gatewayen kan handheve. Støtta alternativ er gruppepolicy levert av autentiseringsbackend, betrudde øktattributt eller separate adressepoolar per rolle. Alle tre verkar; ein etikett klienten sender, verkar ikkje. Vel mekanismen gatewayen din dokumenterer, ikkje den eit foruminnlegg skildrar.

Å tildela ei adresse som berre ser ut som ho høyrer til eit VLAN, er det same ikkje-svaret i ein annan drakt. Netgate si rettleiing til OpenVPN-brannmurreglar gjer skillet tydeleg: å la tunnelen kome opp er eit anna vedtak enn å la trafikk gå gjennom han.

Skriv ned kva mekanisme du valde, og kvar han er konfigurert. Når ei rolle blir endra, er det notatet skilnaden mellom éi endring og ei jakt gjennom tre grensesnitt. Det fortel òg ein revisor kvar dei skal sjå først.

Steg 4: følg med på kjeldeadressa destinasjonen ser

Vidaresendingspolicyen må samsvare med den verkelege kjelda ved grensa. Viss gatewayen omset VPN-klientar til si eiga adresse, ser kvar nedstraums brannmur éi kjelde og mistar evna til å avgjere per rolle. Viss han bevarar klientadressa, må returvegen finnast for den poolen.

Test begge retningar før du skriv dei endelege reglane, og noter deretter den observerte kjelda ved kvar celle. Køyr same kontroll frå to ulike rollar og samanlikn resultatet. Viss begge viser adressa til gatewayen, er rolledelinga allereie tapt. Ei matrise som føreset bevarte adresser medan gatewayen omset kjelda, feilar ved den første nedstraums ACL-en.

Steg 5: test kvar celle før du sender henne ut

Gjer kvar tillaten celle til éin representativ operasjon og kvar avvist celle til eit negativt tilfelle. Køyr begge frå ein klient i den faktiske rolla, ikkje frå gateway-konsollen, fordi konsollen omgår vegen du testar.

# 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'

Eit negativt tilfelle som koplar til, er eit funn, ikkje eit tilfelle, og det høyrer i matrisa som ei feila celle til regelen er retta. Ha testkommandoane ved sida av tabellen, slik at neste granskar køyrer dei på nytt i staden for å byggje resonnementet opp att.

Den ferdige tabellen lever lenger enn gatewayen han vart skriven for. Reglar endrar seg med fastvare og leverandør, medan rada som seier at ein entreprenør når éi prosjekteneste, blir ståande sann til den jobben blir endra.

Relaterte artiklar