Re: Tengo una duda para asegurar el firewall.
--- Pablo Braulio [EMAIL PROTECTED] escribió: Con estas reglas esta permitiendo gran cantidad de tráfico de salida y, por consiguiente, de respuestas de entrada al propio firewall todo en la interfaz externa. ¿De verdad te interesa eso? No, no me intersa, ¿pero como se puede evitar?. Según tengo entendido, cuando haces las reglas de iptables con política DROP debes hacerlo en los dos sentidos. Es decir, indicando la entrada y la salida. Por eso he puesto las reglas permitiendo salidas nuevas y entradas ya establecidas. A lo mejor no es lo mejor, si estoy equivocado agradecería corrección. #De LAN al exterior iptables -A FORWARD -i $I_LAN -s $LAN -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT para esto yo suelo hacer lo siguiente: iptables --new-chain lan_a_ext iptables -A FORWARD -i $I_LAN -o $I_EXT -j lan_a_ext iptables -A lan_a_ext -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT #denegamos y logeamos el resto del tráfico iptables -A lan_a_ext -j LOG --log-prefix LAN-EXT: iptables -A lan_a_ext -j DROP iptables -A FORWARD -o $I_LAN -s 0.0.0.0/0 -d $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT Esta regla no es de lan a ext, es de ext a lan, una sutil diferencia. iptables --new-chain ext_a_lan iptables -A FORWARD -i $I_EXT -o $I_LAN -j ext_a_lan iptables -A ext_a_lan -m state --state ESTABLISHED,RELATED -j ACCEPT #DENEGAMOS Y LOGEAMOS EL RESTO DEL TRÁFICO iptables -A ext_a_lan -j LOG --log-prefix EXT-LAN: iptables -A ext_a_lan -j DROP # De DMZ al exterior. iptables -A FORWARD -i $I_DMZ -s $DMZ -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT Esto tambien lo separo en una cadena distinta igual que antes. iptables -A FORWARD -o $I_DMZ -s 0.0.0.0/0 -d $DMZ -m state --state ESTABLISHED,RELATED -j ACCEPT Esto no es de DMZ al Exterior, es del Exterior a DMZ echo hecho. echo -n Asegurando LAN: # Permitiendo ssh de equipo1 y equipo2 a firewall. iptables -A INPUT -i $I_LAN -p tcp -s $equipo1 -d 192.168.1.1 --dport 560 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i $I_LAN -p tcp -s $equipo2 -d 192.168.1.1 --dport 560 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $I_LAN -p tcp -s 192.168.1.1 -d $equipo1 --sport 560 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $I_LAN -p tcp -s 192.168.1.1 -d $equipo2 --sport 560 -m state --state ESTABLISHED,RELATED -j ACCEPT Todo esto lo separaría en dos: LAN a firewall y firewall a LAN. No hace falta que en todas las reglas pongas el estado, si lo separas en dos cadenas y en la cadena de firewall a LAN pones al principio algo como iptables -A firewall_a_lan -m state --state ESTABLISHED,RELATED -j ACCEPT te sobra, siempre y cuando los paquetes de respuesta no se deban a una conexión a un puerto UDP. echo hecho. Lo que no he conseguido es crear nuevas reglas. ¿No has podido crear nuevas cadenas? ¿Que raro? ¿Te da algún error? De todas formas te he puesto un par de ejemplos con tu propio script de como creo yo las nuevas cadenas. No entendí bien lo de crear las nuevas cadenas. Lo voy a probar. Para dar acceso al exterior a las redes internas no veo ninguna regla de enmascaramiento. De esta forma tus paquetes viajan mostrando al mundo exterior tus ips internas. No es muy recomendable. Para solucionar esto, yo suelo añadir una regla que hace SNAT justo despues de definir las variables : #Enmascaramiento al exterior iptables -t nat -A POSTROUTING -s ip_del_firewall_en_la_lan/24 -o $I_EXT -j SNAT --to ip_del_firewall_en_la_iface_externa iptables -t nat -A POSTROUTING -s ip_del_firewall_en_la_dmz/24 -o $I_EXT -j SNAT --to ip_del_firewall_en_la_iface_externa de esta forma cambiamos la direccion de origen en todos los paquetes ip que mandamos al exterior. Si, pero la gracia de esto es que si un paquete sale de mi equipo con IP 192.168.1.4, el paquete sea enmascarado para que salga con mi IP externa (supongo). Pero es que el firewall en su interfaz exterior tiene IP dinámica. Va directamente conectada al modem-cable, sin router. Desconozco como hacer esto. La idea es que se oculten las ips de tu red interna. Que se pudiese averiguar la ip de la tarjeta externa de tu firewall no importa demasiado. Lo importante es que no se sepa la estructura de tu red interna. Aqui te mando las reglas que te comente: $IPT --new flags_tcp # RECHAZAMOS Y LOGEAMOS ESCANEO NMAP-XMAS $IPT -A flags_tcp -p tcp --tcp-flags ALL FIN,URG,PSH -m limit --limit 5/minute -j LOG --log-prefix
Re: Tengo una duda para asegurar el firewall.
El Lunes, 31 de Octubre de 2005 11:59, Alfonso Pinto escribió: La idea es que se oculten las ips de tu red interna. Que se pudiese averiguar la ip de la tarjeta externa de tu firewall no importa demasiado. Lo importante es que no se sepa la estructura de tu red interna. Si, esto lo tengo claro. Pero como te dije, no se como hacer eso si no dispongo de una ip externa estática. Podría hacer el POSTROUTING diciendo la ip externa que tengo ahora, pero cuando cambie... Gracias por las reglas. Las voy a poner. -- Saludos. Pablo. Fingerprint 5607 40CF 45EF D490 B794 5056 D7B2 C3DC ABF1 CE49 Jabber: bruli(at)myjabber(dot)net pgpVSpDHCL62c.pgp Description: PGP signature
Re: Tengo una duda para asegurar el firewall.
--- Pablo Braulio [EMAIL PROTECTED] escribió: El Lunes, 31 de Octubre de 2005 11:59, Alfonso Pinto escribió: La idea es que se oculten las ips de tu red interna. Que se pudiese averiguar la ip de la tarjeta externa de tu firewall no importa demasiado. Lo importante es que no se sepa la estructura de tu red interna. Si, esto lo tengo claro. Pero como te dije, no se como hacer eso si no dispongo de una ip externa estática. Podría hacer el POSTROUTING diciendo la ip externa que tengo ahora, pero cuando cambie... Supongo que la IP te la da el router, modem, cable-modem o lo que sea, no?? En ese caso configura el servidor dhcp del aparatejo para que te sirva siempre la misma ip. __ Renovamos el Correo Yahoo! Nuevos servicios, más seguridad http://correo.yahoo.es -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Tengo una duda para asegurar el firewall.
El Lunes, 31 de Octubre de 2005 12:16, Alfonso Pinto escribió: Supongo que la IP te la da el router, modem, cable-modem o lo que sea, no?? En ese caso configura el servidor dhcp del aparatejo para que te sirva siempre la misma ip. Tengo el firewall conectado al cable-modem. No hay router, de momento. ¿Se puede configurar el cable-modem de ono?. Sinceramente es la primera vez que oigo esto. De ser así, ¿que sentido tiene el contratar una ip estática?. No dudo de lo que dices, voy a buscar información, pero me has dejado de piedra. -- Saludos. Pablo. Fingerprint 5607 40CF 45EF D490 B794 5056 D7B2 C3DC ABF1 CE49 Jabber: bruli(at)myjabber(dot)net pgp2tOS2ZUfJq.pgp Description: PGP signature
Re: Tengo una duda para asegurar el firewall.
--- Pablo Braulio [EMAIL PROTECTED] escribió: El Lunes, 31 de Octubre de 2005 12:16, Alfonso Pinto escribió: Supongo que la IP te la da el router, modem, cable-modem o lo que sea, no?? En ese caso configura el servidor dhcp del aparatejo para que te sirva siempre la misma ip. Tengo el firewall conectado al cable-modem. No hay router, de momento. ¿Se puede configurar el cable-modem de ono?. Sinceramente es la primera vez que oigo esto. De ser así, ¿que sentido tiene el contratar una ip estática?. No dudo de lo que dices, voy a buscar información, pero me has dejado de piedra. cuidado, jejeje, que lo que no sabía es que la ip que recibes es directamente la externa, pensaba que tenías una ip interna en la interfaz externa y que el cable-modem o lo que fuera era la que te daba esa IP y que el se guardaba la externa. No se si se puede hacer algo con ese cable-modem, nunca lo he visto. Para enmascarar en tu caso la red interna hay otra forma: iptables -t nat -A POSTROUTING -s ip_del_firewall_red_interna/24 -o $I_EXT -j MASQUERADE Un saludo __ Renovamos el Correo Yahoo! Nuevos servicios, más seguridad http://correo.yahoo.es -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Tengo una duda para asegurar el firewall.
--- Pablo Braulio [EMAIL PROTECTED] escribió: El Jueves, 27 de Octubre de 2005 17:33, Alfonso Pinto escribió: ¿Porque haces POSTROUTING para la salida de paquetes? ¿Es por algún proxy o similar?. No, digamos que es una regla de ¿seguridad?. Cuando dejas que las redes internas salgan al exterior, no debes mandar los paquetes con la ip de origen de las redes internas. Con el postrouting lo que hago es que cambie en los paquetes la ip de origen por la de la interface externa del firewall. Si nos ponemos muy puristas, deberiamos hacer algo parecido para la interacción entre las redes porque, en teoría, por cada interfaz del firewall no se debe dejar pasar paquetes cuya ip no se corresponda con la de la subred de cada interfaz. Vale, pero esto lo haces porque dispones de una ip estática. Yo tengo dhcp. Con redes con dhcp no he lidiado, pero creo que lo resolvería con un dns interno que se actualizase según el dhcp fuese sirviendo direcciones ip. De esta forma en las reglas puedes poner los nombres de las máquinas en lugar de ips (en teoría, no lo he probado nunca) Otra cosa. ¿No usas lo de -m state --state NEW,ESTABLISHED,RELATED?. Para la política DROP si no lo pongo no va. Si claro, si no lo pones no hay forma, lo que pasa que se me olvido comentarte, jejeje. Aunque yo lo implemento de otra forma, dependiendo de donde vengan los paquetes. Por ejemplo, desde el exterior solo acepto paquetes tal que --state ESTABLISHED,RELATED, ya que no me interesa que desde el exterior se habran nuevas conexiones, luego más abajo defino si dejo algún puerto abierto para los accesos desde el exterior. Otra cosa a tener en cuenta es que esto no funciona para UDP. Para este protocolo combiene definir que aceptas la entrada a tal puerto y que aceptas la respuesta. También añado algunas reglas para evitar algunos escaneos de nmap y algunos ataques típicos. Si quieres te mando alguna de esas reglas. -- Saludos. Pablo. Fingerprint 5607 40CF 45EF D490 B794 5056 D7B2 C3DC ABF1 CE49 Jabber: bruli(at)myjabber(dot)net __ Renovamos el Correo Yahoo! Nuevos servicios, más seguridad http://correo.yahoo.es -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Tengo una duda para asegurar el firewall.
--- Pablo Braulio [EMAIL PROTECTED] escribió: Hola. Al final lo he dejado así para asegurar el acceso a la LAN. I_EXT=eth0 I_LAN=eth1 I_DMZ=eth2 LAN=192.168.1.0/24 DMZ=192.168.0.2 EQUIPO1=192.168.1.4 EQUIPO2=192.168.1.2 echo -n Activando reglas para interfaces: #I_EXT iptables -A INPUT -i $I_EXT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $I_EXT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT Con estas reglas esta permitiendo gran cantidad de tráfico de salida y, por consiguiente, de respuestas de entrada al propio firewall todo en la interfaz externa. ¿De verdad te interesa eso? #De LAN al exterior iptables -A FORWARD -i $I_LAN -s $LAN -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT para esto yo suelo hacer lo siguiente: iptables --new-chain lan_a_ext iptables -A FORWARD -i $I_LAN -o $I_EXT -j lan_a_ext iptables -A lan_a_ext -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT #denegamos y logeamos el resto del tráfico iptables -A lan_a_ext -j LOG --log-prefix LAN-EXT: iptables -A lan_a_ext -j DROP iptables -A FORWARD -o $I_LAN -s 0.0.0.0/0 -d $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT Esta regla no es de lan a ext, es de ext a lan, una sutil diferencia. iptables --new-chain ext_a_lan iptables -A FORWARD -i $I_EXT -o $I_LAN -j ext_a_lan iptables -A ext_a_lan -m state --state ESTABLISHED,RELATED -j ACCEPT #DENEGAMOS Y LOGEAMOS EL RESTO DEL TRÁFICO iptables -A ext_a_lan -j LOG --log-prefix EXT-LAN: iptables -A ext_a_lan -j DROP # De DMZ al exterior. iptables -A FORWARD -i $I_DMZ -s $DMZ -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT Esto tambien lo separo en una cadena distinta igual que antes. iptables -A FORWARD -o $I_DMZ -s 0.0.0.0/0 -d $DMZ -m state --state ESTABLISHED,RELATED -j ACCEPT Esto no es de DMZ al Exterior, es del Exterior a DMZ echo hecho. echo -n Asegurando LAN: # Permitiendo ssh de equipo1 y equipo2 a firewall. iptables -A INPUT -i $I_LAN -p tcp -s $equipo1 -d 192.168.1.1 --dport 560 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i $I_LAN -p tcp -s $equipo2 -d 192.168.1.1 --dport 560 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $I_LAN -p tcp -s 192.168.1.1 -d $equipo1 --sport 560 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $I_LAN -p tcp -s 192.168.1.1 -d $equipo2 --sport 560 -m state --state ESTABLISHED,RELATED -j ACCEPT Todo esto lo separaría en dos: LAN a firewall y firewall a LAN. No hace falta que en todas las reglas pongas el estado, si lo separas en dos cadenas y en la cadena de firewall a LAN pones al principio algo como iptables -A firewall_a_lan -m state --state ESTABLISHED,RELATED -j ACCEPT te sobra, siempre y cuando los paquetes de respuesta no se deban a una conexión a un puerto UDP. echo hecho. Lo que no he conseguido es crear nuevas reglas. ¿No has podido crear nuevas cadenas? ¿Que raro? ¿Te da algún error? De todas formas te he puesto un par de ejemplos con tu propio script de como creo yo las nuevas cadenas. Para dar acceso al exterior a las redes internas no veo ninguna regla de enmascaramiento. De esta forma tus paquetes viajan mostrando al mundo exterior tus ips internas. No es muy recomendable. Para solucionar esto, yo suelo añadir una regla que hace SNAT justo despues de definir las variables : #Enmascaramiento al exterior iptables -t nat -A POSTROUTING -s ip_del_firewall_en_la_lan/24 -o $I_EXT -j SNAT --to ip_del_firewall_en_la_iface_externa iptables -t nat -A POSTROUTING -s ip_del_firewall_en_la_dmz/24 -o $I_EXT -j SNAT --to ip_del_firewall_en_la_iface_externa de esta forma cambiamos la direccion de origen en todos los paquetes ip que mandamos al exterior. Un saludo __ Renovamos el Correo Yahoo! Nuevos servicios, más seguridad http://correo.yahoo.es -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Tengo una duda para asegurar el firewall.
El Viernes, 28 de Octubre de 2005 09:19, Alfonso Pinto escribió: También añado algunas reglas para evitar algunos escaneos de nmap y algunos ataques típicos. Si quieres te mando alguna de esas reglas. Si, por favor. Gracias. -- Saludos. Pablo. Fingerprint 5607 40CF 45EF D490 B794 5056 D7B2 C3DC ABF1 CE49 Jabber: bruli(at)myjabber(dot)net pgp1sR4UTNB7X.pgp Description: PGP signature
Re: Tengo una duda para asegurar el firewall.
Con estas reglas esta permitiendo gran cantidad de tráfico de salida y, por consiguiente, de respuestas de entrada al propio firewall todo en la interfaz externa. ¿De verdad te interesa eso? No, no me intersa, ¿pero como se puede evitar?. Según tengo entendido, cuando haces las reglas de iptables con política DROP debes hacerlo en los dos sentidos. Es decir, indicando la entrada y la salida. Por eso he puesto las reglas permitiendo salidas nuevas y entradas ya establecidas. A lo mejor no es lo mejor, si estoy equivocado agradecería corrección. #De LAN al exterior iptables -A FORWARD -i $I_LAN -s $LAN -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT para esto yo suelo hacer lo siguiente: iptables --new-chain lan_a_ext iptables -A FORWARD -i $I_LAN -o $I_EXT -j lan_a_ext iptables -A lan_a_ext -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT #denegamos y logeamos el resto del tráfico iptables -A lan_a_ext -j LOG --log-prefix LAN-EXT: iptables -A lan_a_ext -j DROP iptables -A FORWARD -o $I_LAN -s 0.0.0.0/0 -d $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT Esta regla no es de lan a ext, es de ext a lan, una sutil diferencia. iptables --new-chain ext_a_lan iptables -A FORWARD -i $I_EXT -o $I_LAN -j ext_a_lan iptables -A ext_a_lan -m state --state ESTABLISHED,RELATED -j ACCEPT #DENEGAMOS Y LOGEAMOS EL RESTO DEL TRÁFICO iptables -A ext_a_lan -j LOG --log-prefix EXT-LAN: iptables -A ext_a_lan -j DROP # De DMZ al exterior. iptables -A FORWARD -i $I_DMZ -s $DMZ -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT Esto tambien lo separo en una cadena distinta igual que antes. iptables -A FORWARD -o $I_DMZ -s 0.0.0.0/0 -d $DMZ -m state --state ESTABLISHED,RELATED -j ACCEPT Esto no es de DMZ al Exterior, es del Exterior a DMZ echo hecho. echo -n Asegurando LAN: # Permitiendo ssh de equipo1 y equipo2 a firewall. iptables -A INPUT -i $I_LAN -p tcp -s $equipo1 -d 192.168.1.1 --dport 560 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i $I_LAN -p tcp -s $equipo2 -d 192.168.1.1 --dport 560 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $I_LAN -p tcp -s 192.168.1.1 -d $equipo1 --sport 560 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $I_LAN -p tcp -s 192.168.1.1 -d $equipo2 --sport 560 -m state --state ESTABLISHED,RELATED -j ACCEPT Todo esto lo separaría en dos: LAN a firewall y firewall a LAN. No hace falta que en todas las reglas pongas el estado, si lo separas en dos cadenas y en la cadena de firewall a LAN pones al principio algo como iptables -A firewall_a_lan -m state --state ESTABLISHED,RELATED -j ACCEPT te sobra, siempre y cuando los paquetes de respuesta no se deban a una conexión a un puerto UDP. echo hecho. Lo que no he conseguido es crear nuevas reglas. ¿No has podido crear nuevas cadenas? ¿Que raro? ¿Te da algún error? De todas formas te he puesto un par de ejemplos con tu propio script de como creo yo las nuevas cadenas. No entendí bien lo de crear las nuevas cadenas. Lo voy a probar. Para dar acceso al exterior a las redes internas no veo ninguna regla de enmascaramiento. De esta forma tus paquetes viajan mostrando al mundo exterior tus ips internas. No es muy recomendable. Para solucionar esto, yo suelo añadir una regla que hace SNAT justo despues de definir las variables : #Enmascaramiento al exterior iptables -t nat -A POSTROUTING -s ip_del_firewall_en_la_lan/24 -o $I_EXT -j SNAT --to ip_del_firewall_en_la_iface_externa iptables -t nat -A POSTROUTING -s ip_del_firewall_en_la_dmz/24 -o $I_EXT -j SNAT --to ip_del_firewall_en_la_iface_externa de esta forma cambiamos la direccion de origen en todos los paquetes ip que mandamos al exterior. Si, pero la gracia de esto es que si un paquete sale de mi equipo con IP 192.168.1.4, el paquete sea enmascarado para que salga con mi IP externa (supongo). Pero es que el firewall en su interfaz exterior tiene IP dinámica. Va directamente conectada al modem-cable, sin router. Desconozco como hacer esto. Gracias por todo. -- Saludos. Pablo. Fingerprint 5607 40CF 45EF D490 B794 5056 D7B2 C3DC ABF1 CE49 Jabber: bruli(at)myjabber(dot)net pgpvvYbSAU9Bz.pgp Description: PGP signature
Tengo una duda para asegurar el firewall.
Hola a todos. Estoy tratando de depurar el firewall, para proteger mejor la red local. Necesito la opinión de mas gente. La estructura es esta: Un equipo haciendo de firewall con 3 interfaces. No hay router, va directo al modem cable. eth0 --Puerta de enlace dhcp eth1 --LAN eth2 --Servidor www, mail. Tengo puestas todas las reglas que se piden para que funcione (politica por defecto, modulos, Forwarding, NAT para la LAN y DMZ, Interfaz local). Eso funciona bien. La política es: iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP -- Esta es la que quiero dejar ahora Poniendo en FORWARD DROP he tenido que poner las siguientes reglas para que los equipos, tanto de la LAN como el servidor que está en la DMZ, pueda salir a Internet. iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT Como podéis ver, la eth0 acepta sólo conexiones nuevas salientes, la eth1 y la eth2 a la inversa. Esto lo he puesto así, pues acepta las conexiones desde la LAN y el servidor de la DMZ. Supongo que será lo correcto. Lo que quiero hacer, es evitar que desde el firewall y el servidor de la DMZ, se tenga acceso a la LAN. Al contrario si. Lo curioso es que por ssh puedo acceder a todos los equipos, incluso la DMZ, pero al firewall no. Tengo que poner una regla para que me lo permita. No entiendo el porque. El servidor ssh no tiene ninguna configuración especial que no lo permita. ¿Alguien sabría decirme si las reglas que he puesto son correctas?. -- Saludos. Pablo. Fingerprint 5607 40CF 45EF D490 B794 5056 D7B2 C3DC ABF1 CE49 Jabber: bruli(at)myjabber(dot)net pgpKrCF4mLKFq.pgp Description: PGP signature
Re: Tengo una duda para asegurar el firewall.
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Pablo Braulio escribió: Hola a todos. Estoy tratando de depurar el firewall, para proteger mejor la red local. Necesito la opinión de mas gente. La estructura es esta: Un equipo haciendo de firewall con 3 interfaces. No hay router, va directo al modem cable. eth0 --Puerta de enlace dhcp eth1 --LAN eth2 --Servidor www, mail. Tengo puestas todas las reglas que se piden para que funcione (politica por defecto, modulos, Forwarding, NAT para la LAN y DMZ, Interfaz local). Eso funciona bien. La política es: iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP -- Esta es la que quiero dejar ahora Poniendo en FORWARD DROP he tenido que poner las siguientes reglas para que los equipos, tanto de la LAN como el servidor que está en la DMZ, pueda salir a Internet. iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT Como podéis ver, la eth0 acepta sólo conexiones nuevas salientes, la eth1 y la eth2 a la inversa. Esto lo he puesto así, pues acepta las conexiones desde la LAN y el servidor de la DMZ. Supongo que será lo correcto. Lo que quiero hacer, es evitar que desde el firewall y el servidor de la DMZ, se tenga acceso a la LAN. Al contrario si. Lo curioso es que por ssh puedo acceder a todos los equipos, incluso la DMZ, pero al firewall no. Tengo que poner una regla para que me lo permita. No entiendo el porque. El servidor ssh no tiene ninguna configuración especial que no lo permita. ¿Alguien sabría decirme si las reglas que he puesto son correctas?. Hola, no podes acceder al firewall con ssh desde las redes internas ya que la politica de INPUT es DROP y luego has permitido el acceso solo desde eth0. Pero yo te recomiendo algún script de firewall ya armado, principalmente Shorewall, su configuración es muy sencilla. Un amigo dio del GrULiC dió una charla al respecto hace poco: http://www.grulic.org.ar/eventos/charlas/shorewall-2005-09.html Saludos Anibal -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFDYMe01hfd87At7UoRAgGgAJ4rayqKweRwdyVxOKed3Jh22LOaBQCfdWWt qjnpiL22ywA6wg+AMfBvgfk= =V7MK -END PGP SIGNATURE- -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
RE: Tengo una duda para asegurar el firewall.
--- Pablo Braulio [EMAIL PROTECTED] escribió: Hola a todos. Estoy tratando de depurar el firewall, para proteger mejor la red local. Necesito la opinión de mas gente. La estructura es esta: Un equipo haciendo de firewall con 3 interfaces. No hay router, va directo al modem cable. eth0 --Puerta de enlace dhcp eth1 --LAN eth2 --Servidor www, mail. Tengo puestas todas las reglas que se piden para que funcione (politica por defecto, modulos, Forwarding, NAT para la LAN y DMZ, Interfaz local). Eso funciona bien. La política es: iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP -- Esta es la que quiero dejar ahora Poniendo en FORWARD DROP he tenido que poner las siguientes reglas para que los equipos, tanto de la LAN como el servidor que está en la DMZ, pueda salir a Internet. iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -o eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT Como podéis ver, la eth0 acepta sólo conexiones nuevas salientes, la eth1 y la eth2 a la inversa. Esto lo he puesto así, pues acepta las conexiones desde la LAN y el servidor de la DMZ. Supongo que será lo correcto. Lo que quiero hacer, es evitar que desde el firewall y el servidor de la DMZ, se tenga acceso a la LAN. Al contrario si. Lo curioso es que por ssh puedo acceder a todos los equipos, incluso la DMZ, pero al firewall no. Tengo que poner una regla para que me lo permita. No entiendo el porque. El servidor ssh no tiene ninguna configuración especial que no lo permita. Me parece estupendo que crees tu propio script de iptables, se aprende bastante y tienes toda la flexibilidad para poder hacer lo que desees. Antes de nada te voy a dar un par de consejos que a mi me han ayudado bastante: 1 Identifica cada subred con un nombre. Asi por ejemplo la subred que forma el cable-modem con el firewall se podría llamar HADES, la LAN la puedes llamar OLIMPO, y la DMZ la puedes llamar TARTARO. Puedes elegir los nombres que quieras, no tienen porque ser de la mitología. Hay un RFC bastante majo para elegir nombres, pero no recuerdo el link. 2 A cada equipo asignale un nombre: Firewall=CERBERO, Web-server=PERSEFONE, Cable-Modem=ZEUS 3 Hazte un esquema de como quieres que interactue cada red con las demás, que tráfico aceptar, que tráfico denegar... 4 Empezamos el script, empieza por definir variables: #redes HADES=eth0 OLIMPO=eth1 TARTARO=eth2 #equipos #en HADES ZEUS=10.10.1.1 CERBERO_HADES=10.10.1.2 #en OLIMPO ATENEA=192.168.1.2 CERBERO_OLIMPO=192.168.1.1 ... #en TARTARO ... CERBERO_TARTARO=192.168.2.1 El uso de variables simplifica mucho el script, ya que ademas de ser más descriptivo, si cambia algún parametro solo tienes que cambiarlo en una línea y no en todas las reglas en las que aparezca. Enmascara las redes internas a la hora de salir al exterior: $IPT -t nat -A POSTROUTING -s $CERBERO_OLIMPO/24 -o $HADES -j SNAT --to $CERBERO_HADES $IPT -t nat -A POSTROUTING -s $CERBERO_TARTARO/24 -o $HADES -j SNAT --to $CERBERO_HADES Define ahora las reglas para la interaccion de unas redes con otras. En las reglas procura discriminar por interfaz entrante e interfaz saliente: #OLIMPO-TARTARO iptables --new-chain olimpo_a_tartaro iptables -A FORWARD -i $OLIMPO -o $TARTARO -j olimpo_a_tartaro iptables -A olimpo_a_tartaro -p tcp --dport 80 -j ACCEPT ... (en cada cadena, despues de especificar todo lo que aceptas, deniega el resto y logealo, los logs son importantes. Si, aunque tu politica por defecto sea DROP vuelve a denegarlo, total, no cuesta nada) #TARTARO-OLIMPO ... #OLIMPO-HADES ... #HADES-OLIMPO ... . y por ultimo establece las reglas de cada red a la hora de interactuar con el propio firewall. Esto es lo que te falla, por eso no puedes entrar por ssh al firewall, porque es como si no hubieras definido la interaccion de cada red con el firewall. #OLIMPO-CERBERO iptables --new-chain olimpo_a_cerbero iptables -A INPUT -i $HADES -j olimpo_a_cerbero iptables -A olimpo_a_cerbero -p tcp --dport 22 -j ACCEPT (con esto permites que los equipos de la red olimpo puedan acceder por ssh al firewall) ... (lo mismo de antes, en cada cadena, despues de especificar todo lo que aceptas, deniega el resto y logealo, los logs son importantes. Si, aunque tu politica por defecto sea DROP vuelve a denegarlo, total, no cuesta nada) #CERBERO-OLIMPO ... #HADES-CERBERO ...
Re: Tengo una duda para asegurar el firewall.
El Jueves, 27 de Octubre de 2005 16:52, Alfonso Pinto escribió: Me parece estupendo que crees tu propio script de iptables, se aprende bastante y tienes toda la flexibilidad para poder hacer lo que desees. Gracias, pero hay un par de cosas que no comprendo. Te las pongo a continuación. Antes de nada te voy a dar un par de consejos que a mi me han ayudado bastante: 1 Identifica cada subred con un nombre. Asi por ejemplo la subred que forma el cable-modem con el firewall se podría llamar HADES, la LAN la puedes llamar OLIMPO, y la DMZ la puedes llamar TARTARO. Puedes elegir los nombres que quieras, no tienen porque ser de la mitología. Hay un RFC bastante majo para elegir nombres, pero no recuerdo el link. 2 A cada equipo asignale un nombre: Firewall=CERBERO, Web-server=PERSEFONE, Cable-Modem=ZEUS 3 Hazte un esquema de como quieres que interactue cada red con las demás, que tráfico aceptar, que tráfico denegar... 4 Empezamos el script, empieza por definir variables: #redes HADES=eth0 OLIMPO=eth1 TARTARO=eth2 #equipos #en HADES ZEUS=10.10.1.1 CERBERO_HADES=10.10.1.2 #en OLIMPO ATENEA=192.168.1.2 CERBERO_OLIMPO=192.168.1.1 ... #en TARTARO ... CERBERO_TARTARO=192.168.2.1 El uso de variables simplifica mucho el script, ya que ademas de ser más descriptivo, si cambia algún parametro solo tienes que cambiarlo en una línea y no en todas las reglas en las que aparezca. Estupendo, esto lo veo muy bien. Enmascara las redes internas a la hora de salir al exterior: $IPT -t nat -A POSTROUTING -s $CERBERO_OLIMPO/24 -o $HADES -j SNAT --to $CERBERO_HADES $IPT -t nat -A POSTROUTING -s $CERBERO_TARTARO/24 -o $HADES -j SNAT --to $CERBERO_HADES ¿Porque haces POSTROUTING para la salida de paquetes? ¿Es por algún proxy o similar?. Define ahora las reglas para la interaccion de unas redes con otras. En las reglas procura discriminar por interfaz entrante e interfaz saliente: #OLIMPO-TARTARO iptables --new-chain olimpo_a_tartaro iptables -A FORWARD -i $OLIMPO -o $TARTARO -j olimpo_a_tartaro iptables -A olimpo_a_tartaro -p tcp --dport 80 -j ACCEPT ... (en cada cadena, despues de especificar todo lo que aceptas, deniega el resto y logealo, los logs son importantes. Si, aunque tu politica por defecto sea DROP vuelve a denegarlo, total, no cuesta nada) #TARTARO-OLIMPO ... #OLIMPO-HADES ... #HADES-OLIMPO ... . y por ultimo establece las reglas de cada red a la hora de interactuar con el propio firewall. Esto es lo que te falla, por eso no puedes entrar por ssh al firewall, porque es como si no hubieras definido la interaccion de cada red con el firewall. #OLIMPO-CERBERO iptables --new-chain olimpo_a_cerbero iptables -A INPUT -i $HADES -j olimpo_a_cerbero iptables -A olimpo_a_cerbero -p tcp --dport 22 -j ACCEPT (con esto permites que los equipos de la red olimpo puedan acceder por ssh al firewall) ... (lo mismo de antes, en cada cadena, despues de especificar todo lo que aceptas, deniega el resto y logealo, los logs son importantes. Si, aunque tu politica por defecto sea DROP vuelve a denegarlo, total, no cuesta nada) #CERBERO-OLIMPO ... #HADES-CERBERO ... #CERBERO-HADES ... .. Bueno, me ha quedado un poco largo. Se que hacer asi el script puede ser más tedioso, pero a la hora de depurarlo es mucho más facil porque queda mucho más claro. Lo que no había pensado es la creación de nuevas reglas. Gracias. -- Saludos. Pablo. Fingerprint 5607 40CF 45EF D490 B794 5056 D7B2 C3DC ABF1 CE49 Jabber: bruli(at)myjabber(dot)net pgpeP5rEsXVzu.pgp Description: PGP signature
Re: Tengo una duda para asegurar el firewall.
--- Pablo Braulio [EMAIL PROTECTED] escribió: El Jueves, 27 de Octubre de 2005 16:52, Alfonso Pinto escribió: Me parece estupendo que crees tu propio script de iptables, se aprende bastante y tienes toda la flexibilidad para poder hacer lo que desees. Gracias, pero hay un par de cosas que no comprendo. Te las pongo a continuación. Antes de nada te voy a dar un par de consejos que a mi me han ayudado bastante: 1 Identifica cada subred con un nombre. Asi por ejemplo la subred que forma el cable-modem con el firewall se podría llamar HADES, la LAN la puedes llamar OLIMPO, y la DMZ la puedes llamar TARTARO. Puedes elegir los nombres que quieras, no tienen porque ser de la mitología. Hay un RFC bastante majo para elegir nombres, pero no recuerdo el link. 2 A cada equipo asignale un nombre: Firewall=CERBERO, Web-server=PERSEFONE, Cable-Modem=ZEUS 3 Hazte un esquema de como quieres que interactue cada red con las demás, que tráfico aceptar, que tráfico denegar... 4 Empezamos el script, empieza por definir variables: #redes HADES=eth0 OLIMPO=eth1 TARTARO=eth2 #equipos #en HADES ZEUS=10.10.1.1 CERBERO_HADES=10.10.1.2 #en OLIMPO ATENEA=192.168.1.2 CERBERO_OLIMPO=192.168.1.1 ... #en TARTARO ... CERBERO_TARTARO=192.168.2.1 El uso de variables simplifica mucho el script, ya que ademas de ser más descriptivo, si cambia algún parametro solo tienes que cambiarlo en una línea y no en todas las reglas en las que aparezca. Estupendo, esto lo veo muy bien. Enmascara las redes internas a la hora de salir al exterior: $IPT -t nat -A POSTROUTING -s $CERBERO_OLIMPO/24 -o $HADES -j SNAT --to $CERBERO_HADES $IPT -t nat -A POSTROUTING -s $CERBERO_TARTARO/24 -o $HADES -j SNAT --to $CERBERO_HADES ¿Porque haces POSTROUTING para la salida de paquetes? ¿Es por algún proxy o similar?. No, digamos que es una regla de ¿seguridad?. Cuando dejas que las redes internas salgan al exterior, no debes mandar los paquetes con la ip de origen de las redes internas. Con el postrouting lo que hago es que cambie en los paquetes la ip de origen por la de la interface externa del firewall. Si nos ponemos muy puristas, deberiamos hacer algo parecido para la interacción entre las redes porque, en teoría, por cada interfaz del firewall no se debe dejar pasar paquetes cuya ip no se corresponda con la de la subred de cada interfaz. Define ahora las reglas para la interaccion de unas redes con otras. En las reglas procura discriminar por interfaz entrante e interfaz saliente: #OLIMPO-TARTARO iptables --new-chain olimpo_a_tartaro iptables -A FORWARD -i $OLIMPO -o $TARTARO -j olimpo_a_tartaro iptables -A olimpo_a_tartaro -p tcp --dport 80 -j ACCEPT ... (en cada cadena, despues de especificar todo lo que aceptas, deniega el resto y logealo, los logs son importantes. Si, aunque tu politica por defecto sea DROP vuelve a denegarlo, total, no cuesta nada) #TARTARO-OLIMPO ... #OLIMPO-HADES ... #HADES-OLIMPO ... . y por ultimo establece las reglas de cada red a la hora de interactuar con el propio firewall. Esto es lo que te falla, por eso no puedes entrar por ssh al firewall, porque es como si no hubieras definido la interaccion de cada red con el firewall. #OLIMPO-CERBERO iptables --new-chain olimpo_a_cerbero iptables -A INPUT -i $HADES -j olimpo_a_cerbero iptables -A olimpo_a_cerbero -p tcp --dport 22 -j ACCEPT (con esto permites que los equipos de la red olimpo puedan acceder por ssh al firewall) ... (lo mismo de antes, en cada cadena, despues de especificar todo lo que aceptas, deniega el resto y logealo, los logs son importantes. Si, aunque tu politica por defecto sea DROP vuelve a denegarlo, total, no cuesta nada) #CERBERO-OLIMPO ... #HADES-CERBERO ... #CERBERO-HADES ... .. Bueno, me ha quedado un poco largo. Se que hacer asi el script puede ser más tedioso, pero a la hora de depurarlo es mucho más facil porque queda mucho más claro. Lo que no había pensado es la creación de nuevas reglas. Gracias. -- Saludos. Pablo. Fingerprint 5607 40CF 45EF D490 B794 5056 D7B2 C3DC ABF1 CE49 Jabber: bruli(at)myjabber(dot)net __ Renovamos el Correo Yahoo! Nuevos servicios, más seguridad http://correo.yahoo.es -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Tengo una duda para asegurar el firewall.
El Jueves, 27 de Octubre de 2005 17:33, Alfonso Pinto escribió: ¿Porque haces POSTROUTING para la salida de paquetes? ¿Es por algún proxy o similar?. No, digamos que es una regla de ¿seguridad?. Cuando dejas que las redes internas salgan al exterior, no debes mandar los paquetes con la ip de origen de las redes internas. Con el postrouting lo que hago es que cambie en los paquetes la ip de origen por la de la interface externa del firewall. Si nos ponemos muy puristas, deberiamos hacer algo parecido para la interacción entre las redes porque, en teoría, por cada interfaz del firewall no se debe dejar pasar paquetes cuya ip no se corresponda con la de la subred de cada interfaz. Vale, pero esto lo haces porque dispones de una ip estática. Yo tengo dhcp. Otra cosa. ¿No usas lo de -m state --state NEW,ESTABLISHED,RELATED?. Para la política DROP si no lo pongo no va. -- Saludos. Pablo. Fingerprint 5607 40CF 45EF D490 B794 5056 D7B2 C3DC ABF1 CE49 Jabber: bruli(at)myjabber(dot)net pgpsJo4YsoXpe.pgp Description: PGP signature
Re: Tengo una duda para asegurar el firewall.
Hola. Al final lo he dejado así para asegurar el acceso a la LAN. I_EXT=eth0 I_LAN=eth1 I_DMZ=eth2 LAN=192.168.1.0/24 DMZ=192.168.0.2 EQUIPO1=192.168.1.4 EQUIPO2=192.168.1.2 echo -n Activando reglas para interfaces: #I_EXT iptables -A INPUT -i $I_EXT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $I_EXT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT #De LAN al exterior iptables -A FORWARD -i $I_LAN -s $LAN -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -o $I_LAN -s 0.0.0.0/0 -d $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT # De DMZ al exterior. iptables -A FORWARD -i $I_DMZ -s $DMZ -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -o $I_DMZ -s 0.0.0.0/0 -d $DMZ -m state --state ESTABLISHED,RELATED -j ACCEPT echo hecho. echo -n Asegurando LAN: # Permitiendo ssh de equipo1 y equipo2 a firewall. iptables -A INPUT -i $I_LAN -p tcp -s $equipo1 -d 192.168.1.1 --dport 560 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i $I_LAN -p tcp -s $equipo2 -d 192.168.1.1 --dport 560 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $I_LAN -p tcp -s 192.168.1.1 -d $equipo1 --sport 560 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $I_LAN -p tcp -s 192.168.1.1 -d $equipo2 --sport 560 -m state --state ESTABLISHED,RELATED -j ACCEPT echo hecho. Lo que no he conseguido es crear nuevas reglas. -- Saludos. Pablo. Fingerprint 5607 40CF 45EF D490 B794 5056 D7B2 C3DC ABF1 CE49 Jabber: bruli(at)myjabber(dot)net pgpYquNTtm2KQ.pgp Description: PGP signature
Re: Tengo una duda para asegurar el firewall.
El Jue 27 Oct 2005 16:30, Pablo Braulio escribió: Hola. Al final lo he dejado así para asegurar el acceso a la LAN. I_EXT=eth0 I_LAN=eth1 I_DMZ=eth2 LAN=192.168.1.0/24 DMZ=192.168.0.2 EQUIPO1=192.168.1.4 EQUIPO2=192.168.1.2 echo -n Activando reglas para interfaces: #I_EXT iptables -A INPUT -i $I_EXT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $I_EXT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT #De LAN al exterior iptables -A FORWARD -i $I_LAN -s $LAN -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -o $I_LAN -s 0.0.0.0/0 -d $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT # De DMZ al exterior. iptables -A FORWARD -i $I_DMZ -s $DMZ -d 0.0.0.0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT Para que permitis conexiones nuevas desde la DMZ a internet? hay alguna razon especial para que permitas eso? iptables -A FORWARD -o $I_DMZ -s 0.0.0.0/0 -d $DMZ -m state --state ESTABLISHED,RELATED -j ACCEPT echo hecho. echo -n Asegurando LAN: # Permitiendo ssh de equipo1 y equipo2 a firewall. iptables -A INPUT -i $I_LAN -p tcp -s $equipo1 -d 192.168.1.1 --dport 560 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i $I_LAN -p tcp -s $equipo2 -d 192.168.1.1 --dport 560 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $I_LAN -p tcp -s 192.168.1.1 -d $equipo1 --sport 560 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -o $I_LAN -p tcp -s 192.168.1.1 -d $equipo2 --sport 560 -m state --state ESTABLISHED,RELATED -j ACCEPT echo hecho. Lo que no he conseguido es crear nuevas reglas.