Et sertifikat som valideres mot en delt autoritet, har bestått en test av tillit, ikke en test av medlemskap. Disse to beslutningene blandes ofte sammen fordi begge skjer ved tilkobling, og sammenblandingen forblir usynlig til noen som ikke burde være på en tjeneste, slippes inn på den. Rettingen er ikke en annen autoritet; det er en annen beslutning, tatt per tjeneste og notert der daemonen leser den. Hold de to fra hverandre, og det meste av forvirringen på dette området forsvinner.

En betrodd kjede sier ingenting om tjenestemedlemskap

To tjenester kan akseptere samme utstedende hierarki og likevel ha forskjellige populasjoner. Én laptop hører til den første og må ikke nå den andre, mens andre klienter fra samme hierarki faktisk hører til der. Å fjerne autoriteten fra den tjenesten ville låse ute alle som bruker den lovlig, så arbeidet er adgang, ikke tillit.

Det hjelper å forestille seg to låser på én dør. Sertifikatet åpner den ytre låsen, og en beslutning per tjeneste åpner den indre; ingen av dem erstatter den andre. En tjeneste med bare den ytre låsen håndhever ikke medlemskap i det hele tatt, den autentiserer bare. Skriv ned begge beslutningene før du endrer noe, for en policy som bare finnes i form av en fungerende tilkobling, kan ikke revideres. Det følgende handler om den indre låsen.

Gjør valgfrie overstyringer til en adgangsport

En klientkonfigurasjonsmappe er normalt en bekvemmelighet: filer i den overstyrer innstillingene for klientene de navngir, og en klient uten fil kjører ganske enkelt med serverens standardverdier. Én direktiv gjør den bekvemmeligheten til en port, slik at en manglende fil betyr at tilkoblingen avvises.

client-config-dir /etc/openvpn/service-a/clients
ccd-exclusive

Fellesskapsutgaven av OpenVPN 2.6 ccd-exclusive dokumenterer på sin manuellside nettopp denne betingelsen, og oppslaget av den navngitte filen avhenger av klientens effektive identitet. Andre bygg og produktstyrte servere kan avvike, så bekreft den installerte versjonen før du stoler på samme semantikk andre steder.

Behandle stien ovenfor som et eksempel og kontroller det faktisk utrullede oppsettet i stedet for å opprette en mappe som en veiledning har funnet opp. La de eksisterende sertifikatkontrollene, serveridentitetskontrollene og kontogodkjenningen være nøyaktig som de var, fordi fragmentet legger til en betingelse og fjerner ingenting. Forbered endringen før produksjon, siden en avvisning som reises på feil sted ser ut som en sertifikatfeil og sender undersøkelsen mot autoriteten. Bekreft deretter at logglinjen for en avvist klient navngir den manglende konfigurasjonsfilen og ikke kjeden.

Én mappe per tjeneste, ikke én delt liste

Medlemskap tilhører tjenesten som håndhever det, så hver tjeneste holder sin egen mappe og sine egne filer. Å peke to tjenester mot én liste får dem til å dele medlemskap uansett om noen mente det eller ikke, og den resulterende endringen er vanskelig å spore tilbake til en beslutning. Den delte autoriteten kan forbli delt; adgangsfilene kan ikke. Å holde dem atskilt betyr også at en feil i én tjeneste ikke stille kan utvide en annen.

En DEFAULT-oppføring er tilfellet som villeder folk. Den gir reserveinnstillinger når ingen navngitt fil blir funnet, men den er ikke den navngitte filen som porten krever, så den kan ikke slippe inn en klient alene. Test en klient som ikke har noen oppføring i det hele tatt, og bekreft avvisningen; hvis den klienten slippes inn, brukes reserven og ccd-exclusive er ikke i kraft i den instansen.

Den effektive identiteten avgjør hvilken fil som leses

Oppslaget bruker identiteten klienten faktisk autentiserte som, som normalt er sertifikatets common name. Der serveren også verifiserer et brukernavn og passord og mapper det navnet til common name, må filen i stedet samsvare med det autentiserte brukernavnet. Et avvik etterlater en mappe full av plausible filnavn som aldri blir valgt.

Lesing er den andre halvdelen. Daemonen slipper vanligvis privilegier etter oppstart, så den reduserte kontoen trenger lesetilgang til mappen og hver oppføring i den. Klienter må ikke kunne opprette sin egen oppføring gjennom noen skrivbar sti, fordi selvbetjeningsadgang undergraver mekanismen fullstendig. Kontroller monterings- og delingstillatelsene og ikke bare filmodusen, siden en mappe som ser lukket ut for én konto, kan være åpen for en annen. Bekreft deretter hvilken konto den kjørende prosessen virkelig bruker, i stedet for hvilken konto unit-filen nevner. De to er bare like når ingenting annet har endret dem.

Observer avvisning, adgang og tilbakekalling hver for seg

Prøv en identitet som hører til tjenesten, og bekreft at den kobler til. Prøv et gyldig sertifikat uten oppføring, og bekreft at det avvises. Prøv en identitet som er sluppet inn på den andre tjenesten, og bekreft at den ikke slippes inn her. Noter tjenesteinstansen og den effektive identiteten ved hvert resultat, for et resultat uten den sammenhengen kan ingen andre gjenskape.

Tilbaketrekking er en annen operasjon enn tilbakekalling. Redigering av en adgangsfil fjerner én tjenestebemyndigelse mens identiteten forblir gyldig alle andre steder, mens en kompromittert nøkkel krever organisasjonens tilbakekallingsrespons. Bestem på forhånd hva som skjer med økter som allerede er oppe, siden verken en mapperedigering eller en tilbakekallingsliste avslutter dem av seg selv.

Adgang er også bare den første porten. Å bli med i en tjeneste sier ingenting om subnettene, databasene eller administrasjonsgrensesnittene bak den, og den ressurspolicyen må skrives og testes for seg.

Relaterte artikler