Začnite z matriko, ne s sintakso požarnega zidu. Tabelo z vlogami na eni strani in storitvami na drugi lahko pregleda lastnik aplikacije, o njej razpravlja lastnik varnosti in jo izvede tisti, ki ima prehod. Ta pregled je cenejši od razhroščevanja pravil, o katerih se nihče ni dogovoril.

Ura pisanja pozneje prihrani teden arheologije pravil. Zasnova govori o tem, kdo doseže katero storitev, in prav ta del preživi preštevilčenje.

Korak 1: poimenujte vloge pred omrežji

Začnite pri ljudeh, ne pri stikalu. Zapišite vsako skupino, ki se povezuje na daljavo, in en stavek, ki opisuje, kaj ta skupina dela, na primer skladiščno osebje, ki bere ravni zalog, ali izvajalec, ki vzdržuje eno integracijo. Če bi dve skupini dobili enak dostop, sta za ta namen ena vloga.

Ustavite se tukaj, če vloga obstaja samo zaradi organizacijske sheme. Vloga brez lastne potrebe po storitvi postane vrstica enakih celic, enake vrstice pa nekoga pozneje premamijo, da zaradi udobja dodeli celotno podomrežje. Delite po tem, kaj ljudje delajo, ne po tem, kdo podpisuje njihove izdatke. Šest vlog je za majhno pisarno običajno preveč, tri pa so pogosto prave.

Korak 2: spremenite vsako celico v izjavo o storitvi

Celica z napisom „Aplikacije“ ni preverljiva. Celica z napisom „HTTPS do gostitelja ERP na 443, iz bazena zaposlenih“ je preverljiva. Zamenjajte vsako ime omrežja s ciljem, protokolom in vrati, nato dodajte odvisnost, brez katere storitev ne deluje, na primer notranji razreševalnik ali ponudnika identitete.

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

Stolpec smeri ujame najdražje napake. Dovoljenje, da osebje odpre aplikacijo, ne pomeni dovoljenja, da strežniki aplikacij odpirajo povezave nazaj na prenosnike osebja, in pravilo s stanjem, ki dovoljuje prvo smer, se pogosto bere, kot da dovoljuje drugo.

Korak 3: odločite, kje identiteta postane politika

Nekdo mora pretvoriti overjeno sejo v vlogo, ki jo prehod lahko uveljavi. Podprte možnosti vključujejo skupinsko politiko, ki jo zagotavlja avtentikacijski backend, zaupanja vredne atribute seje ali ločene bazene naslovov za vsako vlogo. Vse tri delujejo; oznaka, ki jo pošlje odjemalec, ne. Izberite mehanizem, ki ga dokumentira vaš prehod, ne tistega, ki ga opisuje objava na forumu.

Dodelitev naslova, ki le zgleda, da pripada VLAN, je isti ne-odgovor v drugi preobleki. Netgateov vodnik po pravilih požarnega zidu OpenVPN jasno pokaže ločitev: dovoliti, da se tunel dvigne, je drugačna odločitev kot dovoliti, da promet gre skozenj.

Zapišite, kateri mehanizem ste izbrali in kje je konfiguriran. Ko se vloga spremeni, je ta zapisek razlika med enim urejanjem in lovom skozi tri vmesnike. Pove tudi revizorju, kje najprej pogledati.

Korak 4: opazujte izvorni naslov, ki ga vidi cilj

Politika posredovanja se mora na meji ujemati z dejanskim izvorom. Če prehod prevede odjemalce VPN v svoj naslov, vsak nižji požarni zid vidi en izvor in izgubi zmožnost odločanja po vlogi. Če ohrani naslov odjemalca, mora za ta bazen obstajati povratna pot.

Preizkusite obe smeri, preden napišete končna pravila, nato zabeležite opaženi izvor ob vsaki celici. Zaženite isto preverjanje iz dveh različnih vlog in primerjajte rezultat. Če obe kažeta naslov prehoda, je razlikovanje vlog že izgubljeno. Matrika, ki predpostavlja ohranjene naslove, medtem ko prehod izvaja prevajanje izvora, spodleti pri prvem nižjem ACL.

Korak 5: preizkusite vsako celico pred izdajo

Spremenite vsako dovoljeno celico v eno reprezentativno operacijo in vsako zavrnjeno celico v negativni primer. Zaženite oba z odjemalca v dejanski vlogi, ne s konzole prehoda, ker konzola obide pot, ki jo preizkušate.

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

Negativni primer, ki se poveže, je ugotovitev, ne naključje, in njegovo mesto je v matriki kot spodletela celica, dokler pravilo ni popravljeno. Imajte preskusne ukaze ob tabeli, da jih naslednji preglednik znova zažene, namesto da bi znova zgradil sklepanje.

Dokončana tabela preživi prehod, za katerega je bila napisana. Pravila se spreminjajo s strojno programsko opremo in dobaviteljem, medtem ko vrstica, ki pravi, da izvajalec doseže eno projektno storitev, ostane resnična, dokler se to delo ne spremeni.

Sorodni članki