Un usuario hace doble clic en la GUI de OpenVPN, aprueba un aviso de UAC y repite el mismo ritual en la siguiente reconexión. El aviso no es un error de empaquetado: el cliente crea un adaptador virtual y edita la tabla de enrutamiento, y ambos son cambios privilegiados. La pregunta útil es cuáles de esos derechos necesita realmente el usuario. Un servicio más una delegación estrecha cubre la conexión sin repartir la pertenencia al grupo de administradores.

Qué operaciones requieren realmente elevación

El túnel termina en una interfaz de red virtual, e instalar esa interfaz es una operación de controlador que necesita derechos de administrador una vez. Una vez que el adaptador existe, cada conexión sigue escribiendo rutas y, según el perfil, cambia la configuración de DNS. Esos dos pasos son los que provocan la elevación en una cuenta normal. Nada en la autenticación ni en el cifrado necesita derechos de administrador, y por eso mismo el privilegio se puede separar.

Separe el momento de instalación del momento de conexión antes de elegir una concesión. Tienen propietarios y vidas diferentes.

Use el servicio como componente privilegiado

La disposición admitida ejecuta un servicio de Windows que tiene los derechos necesarios, con una GUI que pide al servicio que se conecte. Así el código privilegiado nunca se ejecuta dentro de la sesión del usuario.

sc query OpenVPNService
sc qc OpenVPNService

Un servicio en ejecución cuya ruta binaria apunta al cliente instalado es el primer hecho que hay que confirmar antes de delegar nada. El servicio posee el adaptador y las rutas, así que el usuario solo inicia y detiene una conexión. Esta es la forma que conviene usar en máquinas compartidas, porque la cuenta que hace clic en conectar no tiene ningún privilegio permanente. Lea el descriptor con sc sdshow antes de editarlo, y guarde una copia buena conocida de la salida.

Delegue los cambios de ruta con un grupo integrado

Para un cliente que debe ejecutarse de forma interactiva, el grupo integrado delegado es Network Configuration Operators. Cubre la configuración de red y los cambios de ruta mientras excluye la instalación de software y el trabajo administrativo general.

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

Añadir la cuenta no es silencioso: la política predeterminada sigue elevando un aviso por sesión, así que la concesión reduce lo que puede hacer la elevación en lugar de eliminarla. Documente la pertenencia, porque se acumula en silencio y casi nunca se revisa. En la vía del servicio, una edición del descriptor con sc sdset puede delegar el inicio y la detención a un grupo, aunque una errata en el descriptor puede negar los derechos de inicio a todas las cuentas, y deshacerlo requiere un administrador. Pruebe cualquier cambio de descriptor en una máquina de laboratorio antes de que llegue a un host de producción.

Verifique desde la cuenta de usuario

La configuración realizada en una sesión de administrador no demuestra nada sobre la cuenta que la usará. Inicie sesión como ese usuario, conéctese y compare el estado de la máquina antes y después.

route print -4
Get-DnsClientServerAddress

La tabla de enrutamiento debería ganar las rutas del túnel, y el resolutor debería apuntar a los servidores que proporciona el VPN mientras está conectado. Tras desconectar, ambas salidas deberían coincidir con las copias que capturó de antemano, y por eso importa capturarlas primero. Las actualizaciones de controladores pueden reintroducir el requisito de administrador, así que anote la versión del cliente junto al resultado. Mantenga los archivos de perfil y de claves legibles solo por la cuenta que los usa, en lugar de relajar los permisos para una instalación compartida.

Anote quién puede iniciar el túnel, qué grupo lo concede y qué sigue necesitando un administrador. Esa nota convierte la próxima actualización del cliente en trabajo planificado en lugar de una tarde de conjeturas.

Artículos relacionados