Logro de la Unidad
Al termino de la Unidad, el alumno ccomprende el funcionamiento del Firewall, identifica las arquitecturas del Firewall e implementa un Firewall en el sistema.
Temario
Firewall Tipos de Firewall Arquitecturas de Firewall NAT Netfilter IPTables
Firewall
Un firewall (Cortafuegos) en Internet es un sistema o grupo de sistemas que impone una poltica de seguridad entre la organizacin de red privada y el Internet. Para que un firewall sea efectivo, todo trfico de informacin a travs de Internet deber pasar a travs del mismo, donde podr ser inspeccionada la informacin. El firewall es parte de una poltica de seguridad completa que crea un permetro de defensa diseada para proteger las fuentes de informacin.
Beneficios de un Firewall
Un Firewall administra los accesos que proviene de Internet hacia la red protegida. Un Firewall es parte de una poltica de seguridad que crea un permetro de defensa diseada para proteger las fuentes de informacin de una organizacin. Los Firewalls tambin son importantes desde el punto de vista de llevar las estadsticas del ancho de banda consumido por el trfico de la red. Permite realizar supervisin de eventos de seguridad, como registro de accesos, gestin de alarmas de seguridad, auditoras y otros eventos.
Limitaciones de un Firewall
Un Firewall no protege contra ataques provenientes de conexiones que estn fuera de su operacin de control. El Firewall tampoco provee de herramientas contra la filtracin de software o archivos infectados con virus. El cortafuegos no protege de los fallos de seguridad de los servicios y protocolos cuyo trfico est permitido. Un firewall no puede defenderse contra nuevas amenazas.
Tipos de Firewall
Firewall filtrado de paquetes (Packet filters) Firewall a nivel de circuito (Circuit Level Firewall) Firewall a nivel de aplicacin (Aplication Level Firewall) Firewall de Estado (Stateful Packet Inspection)
Firewall de Estado
Un cortafuegos de estado es un tipo de cortafuego que trabaja en tres de las capas del modelo TCP/IP: Capa 3 (Capa de red Internet Protocol). Capa 4 (Capa de Transporte). Capa 5 (Capa de Aplicacin). Se caracterizan porque se genera una tabla donde se mantienen los estados de las conexiones de todas las sesiones examinando cada paquete cuando pasen a travs del Firewall y sean filtrados en funcin si forman parte una sesin de comunicacin, de este modo se permite o deniega el acceso a travs del Firewall.
Firewall de Estado
Arquitecturas de Firewall
Screening Router
Screening Router
Esta arquitectura de firewall posee uno de los modelos ms sencillos y antiguos en la capacidad de realizar un enrutado selectivo, trabajan a nivel de Transporte y de Red del modelo OSI y se encuentran conectados en ambos permetros de la red. Presenta limitaciones en cuanto a la proteccin de capas superiores a nivel OSI y soporte de polticas de seguridad complejas como autentificacin de usuarios o listas de control de acceso. Como contra parte la gran ventaja es que suelen ser econmicos, transparentes para los usuarios y poseen un alto nivel de desempeo.
Screening Router
Screened host
Para escalar un nivel ms en trminos de seguridad, se presenta la arquitectura de screened host, donde son combinadas dos de las alternativas anteriores (Screening Router y Dual Homed Host) donde en una primera instancia se filtran paquetes mediante el router y en la segunda lnea de defensa se sita el host bastin con un reducido nmero de servicios publicados hacia el exterior. Entonces, el router se encuentra configurado para dirigir todo el trfico de la red externa al host bastin, lo nico que se puede acceder desde el exterior y este mismo dirige todo el trfico de la red interna hacia el router.
Screened host
Netfilter
Netfilter es una infraestructura disponible en el ncleo Linux a partir de la versin 2.4. Est compuesto por una serie mdulos del ncleo y libreras. Proporciona el filtrado de paquetes, servicio traduccin de direcciones de red NAT o enmascaramiento IP, modificacin de la informacin de los encabezados IP para el enrutamiento avanzado y administracin de los estados de conexin de red.
Funcionamiento
La herramienta IPTables hace uso de la infraestructura que ofrece Netfilter para construir reglas de filtrado de paquetes, integrando funcionalidades de NAT, manipulacin de paquetes de red y mantenimiento de los registros. Permite al administrador del sistema definir reglas acerca de qu hacer con los paquetes de red. Las reglas se agrupan en cadena, cada cadena es una lista ordenada de reglas. Las cadenas se agrupan en tablas, cada tabla est asociada con un tipo diferente de procesamiento de los paquetes de red.
Funcionamiento
Tablas Para el filtrado de paquetes de red se dispone de tablas que deben manejar reglas y cadenas, que se define a continuacin: Filter La tabla filter es usada para el filtrado general de paquetes. Est compuesto por las cadenas. INPUT: Es aplicado a los paquetes entrantes con destino al firewall. OUTPUT: Es aplicado a los paquetes salientes originados por el firewall. FORWARD: Es aplicado a los paquetes que son enviados con destino a otro equipo.
Funcionamiento
Nat La tabla nat es usado para la traduccin de direcciones de red (NAT), principalmente IP Masquerading y Port Forwarding a los diferentes paquetes. Est compuesto por las cadenas. PREROUTING: Se modifica los paquetes recibidos traduciendo sus direcciones de destino. POSTROUTING: Se modifica los paquetes antes de que sean enviados a travs de una interfaz de red traduciendo sus direcciones de origen. OUTPUT: Esta cadena modifica los paquetes generados localmente antes de que sean dirigidos a travs de una interface de red. .
Funcionamiento
Mangle La tabla mangle permite modificar ciertos campos como el Tipo de Servicio TOS (Type of Service) y Tiempo de vida TTL (Time to Live) del paquete IP. Esta compuesto por las cadenas INPUT, OUTPUT, FORWARD, PREROUTING y POSTROUNTING . Raw La tabla raw esta configurado para realizar excepciones al seguimiento de los paquetes, esto reduce el consumo de recurso a cambio de no poder realizar anlisis del estado de los paquetes, esta conformado por las cadenas PREROUTING y OUTPUT.
Funcionamiento
Extensiones En Netfilter existen distintas extensiones que se dividen en dos tipos en Coincidencias (Matches) y Acciones (Targets). Algunas de estas extensiones son particulares para cada una de las tablas . Coincidencias (Matches) Una coincidencia se presenta cuando un paquete corresponde a lo especificado en una regla interna que pertenece a una de las determinadas cadenas. Acciones (Targets) Se indica como es el destino final del proceso de un paquete una vez que se ha cumplido la coincidencia.
IPtables
Las comandos que son reconocidas por iptables se pueden dividir en varios grupos diferentes que se usan para definir una regla de filtrado siguiendo la siguiente sintaxis:
IPtables
Operaciones bsicas Las operaciones bsicas son los siguientes: Para modificar cadenas. -N: Crea una cadena definida por el usuario. -X: Borra una cadena definida por el usuario. -P : Asigna la poltica a una cadena. -L: Listado de todas las reglas de la cadena. -F: Borra todas las reglas de las cadenas de una tabla. -Z: Inicializa a cero el contador de bytes y paquetes en todas las cadenas de una tabla.
IPtables
Operaciones bsicas Para la modificacin de reglas. -A: Agrega una regla al final de la cadena. -I: Inserta la regla en la posicin indicada a una cadena. -R: Reemplaza la regla situada en la posicin indicada en una cadena. -D: Borra una regla de la cadena.
IPtables
Coincidencias bsicas. Las coincidencias bsicas son las siguientes: -p [protocolo]: Se especifica qu protocolo debe realizarse la comprobacin. Algunos de los valores son tcp, udp, icmp o all. Tambin puede ser un nmero o alguno de los indicados en /etc/protocols. -s [direccin/mascara]: Se indica la direccin IP o de red origen del paquete. -d [direccin/mascara]: Se indica la direccin IP o de red destino del paquete.
IPtables
Coincidencias bsicas. -i [interfaz]: Se especifica la interfaz de entrada de los paquetes. (solamente usado por las cadenas INPUT, FORWARD y PREROUTING). -o [interfaz] : Se especifica la interfaz de salida de los paquetes (solamente usado por las cadenas OUTPUT, FORWARD y POSTROUTING). --sport: Indica el puerto o rango de puertos origen de la transaccin de paquetes. --dport: Indica el puerto o rango de puertos destino de la transaccin de paquetes.
IPtables
Acciones bsicas. Las acciones bsicas son las siguientes: ACCEPT: Acepta el paquete. DROP: Descarta el paquete. REJECT: Rechaza el paquete y se notifica al emisor que el paquete fue bloqueado. LOG: Se registra informacin sobre los paquetes.
IPtables
Se muestra algunos ejemplos de reglas de filtrado de paquetes usando la tabla Filter que a continuacin se menciona: Permitir el trafico ICMP de entrada. iptables -A INPUT -p icmp -j ACCEPT
Permitir por la interfaz eth0 enviar paquetes ICMP.
IPtables
Rechazar por la interfaz eth0, la conexin al puerto 65000, protocolo UDP, desde la red local 192.168.1.0/255.255.255.0
iptables -A FORWARD -p tcp -i eth0 -d 192.168.2.4 --dport 80 -j ACCEPT iptables -A FORWARD -p tcp -i eth2 -s 192.168.2.4 --dport 80 -j ACCEPT
DNAT Se aplica DNAT (Traduccin de direcciones de red destino) antes del encaminamiento, se modifica la direccin IP destino de los paquetes de la red externa (Internet) cuando ingresa al Firewall que protege la red local. iptables -t nat -A PREROUTING -i eth0 -d 120.20.1.10 --dport 80 -j DNAT --to-destination 192.168.2.4
Estados de conexin
Es una de las caractersticas de la estructura Netfilter que permite el filtrado de paquetes basado en el seguimiento de conexiones (connection tracking ), mediante el registro de todas las conexiones y de este modo relacionado con los paquetes que pueden estar asociado a una determinada conexin. Los posibles estados definidos para una conexin son los siguientes:
NEW El estado NEW (nuevo) nos indica que el paquete es el primero de una nueva conexin. ESTABLISHED El estado ESTABLISHED (establecido) especifica una conexin establecida y que admite envi de paquetes en ambas direcciones.
Estados de conexin
RELATED Para considerar una conexin en estado RELATED (relacionado) primero debemos tener otra conexin en estado establecido, este genera una nueva conexin externa a la conexin principal y ser considerado como estado relacionado. INVALID El estado INVALID (invlido) indica que el paquete no puede ser identificado o no esta asociado a ningn estado de conexin.
Firewall de Estado
Procedimiento para la implementacin de un Firewall de Estado. Se habilita tablas y cadenas vacas en el sistema. iptables -F iptables -Z iptables -t nat -F
Estableciendo poltica de filtrado. iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP
Firewall de Estado
Se permite paquetes que pertenece a estados de conexin establecido y relativo que ingresa al firewall. iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Se permite paquetes ICMP desde el firewall. iptables -A OUTPUT -p icmp --icmp-type 8 -m state --state NEW -j ACCEPT Se permite el acceso a servicios Web y DNS desde el firewall. iptables -A OUTPUT -p udp -o eth0 --dport 53 -m state --state NEW -j ACCEPT iptables -A OUTPUT -p tcp -o eth0 --dport 80 -m state --state NEW -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Firewall de Estado
Se permite el acceso al servicio DNS para la red local. iptables -A FORWARD -p udp -i eth1 -s 192.168.1.0/24 --dport 53 m state --state NEW -j ACCEPT
Se permite el acceso al servicio Web para la red local. iptables -A FORWARD -p tcp -i eth1 -s 192.168.1.0/24 --dport 80 -m state --state NEW -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT Traduccin de direcciones origen - SNAT iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j SNAT -to-source 10.40.32.68
Control de acceso a contenidos por su extensin Control de acceso que especifica una lista de expresiones regulares de enlaces URL de ficheros restringido por su extensin. acl filesdenegados urlpath_regex "/etc/squid/filesdenegados"
Se permite el redireccionamiento de todas las entradas del puerto 80 hacia el puerto 3128 del servidor proxy.
iptables -t nat -A PREROUTING -p tcp -i eth1 -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-port 3128
40 23 * * * /usr/bin/sarg > /dev/null Inicio del servicio crond chkconfig crond on service crond start
Preguntas