Liberação de portas Floating + NAT com VIP



  • Olá pessoa, preciso de uma ajuda. Acabei de configurar o pfsense 2.0.3, Liberação de portas (Firewall - Rules - Floating) escolhi essa opção por que tenho dois links WAN dedicados e se liberar uma porta aqui, ela será permitida nos dois links wan. Também criei Vitual IP (5 endereços wan).

    a) Liberei a porta 443 no floating, selecionei as duas interfaces WAN;
    b) Criei uma NAT  - WAN  (VIP) para LAN 192.168.1.100 porta 443;

    Porém  a porta não abre e não consigo acesso.

    Alguém pode me ajuda





  • destination nestes casos nao podem ser any.



  • Entao,

    Mas la em cima eu escolho a interface, que no meu caso sao duas (Telefonica e ALGAR)

    No destination tenho somente a opção de escolher uma rede, seria a LAN?



  • Alguém poderia me ajudar?

    Na opção any tentei todas as formas e não foi… :(



  • Provavelmente você tem um nat da wan1 e wa2 para sua lan.

    O mais indicado é fazer os nats para cada interface e marcar a opção de criar a regra automaticamente.



  • Tenho as NAT sim…   Em outro ambiente onde possuo somente um LINK WAN as regras funcionam normalmente. Somente esse que possui duas WAN não funciona.




  • Alguém?
    Tentei de todos os modos, li o tutorial do pfsense, pesquisei e nada :(

    Estou trocando o firewall pelo pfsense, onde o antigo firewall é o gateway da rede. No package capture do pfsense, o conexão e feita tanto na WAN para LAN e LAN para WAN. Mas  a liberação da porta na abre, somente as SSH e o hhtps do webconfigurator.

    4 dias já e nada.



  • Se você tem os nats criados com a opção de criar as regras associadas, você não precisa de regras na aba floation.

    dica 2: use a console/ssh com o tcpdump para debugar.



  • Entendi,

    Na NAT que criei a porta continua fechada e o tcpdump retorna isso:

    [2.0.3-RELEASE][root@fwempresa.local]/root(8): tcpdump -nv -i xl0 | grep -i 187.115.X.117
    tcpdump: listening on xl0, link-type EN10MB (Ethernet), capture size 96 bytes
       187.115.X.117.2282 > 187.X.X.189.443: Flags [ S ], cksum 0x6ae7 (correct), seq 189988249, win 65535, options [mss 1452,nop,nop,sackOK], length 0
       187.115.X.117.2282 > 172.16.2.156.443: Flags [ S ], cksum 0x8101 (correct), seq 189988249, win 65535, options [mss 1452,nop,nop,sackOK], length 0
       187.115.X.117.2282 > 187.X.X.189.443: Flags [ S ], cksum 0x6ae7 (correct), seq 189988249, win 65535, options [mss 1452,nop,nop,sackOK], length 0
       187.115.X.117.2282 > 172.16.2.156.443: Flags [ S ], cksum 0x8101 (correct), seq 189988249, win 65535, options [mss 1452,nop,nop,sackOK], length 0
       187.115.X.117.2282 > 187.X.X.189.443: Flags [ S ], cksum 0x6ae7 (correct), seq 189988249, win 65535, options [mss 1452,nop,nop,sackOK], length 0
       187.115.X.117.2282 > 172.16.2.156.443: Flags [ S ], cksum 0x8101 (correct), seq 189988249, win 65535, options [mss 1452,nop,nop,sackOK], length 0

    IP: 187.115.X.117    = IP de origem
    IP: 187.x.x.189              = IP de destino
    IP: 172.16.2.156         = IP LAN porta 443

    Comunicação está tendo….

    Quando dou um telnet na porta nao abre



  • use tcpdump -nv -i xl0 host 187.115.X.117 no lugar de usar grep.

    escute tanto na wan quanto na lan e verifique seu suas regras não estão com gateway configurado.



  • [2.0.3-RELEASE][root@fw.empresa.local]/root(2): tcpdump -nv -i xl0 host 187.115.x.117
    tcpdump: listening on xl0, link-type EN10MB (Ethernet), capture size 96 bytes

    16:54:56.561308 IP (tos 0x0, ttl 121, id 11611, offset 0, flags [DF], proto TCP (6), length 48)
        187.115.x.117.2470 > 187.9.9.189.443: Flags [s], cksum 0x27ff (correct), seq 3152514864, win 65535, options [mss 1452,nop,nop,sackOK], length 0
    16:54:56.561346 IP (tos 0x0, ttl 121, id 11611, offset 0, flags [DF], proto TCP (6), length 48)
        187.115.x.117.2470 > 172.16.2.156.443: Flags [s], cksum 0x3e19 (correct), seq 3152514864, win 65535, options [mss 1452,nop,nop,sackOK], length 0
    16:54:59.413221 IP (tos 0x0, ttl 121, id 12343, offset 0, flags [DF], proto TCP (6), length 48)
        187.115.x.117.2470 > 187.9.9.189.443: Flags [s], cksum 0x27ff (correct), seq 3152514864, win 65535, options [mss 1452,nop,nop,sackOK], length 0
    16:54:59.413233 IP (tos 0x0, ttl 121, id 12343, offset 0, flags [DF], proto TCP (6), length 48)
        187.115.x.117.2470 > 172.16.2.156.443: Flags [s], cksum 0x3e19 (correct), seq 3152514864, win 65535, options [mss 1452,nop,nop,sackOK], length 0
    16:55:05.549203 IP (tos 0x0, ttl 121, id 13562, offset 0, flags [DF], proto TCP (6), length 48)
        187.115.x.117.2470 > 187.9.9.189.443: Flags [s], cksum 0x27ff (correct), seq 3152514864, win 65535, options [mss 1452,nop,nop,sackOK], length 0
    16:55:05.549215 IP (tos 0x0, ttl 121, id 13562, offset 0, flags [DF], proto TCP (6), length 48)
        187.115.x.117.2470 > 172.16.2.156.443: Flags [s], cksum 0x3e19 (correct), seq 3152514864, win 65535, options [mss 1452,nop,nop,sackOK], length 0
    
    LAN: 
    
    tcpdump -nv -i bge0 host 172.16.2.156
    [code]tcpdump: listening on bge0, link-type EN10MB (Ethernet), capture size 96 bytes
    16:52:45.025214 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.0.199 tell 172.16.2.156, length 46
    16:52:48.450635 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.0.90 tell 172.16.2.156, length 46
    16:52:48.452196 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.2.156 tell 172.16.0.90, length 46
    16:52:51.338554 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.0.189 tell 172.16.2.156, length 46
    16:53:03.493119 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.0.131 tell 172.16.2.156, length 46
    16:54:10.466499 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.254.119 tell 172.16.2.156, length 46
    16:54:59.478155 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.254.113 tell 172.16.2.156, length 46
    16:55:06.469326 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.254.120 tell 172.16.2.156, length 46
    16:55:36.302048 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.2.156 tell 172.16.0.31, length 46
    16:55:48.446838 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.254.112 tell 172.16.2.156, length 46
    16:55:57.445063 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.254.121 tell 172.16.2.156, length 46
    16:56:42.445321 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.2.156 tell 172.16.0.32, length 46
    16:57:44.618804 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.16.0.199 tell 172.16.2.156, length 46[/code]
    
    A NAT está com o Default Gateway (WAN)
    
    Uma informação importante:   Estou migrando de firewall, o firewall antigo tem o gw final 0.3 é que o gateway da rede. O pfsense está sem o gateway na LAN o ip dele é o 0.250\. 
    [/s][/s][/s][/s][/s][/s]
    


  • @neo_X:

    Uma informação importante:   Estou migrando de firewall, o firewall antigo tem o gw final 0.3 é que o gateway da rede. O pfsense está sem o gateway na LAN o ip dele é o 0.250.

    Sem o gateway, você tem que forçar o nat de saída também. Caso contrario o pacote chega até a maquina com o ip do cliente e com o ip do cliente não faz parte da rede, a maquina devolve para o default gateway.

    O ip do servidor é 192.168.1.100?

    Escute na lan com o ip do servidor de destino, não o ip da lan do firewall.



  • Olá Marcelo..

    Sem o gateway, você tem que forçar o nat de saída também. Caso contrario o pacote chega até a maquina com o ip do cliente e com o ip do cliente não faz parte da rede, a maquina devolve para o default gateway.
    O ip do servidor é 192.168.1.100?
    Escute na lan com o ip do servidor de destino, não o ip da lan do firewall.

    O ip do servidor pfsense é 172.16.0.250

    Rodei o tcpdump na LAN bge0 do pfsense (172.16.0.250) com o servidor de destino 187.115.x.117, mas não gerou nenhum log.

    [2.0.3-RELEASE][root@fw.empresa.local]/root(6): tcpdump -nv -i bge0 host 187.115.x.117
    tcpdump: listening on bge0, link-type EN10MB (Ethernet), capture size 96 bytes
    0 packets captured
    15768 packets received by filter
    0 packets dropped by kernel

    Você comentou sobre a Nat de saída, o pfsense faz isso NAT outbound?



  • Perguntei qual o ip do servidor que tem o serviço que você quer publicar na internet.



  • Sim

    172.16.2.156 porta 443  PRTG



  • @neo_X:

    172.16.2.156 porta 443   PRTG

    então rode tcpdump -ni bge0 host 172.16.2.156 and port 443



  • [2.0.3-RELEASE][root@empresa]/root(9): tcpdump -ni bge0 host 172.16.2.156 and port 443
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on bge0, link-type EN10MB (Ethernet), capture size 96 bytes

    0 packets captured
    2657 packets received by filter
    0 packets dropped by kernel

    Mesmo o telnet na porta 443 não abre.



  • Normal esse log?



  • @neo_X:

    Normal esse log?

    Arranca suas regras da aba floating, confere seu nat e marca a opção para criar uma regra de firewall automaticamente.

    Se você não estiver com a algum outro serviço na 443, tem que funcionar.



  • Marcelo,

    Não funcionou, não sei mais o que eu faço.  Tudo que configuro nesse firewall nada dá certo. A NAT não tem segredo e ela não funciona.

    Obrigado pelo suporte.



  • @neo_X:

    Não funcionou, não sei mais o que eu faço.  Tudo que configuro nesse firewall nada dá certo. A NAT não tem segredo e ela não funciona.

    Nos primeiros posts, alertamos para o nat criado de forma errada. Você já conferiu isso?

    Tenho certeza que está faltando algum detalhe na sua configuração.



  • Sim, refiz várias vezes a NAT.  Só funciona quando os computadores da LAN está com o GW do pfsense.

    Vou configurar um pc com o gw do pfSense  e fazer todos os testes depois que eu terminar viro de uma vez o firewall e vamos ver o que dá srsr.

    Fiz um teste colocando o Gateway do pfSense numa máquina e criei uma NAT de TS e funcionou, com outro gateway não funciona.  Tenho um CentOS e algumas regras de NAT configuradas e funcionam normalmente, mesmo estando com outro gateway.






  • @neo_X:

    Sim, refiz várias vezes a NAT.  Só funciona quando os computadores da LAN está com o GW do pfsense.

    Já te falei isso a alguns posts atrás. sem o default gateway o outbound nat é obrigatório para não dar problema de roteamento.



  • Sim, eu vi sobre O nat reverso. Só fiquei com dúvida na criação da NAT, pois no Linux era diferente, sabe como é srsrs…

    Eu uso essa regra para acesso interno no linux e vejo que faz o reverso.

    iptables -A FORWARD -s 0/0 -d "LAN" -p tcp --dport 443 -j ACCEPT  #  PRTG HTTPS
    iptables -A FORWARD -d 0/0 -s "LAN" -p tcp --sport 443 -j ACCEPT
    iptables -t nat -A PREROUTING -s 0/0 -d "WAN_VIP" -p tcp --dport 443 -j DNAT --to-destination "LAN":443
    iptables -t mangle -A PREROUTING -p tcp -s "LAN" --sport 443 -j MARK --set-mark 1
    iptables -t nat -A POSTROUTING -p tcp -s "LAN" --sport 443 -j SNAT --to "WAN_VIP"

    Enfim, no pfsense vou testar assim:
    Firewall NAT Outbound
    Mode: Automatic

    Interface: WAN
    Source: any
    Port Source: any
    Destination:  IP_SERVER_LAN/32
    Destination Port: 443
    NAT Address: VIP  (correspondente ao IP da NAT)
    NAT Port: 443

    Isto?

    Vou testar desse jeito na segunda e ver se funciona. Domingão tem que descansar srsrsr.....

    Obrigado pela ajuda.



  • Não esqueça de mudar o outbound nat de automático para manual.



  • Marcelo,

    Não funcionou…

    Obrigado pela atenção.



  • Tcpdump-> leitura -> testes -> conferir nat -> tcpdump -> ….



  • Refiz todos os procedimento e coloquei apenas uma regra no firewall e a NAT só funciona quando coloco o gateway do pfsense. Conforme sua orientação configurei a NAT Outbound, mas também não funcionou. Poderia em ajudar?

    Interface:  WAN
    Protocol: any
    Source:  (Seria meu servidor interno LAN)
    Port:  (porta de destino 443)
    Destination: (IP da WAN conforme NAT)
    Translation: Interface address ?
    Port:  ?

    No Outbound, os Mappings ficarão desse jeito e devo apenas inserir a Regra la é embaixo?
    Anexo: out.jpg

    Configurei de vários modos e não foi, talvez eu esteja pecando em alguma configuração da Outbound.






  • neo_X, você em um único post conseguiu misturar todos os conceitos.  :(

    Tem certeza que você já leu algum tutorial aqui do fórum? ???

    Vou traduzir a regra do nat de saída para o portugues para ver se você consegue entender o conceito aplicado..

    Toda vez que alguem saindo pela lan for falar com meu servidor interno X na porta Y vai utilizar como ip de origem o endereço de rede da minha interface.

    Esta regra vai mascarar o ip internet do cliente, ajudando seu servidor X a devolver o pacote para o mesmo firewall que o enviou.
    Quando você não tem essa regra criada, o ip do cliente será direcionado para o default gateway, uma vez que o servidor X não tem rota específica para ips válidos na internet.

    mesma coisa para o nat de entrada.

    Toda vez que alguem conectar no ip da minha wan na porta Y, conectar no servidor interno X porta Y.

    Repito, o problema aqui não é de pfsense e sim de aplicação de conceitos de rede e roteamento.

    att,
    Marcello Coutinho



  • Olá Marcelo, li sim alguns tutoriais do fórum e o livro de 200 páginas do pfsense (para entender melhor essa ferramenta).

    Sobre as NATs eu entendo seu funcionamento em geral, só não estava entendendo no pfsense.  Em outros firewall como CentOS e Sonicwall (NAT IN/OUT) isso é feita de boa.

    Contratei um serviço de suporte (oficial) ao pfsense e eles alegaram: "Expliquei para Pedro que não tem a possibilidade de que os NATs funcionem sem que o gateway esteja apontado para o PfSense. Deve criar todos os NATs e depois migrar."

    Muito obrigado pela sua atenção.