Libros sobre configurar iptables en Linux

Iniciado por dairus20, 6 Julio 2013, 02:08 AM

0 Miembros y 1 Visitante están viendo este tema.

dairus20

Saludos, de nuevo gracias por ayudarme, tengo algunas dudas:

-A INPUT -i lo -j ACCEPT         ¿porque no me vale esta?

Ok voy ha hacer los cambios a ver que tal?

En realidad si puedo navegar actualmente no me preguntes como porque sinceramente no lo se pero tal cual tengo el script ahora si puedo navegar perfectamente.

¿Que debo hacer?


dairus20

Una pregunta, si bloqueo todo el trafico entrante y permito el saliente, en ¿principio estoy seguro?, es decir no conozco ataques salvo una conexión inversa para atacarme.

cpu2

Cita de: dairus20 en  8 Julio 2013, 16:06 PMEn realidad si puedo navegar actualmente no me preguntes como porque sinceramente no lo se pero tal cual tengo el script ahora si puedo navegar perfectamente.

Es por ese NEW, estas bloqueando todo con la politica DROP, pero estas dejando paso a todos los paquetes nuevos, no estas haciendo nada.

Cita de: dairus20 en  8 Julio 2013, 16:06 PM-A INPUT -i lo -j ACCEPT         ¿porque no me vale esta?

Pues porque estableciste esta regla.

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Todo de la salida de lo es aceptado, y si tienes es regla para que quieres dejar paso a todo, es como esta.

-A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

Cometes el mismo error, ahora entiendes el NEW? tiene que ir fuera.

Cita de: dairus20 en  8 Julio 2013, 17:17 PM
Una pregunta, si bloqueo todo el trafico entrante y permito el saliente, en ¿principio estoy seguro?, es decir no conozco ataques salvo una conexión inversa para atacarme.

Si bloqueas el trafico entrante no podras comunicarte con nada, por eso tienes esta regla.

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Ejemplo:

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -p tcp --dport 80 --syn -m state --state NEW -j ACCEPT
-A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT


Se deja paso en la salida para los puertos 80 y 53 con estado NEW, eso significa que solicitas, por ejemplo cuando entras en google. En la entrada se deja paso a los paquetes con conexiones ya establecidas y related, y en la salida igual.

Si le pones ese NEW a OUTPUT es como si no hicieras nada, lo mismo con esta.

-A INPUT -i lo -j ACCEPT

Un saludo.

dairus20

Entonces mejor borro todo y lo hago desde 0?.

Pero podría bloquear el entrante y permitir el saliente y agregar después una regla que diga que solo permite entrante por puerto 80 y 443

cpu2

Si, sera mejor que comiences desde cero.

Cita de: dairus20 en  8 Julio 2013, 17:53 PMPero podría bloquear el entrante y permitir el saliente y agregar después una regla que diga que solo permite entrante por puerto 80 y 443

Me parece que no entiendes aun esta regla.

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Estas bloqueando todo, ya que tienes la politica de entrada en DROP, lo que hace esta regla es que las conexiones que solicites, que son las reglas de OUTPUT con el estado NEW, se dejen pasar porque se establece la conexion, nadie va a poder hacerte nada ni entrar ya que no solicitaste tu la conexion lo entiendes?

Asi que es una tonteria eso que propones, a no ser que te refieras a esto.

-A INPUT -p tcp --sport 80 -j ACCEPT

Se dejaria entrar todas las conexiones al puerto 80, todo el mundo desde fuera puede entrar. No te refieres a eso no?

Mira te dejo un ejemplo.

iptables -F
iptables -X
iptables -Z

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -p tcp --dport 80 --syn -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 --syn -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT


Tendrias que navegar bien con esto. Y sobre la cadena FORWARD investiga.

Un saludo.

dairus20

Saludos, de nuevo mil gracias, disculpa mi poca capacidad de entendimiento es que quiero aprender de verdad pero se me complica todo, no he parado de leer montones de ejemplos de scripts de iptables en internet he intentar entenderlos y comprenderlos, pero gracias a tu sabiduría ahora entiendo algo.

Ya me estaba dando por vencido pero voy a probar el script q me has pasado y ver si logro que funcione. Ahora te cuento gracias de nuevo.

dairus20

Vale, gracias ya puedo navegar  ;-) ;-) eres el mejor, ahora creo que ya entendí el script o eso creo:

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Según esta línea solo permitirá la entrada a las conexiones que yo he iniciado.

iptables -A OUTPUT -p tcp --dport 80 --syn -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 --syn -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

Estás se refieren a que las conexiones syn nuevas que yo he iniciado que tienen esos puertos de destino se acepte?.

No lo he explicado como tu jejeje pero al menos con mis palabras, era mucho más simple que todo el lío que yo me estaba montando yo solo.

cpu2

Cita de: dairus20 en  8 Julio 2013, 21:10 PM-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Según esta línea solo permitirá la entrada a las conexiones que yo he iniciado.

Exacto, por ejemplo, cuando tu entras al puerto 80 le envias un "NEW" si el servidor remoto acepta ese NEW la conexion pasa a ESTABLISHED, el servidor puede enviarte paquetes porque estaran en ESTABLISHED y esos son aceptados, por eso nadie puede enviarte ningun paquete porque todos son NEW y esos se descartan, para saber mas de esto lee algun libro sobre protocolos, esto es una explicacion muy probre al lado de un libro.

Cita de: dairus20 en  8 Julio 2013, 21:10 PMEstás se refieren a que las conexiones syn nuevas que yo he iniciado que tienen esos puertos de destino se acepte?.

Si, OUTPUT eres tu, simplemente estas dejando salir los paquetes NEW de dichos puertos .

Dijiste que tenias dos interfaces, te recuerdo que estas reglas son "globales" son para todas las interfaces, si quieres establecer una regla para una interfaz especifica, tienes que ponerla en la regla.

Podrias poner alguna regla para los paquetes icmp. ahora mismo no puedes hacer ni un ping, el script es muy limidato. Ya se te complicara la cosa si algun dia quieres hacer NAT o redirreccionamiento o algo mas complejo.

Un saludo.

dairus20

Jooo eres un maquinon  ;D estoy muy agradecido por tantas molestias en ayudarme, he abierto también el puerto 5500 para el ssh y me ha funcionado simplemente he creado otra regla exactamente igual pero cambiandole el puerto de destino :)

Ahora seguiré investigando para aprender nuevas medidas de seguridad, si necesitas algo y esta en mi mano cuenta conmigo, jejeje si pasas por España -- Las Palmas de Gran Canaria avísame que te invito a tomar algo o a comer uun fuerte abrazo.