[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Fw: Ayuda con iptables, por favor.



Pues mira por donde me viene de maravilla. Comentemos.
El Sábado, 29 de Enero de 2005 03:05, Velkro escribió:
> pablo:
> antes que nada, te cuento que estoy leyendo mails atrasados de la lista de
> debian por eso agrego mi comentario recien hoy.
>
> estuve mirando tu script que levanta las reglas del iptables, y note
> ciertas cosas que me gustaria comentar, asi yo tambien me aseguro de que
> tengo entendido. ojo, no lo tomes como que te estoy corrigiendo, sino que
> intento mejorar lo hecho. y para toda la lista: si alguno ve algo mal, por
> favor, avise.
>
> <quote pablo>
>   #Limpieza de reglas.
>   echo -n "Limpiando reglas iptables: "
>   iptables -F
>   iptables -X
>   iptables -Z
>   iptables -t nat -F
>   echo "hecho."
> </quote>
>
> estas haciendo un flush de las tablas filter y nat, y no lo estas haciendo
> para mangle. eliminas las tablas del usuario y reseteas los contadores solo
> para filter y no para mangle y nat. completo quedaria asi:
>
>     # Elimino las tablas creadas por el usuario.
>     iptables -t filter -X
>     iptables -t nat -X
>     iptables -t mangle -X
>
>     # Vacio las tablas.
>     iptables -t filter -F
>     iptables -t nat -F
>     iptables -t mangle -F
>
>     # Reseteo los contadores.
>     iptables -t filter -Z
>     iptables -t nat -Z
>     iptables -t mangle -Z
>
>     ojo: yo el reseteo de contadores no lo hago. porque en ciertas
> condiciones puede ser util. por eso, lo tengo en una opcion aparte en mi
> script.
>   reset-counters)
>     # Reseteo los contadores.
>     iptables -t filter -Z
>     iptables -t nat -Z
>     iptables -t mangle -Z
>     ;;
>
Tienes razón . Pero es que creo que esta tabla no la estoy usando en mi 
script.
> <quote pablo>
>   #ICMP
>   echo -n "Permitendo echo request: "
>   iptables -A INPUT -i eth0 -p icmp -j ACCEPT
>   iptables -A OUTPUT -o eth0 -p icmp -j ACCEPT
>   echo "hecho."
> </quote>
>
> el comentario no deberia ser: permito todo el trafico icmp con destino esta
> pc, u originado desde esta pc? porque si bien permitis los echo request,
> estas permitiendo tambien todo tipo de mensajes icmp. comentario: lei en un
> tutorial que si lo que queres hacer es permitir los 'host unreachable, etc'
> podrias permitir los INPUT o FORWARD state RELATED, que justamente se
> utilizan para esto.

Bueno ahí me has pillado. De lo que se trata es que sin esta regla no puedo 
hacer un ping desde el exterior.
Creo que debería explicar la extructura de la red para mayor claridad.
Tengo un equipo con dos interfaces haciendo de firewall, conectado al modem 
cable. Una interfaz (eth0) tiene la ip publica (dinámica) y la otra (eth1) 
tiene ip estatica (192.168.0.1) de acceso a la LAN.

>
> <quote pablo>
>   echo -n "Parando el firewall: "
>   iptables -F INPUT (1)
>   iptables -F OUTPUT (2)
>   iptables -F FORWARD (3)
>   iptables -F (4)
>   iptables -t nat -F
>   echo "hecho."
> </quote>
>
> aca estas repitiendo cosas. las lineas 1, 2, y 3, juntas hacen lo mismo que
> la 4. y si haces un flush de nat, como convencion te convendria hacer un
> flush tambien de mangle. cosa de que si algun dia necesitas usar mangle, no
> te tengas que preocupar si las estas inicializando o no.
Si la 4 es un fallo y falta la del mangle.
>
> <quote pablo>
>   #ssh exterior al server.
>   echo -n "Activando redireccionamiento conexión ssh al server: "
>   iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -m state --state
> NEW -j DNAT --to 192.168.0.2:22
>   iptables -A FORWARD -i eth0 -p tcp --dport 22 -m state --state
> NEW,ESTABLISHED,RELATED -j ACCEPT
>   echo "hecho."
> </quote>
>
> para estar convencido de lo que voy a decir, necesitaria que me digas tu
> configuracion de red. pero a simple vista, te falta la regla en postrouting
> para modificar la direccion de origen del paquete utilizando SNAT. porque
> sino lo que vas a estar haciendo es modificar el destino de un paquete para
> enviarlo a una subnet diferente a la de la direccion origen. ojo: habria
> que ver si no se esta enmascarando con una regla que tenes mas arriba #
> NAT: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE.

Ya te he comentado la configuración de la red. La regla de NAT está, como has 
supuesto. Con la regla del PREROUTING, redirecciono las conexiones ssh por el 
puerto 22 al equipo con esa ip y a ese puerto. Funciona perfectamente.
Yo diría que la regla del POSTROUTING no hace falta. Se admiten sugerencias.
>
> <quote pablo>
>   #Cerrar
>   echo -n "Cerrando conexiones no necesarias: "
>   iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP
>   iptables -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP
>   echo "hecho."
> </quote>
>
> si no veo mal, ya tenes bloqueado todo eso con las politicas por defecto
> que seteaste arriba:
>   #Política por defecto.
>   echo -n "Aplicando política: "
>   iptables -P INPUT DROP
>   iptables -P OUTPUT DROP
>   iptables -P FORWARD DROP
>
>
> como comentario final, para el que le interese, les dejo un link de un
> tutorial de iptables muy copado:
> http://iptables-tutorial.frozentux.net/iptables-tutorial.html
>
> y ya saben, cualquier cosa que dije mal, o les parece que esta mal,
> pregunten asi nos sacamos las dudas.
> saludos, velkro.

Tengo una cuestión que no se de momento como solucionar. Debo configurar un 
firewall que permita todas conexiones salientes. Es decir, que me permita 
abrir los puertos que necesite de las conexiones saliente. Lógicamente no 
permita abrir ningún puerto de una conexión que provenga del exterior, a 
menos que sea indicada en la configuración del firewall.
Se que poniendo una política ACCEPT, esto lo consigue hacer, ¿pero se puede 
hacer con una política DROP?.

Espero tu contestación. Gracias.
-- 
Saludos.
Pablo.

Fingerprint 5607 40CF 45EF D490 B794  5056 D7B2 C3DC ABF1 CE49
http://www.humano.ya.com/bruli

Attachment: pgphb1NZTl0Ih.pgp
Description: PGP signature


Reply to: