Página seguinte Página anterior Índice

10. Destination NAT na Mesma Rede

Se você estiver fazendo repasse de porta para a mesma rede, precisa certificar-se que tanto pacotes ruturos e pacotes de resposta passem pela máquina que faz o NAT (para que possam ser alterados). O código do NAT irá bloquear (desde a versão 2.4.0-test6) o pacote ICMP redirect que sai, que é produzido quando o pacote NAT é destinado á mesma interface da qual ele veio, mas o servidor que recebe a conexão ainda irá tentar responder diretamente ao cliente (que não irá reconhecer a resposta).

O caso clássico é que o staff interno tenta acessar o servidor web `público', que é na verdade uma máquina que está atrás de um DNAT do endereço público (1.2.3.4) para uma máquina interna (192.168.1.1), parecido com este:

# iptables -t nat -A PREROUTING -d 1.2.3.4 \
        -p tcp --dport 80 -j NAT --to 192.168.1.1

Uma solução é rodar um servidor DNS interno que conhece o endereço Ip real (interno) do seu web site público, e repassar todas as outras solicitações para um servidor DNS externo. Isto significa que o log do seu servidor web irá apresentar os endereço IP interno corretamente.

A outra forma é fazer com que a máquina que faz o NAT mapeie também o endereço IP para o seu próprio endereço para estas conexões, enganando o servidor e fazendo com que ele responda para ele. Neste exemplo, iremos fazer o seguinte (assumindo que o endereço interno da máquina que faz o NAT é 192.168.1.250):

# iptables -t nat -A POSTROUTING -d 192.168.1.1 -s 192.168.1.0/24 \
        -p tcp --dport 80 -j SNAT --to 192.168.1.250

Como a regra do PREROUTING é executada primeiro, os pacotes serão realmente destinados ao servidor web interno: podemos dizer quais são os que vem da rede interna pelo endereço Ip de origem.


Página seguinte Página anterior Índice 1