Um usuário clica duas vezes na GUI do OpenVPN, aprova um aviso do UAC e repete o mesmo ritual na próxima reconexão. O aviso não é um erro de empacotamento: o cliente cria um adaptador virtual e edita a tabela de roteamento, e ambos são alterações privilegiadas. A pergunta útil é quais desses direitos o usuário realmente precisa. Um serviço mais uma delegação estreita cobrem a conexão sem distribuir a pertinência ao grupo de administradores.

Que operações realmente exigem elevação

O túnel termina numa interface de rede virtual, e instalar essa interface é uma operação de driver que exige direitos de administrador uma vez. Depois que o adaptador existe, cada conexão ainda grava rotas e, conforme o perfil, altera a configuração de DNS. São esses dois passos que acionam a elevação numa conta comum. Nada na autenticação ou na criptografia exige direitos de administrador, e é exatamente por isso que o privilégio pode ser separado.

Separe o momento da instalação do momento da conexão antes de escolher uma concessão. Eles têm proprietários e vidas diferentes.

Use o serviço como componente privilegiado

A disposição suportada executa um serviço do Windows que detém os direitos necessários, com uma GUI que pede ao serviço que se conecte. Assim o código privilegiado nunca é executado dentro da sessão do usuário.

sc query OpenVPNService
sc qc OpenVPNService

Um serviço em execução cujo caminho binário aponta para o cliente instalado é o primeiro fato a confirmar antes de delegar qualquer coisa. O serviço é dono do adaptador e das rotas, então o usuário apenas inicia e para uma conexão. Esta é a forma a usar em máquinas compartilhadas, porque a conta que clica em conectar não detém nenhum privilégio permanente. Leia o descritor com sc sdshow antes de editá-lo, e guarde uma cópia boa conhecida da saída.

Delegue as alterações de rota a um grupo integrado

Para um cliente que precisa ser executado de forma interativa, o grupo integrado delegado é Network Configuration Operators. Ele cobre configurações de rede e alterações de rota e exclui a instalação de software e o trabalho administrativo geral.

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

Adicionar a conta não é silencioso: a política padrão ainda eleva um aviso por sessão, então a concessão reduz o que a elevação pode fazer em vez de eliminá-la. Documente a pertinência, porque ela se acumula em silêncio e quase nunca é revista. Na via do serviço, uma edição do descritor com sc sdset pode delegar início e parada a um grupo, embora um erro de digitação no descritor possa negar os direitos de início a todas as contas, e desfazer isso exige um administrador. Teste qualquer alteração de descritor numa máquina de laboratório antes que ela chegue a um host de produção.

Verifique a partir da conta de usuário

A configuração feita numa sessão de administrador não prova nada sobre a conta que vai usá-la. Entre como esse usuário, conecte-se e compare o estado da máquina antes e depois.

route print -4
Get-DnsClientServerAddress

A tabela de roteamento deve ganhar as rotas do túnel, e o resolvedor deve apontar para os servidores que a VPN fornece enquanto conectado. Após desconectar, as duas saídas devem corresponder às cópias capturadas de antemão, e é por isso que capturá-las primeiro importa. As atualizações de driver podem reintroduzir a exigência de administrador, então anote a versão do cliente ao lado do resultado. Mantenha os arquivos de perfil e de chaves legíveis apenas pela conta que os usa, em vez de afrouxar as permissões para uma instalação compartilhada.

Anote quem pode iniciar o túnel, qual grupo o concede e o que ainda exige um administrador. Essa nota transforma a próxima atualização do cliente em trabalho planejado em vez de uma tarde de suposições.

Artigos relacionados