Criando uma VPN grátis com OCI (Oracle Cloud Infrastructure)
Passo a passo completo para criar sua própria VPN pessoal usando o plano Always Free da Oracle Cloud — com PiVPN (WireGuard ou OpenVPN), UFW, fail2ban e dicas de manutenção de segurança.
Moro fora do Brasil e, em diversas situações, preciso acessar serviços brasileiros que bloqueiam conexões vindas do exterior por questões de segurança. Foi pesquisando uma solução gratuita que descobri como usar uma VM do OCI (Oracle Cloud Infrastructure) para instalar o WireGuard ou o OpenVPN via PiVPN e conseguir, sem pagar nada, um endereço de IP no país que eu precisar.
O que o plano Always Free oferece?
A Oracle Cloud oferece, permanentemente e sem prazo de expiração, os seguintes recursos no plano Always Free:
VM.Standard.E2.1.Micro com 1 OCPU e 1 GB de RAM cada — mais que suficiente para uma VPN pessoal.Confira a lista completa de recursos gratuitos na documentação oficial.
Passo 1 — Criar a conta no OCI
Acesse oracle.com/br/cloud/free e clique em Iniciar gratuitamente.
Durante o cadastro, preste atenção nos seguintes pontos:
Endereço: use exatamente o mesmo endereço cadastrado no cartão de crédito que você vai utilizar. Divergências causam falha na verificação do pagamento.
Região do datacenter (Home Region): esta é a escolha mais importante de todo o processo.
Verificação do cartão: uma cobrança de verificação será feita (menos de 10 unidades da moeda local — ex: R$ 3–7, €5–7, £5). O valor é estornado automaticamente após a validação.
Após criar a conta, ative o 2FA (autenticação de dois fatores) imediatamente em Perfil → Configurações de segurança. Ative o 2FA em todos os serviços que utilizar na internet.
Passo 2 — Criar a instância de computação
No console da OCI, acesse Compute → Instances → Create Instance.
Nome: dê um nome descritivo, como vpn-server.
Availability Domain: clique em Edit na seção Placement e selecione um domínio marcado como Always Free eligible.
Imagem: clique em Edit em Image and Shape → Change image → selecione Canonical Ubuntu 22.04 (ou 20.04).
Shape: clique em Change shape → selecione VM.Standard.E2.1.Micro (o único shape Always Free para AMD).
Rede (VCN): clique em Edit na seção Networking. Se não tiver uma VCN criada, o console oferece criar uma automaticamente. Em Public IPv4 address, selecione Assign a public IPv4 address — você vai reservar um IP fixo no próximo passo.
Chaves SSH: em Add SSH keys, clique em Generate a key pair for me e faça o download das chaves privada e pública. Guarde o arquivo .key em local seguro — ele é sua única forma de acesso à VM.
Clique em Create e aguarde a instância iniciar (status: Running).
Reservar um IP público fixo
Por padrão, o IP público pode mudar se a instância for reiniciada. Para fixá-lo:
- Na página da instância, acesse Resources → Attached VNICs
- Clique no nome da VNIC → IPv4 Addresses
- Nos três pontos ao lado do IP, clique em Edit
- Selecione Reserved IP address, dê um nome e confirme
O IP agora é fixo e permanecerá o mesmo enquanto estiver associado à instância.
Passo 3 — Abrir as portas na VCN (Security List)
A OCI tem dois níveis de firewall: as Security Lists da VCN (controle de rede) e o firewall da própria instância (UFW/iptables, configurado mais à frente). Ambos precisam estar liberados.
Na página da instância, acesse Resources → Attached VNICs → nome da subnet → Security Lists.
Adicione as seguintes Ingress Rules:
| Protocolo | Porta | CIDR de origem | Finalidade |
|---|---|---|---|
| TCP | 22 | 0.0.0.0/0 | SSH |
| UDP | 51820 | 0.0.0.0/0 | WireGuard |
| UDP | 1194 | 0.0.0.0/0 | OpenVPN |
| TCP | 1194 | 0.0.0.0/0 | OpenVPN (TCP fallback) |
Para as Egress Rules, adicione uma regra permitindo todo o tráfego de saída (protocolo: All, destino: 0.0.0.0/0) — normalmente já existe por padrão.
Passo 4 — Conectar via SSH
Linux / macOS / Windows (PowerShell)
# Ajuste as permissões do arquivo de chave (obrigatório no Linux/macOS)
chmod 600 /caminho/para/sua-chave.key
# Conectar
ssh -i /caminho/para/sua-chave.key ubuntu@SEU_IP_PUBLICO
Windows com PuTTY
- Abra o PuTTYgen, clique em Load key e selecione o arquivo
.keybaixado - Clique em Save private key — isso gera um arquivo
.ppk - Abra o PuTTY, informe o IP público, vá em Connection → SSH → Auth e selecione o
.ppk - Conecte com o usuário
ubuntu
Passo 5 — Atualizar o sistema e configurar segurança
Atualizar pacotes do sistema
Sempre execute estas etapas logo após conectar em uma instância nova — e regularmente depois:
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get autoremove -y
sudo apt-get autoclean
Configurar o UFW (Uncomplicated Firewall)
O Ubuntu inclui o UFW, que facilita a gestão do firewall local da instância.
# Instalar o UFW (geralmente já está instalado)
sudo apt-get install ufw -y
# Política padrão: bloquear tudo que entra, permitir tudo que sai
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Liberar SSH (IMPORTANTE: faça isso ANTES de ativar o UFW)
sudo ufw allow 22/tcp
# Liberar WireGuard
sudo ufw allow 51820/udp
# Liberar OpenVPN
sudo ufw allow 1194/udp
sudo ufw allow 1194/tcp
# Ativar o UFW
sudo ufw enable
# Verificar status
sudo ufw status verbose
Instalar e configurar o fail2ban
O fail2ban monitora os logs do sistema e bane automaticamente IPs que fazem muitas tentativas de login com falha — proteção essencial contra ataques de força bruta no SSH.
# Instalar
sudo apt-get install fail2ban -y
# Criar arquivo de configuração local (não edite o .conf original)
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Localize a seção [sshd] e configure:
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
findtime = 600
- maxretry: número de falhas de login antes do ban (5 é um bom valor)
- bantime: duração do ban em segundos (3600 = 1 hora)
- findtime: janela de tempo para contar as tentativas (600 = 10 minutos)
# Reiniciar o fail2ban para aplicar as configurações
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban
# Verificar status
sudo fail2ban-client status
sudo fail2ban-client status sshd
Passo 6 — Instalar a VPN com PiVPN
O PiVPN (github.com/pivpn/pivpn) é um instalador interativo que automatiza toda a configuração do WireGuard ou OpenVPN. É a forma mais simples, segura e atualizada de instalar uma VPN em um servidor Ubuntu.
curl -L https://install.pivpn.io | bash
O instalador vai guiar você por um assistente interativo. As escolhas recomendadas:
| Etapa | WireGuard (recomendado) | OpenVPN (alternativa) |
|---|---|---|
| Protocolo | WireGuard | OpenVPN |
| Porta | 51820 (UDP) | 1194 (UDP) ou 1194 (TCP) |
| DNS | Google (8.8.8.8) ou Cloudflare (1.1.1.1) | Idem |
| IP do servidor | Seu IP público reservado | Idem |
Adicionar um cliente (perfil)
Após a instalação, adicione um perfil para o seu dispositivo:
# WireGuard
pivpn wg add
# OpenVPN
pivpn ovpn add
O PiVPN vai gerar um arquivo de configuração (.conf para WireGuard, .ovpn para OpenVPN) e também exibir um QR Code no terminal — basta escanear com o aplicativo do celular.
Listar clientes e verificar conexões
# Listar perfis criados
pivpn -l
# Verificar clientes conectados (WireGuard)
pivpn wg
# Verificar clientes conectados (OpenVPN)
pivpn ovpn
Passo 7 — Configurar o cliente VPN
Baixar o arquivo de configuração
Os perfis gerados ficam em /home/ubuntu/configs/. Transfira para o seu dispositivo:
Via SCP (linha de comando):
# No seu computador local
scp -i /caminho/sua-chave.key ubuntu@SEU_IP:/home/ubuntu/configs/meu-perfil.conf .
Via FileZilla (interface gráfica):
- Protocolo: SFTP
- Host: seu IP público
- Porta: 22
- Tipo de autenticação: Arquivo de chave → selecione o
.ppkgerado pelo PuTTYgen - Navegue até
/home/ubuntu/configs/e baixe o arquivo
Instalar o cliente VPN
OpenVPN: OpenVPN Connect na Play Store e App Store
sudo apt install wireguardou
sudo apt install openvpn network-manager-openvpnImporte o arquivo .conf (WireGuard) ou .ovpn (OpenVPN) no cliente e conecte. Para celulares com WireGuard, o PiVPN exibe um QR Code diretamente no terminal — basta escanear:
pivpn wg -qr nome-do-perfil
Manutenção contínua
Uma instância VPN é um servidor na internet — precisa de manutenção regular para se manter segura.
# Atualizar o sistema manualmente (execute mensalmente no mínimo)
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove -y
# Atualizar o PiVPN
pivpn update
# Verificar IPs banidos pelo fail2ban
sudo fail2ban-client status sshd
# Desbanir um IP específico (caso necessário)
sudo fail2ban-client set sshd unbanip 1.2.3.4
# Verificar o status dos serviços
sudo systemctl status wg-quick@wg0 # WireGuard
sudo systemctl status openvpn # OpenVPN
sudo systemctl status fail2ban
sudo systemctl status ufw
mailutils e adicione MAILTO=seu@email.com no topo do crontab. Útil para confirmar que as atualizações automáticas estão funcionando.
VPN pessoal, gratuita e sob seu controle
Com o plano Always Free da Oracle Cloud, é possível ter um servidor VPN próprio com IP do país que você precisar — completamente gratuito, sem anúncios, sem logs e sem limites artificiais de velocidade. O PiVPN simplifica a instalação do WireGuard ou OpenVPN para alguns minutos, e a combinação de UFW + fail2ban garante que o servidor permaneça seguro contra tentativas de invasão.
A mesma abordagem funciona em outros provedores de nuvem com free tier — AWS e Azure oferecem instâncias gratuitas por 12 meses, com limites de banda menores (≈ 100 GB/mês). Para uso pessoal e de longo prazo, o Always Free da OCI é a melhor opção disponível hoje.
Categorias