Estoy trabajando en un servidor CentOS 7 y estoy tratando de hacer que JBoss funcione como yo también lo quiero. Estoy ejecutando Java 8 y JBoss (wildly) 8. Los instalé y trabajé en los puertos predeterminados, pero quiero que JBoss funcione en el puerto 80. Sé que puedo hacerlo funcionar en el puerto 80 si ejecutarlo como root, pero sé que no es una buena idea y no quiero ejecutarlo como root de ninguna manera.
He intentado reenviar el puerto 80 al 8080, pero no he conseguido que funcione. Creo que me estoy perdiendo un paso, pero no sé lo que me estoy perdiendo.
Estoy usando firewall-cmd. He abierto ambos puertos (80 y 8080) y he habilitado el enmascaramiento para la zona pública. También he usado este comando para reenviar el puerto
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080.
¿Alguna idea de lo que me estoy perdiendo?
fuente
Respuestas:
Acabo de encontrar una manera que hizo esto posible para mí:
fuente
firewall-cmd
El puerto add-forward-port agregará reglas a laPREROUTING
cadena NAT, que solo es aplicable para paquetes generados externamente. Si está intentando conectarse a localhost (o la IP local del servidor) en el puerto 80 del servidor, fallará porque esos paquetes nunca pasanPREROUTING
.Si se está conectando al puerto 80 desde una fuente externa, entonces el
firewall-cmd
que enumeró debería funcionar correctamente. Sugeriría verificar que su interfaz esté realmente en la zona 'pública'.También puede ejecutar el siguiente comando para obtener recuentos de paquetes en la regla y asegurarse de que realmente se esté aplicando:
iptables -t nat -vnL | grep 8080 -B1
Si el recuento de paquetes aumenta en cada intento, entonces el firewall funciona correctamente y tiene algún problema más allá del firewall (¿tal vez una ACL en JBOSS?). Si los paquetes no se incrementan en cada intento, la regla del firewall no se ve afectada en absoluto, lo que sugiere que está en la zona incorrecta o hay alguna otra regla que prevalece sobre la regla de reenvío de puertos.
fuente