Problema con iptables, NEW, ESTABLISHED, RELATED -Correccion
Lista, buenas tardes. Llevo armando un firewall hace unos dias y hasta ahora todo viene bien excepto por una cuestion que no estoy pudiendo solucionar y quisiera pedirles una opinión: Con esta línea: iptables -t nat -A PREROUTING -p tcp -i eth0 -s $LAN --dport 22 -j DNAT --to 192.168.5.1:22 Permito que el trafico que ingresa por eth0 al port 22 sea redirigido a 192.168.5.1:22 Ahora, tengo otra aplicacion que me genera la necesidad de hacer lo mismo con el port 2510, por lo que hago: iptables -t nat -A PREROUTING -p tcp -i eth0 -s $LAN --dport 2510 -j DNAT --to 192.168.5.1:2510 Y aquí se sucede el problema, ya que esta aplicacion luego de conectarse al port 2510 abre otros puertos de manera dinámica: He probado agregar a esta linea -m state --state NEW, ESTABLISHED, RELATED y tampoco funciona Cabe aclarar que si hago: iptables -t nat -A PREROUTING -p tcp -i eth0 -s $LAN -j DNAT --to 192.168.5.1 Ambas aplicaciones funcionan, pero no me sirve porque TODO el trafico es derivado a 192.168.5.1 y yo solo necesito el 22 y el 2510. Como debería armar la regla para permitir en primera instanacia los paquetes al 2510 y luego los que esten relacionados con esa conexión? Muchas Gracias. Adjunto log de tcpdump: 19:26:43.457195 IP 192.168.0.21.2022 192.168.5.1.2510: S 658824789:658824789(0) win 65535 mss 1460,nop,nop,sackOK 19:26:43.457619 IP 192.168.0.21.2022 192.168.5.1.2510: . ack 324745277 win 65535 19:26:43.458060 IP 192.168.0.21.2022 192.168.5.1.2510: P 0:152(152) ack 1 win 65535 19:26:43.458820 IP 192.168.0.21.2022 192.168.5.1.2510: R 152:152(0) ack 21 win 0 19:26:43.460239 IP 192.168.0.21.2023 192.168.5.1.1030: S -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Fwd: Problema con iptables, NEW, ESTABLISHED, RELATED -Correccion
Se me fue al privado, perdón -- Forwarded message -- From: Matías Bellone [EMAIL PROTECTED] Date: 2008/4/20 Subject: Re: Problema con iptables, NEW, ESTABLISHED, RELATED -Correccion To: ciracusa [EMAIL PROTECTED] 2008/4/20 ciracusa [EMAIL PROTECTED]: iptables -t nat -A PREROUTING -p tcp -i eth0 -s $LAN --dport 2510 -j DNAT --to 192.168.5.1:2510 Y aquí se sucede el problema, ya que esta aplicacion luego de conectarse al port 2510 abre otros puertos de manera dinámica: Esto quiere decir que es algo específico del protocolo. El firewall, en primera instancia, no sabe nada de eso. He probado agregar a esta linea -m state --state NEW, ESTABLISHED, RELATED y tampoco funciona Fijate que si estás agregando a la línea, sigue siendo sólo válido para el puerto 2510. Lo que vos querés hacer es abrir otros puertos, por lo que tendrías que poner una regla que forwardee todo lo que sea ESTABLISHED o RELATED a las máquinas que corresponde. Sin embargo, para que eso funcione, el sistema de seguimiento de paquetes (conntrack) necesita saber de eso para que pueda marcar los paquetes de conexiones relacionadas como corresponden. Para que haga eso probablemente necesites tener el módulo correspondiente cargado. Que yo sepa hay dos protocolos muy conocidos que hacen cosas como esta: FTP y SIP. Para ambos vienen módulos de conntrack que tenés que cargar y el sistema va a marcar las conexiones correspondientes. Pero a lo mejor no hace falta; todo depende del protocolo. Saludos, Toote -- Web: http://www.enespanol.com.ar -- Web: http://www.enespanol.com.ar
Re: Problema con iptables, NEW, ESTABLISHED, RELATED -Correccion
ciracusa wrote: Matias gracias por tu respuesta. Te respondo entre tus lineas: Matías Bellone wrote: 2008/4/20 ciracusa [EMAIL PROTECTED]: iptables -t nat -A PREROUTING -p tcp -i eth0 -s $LAN --dport 2510 -j DNAT --to 192.168.5.1:2510 Y aquí se sucede el problema, ya que esta aplicacion luego de conectarse al port 2510 abre otros puertos de manera dinámica: Esto quiere decir que es algo específico del protocolo. El firewall, en primera instancia, no sabe nada de eso. Ok. Esto es una aplicación que se conecta a una BDD en progress. Nada de ftp o similar. Entonces no deberías de necesitar nada. (leer más abajo) He probado agregar a esta linea -m state --state NEW, ESTABLISHED, RELATED y tampoco funciona Fijate que si estás agregando a la línea, sigue siendo sólo válido para el puerto 2510. Lo que vos querés hacer es abrir otros puertos, por lo que tendrías que poner una regla que forwardee todo lo que sea ESTABLISHED o RELATED a las máquinas que corresponde. OK. Si las conexiones son realizadas siempre desde adentro, entonces no deberías de tener problemas. Tienes que agregar dos líneas: 1- dejar salir conexiones de la PC a la IP (o IPs) de la base de datos. Si no tiene las IP, lo dejas irrestricto pero también puedes restringirlo si conoces el rango de puertos en el que se maneja. 2- dejar entrar cualquier conexión ESTABLISHED (no estoy seguro si hace falta RELATED también). De esa forma el sistema podrá salir a pedir conexiones nuevas, y cualquier respuesta podrá entrar porque será parte de una conexión establecida. Creo. Sin embargo, para que eso funcione, el sistema de seguimiento de paquetes (conntrack) necesita saber de eso para que pueda marcar los paquetes de conexiones relacionadas como corresponden. Para que haga eso probablemente necesites tener el módulo correspondiente cargado. Que yo sepa hay dos protocolos muy conocidos que hacen cosas como esta: FTP y SIP. Para ambos vienen módulos de conntrack que tenés que cargar y el sistema va a marcar las conexiones correspondientes. Tenes algún ejemplo como para solucionarlo? En tu caso no, porque por lo general sólo vale para protocolos que necesita abrir puertos entrantes según información dentro del protocolo (passive file transfer para FTP, media para SIP). Pero a lo mejor no hace falta; todo depende del protocolo. En este caso, tengo entendido que no haría falta. Saludos, Toote -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Problema con iptables, NEW, ESTABLISHED, RELATED -Correccion
Matias, gracias nuevamente pero creo que no nos entendemos. Te reitero lo que decía en el email original: iptables -t nat -A PREROUTING -p tcp -i eth0 -s $LAN --dport 22 -j DNAT --to 192.168.5.1:22 Permito que el trafico que ingresa por eth0 al port 22 sea redirigido a 192.168.5.1:22 Ahora, tengo otra aplicacion que me genera la necesidad de hacer lo mismo con el port 2510, por lo que hago: iptables -t nat -A PREROUTING -p tcp -i eth0 -s $LAN --dport 2510 -j DNAT --to 192.168.5.1:2510 Y aquí se sucede el problema, ya que esta aplicacion luego de conectarse al port 2510 abre otros puertos de manera dinámica: He probado agregar a esta linea -m state --state NEW, ESTABLISHED, RELATED y tampoco funciona Cabe aclarar que si hago: iptables -t nat -A PREROUTING -p tcp -i eth0 -s $LAN -j DNAT --to 192.168.5.1 Funciona! pero no es lo que me sirve porque este equipo recibe otro tipo de conexiones que no deben ser redirijidas a 192.168.5.1. Alguna pista? Muchas Gracias. Matías A. Bellone wrote: ciracusa wrote: Matias gracias por tu respuesta. Te respondo entre tus lineas: Matías Bellone wrote: 2008/4/20 ciracusa [EMAIL PROTECTED]: iptables -t nat -A PREROUTING -p tcp -i eth0 -s $LAN --dport 2510 -j DNAT --to 192.168.5.1:2510 Y aquí se sucede el problema, ya que esta aplicacion luego de conectarse al port 2510 abre otros puertos de manera dinámica: Esto quiere decir que es algo específico del protocolo. El firewall, en primera instancia, no sabe nada de eso. Ok. Esto es una aplicación que se conecta a una BDD en progress. Nada de ftp o similar. Entonces no deberías de necesitar nada. (leer más abajo) He probado agregar a esta linea -m state --state NEW, ESTABLISHED, RELATED y tampoco funciona Fijate que si estás agregando a la línea, sigue siendo sólo válido para el puerto 2510. Lo que vos querés hacer es abrir otros puertos, por lo que tendrías que poner una regla que forwardee todo lo que sea ESTABLISHED o RELATED a las máquinas que corresponde. OK. Si las conexiones son realizadas siempre desde adentro, entonces no deberías de tener problemas. Tienes que agregar dos líneas: 1- dejar salir conexiones de la PC a la IP (o IPs) de la base de datos. Si no tiene las IP, lo dejas irrestricto pero también puedes restringirlo si conoces el rango de puertos en el que se maneja. 2- dejar entrar cualquier conexión ESTABLISHED (no estoy seguro si hace falta RELATED también). De esa forma el sistema podrá salir a pedir conexiones nuevas, y cualquier respuesta podrá entrar porque será parte de una conexión establecida. Creo. Sin embargo, para que eso funcione, el sistema de seguimiento de paquetes (conntrack) necesita saber de eso para que pueda marcar los paquetes de conexiones relacionadas como corresponden. Para que haga eso probablemente necesites tener el módulo correspondiente cargado. Que yo sepa hay dos protocolos muy conocidos que hacen cosas como esta: FTP y SIP. Para ambos vienen módulos de conntrack que tenés que cargar y el sistema va a marcar las conexiones correspondientes. Tenes algún ejemplo como para solucionarlo? En tu caso no, porque por lo general sólo vale para protocolos que necesita abrir puertos entrantes según información dentro del protocolo (passive file transfer para FTP, media para SIP). Pero a lo mejor no hace falta; todo depende del protocolo. En este caso, tengo entendido que no haría falta. Saludos, Toote -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Problema con iptables, NEW, ESTABLISHED, RELATED -Correccion
ciracusa wrote: Matias, gracias nuevamente pero creo que no nos entendemos. Aparentemente Te reitero lo que decía en el email original: No me sirve de nada que repitas lo que ya dijiste; al fin y al cabo con esa información es con la que no te entendemos. Yo te recomendaría proveer información nueva para aclarar y expandir. Y aquí se sucede el problema, ya que esta aplicacion luego de conectarse al port 2510 abre otros puertos de manera dinámica: Por ejemplo: ¿la aplicación que abre los puertos está del lado de la PC con el firewall o la PC con el firewall es la que recibe? He probado agregar a esta linea -m state --state NEW, ESTABLISHED, RELATED y tampoco funciona ¿agregaste a esta línea? ¿probaste lo que te dije (que funciona en caso que la aplicación está del lado del FW): hacer una regla que permita conexiones salientes nuevas por cualquier puerto y otra que permita entrar por cualquier puerto conexiones establecidas y related? Esta regla de aquí sólo se aplica al puerto 2510, no importa lo que le agregues, no te servirá de nada para los otros puertos que abra tu aplicación. Alguna pista? Lo mismo pregunto Saludos, Toote -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]