packet filtering (filtrado de paquetes)
DESCRIPTION
PacketFilteringTRANSCRIPT
Packet Filtering (Filtrado de Paquetes)
06/03/2013
1
Como regla general, un dispositivo de enrutamiento, sin filtrado de paquetes, mira la dirección de destino de un paquete y decide si este paquete tiene que ser enviado a través del router o debe permanecer en esa interfaz. Este es el principio básico bajo el cual el enrutamiento trabaja.
Cuando se agrega el filtrado de paquetes, puede añadir otro nivel de análisis para cada paquete. El primer paso es todavía el examen de la dirección de destino. Entonces, si el router ha determinado que tiene que procesar el paquete, se aplica el filtro "reglas".
Seguridad en Linux - Profesor Julio Gonzales Villegas
Packet Filtering (Filtrado de Paquetes)
06/03/2013 Seguridad en Linux - Profesor Julio Gonzales Villegas
2
Las reglas de filtrado son las políticas de seguridad implementadas
como “servicios aprobados y rechazados”. Por ejemplo, puede
restringir los paquetes destinados a máquinas en particular, ciertos
tipos de paquetes, o incluso los paquetes que salen de su LAN
destinados para el mundo exterior. El filtrado de paquetes puede
ser muy amplio o específico hacia máquinas individuales y puertos.
Por ejemplo, digamos que usted está ejecutando un servidor web en
la máquina X. Desea que los usuarios de la Internet puedan tener
acceso a sus páginas web, pero no quiere que ellos intenten una
conexión telnet en las máquinas de la LAN, incluyendo el servidor
web X. Usted puede utilizar el filtrado de paquetes para este tipo
de acceso selectivo.
¿Por que usar Packet Filtering?
06/03/2013 Seguridad en Linux - Profesor Julio Gonzales Villegas
3
El filtrado de paquetes es más comúnmente utilizado como “primera línea de defensa contra los ataques desde máquinas ubicadas fuera de su LAN”. Dado que la mayoría de los dispositivos de encaminamiento han incorporado capacidades de filtrado, el filtrado de paquetes se ha convertido en un método común y barato de seguridad. Aunque el filtrado de paquetes es muy flexible y potente, de ninguna manera se garantiza la seguridad de su LAN y de los datos internos.
¿Qué tan poderoso es?
06/03/2013 Seguridad en Linux - Profesor Julio Gonzales Villegas
4
El filtrado de paquetes le permite explícitamente restringir o permitir a los paquetes por máquina, por puerto, o por máquina y puerto. Por ejemplo, usted puede restringir todos los paquetes destinados al puerto 80 (www) en todas las máquinas de la LAN, excepto las máquina X e Y.
La característica menos atractiva del filtrado de paquetes es la falta de flexibilidad. El filtrado de paquetes estándar permite o restringe los paquetes a un lugar o desde un lugar. No hay "a veces" o "sólo de esta persona". Si usted no permite telnet desde el mundo exterior hacia una máquina especial, usted ha hecho justamente eso. Ninguna máquina en el otro lado del router hará telnet a la máquina especificada en el filtro. Este tipo de filtrado que se conoce como filtrado estático.
Packet Filtering: Criterios y Reglas
06/03/2013 Seguridad en Linux - Profesor Julio Gonzales Villegas
5
Packet Filtering es el acto de filtrar paquetes IP basados en diferentes criterios y/o “reglas”:
• NIC (Network Interface Card – Tarjeta de Interface de Red)
• Protocolo (UDP, TCP, ICMP)
• IP origen y destino
• Puerto (port) origen y destino
• Dirección de la Conexión TCP
• Existencia de una conexión TCP
• Tipo de paquete ICMP
• MAC Address (Dirección Física de la Tarjeta de Red)
Una “REGLA” es una declaración que combina una serie de criterios de filtrado para llevar a cabo una “ACCION”
Packet Filtering: Acciones y/o Objetivos
06/03/2013 Seguridad en Linux - Profesor Julio Gonzales Villegas
6
Basados en los criterios y/o reglas de filtrado,
existen dos “ACCIONES Principales” que pueden
realizarse (“Objetivos del Filtrado”):
• ALLOW: permitir el paso del paquete
• DROP: rechazar el paso del paquete
Otras acciones (“objetivos”) pueden especificarse, pero
requieren ciertos módulos cargados en el kernel.
Network Address Translation - NAT
06/03/2013 Seguridad en Linux - Profesor Julio Gonzales Villegas
7
Cambia la IP y/o puerto origen/destino de un paquete en transito. Tipos de NAT:
Source NAT (SNAT): cambia la IP origen
Enmascaramiento IP (IP Masquerading)
Destination NAT (DNAT): cambia la IP destino
Encaminamiento de puertos (Port Forwarding)
Proxy Transparente (Transparent Proxy)
Packet Mangling (Alteración de paquetes): cambia opciones TCP/IP
Priority (Prioridad del paquete)
TTL (Tiempo de Vida)
Chains - Cadenas (1)
06/03/2013 Seguridad en Linux - Profesor Julio Gonzales Villegas
8
Una cadena es una serie de reglas que se comprueban para un determinado tipo de paquete
Cadenas predeterminadas:
INPUT: para paquetes enviados a esta maquina
OUTPUT: para paquetes enviados desde esta maquina
FORWARD: para paquetes que atraviesan esta maquina
POSTROUTING: usado para SNAT (después de decisión de enrutamiento)
PREROUTING: usado para DNAT (antes de decisión de enrutamiento)
Un usuario puede añadir sus reglas personales
Una regla en una cadena predeterminada se refiere a la misma cadena
Las reglas en una cadena se revisan en orden
• Cuando una regla no coincide, se revisa la siguiente
• Cuando una regla coincide, se ejecuta la acción
ACCEPT, DROP o ir a la cadena definida por el usuario
Cuando ninguna regla coincide, se ejecuta la acción predeterminada para dicha regla (POLICY)
Chains – Cadenas (2)
06/03/2013 Seguridad en Linux - Profesor Julio Gonzales Villegas
9
Observe el orden en que las cadenas son revisadas. Las cadenas INPUT,
OUTPUT y FORWARD son usadas principalmente para filtrado, mientras NAT se
ubica en las cadenas PREROUTING y POSTROUTING.
Packet Filtering en Linux
06/03/2013 Seguridad en Linux - Profesor Julio Gonzales Villegas
10
Packet Filtering se lleva a cabo en el kernel de Linux
Usualmente compilado como modulo del kernel el cual es cargado automáticamente
La configuración se realiza con herramientas de usuario:
Linux 2.0 kernel: ipfwadm
Linux 2.2 kernel: ipchains
Linux 2.4 kernel: iptables
La compatibilidad con herramientas anteriores esta asegurada
Caracteristicas adicionales:
Loggings
Statistics
La herramienta iptables
06/03/2013 Seguridad en Linux - Profesor Julio Gonzales Villegas
11
Herramienta a nivel de usuario para configurar reglas de filtrado en el kernel
Diferentes modos de operación: Elimina todas las reglas
Establece la acción predeterminada para una cadena
Añade, inserta, reemplaza, borra reglas
Muestra las reglas
Muestra y resetea las estadísticas
Chequea un paquete contrastándolo con las reglas
iptables-save e iptables-restore pueden usarse para grabar y/o restablecer las reglas desde un archivo
Sintaxis básica de iptables (1)
06/03/2013 Seguridad en Linux - Profesor Julio Gonzales Villegas
12
iptables [-t tabla] comando [cadena] [parámetros] [-j objetivo]
Tablas:
filter (default): para reglas de filtrado
nat: para reglas de NAT
mangle (alteración): para reglas de alteración
Comandos:
-L : lista todas las reglas
-F : elimina las reglas
-Z : pone a cero los contadores
-A : añade una reglas
-I : inserta una regla
-P : acción predeterminada para una cadena (POLICY)
-N : crea una cadena de usuario
-X : borra una cadena de usuario
Sintaxis básica de iptables (2)
06/03/2013 Seguridad en Linux - Profesor Julio Gonzales Villegas
13
iptables [-t tabla] comando [cadena] [parámetros] [-j objetivo]
Parámetros simples:
-i interface de entrada (eth0, eth1, etc.)
-o interface de salida (eth0, eth1, etc.)
-p protocolo (tcp, udp, icmp)
-s IP origen (origen de los datos)
--sport puerto origen (aplicación que genera los datos)
-d IP destino (destino de los datos)
--dport puerto destino (aplicación que recibe los datos)
--icmp-type tipo de mensaje ICMP
Use el símbolo ! para negar la opción
Objetivos:
Básicos: ACCEPT, DROP
Extendidos (requiere modulo del kernel): REJECT, LOG, …
Escenario de Trabajo
06/03/2013 Seguridad en Linux - Profesor Julio Gonzales Villegas
14