VPN-ist VLAN-i juurdepääs: ehitage kõigepealt maatriks, alles siis reeglid
Rollid ühel pool, teenused teisel. Viis kontrolli muudavad ebamäärase VPN-ist VLAN-i juurdepääsu kavandi tabeliks, mille tulemüüri omanik saab rakendada.
Alustage maatriksist, mitte tulemüüri süntaksist. Tabelit, kus rollid on ühel pool ja teenused teisel, saab üle vaadata rakenduse omanik, vaidlustada turvalisuse omanik ja rakendada see, kelle käes on lüüs. See ülevaatus on odavam kui reeglite silumine, mille suhtes keegi kokku ei leppinud.
Tund kirjutamist säästab hiljem nädala reegliarheoloogiat. Disain räägib sellest, kes millisele teenusele jõuab, ja just see osa jääb ümbernummerdamisele vastu.
Samm 1: nimetage rollid enne võrke
Alustage inimestest, mitte lülitist. Kirjutage üles iga grupp, mis ühendub kaugelt, ja üks lause, mis kirjeldab, mida see grupp teeb, näiteks laotöötajad, kes loevad laoseisu, või töövõtja, kes haldab üht integratsiooni. Kui kaks gruppi saaksid identse juurdepääsu, on nad selle eesmärgi jaoks üks roll.
Peatuge siin, kui roll on olemas ainult organisatsiooniskeemi tõttu. Roll, millel pole omaette teenusevajadust, muutub reaks identsetest lahtritest ja identsed read kutsuvad kedagi hiljem mugavuse huvides tervet alamvõrku andma. Jagage selle järgi, mida inimesed teevad, mitte selle järgi, kes nende kulud allkirjastab. Kuus rolli on väikese kontori jaoks tavaliselt liiga palju ja kolm on sageli õige.
Samm 2: muutke iga lahter teenuseavalduseks
Lahter, kus on kirjas „Rakendused“, ei ole kontrollitav. Lahter, kus on kirjas „HTTPS ERP-hosti juurde pordil 443, töötajate poolist“, on kontrollitav. Asendage iga võrgu nimi sihtkoha, protokolli ja pordiga, seejärel lisage sõltuvus, ilma milleta teenus ei tööta, näiteks sisemine nimeresolver või identiteedipakkuja.
| 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 |
Suunaveerg püüab kalleimad vead. Lubadus töötajatel rakendus avada ei tähenda luba rakendusserveritel avada ühendusi tagasi töötajate sülearvutitesse, ja olekupõhist reeglit, mis lubab esimest suunda, loetakse sageli teise loana.
Samm 3: otsustage, kus identiteet muutub poliitikaks
Keegi peab muutma autenditud sessiooni rolliks, mida lüüs suudab jõustada. Toetatud valikute hulka kuuluvad autentimise taustasüsteemi antav grupipoliitika, usaldusväärsed sessiooni atribuudid või rollipõhised eraldi aadressipoolid. Kõik kolm töötavad; kliendi saadetud silt ei tööta. Valige mehhanism, mida teie lüüs dokumenteerib, mitte see, mida kirjeldab foorumipostitus.
Aadressi määramine, mis ainult näib kuuluvat VLAN-i, on sama vastusetus teises kostüümis. Netgate'i juhend OpenVPN-i tulemüürireeglite kohta teeb eralduse selgeks: lasta tunnelil üles tulla on teine otsus kui lasta liiklusel sellest läbi minna.
Kirjutage üles, millise mehhanismi valisite ja kus see on seadistatud. Kui roll muutub, on see märge ühe muudatuse ja kolme liidese läbi kammimise vahe. See ütleb ka audiitorile, kuhu kõigepealt vaadata.
Samm 4: jälgige lähteaadressi, mida sihtkoht näeb
Edastuspoliitika peab piiril vastama tegelikule lähteallikale. Kui lüüs teisendab VPN-kliendid oma aadressiks, näeb iga allpool olev tulemüür üht lähteet ja kaotab võimaluse otsustada rolli kaupa. Kui see säilitab kliendi aadressi, peab selle pooli jaoks tagasitee olemas olema.
Testige mõlemat suunda enne lõplike reeglite kirjutamist ja märkige seejärel vaadeldud lähteaadress iga lahtri juurde. Käivitage sama kontroll kahest erinevast rollist ja võrrelge tulemust. Kui mõlemad näitavad lüüsi aadressi, on rollide eristamine juba kadunud. Maatriks, mis eeldab säilitatud aadresse, samal ajal kui lüüs teeb lähteteisendust, ebaõnnestub esimese allpool oleva ACL-i juures.
Samm 5: testige iga lahter enne väljastamist
Muutke iga lubatud lahter üheks esinduslikuks toiminguks ja iga keelatud lahter negatiivseks juhtumiks. Käivitage mõlemad kliendist tegelikus rollis, mitte lüüsi konsoolist, sest konsool möödub teest, mida te testite.
# 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'
Negatiivne juhtum, mis ühendub, on leid, mitte juhus, ja see kuulub maatriksisse ebaõnnestunud lahtrina, kuni reegel on parandatud. Hoidke testkäsud tabeli kõrval, et järgmine ülevaataja käivitaks need uuesti, selle asemel et põhjendust uuesti üles ehitada.
Valmis tabel elab kauem kui lüüs, mille jaoks see kirjutati. Reeglid muutuvad koos püsivara ja tarnijaga, samas kui rida, mis ütleb, et töövõtja jõuab ühe projektiteenuseni, jääb tõeseks seni, kuni see töö muutub.