OpenVPN Site-to-Site entre OPNsense e pfSense
Introdução
Estabelecer uma VPN site-to-site entre um OPNsense (matriz) e um pfSense (filial) via OpenVPN é um processo direto quando seguimos uma sequência clara: preparar certificados, criar o servidor na matriz, configurar o cliente na filial, ajustar regras de firewall e validar a conectividade.
Antes de começar, confirme que ambos os firewalls estão em versões estáveis e recentes. Diferenças grandes de versão podem introduzir comportamentos inesperados durante a negociação do túnel.
Premissas do Ambiente
- OPNsense 25.1 (Matriz) e pfSense 2.7.2 (Filial).
- OPNsense (WAN pública):
200.0.0.1• LAN:192.168.1.0/24. - pfSense (LAN):
192.168.2.0/24. - A porta 1194/UDP está livre. Se já for utilizada por outra VPN, escolha outra porta (ex.: 1195/UDP) e use-a em todos os passos.
Os exemplos abaixo usam 200.0.0.1 como IP público do OPNsense (matriz) e a porta 1194/UDP.
Adapte conforme a sua realidade (IP público/hostname/porta).
Etapa 1 — Criar Certificados (OPNsense e pfSense)
1.1 OPNsense — Autoridade Certificadora (CA) e Certificados
-
Criar a CA (Autoridade Certificadora)
- Acesse System → Trust → Authorities → + Add
- Description:
CA-VPN-SITE-A-SITE - Lifetime (days):
3650 - Common Name:
CA-VPN-SITE-A-SITE - Save
-
Criar certificado de servidor (será usado pelo OpenVPN Server)
- System → Trust → Certificates → + Add
- Description:
VPN-SERVER - Type:
Server Certificate - Issuer:
CA-VPN-SITE-A-SITE - Lifetime (days):
3650 - Common Name:
vpn.empresa.com.br(ou FQDN do seu firewall) - Save
-
Criar certificado de cliente (será importado no pfSense)
- System → Trust → Certificates → + Add
- Description:
VPN-FILIAL - Type:
Client Certificate - Issuer:
CA-VPN-SITE-A-SITE - Lifetime (days):
3650 - Common Name:
filial - Save
-
Exportar o certificado do cliente em PKCS#12 (PFX)
- Ainda em System → Trust → Certificates, localize
VPN-FILIAL→ Download - Defina uma senha (ex.:
12345678) para o PFX e salve o arquivo.
- Ainda em System → Trust → Certificates, localize
1.2 pfSense — Importar CA e Certificado do Cliente
-
Importar a CA
- System → Certificates → guia CAs → + Add
- Descriptive name:
CA-VPN-SITE-A-SITE - Method:
Import an existing Certificate Authority - Certificate data: No OPNsense, abra System → Trust → Authorities, edite a
CA-VPN-SITE-A-SITEe copie o campo “Certificate data”. Cole aqui. - Save
-
Importar o certificado do cliente (PKCS#12)
- System → Certificates → guia Certificates → + Add/Sign
- Method:
Import an existing Certificate - Descriptive name:
VPN-FILIAL - Certificate Type:
PKCS #12 (PFX) - PKCS #12 certificate: selecione o arquivo PFX exportado do OPNsense
- PKCS #12 certificate password:
12345678(ou a senha que definiu) - Save
Etapa 2 — Servidor OpenVPN na Matriz (OPNsense)
Para facilitar a autenticação e resiliência, vamos usar TLS com CA + certificados e chave estática TLS (tls-auth/crypt).
2.1 Gerar a Chave Estática TLS
- VPN → OpenVPN → Instances → guia Static Keys → + Add
- Description:
FILIAL - Mode:
crypt - Clique no ícone da engrenagem para gerar automaticamente a Static key.
- Save
2.2 Criar a Instância do Servidor (Instances)
- VPN → OpenVPN → Instances → + Add
- Marque Advanced mode (topo da tela).
- Description:
FILIAL - Port number:
1194(ou a porta alternativa escolhida) - Protocol:
UDP - Server (IPv4):
10.90.0.0/24(rede de túnel; será atribuída ponto-a-ponto) - Topology:
p2p - Certificate:
VPN-SERVER - Certificate Authority:
CA-VPN-SITE-A-SITE - TLS static key: selecione FILIAL (a chave gerada na etapa anterior)
- Local Network:
192.168.1.0/24(LAN da matriz) - Remote Network:
192.168.2.0/24(LAN da filial) - Save → Apply
Se optar por uma porta diferente de 1194, lembre-se de ajustar a porta em todos os locais (regra de firewall e cliente no pfSense).
Etapa 3 — Roteamento da Filial para a Matriz (usando Client Specific Overrides)
Para instruir o firewall da Matriz a carregar a rota da Filial, execute as etapas abaixo no OPNsense da Matriz:
- VPN → OpenVPN → Client Specific Overrides → + Add
- Servers:
FILIAL (1194/UDP) - Description:
FILIAL - Common name:
filial(deve corresponder ao Common Name do certificado de cliente) - Remote Network:
192.168.2.0/24(LAN da filial) - Save
Etapa 4 — Regras de Firewall (OPNsense)
4.1 Liberar a Porta do Servidor na(s) WAN(s)
- Firewall → Rules → WAN → + Add
- Protocol:
UDP - Destination:
This Firewall - Destination port range:
OpenVPN(1194). Se usar outra porta, selecione Other e informe manualmente. - Log: marcar
- Description:
Permite conexão OpenVPN site-to-site - Save → Apply Changes
- Protocol:
4.2 Permitir Tráfego Dentro do Túnel
- Firewall → Rules → OpenVPN → + Add
- Action:
Pass - Protocol:
Any - Log: marcar
- Description:
Libera tráfego da VPN (Filial ↔ Matriz) - Save → Apply Changes
- Action:
Ajuste posteriormente para permitir apenas as origens/destinos/portas necessárias.
Etapa 5 — Cliente OpenVPN na Filial (pfSense)
- VPN → OpenVPN → guia Clients → + Add
- Description:
VPN-MATRIZ - Interface:
Any - Server host or address:
200.0.0.1(IP/hostname público do OPNsense) - Server port:
1194(ou a porta definida no servidor) - Protocol:
UDP - TLS Configuration: marcar Use a TLS Key
- Automatically generate a TLS Key: desmarcar
- TLS Key: No OPNsense vá em VPN → OpenVPN → Instances → Static Keys, edite FILIAL e copie toda a Static Key, colando aqui.
- TLS Key Usage Mode:
TLS Encryption and Authentication - Peer Certificate Authority:
CA-VPN-SITE-A-SITE - Client Certificate:
VPN-FILIAL - Save → Apply Changes
- Description:
5.1 Regras no pfSense para Tráfego do Túnel
- Firewall → Rules → guia OpenVPN → + Add
- Action:
Pass - Protocol:
Any - Log: marcar
- Description:
Libera tráfego da VPN (Matriz ↔ Filial) - Save → Apply Changes
- Action:
Validação
No pfSense (Filial)
-
Status → OpenVPN
-
Verifique se o túnel está “Connected (Success)”.
-
Diagnostics → Ping
-
Teste ping para um IP da LAN da Matriz (ex.:
192.168.1.1).
No OPNsense (Matriz)
- Verifique em VPN → OpenVPN → Connection Status se a instância está ativa e com tráfego.
Se o ping entre sub-redes responder, a VPN está operacional.
Opcional — Endereço Alternativo (Failover simples no pfSense)
Para permitir que o pfSense tente um segundo IP/porta do servidor (OPNsense) caso o principal falhe:
- VPN → OpenVPN → guia Clients → edite
VPN-MATRIZ - No fim da página, em Custom options, adicione:
Você pode adicionar múltiplas linhas remote para destinos alternativos. A VPN conectará na ordem fornecida.
Boas Práticas e Próximos Passos
- Restringir regras: após validar a conectividade, restrinja as regras em OpenVPN para apenas os fluxos necessários (origem/destino/porta).
- Roteamento na LAN: crie regras na LAN de cada firewall permitindo tráfego LAN local → LAN remota, sem forçar gateway, e posicione-as no topo.
- Observabilidade: habilite logs nas regras de VPN e acompanhe periodicamente os eventos.
- Monitoramento/auto-recuperação: use Monit (ou equivalente) para monitorar conectividade e reiniciar o túnel em caso de falha.
- Evolução: quando possível, formate o pfSense com OPNsense também na filial para simplificar suporte e automação.