Problema de roteamento com PfSense



  • Olá Para todos, estou enfrentando um problema muito estranho, ou é alguma coisa muito séria ou é alguma bobagem muito grande que estou fazendo e não estou enxergando (o que é mais provável), mas como estou há um mês tentando resolver sem sucesso gostaria de compartilhar com todos para ver se de repente alguém pode me ajudar!

    Tenho uma rede que funciona da seguinte maneira com 2 firewall PfSense

    FW1 - 4 interfaces de rede
    Vivo Speedy
    Net Virtua
    RedeLOCAL - 192.168.0.250/22
    DMZ - 10.1.0.250/24

    FW2 - 2 interfaces de rede
    Link Embratel dedicado
    DMZ - 10.1.0.251/24

    O FW2 é o gateway padrão dos servidores que estão na DMZ, então criei nele uma rota com a seguinte informação:
    rede 192.168.0.0/22 gw 10.1.0.250

    Já no FW1 não tenho rota pois o firewall tem interface nas duas redes, portanto já conhece as rotas.
    O FW1 é o gateway padrão dos servidores e estações da rede local.

    Todo mundo que está na rede local navega na internet sem nenhum problema, assim como os servidores da rede DMZ também navegam.

    O meu problema é que preciso que algumas máquinas da rede local acessem os servidores da DMZ e alguns servidores da DMZ acessem os servidores da REDELOCAL.

    NO FW2 a regra de saída libera acesso geral para todos os servidores (só tem a regra default)

    NO FW1 tenho uma regra liberando tudo o que vier pela interface DMZ de qualquer lugar para qualquer lugar (na interface DMZ) e uma regra liberando todo o tráfego IPv4 da REDELOCAL para a DMZ (na interface REDELOCAL)

    Se deixo desta maneira inexplicavelmente tudo funcionou durante uma semana e depois parou de funcionar. Já troquei as placas de rede, reinstalei o servidor todo (voltando o backup apenas) e a REDELOCAL não faz nada nem ping na DMZ e a DMZ também não consegue acessar nada na REDELOCAL.

    O FW1 pinga todos os hosts que quiser nas 2 redes (REDELOCAL e DMZ).

    A única maneira que encontrei provisoriamente para a rede local falar com a DMZ é fazer um outbound NAT fazendo com que quando os pacotes saiam pela interface DMZ usem o endereço do FW1.

    Desta maneira as máquinas da REDELOCAL acessam a DMZ, porém as máquinas da DMZ não acessam a REDELOCAL de jeito nenhum, nem se fizer outra regra de NAT para isso.

    Já conferi as tabelas de roteamento dos dois servidores e as redes e interfaces estão corretas nas tabelas. Conferi regras e tudo mais mas não encontro uma solução para o problema.

    Minha última tentativa será reinstalar tudo do zero sem voltar o backup para ver se vai resolver e se o problema está no arquivo de backup.

    Se alguém tiver alguma sugestão ou pergunta seja ela qual for fique a vontade!

    Abraços!



  • Bom dia fneto,

    É um pouco dificil tentar chutar uma solução baseado nas informações prestadas, como sempre faço com os meus parceiros, solicito que postem as configurações para que eu possa fazer uma análise.

    Post aqui a saída dos seguintes comandos (para não poluir muito o forum, salve em um bloco de notas e anexe no post):

    netstat -rn
    pfctl -s nat
    pfctl -s rules

    Enquanto isso, vou sugerir duas situações (hipotéticas) que estejam causando esse problema:

    1- Rede local não acessa servidores da DMZ:

    - Possívelmente o FW2 está fazendo nat de saída (Outbound) para as seguintes definições:

    Src: DMZ_net      Src_p: *    Dst: Redelocal_net  Dst_p:>>>    Ação:  Src: DMZ_address      Src_p: *

    Desta forma o pacote ao entrar na interface DMZ do FW1, não encontrara uma entrada válida na tabela de estado. E mesmo que voce libere tudo na interface DMZ do FW1, ainda não funcionara, pois o PFsense possui uma pré-configuração automatica de inserir S/SA em todas as regras. Na situação supracitada, o pacote estara com uma flag P, PA, R, F, etc.

    Solução para o situação 1: No FW2, desabilite o  "Automatic outbound NAT rule generation" e habilite o "Manual Outbound NAT rule generation", exclua todas as entradas deste NAT e crie uma com NAT de Outbound somente para interface da Embratel. Dessa forma o trafego da DMZ para Rede Local será roteado sem NAT.

    2- Rede DMZ não acessa servidores da Rede Local:

    - No seu post, no que se refere a liberação no FW2, voce citou a seguinte oração: "só tem a regra default". A regra default do PFsense é bloquear tudo.

    Solução para o situação 2: Crie uma regra com origem DMZ_net e destino Redeservidores_net ou hosts desta rede com os serviços necessários. Lembre-se que qualquer serviço ou regra desnecessaria é uma falha de segurança causando vulnerabilidade.

    Bom, somente com suas configurações em mãos podemos propor uma solução mais exata. Espero ter clareado sua mente em algum aspecto. Aguardamos sua interação aqui no forum.

    Grande abraço.

    att.

    Bruno Pinheiro



  • Olá Bruno segue anexo as informações que você pediu, obviamente eu troquei os ip's válidos por máscaras por segurança.

    Quanto às suas respostas, nos dois firewalls eu não uso o NAT automático, apenas o Manual, e no caso do FW2 quanto a regra default eu quis dizer que tenho uma regra que libera a saída de tudo para tudo sem nenhum tipo de restrição ou bloqueio ok!

    O switch onde os os dois firewalls estão conectados (na rede DMZ) é gerenciável, mas não encontrei nada de mais nele configurado também ok!

    Se precisar de mais alguma informação me avise!!

    Abraços!

    [Info firewall.txt](/public/imported_attachments/1/Info firewall.txt)