Como o iptables MASQUERADE funciona no lado de entrada?

4

Ainda estou lendo a página de manual do iptables e outros documentos e cavando em torno de perguntas e suas respostas.

Este é o problema que surge. Quando configuramos o NAT, usamos uma regra POSTROUTING como essa:

iptables -A POSTROUTING -t nat -j MASQUERADE -o eth0 

Parece que quando um pacote atinge essa cadeia, um host interno precisa inicializar alguma conexão com a internet certo? O tráfego entrante será roteado pelo mesmo caminho sem bater na corrente? Estou certo sobre isso?

    
por sandun dhammika 05.06.2013 / 14:58

2 respostas

5

A cadeia POSTROUTING é verificada para todos os pacotes que saem do sistema, mesmo os gerados localmente (eles saem do PREROUTING e usam OUTPUT).

A regra é limitada ao tráfego que é enviado via eth0 . "Entrada" é todo tráfego sendo roteado (se você relacionou isso com POSTROUTING). Você provavelmente quer dizer tráfego da Internet ( eth0 ). Normalmente o tráfego que entra em eth0 não deixa o sistema via eth0 .

POSTROUTING afeta somente o tráfego de saída (e somente o primeiro pacote de uma conexão). Se as respostas chegarem em eth0 , elas serão reconhecidas como parte da conexão SNAT e seu endereço de destino (e porta) serão convertidos automaticamente em seus valores originais (aqueles sobrescritos pelo MASQUERADE target).

    
por 05.06.2013 / 16:24
0

No iptables apenas o primeiro pacote de uma conexão atinge as cadeias na tabela nat (isso é diferente das cadeias em outras tabelas). Os pacotes relacionados a uma conexão existente são traduzidos automaticamente com base nos mapeamentos que foram estabelecidos quando o primeiro pacote foi processado.

Se um pacote de entrada chegar que não corresponda a uma conexão existente e não corresponda a uma regra na tabela NAT, ela será processada sem NAT (o que pode envolver encaminhá-la, encaminhá-la localmente para a pilha de protocolos ou descartá-la dependendo do destino IP e iptables regras em outras tabelas).

    
por 09.05.2016 / 23:10