Estoy intentando abrir algunos puertos 8080 y 22 redirigiendo al 2222. Tengo selinux deshabilitado en /etc/sysconfig/selinux
.
Estoy usando 8080 para acceder a Tomcat y al puerto 22 para redirigirlo a 2222. Cuando uso los siguientes comandos:
[root@tomcat7test bin]# iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
[root@tomcat7test bin]# iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 2222
Y luego reinicie iptables, no puedo acceder a mi página webhttp://localhost:8080/
Cuando ejecuto netstat, veo que los puertos están abiertos:
[root@tomcat7test ~]$ netstat -an | grep '22'
tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 :::22 :::* LISTEN
unix 2 [ ACC ] STREAM LISTENING 9922 private/smtp
unix 3 [ ] STREAM CONNECTED 3848226 /var/run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 3848225
[rkahil@tomcat7test ~]$ netstat -an | grep '8080'
tcp 0 0 :::8080 :::* LISTEN
Siempre recibo: Esta página no se puede mostrar en el navegador web. ¿Alguien tiene alguna sugerencia que pueda hacer para que la página web sea más accesible?
Respuesta1
Dehttps://askubuntu.com/questions/444729/redirect-port-80-to-8080-and-make-it-work-on-local-machine:
El tráfico de loopback no pasa desde PREROUTING sino solo desde OUTPUT.
entonces deberías agregar:
iptables -t nat -A OUTPUT -o lo -p tcp --dport 22 -j REDIRECT --to-port 2222
Respuesta2
Tuve que agregar ESTABLECIDO a mi regla de iptables:
iptables -I INPUT -i eth0 -p tcp --dport 8080 -m state --state NEW,ESTABLISHED -j ACCEPT