Problema con iptables, NEW, ESTABLISHED, RELATED -Correccion

2008-04-20 Por tema ciracusa

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

2008-04-20 Por tema Matías Bellone
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

2008-04-20 Por tema Matías A. Bellone

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

2008-04-20 Por tema ciracusa

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

2008-04-20 Por tema Matías A. Bellone

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]