OpenVPN VPS Linux passo a passo é uma das buscas mais comuns para quem deseja garantir privacidade e segurança de dados na nuvem. Embora soluções modernas como wireguard vps tutorial tenham ganhado popularidade pela simplicidade, o OpenVPN continua sendo o padrão ouro em termos de compatibilidade e maturidade. Neste guia técnico, vamos configurar um servidor VPN robusto utilizando certificados efêmeros para simplificar a gestão de chaves, mantendo a segurança alta sem a complexidade excessiva de PKIs tradicionais.
Ao final deste tutorial, você terá uma vpn própria com vps funcional, pronta para receber conexões seguras. Embora existam alternativas como zerotier auto hospedado, headscale tailscale self-hosted, ou até mesmo configurações de softether vps linux e outline vpn servidor, o OpenVPN oferece um controle granular que é insubstituível para infraestruturas heterogêneas.
Pré-requisitos e Preparação do Ambiente
Antes de iniciar a instalação, certifique-se de ter acesso root ou sudo ao seu servidor VPS com Ubuntu (ou Debian). A primeira etapa é atualizar o sistema operacional para garantir que todos os pacotes estejam seguros e atualizados.
- Conecte-se ao seu servidor via SSH:
ssh root@seu_ip_do_servidor
- Atualize o índice dos pacotes e realize o upgrade do sistema:
apt update && apt upgrade -y
É crucial garantir que a porta UDP 1194 esteja liberada no firewall do seu provedor de nuvem (AWS Security Groups, Google Cloud Firewall, Azure NSGs, etc.), além das regras locais do Ubuntu.
Instalando o OpenVPN e Dependências
O pacote openvpn na maioria das distribuições Linux modernos já inclui a ferramenta easy-rsa, necessária para gerar os certificados. Vamos instalar o serviço e as ferramentas de geração de chaves.
apt install openvpn easy-rsa -y
Após a instalação, precisamos criar um diretório dedicado para gerenciar os arquivos de configuração do Easy-RSA. Isso evita conflitos com outros projetos e mantém a organização.
mkdir -p ~/openvpn-ca
cd ~/openvpn-ca
cp -r /usr/share/easy-rsa/* .
Configuração do PKI (Public Key Infrastructure)
Aqui, configuramos o ambiente de certificados. O segredo para uma configuração simplificada e segura é editar o arquivo vars dentro do diretório easy-rsa.
- Inicie a edição do arquivo de variáveis:
nano vars
Altere as seguintes linhas para refletir suas informações (ou mantenha os valores padrão se preferir, mas seja consistente):
# Change all the variables below to reflect your organization
export KEY_COUNTRY="BR"
export KEY_PROVINCE="SP"
export KEY_CITY="SaoPaulo"
export KEY_ORG="MinhaEmpresa"
export KEY_EMAIL="[email protected]"
export KEY_OU="TI"
# Personal stuff
export KEY_NAME="Server"
export KEY_CN="server"
export KEY_ALGO="RSA"
Salve o arquivo (Ctrl+O, Enter) e saia (Ctrl+X). Agora, inicialize a PKI:
./easyrsa init-pki
Geração dos Certificados do Servidor
Vamos gerar o certificado específico para o servidor. Utilizaremos o parâmetro nopass se não quiser senha para a chave privada (recomendado para automação), mas em produção, senhas são mais seguras.
./easyrsa build-server-full server nopass
Você será solicitado a confirmar a operação digitando "yes". Este comando gera três arquivos essenciais no diretório pki/issued/ e pki/private/.
Geração dos Certificados Diffie-Hellman
O protocolo Diffie-Hellman é usado para trocar chaves de forma segura. Embora o OpenVPN possa usar parâmetros pré-computados, gerar um novo conjunto aumenta significativamente a segurança contra ataques computacionais futuros.
./easyrsa gen-dh
Este processo pode levar alguns minutos dependendo da velocidade do seu VPS. Aguarde até que termine.
Geração de Certificado Revocation List (CRL)
Para gerenciar o acesso, é vital ter uma lista de certificados revogados. Isso permite desativar chaves comprometidas sem precisar regenerar todo o PKI.
./easyrsa gen-crl
O arquivo crl.pem será gerado em pki/crl.pem.
Criando Usuários (Clientes) com Certificados Efêmeros
A vantagem de usar certificados efêmeros ou individuais é que cada cliente tem sua própria identidade. Vamos criar um usuário chamado "cliente1".
./easyrsa build-client-full cliente1 nopass
Repita este comando para cada dispositivo que se conectará à VPN (laptop, celular, servidor remoto). Cada nome de arquivo deve ser único.
Preparando os Arquivos para o Servidor OpenVPN
Agora precisamos copiar os certificados gerados para o diretório padrão do OpenVPN em /etc/openvpn/.
cp pki/dh.pem /etc/openvpn/
cp pki/ca.crt /etc/openvpn/
cp pki/private/server.key /etc/openvpn/
cp pki/issued/server.crt /etc/openvpn/
cp pki/crl.pem /etc/openvpn/
Copie também o arquivo ta.key se você estiver usando TLS-Auth para mitigar ataques DDoS na porta do OpenVPN. Para gerar:
openvpn --genkey --secret pki/ta.key
cp pki/ta.key /etc/openvpn/
Configuração do Arquivo de Servidor (server.conf)
Crie o arquivo de configuração principal. O caminho padrão é /etc/openvpn/server.conf.
nano /etc/openvpn/server.conf
Cole a seguinte configuração base. Ela define o protocolo UDP, portas, endereçamento IP e, crucialmente, aponta para os certificados gerados:
port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
crl-verify /etc/openvpn/crl.pem
tls-auth /etc/openvpn/ta.key 0
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384
persist-key
persist-tun
status openvpn-status.log
verb 3
Adicione a linha push "redirect-gateway def1 bypass-dhcp" se quiser que todo o tráfego do cliente passe pela VPN (Kill Switch básico). Adicione push "dhcp-option DNS 8.8.8.8" para resolver DNS via Google.
Habilitando Encaminhamento de Pacotes (IP Forwarding)
O Linux precisa saber como rotear tráfego entre a interface tun0 e a internet do seu VPS.
- Ative o forwarding temporariamente para teste:
sysctl -w net.ipv4.ip_forward=1
- Para tornar permanente, edite o arquivo de configuração do sysctl:
nano /etc/sysctl.conf
Descomente ou adicione a linha:
net.ipv4.ip_forward=1
- Carregue as configurações:
sysctl -p
Configurando o Firewall (UFW)
O Ubuntu usa UFW por padrão. Vamos liberar a porta SSH e a porta do OpenVPN.
ufw allow ssh
ufw allow 1194/udp
ufw enable
Se o UFW já estiver ativo, adicione a regra de NAT (Masquerade) para que os clientes da VPN possam acessar a internet através do VPS.
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Para persistir essas regras de iptables após reinicializações, instale o iptables-persistent:
apt install iptables-persistent -y
netfilter-persistent save
Iniciando e Habilitando o Serviço
Agora que tudo está configurado, inicie o serviço OpenVPN.
systemctl start openvpn@server
systemctl enable openvpn@server
Verifique se o serviço está rodando corretamente:
systemctl status openvpn@server
Se houver erros, verifique os logs em /var/log/openvpn.log.
Criando o Arquivo de Cliente
Para conectar, você precisa de um arquivo .ovpn no dispositivo cliente. Ele deve conter a CA, o certificado do cliente e a chave.
cd ~/openvpn-ca
cat pki/ca.crt > client1.ovpn
echo "<ca>" >> client1.ovpn
cat pki/ca.crt >> client1.ovpn
echo "</ca>" >> client1.ovpn
echo "<cert>" >> client1.ovpn
cat pki/issued/client1.crt >> client1.ovpn
echo "</cert>" >> client1.ovpn
echo "<key>" >> client1.ovpn
cat pki/private/client1.key >> client1.ovpn
echo "</key>" >> client1.ovpn
echo "<tls-auth>" >> client1.ovpn
cat pki/ta.key >> client1.ovpn
echo "</tls-auth>" >> client1.ovpn
Baixe o arquivo client1.ovpn para seu computador e importe no cliente OpenVPN (GUI ou CLI).
Considerações Finais sobre Segurança e Alternativas
Embora este guia foque no OpenVPN, é importante entender o contexto do mercado atual. Soluções como wireguard vps tutorial oferecem menor latência e código mais simples, sendo ideais para cenários de alta performance. Por outro lado, projetos como zerotier auto hospedado, headscale tailscale self-hosted ou softether vps linux focam em topologias Mesh (másh) e facilidade de gerenciamento sem necessidade de configuração manual de certificados para cada nó.
O outline vpn servidor, por sua vez, utiliza Shadowsocks, focando em contornar censura com performance, mas com menos controle granular sobre rotas.
No entanto, para quem busca o clássico openvpn vps linux passo a passo, a configuração acima oferece um equilíbrio perfeito entre segurança robusta (TLS 1.2+, DH forte) e facilidade de gestão via certificados individuais. Mantenha seus backups dos arquivos pki/ seguros; sem eles, perder o acesso à VPN significa ter que reconfigurar tudo do zero.
Lembre-se sempre de revogar certificados comprometidos usando ./easyrsa revoke cliente1 e gerar uma nova CRL com ./easyrsa gen-crl, atualizando o arquivo no servidor para bloquear imediatamente o acesso indevido.