Connecting to Access Server with Linux
Client software choice
Connecting to OpenVPN Access Server from Linux requer um programa cliente. Ele irá capturar o tráfego que você deseja enviar através do túnel OpenVPN, encriptando-o e passando-o para o servidor OpenVPN. E, claro, o inverso, para descriptografar o tráfego de retorno.
Pacotes de Linux Discutidos
Servidor de Acesso OpenVPN | openvpn-as |
OpenVPN 3 Linux Client | openvpn3 |
OpenVPN open source | openvpn |
OpenVPN 3 Linux Client
O projecto OpenVPN 3 Linux é um novo cliente construído em cima da Biblioteca Central do OpenVPN 3. Este cliente é o programa cliente oficial do OpenVPN Linux. Você pode encontrar uma visão geral das características, perguntas frequentes e instruções sobre a instalação do pacote openvpn3 no nosso site OpenVPN 3 para Linux.
Após seguir as instruções para instalar o cliente, você vai precisar de um perfil de conexão. Este é um ficheiro gerado pela sua instalação do OpenVPN Access Server para a sua conta de utilizador específica. Ele contém os certificados necessários e as configurações de conexão. Vá para a interface web Cliente do seu Access Server (o endereço principal, não a parte /admin). Faça login com as suas credenciais de usuário. Ser-lhe-á mostrada uma lista de ficheiros disponíveis para download. Escolha o perfil bloqueado pelo utilizador ou o perfil de login automático e ser-lhe-á enviado um ficheiro client.ovpn. Guarde este ficheiro no seu sistema operativo Linux.
Após ter movido o ficheiro para o seu sistema Linux, pode importá-lo.
openvpn3 config-import --config ${client.ovpn}
Pode iniciar uma nova sessão VPN:
openvpn3 session-start --config ${client.ovpn}
Pode gerir uma sessão VPN em execução:
openvpn3 sessions-list
E assim por diante. Mais detalhes podem ser encontrados aqui: OpenVPN3Linux.
OpenVPN open source programa OpenVPN CLI
O programa cliente de projeto de código aberto também pode se conectar ao Servidor Access. O pacote está disponível na maioria das distribuições e é conhecido simplesmente como openvpn. Ele suporta a opção de conectar a vários servidores OpenVPN simultaneamente, e vem com um componente de serviço que pode automaticamente e silenciosamente iniciar qualquer perfil de login automático que encontrar na pasta /etc/openvpn, mesmo antes de um usuário ter feito o login. Este componente de serviço pode ser configurado para iniciar automaticamente no momento do boot com as ferramentas disponíveis em sua distribuição Linux, se suportado. No Ubuntu e Debian, quando você instala o pacote openvpn, ele é configurado automaticamente para começar na hora do boot.
Para instalar o cliente OpenVPN no Linux, é possível em muitos casos usar apenas a versão que está no repositório de software para a própria distribuição Linux. Se você encontrar algum problema de conectividade ao usar software desatualizado, pode ser devido a uma possível falta de suporte para versões TLS superiores em versões mais antigas do OpenVPN. Siga as instruções encontradas no wiki da comunidade openvpn de código aberto se você deseja instalar o cliente OpenVPN no seu sistema Linux.
Após a instalação, você vai precisar de um perfil de conexão. Este é um ficheiro gerado pela sua instalação do OpenVPN Access Server para a sua conta de utilizador específica. Ele contém os certificados necessários e as configurações de conexão. Vá para a interface web do Cliente do seu Access Server (o endereço principal, não a parte /admin). Faça login com as suas credenciais de usuário. Ser-lhe-á mostrada uma lista de ficheiros disponíveis para download. Escolha o perfil bloqueado pelo utilizador ou o perfil de login automático e ser-lhe-á enviado um ficheiro client.ovpn. Guarde este ficheiro no seu sistema operativo Linux algures. OpenVPN Access Server suporta server-locked, user-locked, e perfis de auto-login, mas o cliente de linha de comando OpenVPN só é capaz de se conectar com perfis de conexão user-locked ou auto-login.
Estamos assumindo que você está indo para iniciar a conexão através da linha de comando como um usuário root, ou através do daemon de serviço. Se você quer que usuários sem privilégios possam fazer uma conexão, dê uma olhada no wiki da comunidade para mais informações sobre como implementar isso. Aqui nós vamos focar na implementação mais simples; execute a conexão como usuário root diretamente, ou através do daemon de serviço.
Inicie uma conexão com um perfil de auto-login manualmente:
openvpn --config client.ovpn
Inicie uma conexão com um perfil bloqueado manualmente:
openvpn --config client.ovpn --auth-user-pass
Se você usar o Google Authenticator ou outro fator extra de autenticação, adicione o parâmetro auth-retry:
openvpn --config client.ovpn --auth-user-pass --auth-retry interact
Para iniciar uma conexão de auto-login através do daemon de serviço, coloque cliente.ovpn em /etc/openvpn/ e renomeie o arquivo. Ele deve terminar com .conf como extensão de arquivo. Certifique-se de que o daemon de serviço está habilitado para rodar após uma reinicialização, e então simplesmente reinicialize o sistema. O perfil do tipo auto-login será pego automaticamente e a conexão será iniciada por si mesma. Você pode verificar isso verificando a saída do comando ifconfig; você deve ver um adaptador de rede tun0 na lista.
Uma característica principal que está faltando com o cliente de linha de comando é a capacidade de implementar automaticamente servidores DNS que são empurrados pelo servidor VPN. É possível, mas requer que você instale um programa de gerenciamento de DNS como resolvconf ou openresolv, e pode ou não entrar em conflito com o software de gerenciamento de rede existente no seu sistema operacional. A idéia aqui, entretanto, é que você use um script que roda quando a conexão sobe, e quando ela cai, que usa resolvconf ou openresolv para implementar os servidores DNS para você. A razão pela qual este cliente não é capaz de gerenciá-lo completamente sozinho é principalmente porque em um sistema operacional como Windows, Macintosh, Android, ou iOS, já existe um método único estabelecido de gerenciamento de DNS. Portanto, é fácil para nós criar um software cliente para aqueles sistemas operacionais que já sabem como lidar com o DNS. Mas o Linux está disponível em tantas variações e também suporta diferentes programas e métodos de implementação de servidores DNS, por isso foi apenas razoável deixar o suporte DNS embutido fora do programa OpenVPN e, em vez disso, fornecer, onde possível, um script que lide com a implementação do DNS. Tal script poderia até mesmo ser escrito por você mesmo para fazer as tarefas necessárias para implementar os servidores DNS na sua situação única.
Felizmente no Ubuntu e no Debian, por exemplo, existe o script /etc/openvpn/update-resolv-conf que vem com o pacote openvpn que lida com a implementação DNS para estes sistemas operacionais. Você só precisa ativar o uso destes seguindo as instruções:
Abra o seu arquivo client.ovpn em um editor de texto:
nano client.ovpn
No fundo simplesmente adicione estas linhas:
script-security 2up /etc/openvpn/update-resolv-confdown /etc/openvpn/update-resolv-conf
A primeira linha permite o uso de scripts externos para lidar com as tarefas de implementação DNS. As linhas acima e abaixo estão lá para implementar servidores DNS empurrados pelo servidor VPN quando a conexão sobe, e depois para desfazer, quando a conexão cai.
Ubuntu programa de gerenciamento de rede
Existe também a opção de conectar através da GUI usando a extensão openvpn para o plugin do gerenciador de rede Gnome. Mas isto é actualmente um pouco complicado de configurar. Existe por exemplo a hipótese incorrecta de que todas as VPNs serão capazes de redireccionar o tráfego da Internet, e versões mais antigas podem não compreender o formato do ficheiro .ovpn, exigindo que se divida o certificado nele incorporado em ficheiro separado. E você provavelmente teria que se aprofundar nas opções para garantir que uma rota padrão de tráfego da Internet passando pelo servidor VPN não esteja sempre habilitada por padrão, especialmente para servidores onde você só dá acesso a alguns recursos internos, e não à Internet inteira. Contudo a vantagem de usar o componente GUI é que você pode iniciar/pararar a conexão a partir do ambiente de trabalho no Linux.
.