iptables: encaminhar a porta 80 para a porta 8080

7

Como posso encaminhar a porta 80 internamente para a porta 8080?

Meu objetivo é ter um servidor de aplicativos da web (Glassfish) em execução na porta 8080, mas para o mundo externo acessá-lo normalmente na porta 80. Isso está sendo feito para que eu não precise executar o Glassfish como root.

Eu tentei adicionar a seguinte regra ao meu / etc / sysconfig / iptables:

-A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

mas isso resulta no seguinte erro:

Applying iptables firewall rules: iptables-restore v1.3.5: Line 21 seems to have a -t table option.
    
por Caffeine Coma 04.02.2011 / 22:08

2 respostas

7

Você não pode especificar a tabela assim em /etc/sysconfig/iptables . Cada tabela é definida com um asterisco e, em seguida, o nome da tabela. Aqui está um esqueleto do que você faria:

*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination :8080
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT

Em vez de editar o arquivo, você também pode configurar manualmente as regras que preferir usando o comando iptables e, em seguida, executar iptables-save > /etc/sysconfig/iptables ou service iptables save .

    
por 04.02.2011 / 22:37
3

você estava perto

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination :8080

Ele tem que fazer o NAT para que, quando a resposta for enviada de volta ao cliente, pareça vir da porta 80, não 8080.

    
por 04.02.2011 / 22:11