Dostop iz VPN v VLAN: najprej matrika, nato pravila
Vloge na eni strani, storitve na drugi. Pet preverjanj spremeni megleno zasnovo dostopa iz VPN v VLAN v tabelo, ki jo lahko lastnik požarnega zidu izvede.
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.
| Check | Passes when | Stop if |
|---|---|---|
| Destination named | Host and port appear in the cell | Cell names a VLAN or a subnet |
| Direction stated | Initiator and responder are both clear | Cell implies two-way access |
| Dependency listed | DNS or identity path is explicit | Whole infrastructure range is granted |
| Negative case written | At least one denied pair is recorded | Only 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.