Hola :) Vaya, me pillas un pcoo oxidado con las iptables, pero a ver si te podemos ayudar ;) miguel gmail wrote:
Buenas,
esto es un poco OT, pq se trata de hacerlo en una RHEL.
Vaya por Dios ... bueno, empecemos el curso de iptables. A ver, todos juntos: "Migraré todos mis RHa SUSE" (repetir hasta caer hipnotizados) ... ;)
Mis habilidades con iptables nunca fueron buenas, pero hace TANTO que no lo uso que ya no me acuerdo de nada de nada.
Bueno, esto debe ser como montar en bici. A ver si así me espabilo yo también.
Resulta que tengo un RHEL ejecutando un SAP. En teoria, los clientes pueden conectarse con un navegador web a la direccion:
Madre mía !!! ¿Qué mal has hecho para que te encarguen esa misión? ;)
pero el servidor rechaza la conexión. Si apago iptables (/etc/init.d/iptables stop), ya da un error 503, asi que imagino que
A ver si no va a ser cosa del iptables. Ten en cuenta que un 503 es "Service unavailable". Comprueba que los puertos estén abiertos y que estén escuchando en la tarjeta que deben: lsof -i -n -P
tendre que configurar iptables para que deje conectarse a un servicio web que se ejecuta en ese puerto. Desde localhost si funciona perfectamente (http:/localhost:50000).
Vaya, me he adelantado, el puerto está disponible. No sé nada de SAP, pero puede que tenga la opción de escuchar conexiones remotas o limitarlas al equipo local.
Así que me imagino que tengo que modificar iptables. Lo que hay hasta ahora (iptables -L):
Chain INPUT (policy ACCEPT) target prot opt source destination RH-Firewall-1-INPUT all -- anywhere anywhere
Chain FORWARD (policy ACCEPT) target prot opt source destination RH-Firewall-1-INPUT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT) target prot opt source destination
Chain RH-Firewall-1-INPUT (2 references) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT icmp -- anywhere anywhere icmp any ACCEPT ipv6-crypt-- anywhere anywhere ACCEPT ipv6-auth-- anywhere anywhere ACCEPT udp -- anywhere 224.0.0.251 udp dpt:5353 ACCEPT udp -- anywhere anywhere udp dpt:ipp ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Estas reglas son un poco confusas, tienes una que acepta todas las conexiones:
ACCEPT all -- anywhere anywhere
y una regla que las rechaza:
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
En definitiva, necesito acceder por http al puerto 50000. Idealmente, lo haría solo para ciertas IP, las de los desarrolladores (para que nadie venga a cotillear :P)
Algún alma caritativa?
A ver qué podemos hacer: iptables -F iptables -A -s IP_buena_que_puede_conectar -d IP_servidor_SAP --destination-ports 5000 -j ACCEPT iptables -j DROP Es la regla más sencilla que se me ocurre: - el paso 1 lo que hace es borrar todo lo relativo a iptables que haya cargado. Es _OBLIGATORIO_ que en todo FW sea la primera regla - el paso 2 tendrás que repetirlo por cada equipo que pueda conectar. Sustituye: * IP_buena_que_puede_conectar: por la IP de cada máquina que tenga derecho a conectar * IP_servidor_SAP: por la IP del servidor SAP - la tercera regla lo que hace es desechar todas las conexiones que no cumplan las reglas anteriores.
Muchas gracias por adelantado!
Epsero que funcione ;) De todas maneras, cuando cambies el FW, es importante que mires lo que se logea. El FW (iptables) es una facilidad de kernel, por lo que tendrás que configurar el syslog/syslog-ng para poder ver los mensajes del kernel. HTH Rafa -- Rafa Grimán Systems Engineer Silicon Graphics Spain Santa Engracia , 120 - Planta Baja 28003 Madrid, Spain Tel: +34 91 3984200 Fax: +34 91 3984201 Móvil: +34 628 117 940 http://www.sgi.com