Aula 21: Firewall perimetral com pfSense — configuração e regras

Aula 21: Firewall perimetral com pfSense — configuração e regras

Nesta aula avançada, você vai dominar a implementação de um Firewall perimetral com pfSense completo, funcional e pronto para proteger redes corporativas, domésticas ou de laboratório. O pfSense é uma distribuição baseada em FreeBSD que utiliza o packet filter (pf) para criar políticas de filtragem com estado, NAT, balanceamento de carga, VPN e alta disponibilidade. Diferente de soluções simples como roteadores domésticos, o pfSense oferece granularidade total sobre cada pacote que atravessa suas interfaces, permitindo que você construa um perímetro de segurança robusto com regras explícitas, aliases, agendamentos e registros detalhados. Em nossos projetos na JRT Technology Solutions, utilizamos diariamente o pfSense como firewall de borda para clientes de pequeno e médio porte, justamente porque ele equilibra controle avançado com uma interface web acessível e uma comunidade ativa.

Ao longo desta aula, você vai sair do zero — ou quase zero — e chegar a um cenário real de produção: instalar o pfSense em uma máquina virtual ou física, atribuir interfaces WAN e LAN, configurar endereçamento IP, criar regras de passagem e bloqueio, configurar NAT e testar cada camada da política. Vamos explicar a teoria por trás do motor de filtragem stateful do pfSense, a ordem de avaliação das regras, os conceitos de WAN, LAN, OPT e aliases, e como cada decisão impacta o tráfego real. Você também aprenderá a verificar estados de conexão, depurar problemas comuns e aplicar boas práticas que nossos especialistas em segurança da informação recomendam para ambientes de missão crítica.

Por que isso importa? Porque um firewall perimetral mal configurado é um convite para invasões, vazamento de dados e interrupções de serviço. Quando você entende exatamente como o pfSense processa os pacotes, passa a enxergar o tráfego como uma sequência lógica de decisões — origem, destino, porta, protocolo, estado da conexão e política aplicada. Essa clareza reduz erros operacionais e aumenta a previsibilidade da rede. Além disso, o pfSense permite integrar facilmente recursos como fail2ban e CrowdSec para proteção ativa contra ataques de força bruta, que serão temas das próximas aulas. A base que você constrói aqui será o alicerce para esses sistemas de resposta automatizada.

Para aproveitar esta aula ao máximo, você precisará de uma máquina com pelo menos dois adaptadores de rede, a imagem ISO do pfSense Community Edition (versão 2.7.2 ou superior) e um cliente na rede interna para acessar a interface web. Vamos utilizar o VirtualBox como hipervisor nos exemplos, mas os mesmos passos se aplicam ao Proxmox, VMware, Hyper-V ou a um hardware dedicado. Também é recomendável ter conhecimento de sub-redes IPv4, roteamento básico e o funcionamento do modelo OSI nas camadas 3 e 4. Se você já acompanhou as aulas anteriores do curso, já tem essa base.

No final desta aula, você terá um Firewall perimetral com pfSense totalmente operacional, com regras de filtragem documentadas, NAT funcionando, verificações de estado e ferramentas de diagnóstico dominadas. Saberá exatamente onde cada pacote entra, qual regra ele bate e como liberar ou bloquear serviços com segurança. E mais: estará pronto para integrar a proteção ativa do fail2ban e do CrowdSec nas próximas aulas, ampliando a defesa para a camada de aplicação. Vamos começar.

O que você vai aprender nesta aula

  • Instalar e configurar o Firewall perimetral com pfSense em uma máquina virtual ou física.
  • Atribuir e endereçar as interfaces WAN e LAN, entendendo o papel de cada zona.
  • Compreender o mecanismo de filtragem stateful do pfSense e a ordem de avaliação das regras.
  • Criar regras de passagem, bloqueio e rejeição com protocolos, portas, origens e destinos específicos.
  • Utilizar aliases para organizar hosts, redes e portas, reduzindo a complexidade das regras.
  • Configurar NAT de saída, port forwarding e reflection para serviços internos.
  • Testar e verificar a política com pfctl, tcpdump, sockstat e outras ferramentas.
  • Diagnosticar e corrigir erros comuns como regras fora de ordem, NAT mal configurado e falta de conectividade.
  • Aplicar boas práticas de segmentação, documentação e monitoramento para ambientes de produção.

Pré-requisitos e Ambiente

Antes de iniciar a configuração, você precisa preparar um ambiente mínimo. Para um laboratório funcional, recomendamos uma máquina com pelo menos 2 vCPUs, 4 GB de RAM e 20 GB de disco. O pfSense é leve, mas ao adicionar pacotes como pfBlockerNG ou Suricata, o consumo de CPU e memória aumenta. O ponto crítico é a presença de dois adaptadores de rede: um será conectado à rede externa (WAN), normalmente em modo bridge com a sua rede doméstica/corporativa ou em NAT no VirtualBox; o outro será a rede interna (LAN), onde ficarão os clientes que serão protegidos pelo firewall.

Você também precisará da imagem ISO do pfSense Community Edition. Faça o download em https://www.pfsense.org/download/ escolhendo a arquitetura AMD64 e o instalador ISO. Para esta aula, utilizaremos a versão 2.7.2, mas qualquer versão estável recente funciona. Se você estiver usando um hipervisor Linux, como KVM ou VirtualBox em uma distribuição Debian/Ubuntu ou CentOS/RHEL/Rocky, será útil criar uma bridge de rede para a interface LAN, garantindo que os clientes virtuais consigam se comunicar com o pfSense. Vamos mostrar os comandos para preparar esse ambiente logo adiante.

  • Hipervisor: VirtualBox 7.x, Proxmox VE 8.x, VMware Workstation/ESXi ou hardware dedicado.
  • Imagem ISO: pfSense Community Edition 2.7.2 (AMD64).
  • Adaptadores de rede: mínimo 2 — um para WAN, outro para LAN.
  • Cliente de teste: uma máquina Ubuntu/Debian ou Windows na LAN para validar as regras.
  • Acesso administrativo: console físico ou virtual para a instalação inicial e navegador para o webConfigurator.
  • Ferramentas de diagnóstico: ping, traceroute, nslookup, curl, ssh e openssl.

Se você estiver usando VirtualBox, crie a máquina com tipo FreeBSD (64-bit), memória 4096 MB, disco 20 GB e dois adaptadores de rede: o primeiro em Bridged Adapter (para simular a WAN) e o segundo em Internal Network (para a LAN). No Proxmox, crie uma bridge vmbr0 para WAN e uma bridge vmbr1 para LAN, anexando as duas ao VM. Esses detalhes evitam que o pfSense detecte as interfaces em ordem errada e facilita a atribuição durante o menu de console.

Fundamentos do Firewall Perimetral com pfSense

O pfSense é um firewall de borda que implementa o pf (Packet Filter) do FreeBSD com uma camada de gerenciamento web chamada webConfigurator. A lógica central é o controle de tráfego por interface e por estado de conexão. Quando um pacote chega a uma interface, o pfSense avalia suas regras na ordem em que aparecem — de cima para baixo, primeira regra que coincidir vence. Isso significa que a sequência das regras é tão importante quanto o conteúdo delas. Uma regra de bloqueio ampla no topo pode anular todas as regras de passagem abaixo, mesmo que você tenha configurado corretamente as portas e os endereços.

No contexto de Firewall perimetral com pfSense, as interfaces são separadas em zonas de confiança. A WAN é a interface voltada para a internet ou para uma rede não confiável; por padrão, o pfSense nega todo tráfego de entrada vindo da WAN, exceto aquele que faz parte de uma conexão estabelecida ou que você explicitamente libera por meio de regras. A LAN é a rede interna, onde os clientes confiam no firewall como gateway; por padrão, todo o tráfego da LAN para qualquer destino é liberado, mas você pode restringir essa política conforme a necessidade. Essa assimetria é proposital: protege o perímetro sem atrapalhar a operação interna, mas exige atenção redobrada ao abrir exceções.

Outro pilar fundamental é o stateful inspection. O pfSense mantém uma tabela de estados de conexões. Quando um cliente da LAN inicia uma conexão HTTP para um servidor externo, o firewall registra o estado e permite automaticamente o tráfego de retorno, mesmo que não haja regra explícita de entrada na WAN. Essa tabela é gerenciada pelo próprio kernel do FreeBSD e pode ser inspecionada com o comando pfctl -ss. Entender essa tabela é essencial para diagnosticar problemas: se um estado não existe, o pacote de retorno será descartado pela política padrão da WAN, causando falhas aparentemente inexplicáveis.

O pfSense também trabalha com conceitos como aliases, schedules, limitações de largura de banda e gateways múltiplos. Um alias é um nome lógico para um conjunto de endereços IP, redes ou portas. Em vez de digitar repetidamente 10.0.0.10, 10.0.0.11, 10.0.0.12 em várias regras, você cria um alias chamado SERVIDORES_CRITICOS e referencia esse nome. Isso reduz erros, facilita a documentação e permite atualizações centralizadas. Em ambientes corporativos, nossos consultores da JRT Technology Solutions padronizam a criação de aliases antes de qualquer regra, exatamente para evitar a “salada de IPs” que compromete a manutenção.

Por fim, é importante entender a diferença entre Pass, Block, Reject e Match. Pass permite o tráfego e cria estado, Block descarta silenciosamente, Reject envia uma resposta ICMP de destino inalcançável ou TCP RST, e Match é usado apenas para ações especiais como shaping ou captura. Na maioria das regras de filtragem, usamos Pass e Block. O Reject é útil para evitar que scanners de porta vejam portas abertas, mas pode revelar a existência do firewall se mal utilizado.

Instalação do Firewall Perimetral com pfSense em Máquina Virtual

A instalação começa com a criação da máquina virtual e o boot pela ISO. No VirtualBox, após criar a VM com 2 CPUs, 4 GB RAM e 20 GB de disco, anexe a ISO do pfSense ao drive óptico virtual e inicie a VM. O instalador do pfSense é um bsdinstall modificado: ele carrega um kernel, detecta as interfaces e apresenta um menu de console. O primeiro boot pode levar alguns minutos, dependendo da velocidade do disco. Você verá uma tela com o logotipo do pfSense e a detecção dos adaptadores de rede, como vtnet0 e vtnet1 (nomes típicos em virtualização) ou em0, igb0 em hardware real.

Se você estiver usando um host Linux com VirtualBox ou KVM, é prudente preparar as bridges antes de iniciar o pfSense. Em sistemas Debian/Ubuntu, os comandos a seguir criam uma bridge br0 para a interface LAN. Essa bridge será usada pelos clientes da rede interna. Execute como root ou com sudo:

# Debian/Ubuntu: preparar bridge para a LAN do pfSense
sudo apt update
sudo apt install bridge-utils -y

# Criar bridge br0
sudo ip link add name br0 type bridge
sudo ip link set enp0s8 master br0
sudo ip link set enp0s8 up
sudo ip link set br0 up
sudo ip addr add 192.168.1.2/24 dev br0

No exemplo acima, enp0s8 é o segundo adaptador de rede do host, que será ligado à bridge. O endereço 192.168.1.2/24 é atribuído à bridge para que o próprio host consiga acessar a rede LAN, mas isso é opcional. Após criar a bridge, a interface br0 pode ser usada no VirtualBox como rede interna ou bridge para outras VMs. Em CentOS/RHEL/Rocky Linux, o mesmo procedimento é feito com nmcli:

# CentOS/RHEL/Rocky Linux: preparar bridge br0
sudo dnf install bridge-utils -y
# Criar bridge principal
sudo nmcli connection add type bridge ifname br0
# Adicionar interface física à bridge
sudo nmcli connection add type ethernet slave-type bridge con-name br0-port0 ifname enp0s8 master br0
# Configurar IP estático na bridge
sudo nmcli connection modify br0 ipv4.addresses 192.168.1.2/24 ipv4.method manual
sudo nmcli connection up br0

Esses comandos garantem que a interface LAN do pfSense terá uma rede isolada e gerenciável. Em hardware físico, você pode ignorar essa etapa, pois as portas de rede são conectadas diretamente aos switches. No entanto, é fundamental que a interface WAN tenha acesso à internet. Em testes com VirtualBox, o modo NAT para a WAN permite que o pfSense obtenha IP via DHCP do host e saia para a internet, enquanto o modo Bridged pode ser usado se você tiver um roteador real na rede.

Após iniciar a VM pela ISO, o instalador pergunta se você deseja instalar o pfSense. Digite Accept e escolha Install no menu. O particionamento automático usa o disco inteiro com ZFS, que é o recomendado para produção. Siga os prompts até a conclusão. Quando solicitado, remova a mídia de instalação e reinicie. O sistema então carregará o menu de console do pfSense, que é a principal ferramenta de administração local. A saída esperada deve se parecer com esta:

pfSense Console Menu
0) Logout (SSH only)
1) Assign Interfaces
2) Set interface(s) IP address
3) Reset webConfigurator password
4) Reset to factory defaults
5) Reboot system
6) Halt system
7) Ping host
8) Shell
9) pfTop
10) Filter Logs
11) Restart webConfigurator
12) PHP shell + pfSense tools
13) Update from console
14) Enable Secure Shell (sshd)
15) Restore recent configuration
Enter an option: 

Nesse menu, a primeira tarefa é usar a opção 1 para atribuir as interfaces. O pfSense perguntará quais adaptadores devem ser associados à WAN e à LAN. Identifique pelo nome: no VirtualBox, geralmente vtnet0 é o primeiro adaptador (WAN) e vtnet1 é o segundo (LAN). Confirme as atribuições e depois use a opção 2 para configurar os endereços IP. Configure a WAN para DHCP e a LAN para IPv4 estático, com endereço 192.168.1.1/24. Após salvar, o console exibirá os IPs atribuídos. Agora você pode acessar a interface web pela LAN.

Configurando as Interfaces no Firewall Perimetral com pfSense

Com o pfSense instalado e as interfaces atribuídas, acesse a interface web a partir de um cliente conectado à rede LAN. No navegador, digite https://192.168.1.1. O webConfigurator utiliza HTTPS com certificado autoassinado; aceite o aviso de segurança. As credenciais padrão são admin / pfsense. O assistente inicial (Setup Wizard) aparecerá e guiará você pela configuração mínima. Preencha o hostname, domínio, servidores DNS, fuso horário e, em seguida, as configurações de WAN e LAN. Para a WAN, mantenha DHCP; para a LAN, confirme o IP 192.168.1.1/24 e deixe o DHCP server habilitado para a faixa 192.168.1.100–192.168.1.199. Defina uma senha forte para o administrador e salve.

Vamos detalhar os campos mais relevantes do assistente em uma tabela de referência rápida. Esses valores são adequados para um laboratório inicial e podem ser ajustados depois:

Interface Campo Valor recomendado Observação
WAN IPv4 Configuration Type DHCP Recebe IP automaticamente do roteador/modem
WAN Block private networks Marcado Impede tráfego de IPs privados na WAN
WAN Block bogon networks Marcado Bloqueia redes não roteáveis e reservadas
LAN IPv4 Configuration Type Static IPv4 IP fixo para gateway interno
LAN IPv4 Address 192.168.1.1/24 Rede padrão do laboratório
LAN DHCP Server Enable Distribui IPs para clientes da LAN
LAN DHCP Range 192.168.1.100–199 Evita conflito com IPs fixos

Depois do assistente, você deve acessar Interfaces > LAN para revisar a configuração. Aqui você pode alterar o IP, a máscara, o gateway e as opções de MTU. Em Interfaces > WAN, verifique se a opção Block private networks and loopback addresses está marcada. Essa opção é crucial para evitar que pacotes com origem falsificada de redes privadas entrem pela WAN. Em produção, nossos especialistas da JRT Technology Solutions também ativam Block bogon networks, que atualiza periodicamente uma lista de redes não alocadas pela IANA, bloqueando tráfego suspeito de IPs inválidos.

Outro ajuste importante está em System > General Setup: defina o hostname, domínio e servidores DNS. Um erro comum é deixar o DNS vazio, fazendo com que o pfSense não resolva nomes e os clientes percam a navegação. Se você tiver um DNS interno, adicione-o; caso contrário, use 8.8.8.8 ou 1.1.1.1. Em System > Advanced > Admin Access, você pode habilitar o SSH para administração remota, mas recomendamos restringir a acesso apenas da LAN e, preferencialmente, usar autenticação por chave pública. Essa configuração será retomada quando integrarmos o fail2ban na próxima aula.

Antes de criar as regras de firewall, valide a conectividade básica. No menu de console ou via SSH, use a opção 7 (Ping host) ou execute ping 8.8.8.8. Se a WAN estiver com IP e o gateway padrão estiver correto, o ping deve responder. A partir de um cliente na LAN que recebeu IP via DHCP, faça ping 192.168.1.1 e depois ping 8.8.8.8. Se ambos funcionarem, o roteamento básico está íntegro e você pode avançar para as regras de filtragem.

Criando Regras no Firewall Perimetral com pfSense

Agora chegamos ao coração da aula: a criação de regras de filtragem. No pfSense, as regras são gerenciadas em Firewall > Rules, separadas por interface: WAN, LAN e Float (regras flutuantes que se aplicam a múltiplas interfaces). A política padrão da WAN nega todo tráfego de entrada; a LAN permite todo tráfego de saída. Para criar uma regra na LAN, clique na aba LAN e depois no botão Add (seta para baixo). O formulário de regra é extenso, mas vamos focar nos campos essenciais: Action,

Quer aprender na prática com especialistas?

A JRT Technology Solutions oferece treinamentos e implementação de Firewall, fail2ban e CrowdSec para equipes corporativas.



Falar no WhatsApp

Thiago Paes Rodrigues

Com mais de 22 anos de experiência em Tecnologia da Informação, este profissional construiu uma trajetória sólida como empresário, atuando de forma estratégica na implementação de soluções tecnológicas que otimizam processos e impulsionam resultados em diferentes setores.