iptables: Pacotes gerados localmente e direcionados para locais

1

O pacote gerado localmente e direcionado para o local leva a cadeia PREROUTING?

Eu adicionei algumas regras ao iptables para encaminhar a solicitação http do meu IP público para o Nginx vinculado localmente.

iptables -t nat -A PREROUTING -i enp3s0f0 -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1
iptables -t nat -A POSTROUTING -o lo -p tcp --sport 80 -j SNAT --to-source xxx.yyy.zzz.www

e também define a política de tabelas de filtros FORWARD chain para ACCEPT.

Como resultado, essas regras funcionaram e eu posso acessar o Nginx em outra máquina, mas não consigo acessar o xxx.yyy.zzz.www na máquina que possui o IP xxx.yyy.zzz.www. (com Curl e Chrome)

Por que não consigo acessar o Nginx na máquina xxx.yyy.zzz.www?

    
por J Lee 06.03.2018 / 14:28

1 resposta

0

Não, os pacotes originados localmente não passam as cadeias PREROUTING (veja este diagrama wiki - o caminho dos pacotes locais começa no bloco de processo local. Além disso, esses pacotes passam apenas as cadeias INPUT / OUTPUT e nunca o FORWARD.

Para redirecionar os pacotes originários locais, você deve inserir a regra DNAT / REDIRECT na cadeia nat / OUTPUT:

iptables -t nat -A OUTPUT -p tcp --dst xxx.yyy.zzz.www --dport 80 \
  -j DNAT --to-destination 127.0.0.1
    
por 06.03.2018 / 21:56

Tags