A melhor maneira é usar serviços:
- Instale o serviço OpenVPN ao instalar o cliente;
- Coloque seus perfis do OpenVPN (com a extensão .ovpn, não .conf como é comum no Linux) no subdiretório de configuração do diretório de instalação do OpenVPN, provavelmente
C:\Program Files\OpenVPN\config
. - Abra o console de serviços (
services.msc
); - Encontre o OpenVPNService, clique com o botão direito do mouse sobre ele, Properties e altere o tipo de inicialização de “Manual” para “Automatic”.
- Inicie o serviço e o OpenVPN localizará e se conectará aos perfis em qualquer arquivo .ovpn. Lembre-se que na maioria das situações você precisa de uma interface TUN / TAP por arquivo de conexão. No Windows, aconselho strongmente a associar permanentemente uma interface à sua conexão usando os arquivos de configuração:
dev-node TAP_Serv
força o OpenVPN a ligar a conexão à interface de rede chamada "Tap_Serv".
Você pode querer investigar se há uma maneira de elaborar uma lista de permissões para forçar o serviço a se conectar apenas a arquivos específicos, e não a todos. Eu tive alguns problemas no passado com pessoas que precisavam ter um servidor VPN como um serviço, além de vários arquivos de cliente vpn na mesma máquina que só se conectam de vez em quando. Nessas situações, se eu quisesse que a GUI do OpenVPN mostrasse uma lista bonita de conexões disponíveis, isso significava que o serviço viu esses arquivos e estava tentando se conectar a eles automaticamente. Nesses casos, decidi não usar os serviços:
Se o uso de um serviço não for uma opção, você pode passar argumentos de linha de comando extras para a chamada da GUI do OpenVPN para que ele se conecte automaticamente na inicialização (assim como mostra o ícone da bandeja como de costume):
openvpn-gui.exe --connect myprofile.ovpn
Para que isso aconteça quando você efetuar login, coloque um atalho na pasta de inicialização usual. (Para todos os usuários, %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup
; ou apenas para o usuário atual, %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
.)
Não sei como evitar que o usuário se conecte à Internet antes que a VPN seja definida. A única maneira de descobrir se através do Firewall do Windows e não sou especialista nesse assunto. Se você quiser evitar que um poweruser seja capaz de acessar a Internet, você precisará de um firewall em seu gateway para evitar isso, ou políticas de grupo strongs para evitar o escalonamento de privilégios.
Para um usuário normal, você pode configurar a máquina cliente do Windows sem um gateway padrão. Defina uma rota estática persistente para o servidor VPN em clientes Windows usando o seguinte comando (-P a torna persistente):
route -P add <target> mask <netmask> <gateway IP> metric <metric cost> if <interface>
Roues no Windows são armazenados sob a seguinte chave de registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes
Neste ponto, um cliente desconectado só tem acesso ao servidor VPN. Em seguida, você pode adicionar as seguintes linhas no arquivo de configuração do servidor VPN para adicionar rotas aos clientes quando eles se conectarem:
Para configurar o servidor VPN como o gateway padrão:
push "redirect-gateway def1 bypass-dhcp"
Para adicionar uma rota específica através do servidor VPN:
push "route 192.168.1.0 255.255.255.0"
Por vezes, o encaminhamento de rotas não funciona no Windows. Quando isso acontece comigo, eu desinstalo completamente o OpenVPN e suas interfaces do Windows, reinicio o sistema e instalo a versão mais recente do software. Então, antes de estabelecer a primeira conexão, eu reinicio o Windows. Isso sempre resolveu os problemas, no entanto, a atualização do Windows 10 Anniversary (1607) está cheia de problemas com o OpenVPN. Há um link para uma discussão mais aprofundada nos fóruns do OpenVPN:
Problemas de conexão com a atualização do aniversário do Windows 10
Tenha isso em mente ao configurar seus clientes do Windows 10 OpenVPN.