Un usuario fai dobre clic na GUI de OpenVPN, aproba unha solicitude de UAC e repite o mesmo ritual na seguinte reconexión. A solicitude non é un erro de empaquetado: o cliente crea un adaptador virtual e edita a táboa de enrutamento, e ambos son cambios privilexiados. A pregunta útil é cales deses dereitos necesita realmente o usuario. Un servizo máis unha delegación estreita cobren a conexión sen repartir a pertenza ao grupo de administradores.

Que operacións requiren realmente elevación

O túnel termina nunha interface de rede virtual, e instalar esa interface é unha operación de controlador que necesita dereitos de administrador unha vez. Unha vez que existe o adaptador, cada conexión segue escribindo rutas e, segundo o perfil, cambia a configuración de DNS. Esos dous pasos son os que provocan a elevación nunha conta normal. Nada na autenticación nin no cifrado necesita dereitos de administrador, e por iso mesmo o privilexio se pode separar.

Separe o momento de instalación do momento de conexión antes de escoller unha concesión. Teñen propietarios e vidas diferentes.

Use o servizo como compoñente privilexiado

A disposición admitida executa un servizo de Windows que ten os dereitos necesarios, cunha GUI que lle pide ao servizo que se conecte. Así o código privilexiado nunca se executa dentro da sesión do usuario.

sc query OpenVPNService
sc qc OpenVPNService

Un servizo en execución cuxa ruta binaria apunta ao cliente instalado é o primeiro feito que hai que confirmar antes de delegar nada. O servizo posúe o adaptador e as rutas, polo que o usuario só inicia e detén unha conexión. Esta é a forma que cómpre usar en máquinas compartidas, porque a conta que fai clic en conectar non ten ningún privilexio permanente. Lea o descritor con sc sdshow antes de editalo, e garde unha copia boa coñecida da saída.

Delegue os cambios de ruta cun grupo integrado

Para un cliente que debe executarse de forma interactiva, o grupo integrado delegado é Network Configuration Operators. Cobre a configuración de rede e os cambios de ruta mentres exclúe a instalación de software e o traballo administrativo xeral.

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

Engadir a conta non é silencioso: a política predeterminada aínda eleva unha solicitude por sesión, así que a concesión reduce o que pode facer a elevación en lugar de eliminala. Documente a pertenza, porque se acumula en silencio e case nunca se revisa. Na vía do servizo, unha edición do descritor con sc sdset pode delegar o inicio e a detención nun grupo, aínda que un erro tipográfico no descritor pode negar os dereitos de inicio a todas as contas, e desfacelo require un administrador. Probe calquera cambio de descritor nunha máquina de laboratorio antes de que chegue a un host de produción.

Comprobe desde a conta de usuario

A configuración realizada nunha sesión de administrador non demostra nada sobre a conta que a vai usar. Inicie sesión como ese usuario, conéctese e compare o estado da máquina antes e despois.

route print -4
Get-DnsClientServerAddress

A táboa de enrutamento debería gañar as rutas do túnel, e o resolutor debería apuntar aos servidores que proporciona o VPN mentres está conectado. Tras desconectar, ambas as saídas deberían coincidir coas copias que capturou de antemán, e por iso importa capturalas primeiro. As actualizacións de controladores poden reintroducir o requisito de administrador, así que anote a versión do cliente xunto ao resultado. Manteña os ficheiros de perfil e de chaves lexibles só pola conta que os usa, en lugar de relaxar os permisos para unha instalación compartida.

Anote quen pode iniciar o túnel, que grupo o concede e que segue necesitando un administrador. Esa nota converte a próxima actualización do cliente en traballo planificado en lugar dunha tarde de conxecturas.

Artigos relacionados