Tengo algunas reglas iptables
que redirigen las solicitudes para el puerto 80 a nuestro servidor de aplicaciones (GlassFish) en el puerto 8080 (y también puertos SSL pero las he omitido por simplicidad) .iptables redirigir 80 a 8080 pero bloquear 8080 acceso público
Si bien lo que tenemos funciona bien (y personalmente no tengo un problema) el puerto 8080 también está abierto al mundo exterior si alguien desea especificarlo en la url. Se ha ordenado que el puerto 8080 se cierre del acceso desde el mundo exterior y solo 80 estén abiertos.
No deseo cambiar el oyente en el servidor de la aplicación (como para usar el puerto 80 esto parece necesitar permisos elevados para el usuario que ejecuta el servidor de aplicaciones) y el oyente en el puerto 8080 necesita saber la IP de origen de el paquete a medida que la aplicación audita las solicitudes a la aplicación (es decir, no podemos cambiar la dirección IP de origen a una local).
La configuración actual de iptables
está debajo. ¿Alguien sabe si hay una manera de bloquear 8080 de la internet pública mientras se retiene la IP de origen en los paquetes redirigidos desde el puerto 80?
Muchas gracias de antemano.
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# allow establishment of connections initialised by my outgoing packets
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# accept anything on localhost
iptables -A INPUT -i lo -j ACCEPT
################################################################
#individual ports tcp
################################################################
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
#drop everything else
iptables -A INPUT -j DROP
################################################################
#Redirection Rules
################################################################
# redirection rules (allowing forwarding from localhost)
iptables -t nat -A OUTPUT -o lo -p tcp --dport 80 -j REDIRECT --to-port 8080
# redirection http
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
¿Consideró bloquear el puerto 8080 y retransmitir en httpd proxypass? –
Gracias por la sugerencia. No hay apache o mod_proxy disponibles en este servidor en la actualidad (que entiendo que necesitaría ...), pero obviamente, si no es posible con iptables, o paquetes estándar de Linux, entonces supongo que es algo que hay que investigar. – lazidar