Como iniciar e conectar automaticamente o OpenVPN no Windows 10?

15

A inicialização do Windows 10 parece estranha, ou pelo menos nova. Muitos programas não iniciam automaticamente da mesma maneira que nas versões anteriores, e muitas pessoas estão perguntando como fazer com que as coisas sejam iniciadas automaticamente. Eu sei, porque estou constantemente procurando iniciar automaticamente meus programas aos quais estou acostumado.

Como faço para que o OpenVPN inicie na inicialização, impeça o acesso à Internet até que esteja conectado e efetue login automaticamente em um perfil OVPN?

Já tenho as credenciais salvas em um arquivo de texto, portanto o OpenVPN só precisa carregar o arquivo, processá-lo e conectar-se.

Eu costumava ter isso funcionando no Windows 7, mas parece que esqueci como fazê-lo,

YetAnotherRandomUser
fonte
Como você configura um aplicativo para iniciar, quando um usuário faz login no perfil, permanece inalterado desde o lançamento do Windows XP. O que você tentou especificamente? Atualize sua pergunta.
Ramhound

Respostas:

28

A melhor maneira é usar os serviços:

  1. Instale o serviço OpenVPN ao instalar o cliente;
  2. 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.
  3. Abra o console de serviços ( services.msc);
  4. 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”.
  5. 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_Servforç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\Startupou 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.

DGoiko
fonte
Você pode usar o comando route para forçar todo o tráfego através da VPN. Veja comentum.com/route.html
Jeff F.
Eu me considero um usuário avançado, mas gostaria de poder configurá-lo para usuários que não sejam usuários avançados e fazer com que funcione perfeitamente. Não preciso impedir que outros usuários avançados mexam.
YetAnotherRandomUser
"O serviço OpenVPN examinará o diretório de configuração e se conectará a todos os perfis de VPN armazenados aqui." Esse não parece ser o caso. Parece que ele se conecta ao primeiro, quando eles são classificados em ordem alfabética. Você pode vincular à documentação? Não consigo encontrar uma seção que cubra isso.
YetAnotherRandomUser
Olá Dan. A maior parte da minha experiência vem de servidores OpenVPN no CentOS, e sempre que eu armazeno vários arquivos de servidor, todos eles são executados. Vou realizar um teste para determinar se o comportamento com os arquivos do cliente é o mesmo, mas não tenho motivos para pensar que será diferente. Desculpe se eu o enganei, apresentarei um relatório o mais rápido possível (estou no trabalho agora, quando tiver algum tempo livre ou depois do trabalho, vou verificá-lo em uma máquina Windows).
precisa saber é o seguinte
1
Também é possível usar o Agendador de tarefas (<kbd> tecla Windows </kbd> + <kbd> R </kbd>, digite Taskschd.msce pressione <kbd> Enter </kbd>).
user598527