Ter uma Rede Privada Virtual (VPN, na sigla em inglês) é essencial nesta era da tecnologia. As VPNs têm se tornado cada vez mais importantes para uso pessoal e especialmente para empresas e empreendimentos. E se você ainda está decidindo em qual solução de VPN apostar, por que não considerar a OpenConnect VPN?
A OpenConnect VPN é uma solução de VPN gratuita com desempenho e recursos de nível empresarial. E neste tutorial, você aprenderá como configurar e se conectar ao servidor OpenConnect VPN (ocserv).
Continue lendo e mantenha entidades maliciosas longe da sua rede!
Pré-requisitos
Este tutorial inclui demonstrações práticas. Para acompanhar, certifique-se de ter o seguinte:
- A Linux server running Debian- This tutorial uses a Debian 11 Bullseye with hostname ocserv-debian.
- Um usuário administrativo ou um usuário não-root com privilégios sudo/root.
- A domain name pointed to your Linux server IP address – This tutorial uses a domain name vpn.atadomain.io.
- A client machine like Windows 10 or Linux Desktop – This tutorial uses a Windows 10 machine.
Instalando o servidor OpenConnect VPN
O servidor OpenConnect VPN é um servidor de VPN baseado em SSL de código aberto para Linux, disponível na maioria das distribuições Linux, como Debian, Ubuntu, RHEL/CentOS e Fedora.
O servidor OpenConnect VPN suporta a maioria dos clientes, desde desktops/computadores até dispositivos móveis (Android e iOS). Da mesma forma, o servidor OpenConnect VPN suporta vários mecanismos de autenticação, como Radius, OpenID, Kerberos e Smart Card.
Mas antes de aproveitar esses recursos, você deve primeiro instalar o servidor OpenConnect VPN, conforme segue:
1. SSH para o seu servidor e execute o seguinte comando apt update
para atualizar e atualizar o índice de pacotes. Este comando garante que você tenha as informações mais recentes sobre os pacotes.

2. Em seguida, execute o seguinte comando apt install
para instalar o pacote ocserv
.
Assim que a instalação estiver concluída, o novo serviço systemd chamado ocserv
estará ativo e

3. Agora, execute os seguintes comandos systemctl
para garantir que o serviço ocserv
esteja em execução.
Como você pode ver a partir da saída, o status do serviço ocserv
está habilitado e em execução.

Gerando Certificados SSL/TLS
Com o servidor VPN OpenConnect instalado, o próximo passo é garantir que você possa se conectar de forma segura ao servidor VPN OpenConnect. Como? O primeiro passo é gerar certificados SSL/TLS via Certbot e LetsEncrypt.
Mas antes de gerar certificados, assegure-se de ter um endereço de e-mail para se registrar no LetsEncrypt, e o nome de domínio está apontado para o endereço IP do servidor Debian.
Para gerar certificados SSL/TLS:
1. Execute o comando abaixo para instalar o certbot
em seu servidor Linux.

2. Em seguida, execute o comando certbot
abaixo para gerar certificados SSL/TLS. Certifique-se de alterar o endereço de e-mail ([email protected]
) e o nome de domínio (vpn.atadomain.io
) conforme necessário.

3. Por último, execute o seguinte comando para verificar se os certificados SSL/TLS gerados existem no diretório do seu domínio.
Se for bem-sucedido, você verá as chaves pública (fullchain.pem) e privada (privkey.pem), conforme mostrado abaixo.

Configurando o Servidor VPN OpenConnect
Mesmo com os certificados SSL/TSL à sua disposição, eles permanecerão lá a menos que você configure o Servidor VPN OpenConnect. Você modificará a configuração padrão do Servidor VPN OpenConnect (/etc/ocserv/ocserv.conf) da seguinte maneira:
- Altere o método de autenticação padrão.
- Desative o UDP no Servidor VPN OpenConnect.
- Altere os certificados SSL/TLS padrão.
- Configurando o nome de domínio e uma rede interna ou endereço IP para clientes.
Para configurar o Servidor VPN OpenConnect, siga as etapas abaixo:
1. Primeiro, execute o comando cp
abaixo para fazer backup da configuração padrão do servidor OpenConnect VPN (ocserv.conf
) para ocserv.conf.orig
armazenado no diretório /etc/ocserv
.
2. Em seguida, abra a configuração do servidor OpenConnect VPN (/etc/ocserv/ocserv.conf) usando o editor de sua preferência.
3. Altere o valor do parâmetro auth
para plain[passwd=/etc/ocserv/ocpasswd]
, como mostrado abaixo. Isso substitui a autenticação padrão com o arquivo de senha Pluggable Authentication Modules (PAM).
auth = "plain[passwd=/etc/ocserv/ocpasswd]"

4. Agora, coloque #
na frente do parâmetro udp-port
para desativar as conexões UDP padrão.
Você estará usando o OpenConnect VPN apenas com o modo TCP, o que pode aumentar a velocidade via parâmetros do kernel.
tcp-port = 443
#udp-port = 443

5. Substitua o caminho do arquivo de certificado no parâmetro server-cert
pelo certificado público e o parâmetro server-key
pela chave privada.
server-cert = /etc/letsencrypt/live/vpn.atadomain.io/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.atadomain.io/privkey.pem

6. Altere o valor do parâmetro try-mtu-discovery
para true
para habilitar a descoberta de MTU. Fazê-lo aumenta a velocidade e o desempenho do servidor VPN OpenConnect.
try-mtu-discovery = true

7. Em seguida, insira o nome de domínio para o servidor VPN OpenConnect no parâmetro default-domain
e altere o endereço IP interno padrão no parâmetro ipv4-network
.
Neste exemplo, os clientes VPN usarão a rede interna 10.11.0.0/24
.
default-domain = vpn.atadomain.io
ipv4-network = 10.11.0.0

8. Comente os parâmetros de rota padrão adicionando o caractere #
no início de cada linha para desativar o gateway de rota padrão. Quando terminar, salve o arquivo e saia do editor.
#route = 10.0.0.0/8
#route = 172.16.0.0/12
#route = 192.168.0.0/16
#route = fd00::/8
#route = default

9. Agora, execute os seguintes comandos para reiniciar
o serviço ocserv
, aplicar as alterações e listar todas as portas abertas (ss
) no seu sistema.
Se o servidor VPN OpenConnect estiver em execução, você verá a porta 443 no estado LISTEN e utilizada pelo serviço ocserv, conforme mostrado abaixo.

Adicionando Usuários ao Servidor VPN OpenConnect
Com o servidor VPN OpenConnect configurado, você precisa de uma maneira de se conectar a ele. Como? Criando e adicionando um usuário VPN ao servidor VPN OpenConnect.
Para adicionar um usuário ao servidor OpenConnect VPN, você irá criar um usuário VPN e gerar um arquivo de senha via utilitário ocpasswd
da seguinte forma:
Execute o comando ocpasswd
abaixo para criar um novo usuário. Quando solicitado, insira uma nova senha para o usuário e repita. A escolha deste tutorial para o nome de usuário é atauser
, mas você pode fornecer o seu próprio.
Depois que o usuário for criado, o arquivo de senha (/etc/ocserv/ocpasswd
) também será criado.

Agora, execute o seguinte comando cat
para verificar os detalhes do arquivo de senha (/etc/ocserv/ocpasswd
).

Adicionando Regras de Firewall UFW para Abrir Portas Cruciais
Em um sistema Debian, o firewall padrão é o IPTables, que requer um entendimento aprofundado de redes para ser configurado. Por que não simplificar o processo? Neste tutorial, você irá instalar e configurar o UFW como o firewall padrão.
1. Execute o comando abaixo para instalar
o UFW enquanto aceita automaticamente todas as solicitações (-y
)

2. Depois que o UFW estiver instalado, execute os seguintes comandos ufw
para abrir as portas cruciais para o servidor OpenConnect VPN funcionar corretamente.
Quando solicitado, insira Y e pressione Enter para prosseguir com a operação, conforme mostrado abaixo.

3. Por fim, execute o seguinte comando para verificar o status do UFW e garantir que o UFW esteja em execução.
O resultado abaixo mostra o status ativo do UFW e todas as regras de firewall adicionadas.

Habilitando o Encaminhamento de Porta
Com um servidor VPN em execução, você deve direcionar o tráfego do mundo exterior para o seu servidor, ativando o encaminhamento de porta. Você permitirá o encaminhamento de porta no seu servidor Debian por meio de parâmetros do kernel.
Para habilitar o encaminhamento de porta, siga estas etapas:
Execute o seguinte comando, que não gera saída no terminal, mas cria um novo arquivo chamado /etc/sysctl.d/60-ocserv.conf
. Este arquivo contém parâmetros do kernel para habilitar o encaminhamento de porta no seu sistema.
Agora, execute o comando sysctl
abaixo para aplicar os novos parâmetros do kernel e habilitar o encaminhamento de porta.

Configurando o NAT com UFW
Habilitar o encaminhamento de porta é apenas um dos primeiros passos a serem dados. Desta vez, você deve garantir que os clientes VPN possam se conectar à internet ou a redes específicas por meio do servidor VPN OpenConnect. Como? Configurando o NAT via UFW.
Para configurar o NAT com UFW para o OpenConnect VPN Server:
1. Execute o seguinte comando para verificar a lista de interfaces em seu sistema.
Neste exemplo, a interface eth1 será o gateway NAT para os clientes VPN.

2. Em seguida, abra a configuração do UFW (/etc/ufw/before.rules) usando seu editor preferido e adicione as seguintes linhas antes da opção *filter
. Essas configurações farão NAT dos usuários VPN (especifique a interface de saída) ou rede interna para a interface eth1
.
Certifique-se de alterar a sub-rede (10.11.0.0/24
) com as redes dos clientes VPN e a interface (eth1
) com a sua interface de rede.
# NAT para o servidor OpenConnect VPN
# com a rede do cliente 10.11.0.0/24
# para a interface eth1
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.11.0.0/24 -o eth1 -j MASQUERADE
COMMIT

3. Adicione as seguintes linhas abaixo da seção ok icmp code para FORWARD
das opções ufw-before-forward
, salve o arquivo e saia do editor.
Essas configurações habilitam o encaminhamento (origem e destino) da rede do cliente VPN.
# permitir o encaminhamento da rede do cliente VPN
-A ufw-before-forward -s 10.11.0.0/24 -j ACCEPT
-A ufw-before-forward -d 10.11.0.0/24 -j ACCEPT

4. Uma vez salvo, execute o seguinte comando para recarregar as regras do UFW e reiniciar o serviço UFW. Ao fazer isso, garante-se que a configuração NAT será aplicada ao sistema.
5. Por último, execute o seguinte comando iptables
para verificar o status do NAT no UFW, uma vez que o backend do UFW é o IPTables.
Quando for bem-sucedido, você receberá uma saída como a abaixo.

Conectando ao servidor OpenConnect VPN via OpenConnect-GUI
Seguindo as instruções, agora você deve ter um servidor OpenConnect VPN totalmente funcional em execução. Mas depois de todo o trabalho árduo, chegou o momento da verdade.
O servidor OpenConnect VPN pode estar em execução, mas há apenas uma melhor maneira de verificar – conectando-se ao servidor OpenConnect VPN.
Para se conectar ao servidor OpenConnect VPN, você deve instalar o aplicativo OpenConnect-GUI:
1. Abra seu navegador da web favorito e visite a página do GitHub do OpenConnect-GUI.
2. Em seguida, faça o download e instale o aplicativo OpenConnect VPN para Windows.

3. Abra o cliente VPN OpenConnect-GUI e clique no menu Arquivo → Perfis → Novo perfil (avançado) (ou pressione Ctrl+Shift+N). Uma pequena janela aparece onde você pode preencher os detalhes do novo perfil (passo quatro).

4. Agora, preencha as informações do perfil VPN com o seguinte:
- Nome – Forneça um nome de conexão (por exemplo, testvpn).
- Gateway – Especifique o nome de domínio do servidor OpenConnect VPN (por exemplo, https://vpn.atadomain.io).
- Nome de usuário – O usuário adicionado (atauser) ao servidor OpenConnect VPN.
Depois de preenchido, clique em Salvar para confirmar as informações e criar o perfil VPN.

5. Em seguida, defina seu perfil VPN recém-criado (testvpn) como o Servidor e clique em Conectar para estabelecer uma conexão com o Servidor VPN OpenConnect.

6. Quando solicitado, insira a Senha do seu usuário VPN e clique em OK.

7. Uma vez conectado, a cor do cadeado muda para verde, conforme mostrado abaixo.

8. Por fim, clique na guia Informações VPN para obter o status detalhado da conexão. Você deverá ver o endereço IP interno que obteve do servidor VPN, o servidor DNS e a versão TLS que está usando.

Conclusão
Ao longo deste tutorial, você aprendeu a configurar o servidor VPN OpenConnect. Ao mesmo tempo, aprendeu a usar certificados SSL/TLS e adicionar regras de firewall para estabelecer uma conexão segura com o servidor VPN OpenConnect.
Com esse conhecimento recém-adquirido, que tal integrar o Servidor VPN OpenConnect com vários back-ends de autenticação, como Radius e OpenID? Ou adicionar uma camada de segurança para autenticação de cliente via autenticação de dois fatores?