Redirecionamento de porta Iptables - por que precisa abrir ambas as portas?

1

Estou usando o redirecionamento do iptables para tornar um Tomcat no RHEL7 acessível na porta 443 (para o tráfego https), conforme descrito aqui . As regras importantes devem ser aquelas três:

 iptables -A INPUT -p tcp --dport 443 -i eth3 -j ACCEPT
 iptables -A INPUT -p tcp --dport 8443 -i eth3 -j ACCEPT
 iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-port 8443
 iptables -A INPUT -m state --state ESTABLISHED,RELATED -i eth3 -j ACCEPT
 # Drop all other incoming packets on the interface eth3
 iptables -A INPUT -i eth3 -j DROP

Então, o que eu não entendo é por que eu preciso da regra para abrir a porta 8443 para o lado de fora? Quando fecho e só abro o 443, não funciona. Pelo que entendi, o redirecionamento deve acontecer internamente, não é? Ou isso pode ser de alguma forma configurado de forma diferente?

Observação: o eth3 é a única interface que realmente preciso proteger. Existem outros também, mas esses são apenas internos.

    
por silent 02.11.2016 / 16:01

2 respostas

1

Acho que acabei de descobrir: o pré-encaminhamento aparentemente acontece antes que as regras reais de aceitação / descarte sejam atingidas. Portanto, a solicitação é redirecionada de 443 para 8443 e as regras são aplicadas apenas ao tráfego redirecionado. Portanto, não preciso abrir a porta 443 com uma regra de aceitação. O redirecionamento parece "abrir" de qualquer maneira. Portanto, a primeira regra (aceitar 443) pode ser omitida.

    
por 03.11.2016 / 12:57
-1

Eu não uso o Tomcat, mas você verificou a porta do seu Tomcat no arquivo server.xml? Quando eu leio no link , parece que pode usar a porta 8443 como padrão. EDITAR É uma porta de conexão, não um redirecionamento interno.

    
por 02.11.2016 / 16:40