A melhor maneira é usar os serviços:
- Instale o serviço OpenVPN ao instalar o cliente;
- Coloque seus perfis OpenVPN (com a extensão .ovpn, não .conf, como é comum no Linux) no subdiretório config 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 em Propriedades e altere o tipo de inicialização de “Manual” para “Automático”.
- Inicie o serviço e o OpenVPN encontrará e se conectará aos perfis em qualquer arquivo .ovpn. Lembre-se de que, na maioria das situações, você precisa de uma interface TUN / TAP por arquivo de conexão. No Windows, recomendo fortemente associar permanentemente uma interface à sua conexão usando os arquivos de configuração:
dev-node TAP_Serv
força o OpenVPN a vincular a conexão à interface de rede denominada "Tap_Serv".
Você pode 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 clientes VPN na mesma máquina que só se conectam de vez em quando. Nessas situações, se eu queria que o OpenVPN GUI mostrasse a eles uma lista bonita de conexões disponíveis, significava que o serviço visualizava esses arquivos e tentava se conectar a eles automaticamente. Nesses casos, decidi não usar serviços:
Se o uso de um serviço não for uma opção, você poderá passar argumentos extras da linha de comando para a chamada da GUI do OpenVPN para fazer com que ele se conecte automaticamente na inicialização (além de mostrar o ícone da bandeja como de costume):
openvpn-gui.exe --connect myprofile.ovpn
Para que isso seja executado quando você fizer login, coloque esse atalho na pasta de inicialização normal. (Para todos os usuários, %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup
ou somente 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 configurada. A única maneira de descobrir se é através do Firewall do Windows, e não sou especialista nesse assunto. Se você deseja evitar que um usuário avançado possa acessar a Internet, é necessário um firewall no gateway para evitar isso ou políticas de grupo fortes para evitar a escalação 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 torna persistente):
route -P add <target> mask <netmask> <gateway IP> metric <metric cost> if <interface>
Os roteadores no Windows são armazenados na seguinte chave do Registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes
Nesse 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"
Às vezes, o envio de rotas não funciona no Windows. Quando isso acontece comigo, desinstalo completamente o OpenVPN e suas interfaces do Windows, reinicio o sistema e instalo a versão mais recente do software. Antes de estabelecer a primeira conexão, reinicio o Windows. Isso sempre resolveu os problemas; no entanto, a atualização do Windows 10 Anniversary (1607) é um bug do OpenVPN. Há um link para uma discussão mais profunda nos fóruns do OpenVPN:
Problemas de conexão com a atualização de aniversário do Windows 10
Lembre-se disso ao configurar seus clientes Windows 10 OpenVPN.