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

Re: Tengo una duda para asegurar el firewall.



 --- Pablo Braulio <brulics@gmail.com> 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 "NMAP-XMAS SCAN: "
                $IPT -A flags_tcp -p tcp --tcp-flags
ALL FIN,URG,PSH -j DROP

                # RECHAZAMOS Y LOGEAMOS ESCANEO
SYN/RST

                $IPT -A flags_tcp -p tcp --tcp-flags
SYN,RST SYN,RST -m limit --limit 5/minute -j LOG
--log-prefix "SYN/RST SCAN: "
                $IPT -A flags_tcp -p tcp --tcp-flags
SYN,RST SYN,RST -j DROP

                # RECHAZAMOS Y LOGEAMOS ESCANEO
SYN/FIN
                $IPT -A flags_tcp -p tcp --tcp-flags
SYN,FIN SYN,FIN -m limit --limit 5/minute -j LOG
--log-prefix "SYN/FIN SCAN: "
                $IPT -A flags_tcp -p tcp --tcp-flags
SYN,FIN SYN,FIN -j DROP

                #RECHAZAMOS ESCANEO PSH/FIN
                $IPT -A flags_tcp -p tcp --tcp-flags
PSH,FIN PSH,FIN -m limit --limit 5/minute -j LOG
--log-prefix "PSH/FIN SCAN: "
                $IPT -A flags_tcp -p tcp --tcp-flags
PSH,FIN PSH,FIN -j DROP

                #RECHAZAMOS Y LOGEAMOS EL NULL SCAN
                $IPT -A flags_tcp -p tcp --tcp-flags
ALL NONE -m limit --limit 5/minute -j LOG --log-prefix
"NULL SCAN: "
                $IPT -A flags_tcp -p tcp --tcp-flags
ALL NONE -j DROP

                $IPT -A FORWARD -p tcp -j flags_tcp
                $IPT -A INPUT -p tcp -j flags_tcp
                $IPT -A OUTPUT -p tcp -j flags_tcp

Tambien tengo un par de cosillas añadidas a mi
scripts:
               # Habilitamos proteccion anti-smurf
                echo 1 >
/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

                # Habilitamos proteccion contra source
route spoofing
                echo 0 >
/proc/sys/net/ipv4/conf/all/accept_source_route

                # Registramos direcciones "marcianas"
                echo 1 >
/proc/sys/net/ipv4/conf/all/log_martians

Un saludo



		
______________________________________________ 
Renovamos el Correo Yahoo! 
Nuevos servicios, más seguridad 
http://correo.yahoo.es



Reply to: