NAT manual no ponto de verificação (redireciona todas as solicitações http para um servidor web local)

3

Temos um servidor proxy em nossa rede interna e queremos redirecionar todas as solicitações de http da Internet para um servidor da Web na rede local. Será como um outdoor da rede que diz "Nenhuma conexão direta está disponível. Configure seu proxy etc." Por exemplo:

  • Um usuário inicia o computador
  • Abre o navegador
  • Tenta abrir www.google.com
  • Deve ver a saída do servidor da web na rede local
  • Tenta outro site na internet
  • Deve ver a saída do servidor da web na rede local
  • Configura o proxy
  • Tenta se conectar a um site
  • O site deve ser carregado

Eu adicionei uma regra NAT manual simples para endereçar a tradução no firewall do Checkpoint, mas ela simplesmente não funciona. Aqui está a minha regra de tradução de endereços

Source Destination Service T.Source T.Destination T.Service
MY_PC  A_GOOGLE_IP ALL     ORIGINAL INT_WEB_SRV   ORIGINAL

Então quando eu pingar A_GOOGLE_IP , as respostas vêm de INT_WEB_SRV , como eu esperava. No entanto, quando tento conectar A_GOOGLE_IP do navegador ( link ), nenhuma resposta é proveniente de SYN_SENT e cai no tempo limite. Quando olho para o log do firewall de INT_WEB_SRV , vejo que as solicitações de conexão de entrada de MY_PC são aceitas e NÃO nega. A propósito, não há problema em ver INT_WEB_SRV ( link ) no navegador.

Meu entendimento é que minha regra NAT no ponto de verificação NGX R60 não inclui pacotes de retorno. Eu definitivamente preciso de ajuda.

    
por Ali Burak Kulakli 28.01.2010 / 10:23

3 respostas

1

Ao se deparar com problemas de NAT, eu sempre começo abrindo algumas sessões SSH e fazendo tcpdumps em interfaces internas e externas.

algo como:

tcpdump -i eth0 proto ICMP

ou

tcpdump -i eth0 host A_GOOGLE_IP

e assista para ver qual é o endereço IP da Nat. Isso deveria pelo menos te dar um lugar para começar!

    
por 23.07.2010 / 18:54
0

O tráfego de retorno no checkpoint deve ser determinado. O tráfego está aparecendo no log do servidor no servidor da Web? Além disso, vale a pena usar o monitor fw, para garantir que o ponto de verificação esteja corretamente posicionado e passar o tráfego para os dois lados, com algo como

fw monitor -e 'accept (src=<host address> and dport=80) or (dst=<host address> and sport=80);'

Isso deve mostrar 4 linhas para cada pacote, incluindo pré e pós endereços NAT.

    
por 16.06.2012 / 14:46
0

Se o servidor interno estiver na mesma sub-rede que o cliente, você precisará fazer o SNAT, bem como o DNAT, porque agora, aqui está como funciona.

iptables -t nat -A PREROUTING -i LAN_IFACE -d A_GOOGLE_IP -j DNAT --to-destination INT_WEB_SRV
  • O PC cliente envia TCP SYN para A_GOOGLE_IP
  • O roteador DNATs para INT_WEB_SRV
  • O INT_WEB_SRV vê uma solicitação proveniente de um IP da LAN e responde diretamente
  • O cliente recebe uma resposta do IP do INT_WEB_SRV e não do A_GOOGLE_IP

Se você é SNAT, funciona assim:

iptables -t nat -A PREROUTING -i LAN_IFACE -d A_GOOGLE_IP -j DNAT --to-destination INT_WEB_SRV
iptables -t nat -A POSTROUTING -s LAN_RANGE/mask -d INT_WEB_SRV -j SNAT --to-source ROUTER_IP
  • O PC cliente envia TCP SYN para A_GOOGLE_IP
  • O roteador DNATs para INT_WEB_SRV substituindo o IP de origem por seu próprio IP
  • O INT_WEB_SRV vê um pedido vindo do roteador e responde a ele.
  • Os roteadores DNATs o pacote para o PC cliente e substitui o IP de origem por A_GOOGLE_IP
  • O cliente acha que ele está conectado a A_GOOGLE_IP

No entanto, se tudo o que você quer fazer é forçar o uso de proxy em todos, apenas DNAT todas as conexões HTTP de saída para o servidor proxy (você obterá o que é chamado de proxy transparente) e os clientes não precisarão alterar as configurações em seus computadores.

    
por 23.10.2013 / 07:23