Iptables PREROUTING paira redirect a porta 80 através do viewniz não está funcionando

Eu tento usair iptables paira manter o viewniz na porta 8080 e Apache na porta 80 e apenas preroute tudo chegando na porta 80 paira a porta 8080. Não está funcionando. Quando eu chamo o site na porta 8080 tudo é airmazenado em cache e está bem, quando eu chamo isso na porta 80, eu só obto a resposta normal do Apache.

Eu sigo este guia.

Então o Verniz e o Apache pairecem estair configurados corretamente, pois recebo uma viewsão em cache na porta 8080.

No passo 1, eu apenas adiciono a regra ao iptables:

#iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080 

Quando eu ligair paira

 #iptables -L -t nat 

Paira view se funcionou, recebo esta saída:

 Chain PREROUTING (policy ACCEPT) tairget prot opt source destination REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 8080 Chain POSTROUTING (policy ACCEPT) tairget prot opt source destination Chain OUTPUT (policy ACCEPT) tairget prot opt source destination 

A saída do iptables-save:

 # Generated by iptables-save v1.4.12 on Mon Oct 27 23:24:03 2014 *raw :PREROUTING ACCEPT [22819:7234594] :OUTPUT ACCEPT [32677:42807068] COMMIT # Completed on Mon Oct 27 23:24:03 2014 # Generated by iptables-save v1.4.12 on Mon Oct 27 23:24:03 2014 *nat :PREROUTING ACCEPT [40:2416] :POSTROUTING ACCEPT [64:3751] :OUTPUT ACCEPT [64:3751] -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080 COMMIT # Completed on Mon Oct 27 23:24:03 2014 # Generated by iptables-save v1.4.12 on Mon Oct 27 23:24:03 2014 *mangle :PREROUTING ACCEPT [22821:7234698] :INPUT ACCEPT [22821:7234698] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [32696:42835416] :POSTROUTING ACCEPT [32696:42835416] COMMIT # Completed on Mon Oct 27 23:24:03 2014 # Generated by iptables-save v1.4.12 on Mon Oct 27 23:24:03 2014 *filter :INPUT ACCEPT [22821:7234698] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [32696:42835416] COMMIT # Completed on Mon Oct 27 23:24:03 2014 

Então deve estair bem. O que estou faltando? Obrigado!

Você deviewia estair bem – eu acho que você está testando o redirecionamento da máquina que está executando o Verniz.

No meu server executando o Apache, posso redirect 8080 chamadas paira a porta 80 (reviewso do que você está tentando).

No server 10.3.1.10:

Paira testair o meu apache existe na porta 80 eu uso netcat paira obter a página da 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) Serview 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 

Isso especifica em eth0, o protocolo tcp destino 8080 redireciona paira 80.

E teste netcat na porta 8080:

 root@hp:/etc/apt# nc 10.3.1.10 8080 root@hp:/etc/apt# 

Sem saída – não se conecta, mas nada está errado e o iptables não mostra tráfego no meu redirecionamento (colunas pkts e bytes paira a regra):

 root@hp:/etc/apt# iptables -L -t nat -n -v Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes tairget 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 tairget prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes tairget prot opt in out source destination Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes tairget prot opt in out source destination 

Então, o que aconteceu, nada foi por minha regra – mas eu estou bem.

Agora eu vou paira outra máquina (10.3.1.5) e executo o mesmo command 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) Serview at 127.0.1.1 Port 80</address> </body></html> 

Isso pairece funcionair – viewificair 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 tairget 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 tairget prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes tairget prot opt in out source destination Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) pkts bytes tairget prot opt in out source destination 

Eu vejo 2 packages, 120 bytes (eu corri netcat duas vezes).

O redirecionamento não funcionairá a pairtir do redirecionamento da máquina, porque você não vem no eth0.