auth-nocache med en legitimationsfil: hjælper det eller skader det?
auth-nocache kasserer de anmodede legitimationsoplysninger fra hukommelsen. Når adgangskoden ligger i en fil, betyder advarslen mindre, og indstillingen kan ødelægge genforhandlingen.
OpenVPN udskriver ved opstart en advarsel, der foreslår auth-nocache, og det fristende svar er at tilføje indstillingen og se linjen forsvinde. Det råd forudsætter et interaktivt login. Når først brugernavn og adgangskode ligger i en fil, ændrer sammenligningen sig: indstillingen holder op med at beskytte den varige kopi, og på en klient, der dropper privilegier, kan den senere ødelægge genforhandlingen. To lagringsmodeller er værd at holde adskilt, før du redigerer en profil.
To måder at svare på legitimationsforespørgslen
Den første model er et menneske, der skriver legitimationsoplysninger i en terminal, eller en administrationsgrænseflade, der holder dem i sessionen. OpenVPN beholder den kopi, så den kan svare på den næste genforhandling uden at spørge igen, og det er præcis, hvad advarslen handler om. Intet på disken er involveret, så det eneste, der skal beskyttes, er den proces, der holder værdien. Luk klienten, og kopien er væk med den.
Den anden model er auth-user-pass , der peger på en fil, hvor filen er lageret, og klienten læser den, når en værdi er nødvendig. Den eksponering, der betyder noget her, er ikke processens hukommelse, men filens rettigheder og ejerskab. Opstartsadvarslen kommer fra direktiverne i konfigurationen, ikke fra en undersøgelse af, hvordan du leverer adgangskoden, så den vises i begge modeller og peger på ingen af dem.
Resten af denne sammenligning følger af den opdeling: hukommelseshåndtering for den ene model, filhåndtering og procesidentitet for den anden.
Hvad auth-nocache faktisk kasserer
Med et interaktivt login --auth-nocache fjerner den lagrede kopi fra hukommelsen, efter den er brugt. Prisen er en ny forespørgsel ved hvert genforhandlingsinterval, fordi den næste runde ikke kan genbruge det, der blev kasseret.
Med et filbaseret login kan klienten læse filen igen, så kasseringen er for det meste usynlig. Den bliver synlig på det ene sted, hvor folk ikke forventer det: efter at dæmonen har droppet privilegier, hvis legitimationsfilen ikke kan læses af den konto, den nu kører som.
Tilføj indstillingen, fordi du forstår den afvejning, ikke fordi der viste sig en advarsel. En indstilling, der tilføjes for at gøre en log mere stille, er en indstilling, hvis virkning ingen har målt.
Hvor den filbaserede vej knækker
En klient, der starter som root for at åbne tunneleenheden og derefter skifter til user og group læser legitimationsfilen to gange: én gang før skiftet, én gang ved den genforhandling, der følger. Hvis filen har mode 600 og ejes af root, mislykkes den anden læsning, og fejlen viser sig en time senere som en godkendelsesfejl, der ligner et serverproblem. Tjek klientloggen omkring genforhandlingsintervallet, og tjek derefter konto og fil sammen.
stat -c '%a %U:%G' /etc/openvpn/client.creds
ps -o user:12,args -C openvpn | headBegge linjer betyder noget. Den første fortæller dig, hvem der kan læse filen, den anden fortæller dig, hvem den kørende dæmon faktisk er, og uoverensstemmelse mellem dem forklarer en fejl, som ingen mængde gentastning af adgangskoden vil rette.
De praktiske rettelser er uglamourøse: flyt filen til en mappe og en ejer, som dæmonens konto kan læse, eller behold den privilegerede læsning og bekræft, at din klient kun læser én gang. Løs det ikke ved at gøre filen læsbar for alle.
Det tilfælde, der faktisk vil have indstillingen
Et login med en engangskode vil have auth-nocache af en anden grund. En engangskode bruges op af den første godkendelse, så en cachelagret kopi er ubrugelig ved den næste genforhandling, og en forældet værdi kan endda blive afspillet igen.
Det er et spørgsmål om legitimationsoplysningens type, ikke om, hvor den opbevares. En statisk adgangskode i en beskyttet fil har den modsatte profil: den skal kunne læses ved hver genforhandling, og den beskyttelse, du har brug for, er på filen.
Hold de to grunde adskilt i profilkommentarerne, for ellers vil den næste administrator antage, at indstillingen er der af den grund, han selv ville have valgt.
Sammenligningen i én beslutning
Vælg den interaktive model, når et menneske er til stede, og friskhed betyder noget, og accepter den gentagne forespørgsel som prisen. Vælg filmodellen, når klienten kører uden opsyn, og brug indsatsen på ejerskab, mode og privilegiedrop i stedet.
Ingen af modellerne gør en lagret adgangskode sikker i sig selv, og ingen af dem gør opstartsadvarslen meningsfuld.
Hvis advarslen er den eneste grund til, at du åbnede profilen, så noter beslutningen i stedet for en uforklaret indstilling: legitimationsoplysninger kommer fra en fil, som dæmonens konto kan læse, en genforhandling er set lykkes, og OpenVPN 2.6-manualens afsnit om genforhandling blev læst, før intervallet blev ændret. Den note overlever enhver enkelt flag.