iptables para conexões locais

4

No "Servidor A", tenho um serviço em execução na porta 1445. "Servidor B" pode se conectar ao "Servidor A" na porta 445 através da seguinte regra:

iptables -t nat -A PREROUTING -d www.kunde.de -p tcp -m tcp -dporta 445 -j REDIRECIONAR - para portas 1445

Isso não funciona para conexões iniciadas no "Servidor A", isto é, conexões locais. O que posso fazer?

    
por user27451 27.11.2009 / 18:35

3 respostas

6

iptables -t nat -A OUTPUT -d www.kunde.de -p tcp -m tcp -dportar 445 -j REDIRECIONAR - para portas 1445

Porque os pacotes originados localmente passam por OUTPUT, em vez de por PREROUTING.

    
por 27.11.2009 / 18:55
0

É melhor ler alguns manuais e documentos.

De qualquer forma, descrição resumida de cadeias:

* “PREROUTING”: Packets will enter this chain before a routing decision is made.
* “INPUT”: Packet is going to be locally delivered. (N.B.: It does not have anything to do with processes having a socket open. Local delivery is controlled by the “local-delivery” routing table: 'ip route show table local'.)
* “FORWARD”: All packets that have been routed and were not for local delivery will traverse this chain.
* “OUTPUT”: Packets sent from the machine itself will be visiting this chain.
* “POSTROUTING”: Routing decision has been made. Packets enter this chain just before handing them off to the hardware.

E dê uma olhada aqui:

Fluxo de pacotes do Netfilter

Wikipedia

    
por 27.11.2009 / 21:01
0

se você usa lxc ou outra tecnologia de virtualização, você redireciona todo o tráfego da porta 445 para o 1455 do contêiner.

A solicitação local no Servidor A não passará PREROUTING . O motivo foi abordado antes. O tráfego local não acessará nat table , mas se você usar o DNAT antes, ele só funcionará para o tráfego externo para o Servidor A, REDIRECT funcionou somente para encaminhamento de porta, não pode ser usado como DNAT

    
por 13.06.2014 / 15:21