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
pgpmqkVBPrfDd.pgp
Description: PGP signature

