Piekļuve no VPN uz VLAN: vispirms matrica, tad noteikumi
Lomas vienā pusē, pakalpojumi otrā. Piecas pārbaudes pārvērš neskaidru VPN–VLAN piekļuves projektu tabulā, ko ugunsmūra īpašnieks var ieviest.
Sāciet ar matricu, nevis ar ugunsmūra sintaksi. Tabulu, kurā lomas ir vienā pusē un pakalpojumi otrā, var pārskatīt lietojumprogrammas īpašnieks, apspriest drošības īpašnieks un ieviest tas, kuram ir vārteja. Šī pārskatīšana ir lētāka par tādu noteikumu atkļūdošanu, par kuriem neviens nav vienojies.
Viena stunda rakstīšanas vēlāk ietaupa nedēļu noteikumu arheoloģijas. Dizains runā par to, kas sasniedz kuru pakalpojumu, un tieši šī daļa pārdzīvo pārnumurēšanu.
1. solis: nosauciet lomas pirms tīkliem
Sāciet ar cilvēkiem, nevis ar komutatoru. Pierakstiet katru grupu, kas pieslēdzas attālināti, un vienu teikumu, kas apraksta, ko šī grupa dara, piemēram, noliktavas darbinieki, kas nolasa krājumu līmeņus, vai darbuzņēmējs, kas uztur vienu integrāciju. Ja divas grupas saņemtu identisku piekļuvi, šim nolūkam tās ir viena loma.
Apstājieties šeit, ja loma pastāv tikai organizācijas shēmas dēļ. Loma bez savas atsevišķas pakalpojuma vajadzības kļūst par identisku šūnu rindu, un identiskas rindas mudina kādu vēlāk ērtības dēļ piešķirt visu apakštīklu. Sadaliet pēc tā, ko cilvēki dara, nevis pēc tā, kas paraksta viņu izdevumus. Mazai birojam sešas lomas parasti ir par daudz, un trīs bieži ir pareizi.
2. solis: pārvērtiet katru šūnu pakalpojuma apgalvojumā
Šūna ar uzrakstu „Lietojumprogrammas“ nav pārbaudāma. Šūna ar uzrakstu „HTTPS uz ERP resursdatoru portā 443, no darbinieku pūla“ ir pārbaudāma. Aizstājiet katru tīkla nosaukumu ar galamērķi, protokolu un portu, pēc tam pievienojiet atkarību, bez kuras pakalpojums nedarbojas, piemēram, iekšējo atrisinātāju vai identitātes nodrošinātāju.
| 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 |
Virziena kolonna noķer visdārgākās kļūdas. Atļauja darbiniekiem atvērt lietojumprogrammu nenozīmē atļauju lietojumprogrammu serveriem atvērt savienojumus atpakaļ uz darbinieku portatīvajiem datoriem, un stāvokļa noteikums, kas atļauj pirmo virzienu, bieži tiek lasīts tā, it kā tas atļautu otro.
3. solis: izlemiet, kur identitāte kļūst par politiku
Kādam autentificēta sesija ir jāpārvērš lomā, ko vārteja var piemērot. Atbalstītās iespējas ietver grupu politiku, ko piegādā autentifikācijas aizmugure, uzticamus sesijas atribūtus vai atsevišķus adrešu pūlus katrai lomai. Visas trīs darbojas; klienta sūtīta etiķete nedarbojas. Izvēlieties mehānismu, ko dokumentē jūsu vārteja, nevis to, ko apraksta foruma ieraksts.
Adreses piešķiršana, kas tikai izskatās, it kā piederētu VLAN, ir tā pati ne-atbilde citā tērpā. Netgate rokasgrāmata par OpenVPN ugunsmūra noteikumiem padara šķīrumu skaidru: ļaut tunelim pacelties ir cits lēmums nekā ļaut trafikam iet tam cauri.
Pierakstiet, kuru mehānismu izvēlējāties un kur tas konfigurēts. Kad loma mainās, šī piezīme ir starpība starp vienu labojumu un meklēšanu trijās saskarnēs. Tā arī pasaka auditoram, kur skatīties vispirms.
4. solis: vērojiet avota adresi, ko redz galamērķis
Pārsūtīšanas politikai ir jāatbilst reālajam avotam uz robežas. Ja vārteja pārtulko VPN klientus uz savu adresi, katra zemākā ugunsmūra redz vienu avotu un zaudē spēju pieņemt lēmumus pēc lomas. Ja tā saglabā klienta adresi, atgriešanās ceļam ir jāpastāv šim pūlam.
Pārbaudiet abus virzienus pirms galīgo noteikumu rakstīšanas, pēc tam pierakstiet novēroto avotu blakus katrai šūnai. Palaidiet to pašu pārbaudi no divām dažādām lomām un salīdziniet rezultātu. Ja abas rāda vārtejas adresi, lomu atšķirība jau ir zaudēta. Matrica, kas pieņem saglabātas adreses, kamēr vārteja veic avota tulkošanu, neizdodas pie pirmā zemākā ACL.
5. solis: pārbaudiet katru šūnu pirms izlaišanas
Pārvērtiet katru atļauto šūnu vienā reprezentatīvā darbībā un katru aizliegto šūnu negatīvā gadījumā. Palaidiet abus no klienta reālajā lomā, nevis no vārtejas konsoles, jo konsole apiet ceļu, kuru jūs pārbaudāt.
# 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'
Negatīvs gadījums, kas pieslēdzas, ir atradums, nevis nejaušība, un tā vieta matricā ir neizdevusies šūna, līdz noteikums tiek izlabots. Turiet testa komandas blakus tabulai, lai nākamais pārskatītājs tās palaistu no jauna, nevis no jauna uzbūvētu pamatojumu.
Pabeigtā tabula pārdzīvo vārteju, kurai tā tika rakstīta. Noteikumi mainās līdz ar programmaparatūru un piegādātāju, bet rinda, kas saka, ka darbuzņēmējs sasniedz vienu projekta pakalpojumu, paliek patiesa, līdz šis darbs mainās.