Você deve estar bem - suponho que esteja testando o redirecionamento da máquina que está executando o verniz.
No meu servidor rodando o Apache, eu posso redirecionar as chamadas do 8080 para a porta 80 (reverso do que você está tentando).
No servidor 10.3.1.10:
Para testar o meu apache existe na porta 80 eu uso o netcat para obter a página web:
root@hp:/etc/apt# nc 10.3.1.10 80
get
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>501 Not Implemented</title>
</head><body>
<h1>Not Implemented</h1>
<p>get to /index.html not supported.<br />
</p>
<hr>
<address>Apache/2.4.7 (Ubuntu) Server at 127.0.1.1 Port 80</address>
</body></html>
root@hp:/etc/apt#
Isso é bom - agora adicione meu redirecionamento:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-ports 80
Isto especifica em eth0, protocolo tcp destino 8080 redirecionado para 80.
E teste o netcat na porta 8080:
root@hp:/etc/apt# nc 10.3.1.10 8080
root@hp:/etc/apt#
Sem saída - não conectou, mas nada está errado e o iptables não mostra nenhum tráfego no meu redirecionamento (colunas pkts e bytes para a regra):
root@hp:/etc/apt# iptables -L -t nat -n -v
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 REDIRECT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 redir ports 80
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Então, o que aconteceu, nada passou pela minha regra - mas eu sou bom.
Agora vou para outra máquina (10.3.1.5) e executo o mesmo comando netcat:
root@firewall:~# nc 10.3.1.10 8080
get
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>501 Not Implemented</title>
</head><body>
<h1>Not Implemented</h1>
<p>get to /index.html not supported.<br />
</p>
<hr>
<address>Apache/2.4.7 (Ubuntu) Server at 127.0.1.1 Port 80</address>
</body></html>
Isso parece funcionar - verificando meu tráfego em .10 com iptables:
root@hp:/etc/apt# iptables -L -t nat -n -v
Chain PREROUTING (policy ACCEPT 4 packets, 898 bytes)
pkts bytes target prot opt in out source destination
2 120 REDIRECT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 redir ports 80
Chain INPUT (policy ACCEPT 6 packets, 1018 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Eu vejo 2 pacotes, 120 bytes (eu executei o netcat duas vezes).
O redirecionamento não funcionará com o redirecionamento da máquina porque você não está chegando na eth0.