Como posso redirecionar o tráfego de saída para outro ip usando iptables

1

Eu tenho server1 (192.168.0.1:8080) e server2 (192.168.0.2:8765). Preciso redirecionar o tráfego OUTBOUND da porta 8080 do servidor1 para o servidor2 com o iptables.

No servidor1, defino:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A OUTPUT -p tcp --sport 8080 -m owner --uid-owner nobody -j ACCEPT
iptables -t nat -A OUTPUT -p tcp --sport 8080 -m owner --uid-owner tomcat7 -j DNAT --to-destination 192.168.0.2:8765

Mas isso não funciona. Sem os parâmetros -m e -uid-owner , também não está funcionando.

    
por lala 16.11.2016 / 20:30

1 resposta

1

Eu usei regras como as seguintes para redirecionar o tráfego de saída destinado a um determinado host: port para outro host: port. (Era para emular um sistema embarcado (com endereços fixos) em um cluster de VM.)

iptables -t nat -A OUTPUT -p tcp -d 192.168.1.101 --dport 1234 -j DNAT --to-destination 192.168.1.102:4321

Com a regra acima instalada, se você:

root@archive:~# telnet 192.168.1.101 8888

Você verá o tráfego indo para o endereço especificado:

root@archive:~# tcpdump -i eth2 host 192.168.1.102 or host 192.168.1.101
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 262144 bytes
21:04:27.953124 IP archive.34496 > 192.168.1.101.8888: Flags [S], seq 2498286032, win 29200, options [mss 1460,sackOK,TS val 961612280 ecr 0,nop,wscale 7], length 0
21:04:28.949044 IP archive.34496 > 192.168.1.101.8888: Flags [S], seq 2498286032, win 29200, options [mss 1460,sackOK,TS val 961612530 ecr 0,nop,wscale 7], length 0

Se você:

root@archive:~# telnet 192.168.1.101 1234

Você deve ver o tráfego indo para o endereço traduzido:

21:04:50.321139 IP archive.53164 > 192.168.1.102.4321: Flags [S], seq 2332928074, win 29200, options [mss 1460,sackOK,TS val 961617873 ecr 0,nop,wscale 7], length 0
21:04:52.325090 IP archive.53164 > 192.168.1.102.4321: Flags [S], seq 2332928074, win 29200, options [mss 1460,sackOK,TS val 961618374 ecr 0,nop,wscale 7], length 0

A regra na sua pergunta especifica uma porta de origem (--sport). Para o tráfego OUTBOUND, muitas vezes você não conhece a porta de origem - ela é normalmente atribuída dinamicamente quando o soquete é ligado / conectado. por exemplo: 34496 e 53164 nos depósitos acima.

    
por 29.11.2017 / 03:33