En användare dubbelklickar på OpenVPN-GUI:t, godkänner en UAC-fråga och upprepar samma ritual vid nästa återanslutning. Frågan är inte ett paketeringsfel: klienten skapar en virtuell adapter och redigerar routingtabellen, och båda är privilegierade ändringar. Den användbara frågan är vilka av dessa rättigheter användaren faktiskt behöver. En tjänst plus en snäv delegering täcker anslutningen utan att dela ut administratörsmedlemskap.

Vilka åtgärder kräver faktiskt förhöjning

Tunneln slutar på ett virtuellt nätverksgränssnitt, och installationen av det gränssnittet är en drivaråtgärd som kräver administratörsrättigheter en gång. När adaptern finns skriver varje anslutning fortfarande rutter och ändrar, beroende på profilen, DNS-konfigurationen. Det är dessa två steg som utlöser förhöjning på ett vanligt konto. Ingenting i autentisering eller kryptering kräver administratörsrättigheter, och just därför kan privilegiet delas upp.

Separera installationstid från anslutningstid innan du väljer ett beviljande. De har olika ägare och olika livslängd.

Använd tjänsten som den privilegierade komponenten

Den stödda ordningen kör en Windows-tjänst som innehar de nödvändiga rättigheterna, medan ett GUI ber tjänsten att ansluta. Då körs aldrig privilegierad kod inne i användarens session.

sc query OpenVPNService
sc qc OpenVPNService

En körande tjänst vars binära sökväg pekar på den installerade klienten är det första faktum som måste bekräftas innan något delegeras. Tjänsten äger adaptern och rutterna, så användaren startar och stoppar bara en anslutning. Detta är formen att använda på delade maskiner, eftersom kontot som klickar på anslut inte har någon bestående rättighet. Läs deskriptorn med sc sdshow innan du redigerar den, och spara en känd bra kopia av utdata.

Delegera ruttändringar till en inbyggd grupp

För en klient som måste köras interaktivt är den delegerade inbyggda gruppen Network Configuration Operators. Den täcker nätverksinställningar och ruttändringar men utesluter programvaruinstallation och allmänt administrativt arbete.

net localgroup "Network Configuration Operators" alice /add
sc sdshow OpenVPNService

Att lägga till kontot är inte tyst: standardprincipen utlöser fortfarande en fråga per session, så beviljandet minskar vad förhöjning kan göra i stället för att ta bort den. Dokumentera medlemskapet, eftersom det ackumuleras tyst och nästan aldrig granskas. På tjänstevägen kan en deskriptorändring med sc sdset delegera start och stopp till en grupp, även om ett skrivfel i deskriptorn kan neka starträttigheter för varje konto, och att ångra det kräver en administratör. Testa varje deskriptorändring på en laboratoriemaskin innan den når en produktionsvärd.

Verifiera från användarkontot

Konfiguration som görs i en administratörssession bevisar ingenting om kontot som ska använda den. Logga in som den användaren, anslut och jämför maskinens tillstånd före och efter.

route print -4
Get-DnsClientServerAddress

Routingtabellen bör få tunnlarnas rutter, och resolveraren bör peka på de servrar som VPN:et tillhandahåller medan du är ansluten. Efter frånkoppling bör båda utdata stämma med de kopior du tog i förväg, och därför är det viktigt att ta dem först. Drivrutinsuppdateringar kan återinföra administratörskravet, så notera klientversionen bredvid resultatet. Håll profil- och nyckelfiler läsbara endast för kontot som använder dem, i stället för att lätta på behörigheterna för en delad installation.

Skriv ned vem som kan starta tunneln, vilken grupp som ger den och vad som fortfarande kräver en administratör. Den anteckningen gör nästa klientuppdatering till planerat arbete i stället för en eftermiddag av gissningar.

Relaterade artiklar