Como instalar o OPNsense no Proxmox como VM de firewall: bridge interna vmbr1, NAT de saída, 1:1 NAT com IPs do bloco /28 e port forward para as VMs.

Para que serve

Em vez de expor cada VM diretamente na internet, você pode instalar um firewall virtual, como o OPNsense no Proxmox (ou o pfSense), entre a internet e as VMs. As VMs ficam numa rede interna privada, sem IP público, e só o que você liberar no firewall chega até elas. É um modelo parecido com o de um escritório: um único ponto de entrada, com regras, NAT, logs e, se quiser, VPN.

Este artigo usa o OPNsense nos exemplos. No pfSense os conceitos e menus são quase os mesmos (as diferenças estão indicadas).

Como fica a rede

  • vmbr0 (já existe): bridge ligada à placa física, com o IP público do Proxmox. É o lado WAN.
  • vmbr1 (nova): bridge sem placa física, só interna, com uma rede privada como 10.10.10.0/24. É o lado LAN.
  • VM OPNsense: uma placa em vmbr0 (com um ou mais IPs públicos do seu bloco /28) e outra em vmbr1 (10.10.10.1, gateway das VMs).
  • Demais VMs: apenas em vmbr1, com IP privado e gateway 10.10.10.1.

Nos exemplos, o bloco público é 203.0.113.16/28, com gateway do datacenter 203.0.113.17, o Proxmox em 203.0.113.18 e o OPNsense usando 203.0.113.19 (WAN) e 203.0.113.20 (IP extra para uma VM). Use os dados que constam no e-mail de entrega do seu servidor.

Atenção: risco de perder o acesso. Não altere a vmbr0 nem o IP do Proxmox neste procedimento; apenas crie a vmbr1. Um erro na configuração de rede do host derruba a interface web e o SSH. Se isso acontecer, entre pelo console IPMI/iLO, restaure a cópia feita no passo 1 (cp /root/interfaces.bak /etc/network/interfaces) e rode ifreload -a. O Proxmox continua sendo administrado pelo IP público dele, fora do OPNsense: proteja-o com o firewall do Proxmox.

Pré-requisitos

  • Proxmox VE 8.x ou 9.x funcionando, com acesso ao IPMI/iLO testado.
  • ISO atual do OPNsense (imagem dvd, amd64) enviada para o storage de ISOs do Proxmox.
  • Dois IPs livres do seu bloco /28: um para o WAN do OPNsense e outro(s) para publicar serviços.
  • Se tiver dúvida sobre o uso dos IPs do bloco em VMs, confirme com o suporte antes ou veja também o artigo «Como configurar a rede do Proxmox para as VMs: bridge, bloco /28 IPv4 e IPv6».

Como instalar o OPNsense no Proxmox passo a passo

1. Criar a bridge interna vmbr1

Antes, guarde uma cópia da configuração de rede atual pelo SSH do host:

cp /etc/network/interfaces /root/interfaces.bak
  1. Em Nó → System → Network, clique em Create → Linux Bridge.
  2. Nome: vmbr1. Deixe Bridge ports vazio. Em IPv4/CIDR coloque 10.10.10.2/24 (o host precisa desse IP só para você acessar o OPNsense por túnel SSH; não preencha Gateway).
  3. Clique em Apply Configuration.

O trecho gerado em /etc/network/interfaces fica assim:

auto vmbr1
iface vmbr1 inet static
        address 10.10.10.2/24
        bridge-ports none
        bridge-stp off
        bridge-fd 0

2. Criar a VM do OPNsense

  • OS: a ISO do OPNsense, tipo Other.
  • System: Machine q35; BIOS padrão (SeaBIOS) é suficiente.
  • Disco: VirtIO Block ou SCSI, 20 GB ou mais.
  • CPU: 2 núcleos, tipo host. Memória: 4 GB (8 GB se for usar IDS/IPS).
  • Rede: primeira placa VirtIO em vmbr0. Depois de criar, em Hardware → Add → Network Device, adicione a segunda placa VirtIO em vmbr1.
  • Nas duas placas, desmarque a opção Firewall do Proxmox: quem filtra aqui é o OPNsense.
  • Em Options, marque Start at boot com Start/Shutdown order = 1, para o firewall subir antes das outras VMs.

3. Instalar e atribuir as interfaces

  1. Inicie a VM, abra o Console e entre com o usuário installer (senha opnsense). Instale em ZFS ou UFS e defina a senha de root.
  2. Após o reboot, no menu do console use 1) Assign interfaces: vtnet0 = WAN, vtnet1 = LAN.
  3. Use 2) Set interface IP address:
    • WAN: estático 203.0.113.19/28, gateway 203.0.113.17.
    • LAN: 10.10.10.1/24. Pode ativar o DHCP na LAN se quiser.

4. Acessar a interface web com segurança

Não abra a interface do OPNsense para a internet. Acesse por um túnel SSH através do Proxmox, a partir do seu computador:

ssh -L 8443:10.10.10.1:443 root@203.0.113.18

Com o túnel aberto, acesse https://localhost:8443 no navegador e faça o assistente inicial. Confirme em Interfaces → Settings que Hardware CRC, Hardware TSO e Hardware LRO estão desativados (no pfSense: System → Advanced → Networking → Disable hardware checksum offload). Com eles ativos em placas VirtIO, o tráfego pode falhar de forma intermitente.

5. Conectar as VMs à rede interna

Em cada VM, mude a placa de rede para vmbr1 e configure: IP 10.10.10.x/24, gateway 10.10.10.1, DNS 10.10.10.1. A saída para a internet já funciona: o NAT de saída automático do OPNsense traduz a rede LAN para o IP do WAN.

6. Publicar uma VM com IP público próprio (1:1 NAT)

  1. Interfaces → Virtual IPs → Settings → Add: modo IP Alias, interface WAN, endereço 203.0.113.20/28.
  2. Firewall → NAT → One-to-One → Add: interface WAN, tipo BINAT, IP externo 203.0.113.20, rede interna 10.10.10.20/32 (a VM).
  3. Firewall → Rules → WAN → Add: libere só as portas necessárias, com destino o IP interno 10.10.10.20 (as regras do WAN são avaliadas depois da tradução). Exemplo: TCP 443 de qualquer origem; TCP 3389 apenas de 203.0.113.10.

Com o 1:1, o tráfego de saída da VM também sai pelo IP 203.0.113.20.

Se preferir um roteador MikroTik no lugar do OPNsense, veja também o artigo «Como instalar o MikroTik CHR no Proxmox VE (Cloud Hosted Router como roteador das VMs)». Para ligar o escritório a essa rede interna, veja o artigo «Como configurar VPN site-to-site entre o escritório e o servidor dedicado (WireGuard com MikroTik, pfSense e OPNsense)».

7. Publicar só algumas portas (Port Forward)

Se não precisa de um IP exclusivo, use Firewall → NAT → Destination NAT (Port Forward) (no pfSense: Firewall → NAT → Port Forward): interface WAN, destino "WAN address", porta 443, redirecionar para 10.10.10.30 porta 443. O OPNsense pode criar a regra de firewall associada automaticamente; restrinja a origem quando for um serviço administrativo.

Como saber se funcionou

  • Numa VM da LAN: ping 10.10.10.1 e curl -4 ifconfig.me (deve mostrar o IP do WAN ou o IP do 1:1).
  • De fora, nc -vz 203.0.113.20 443 conecta e uma porta não liberada dá timeout.
  • Em Firewall → Log Files → Live View você vê os pacotes permitidos e bloqueados em tempo real.

Problemas comuns

  • VMs pingam mas páginas não carregam / downloads travam: offload de hardware ativo. Revise o passo 4 e reinicie o OPNsense.
  • IP virtual não responde de fora: confira se o Virtual IP está no WAN, se existe regra no WAN para o IP interno e se o IP não está em uso em outra VM ou no host (conflito de ARP).
  • OPNsense desligado = todas as VMs sem internet. Faça backup da configuração em System → Configuration → Backups e mantenha um snapshot da VM antes de atualizar.
  • Perdi o acesso à interface web do OPNsense: use o console da VM no Proxmox. No menu, a opção 8) Shell permite pfctl -d para desativar o filtro temporariamente; a opção de reset de interfaces resolve erros de IP. Se o problema for no Proxmox, use o IPMI/iLO.

Perguntas frequentes

Vale a pena usar OPNsense no Proxmox?

Vale quando você quer um único ponto de entrada para várias VMs, com regras, NAT, logs e VPN centralizados, em vez de expor cada VM direto na internet.

OPNsense ou pfSense: qual escolher?

Os dois atendem bem e os conceitos são quase iguais. Este artigo usa o OPNsense nos exemplos e indica onde os menus do pfSense são diferentes.

Preciso de um IP público só para o OPNsense?

Sim. O WAN do OPNsense usa um IP livre do seu bloco /28, diferente do IP do Proxmox. Outros IPs livres do bloco podem ser publicados para VMs com 1:1 NAT.

Por que as páginas não carregam nas VMs atrás do OPNsense?

Normalmente é o offload de hardware (CRC, TSO e LRO) ativo nas placas VirtIO. Desative-o nas configurações de interface e reinicie o OPNsense.

O Proxmox também fica atrás do OPNsense?

Não neste modelo. O Proxmox continua com o IP público dele na vmbr0 e deve ser protegido com o firewall do próprio Proxmox.

Precisa de ajuda?

Se ficou alguma dúvida, abra um ticket ou fale com o suporte pelo WhatsApp.

Esta resposta lhe foi útil? 0 Usuários acharam útil (0 Votos)

Leia também