Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Cortafuegos con Packet Filter (PF)
Curso Arquitectura de Servidores
Miguel Vidal, Jos Castro e
{mvidal,jfcastro}@[Link]
29 de abril de 2011
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
c 2011 Miguel Vidal, Jose Castro.
Esta presentacin se distribuye bajo o licencia Creative Commons Reconocimiento 3.0 Espaa n
[Link]
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Cortafuegos y ltrado de paquetes
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Qu es un cortafuegos? (1) e
FW (Firewall): trmino usado para referirse a cosas muy e dispares en los ultimos aos. n Se llama lo mismo al FW casero que te colocan en tu l nea ADSL o al que le cuesta miles de dlares en una empresa. o Qu diferencias hay? e
Funcionalidades que ofrece. Hardware en el que corre. Robustez y abilidad de su software.
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Qu es un cortafuegos? (2) e
Un equipo protegido y able que funciona como punto de regulacin entre un grupo de redes (normalmente una red o privada y una red pblica). u Todo el trco de red entre las redes involucradas se a encamina a travs del cortafuegos. e En grandes corporaciones incluso puede haber cortafuegos dentro de la red corporativa para aislar las zonas importantes de la organizacin. o Crear cortafuegos es un arte: exige comprender muy bien la tecnolog de red subyacente, pero tambin la losof de a e a diseo de cortafuegos. n
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Qu es un cortafuegos? (y 3) e
Un cortafuegos se congura mediante un conjunto de reglas que determina qu trco puede pasar y cul ser bloqueado e a a a (con respuesta) o desechado (sin respuesta). Los cortafuegos pueden situarse de formas distintas:
La forma ms simple (e insegura) es un solo equipo que a adems proporciona otros servicios. a La forma ms sosticada son las DMZ (o red perimetral), que a puede involucrar a varios equipos cortafuegos.
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Diseo de cortafuegos con un solo rewall n
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Diseo de cortafuegos con 2 rewalls (DMZ) n
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Tipos de procesado de paquetes
Filtrado: decidir en distintos momentos del ujo si un paquete pasa o es bloqueado. Modicacin: modicacin mientras se mueve el ujo de o o paquetes Traduccin (NAT): permite redirigir el trco de forma o a transparente mediante la modicacin de la fuente, el destino o o los puertos.
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Qu es el ltrado de IP? e
El ltrado IP consiste en decidir qu paquetes se procesarn y e a cules sern rechazados. Algunos criterios posibles para ltrar: a a Tipo de protocolo: TCP, UDP, ICMP, etc. Nmero de puerto (para TCP/UDP) u Tipo de paquete: SYN/ACK, datos, peticin de eco ICMP... o Origen del paquete Destino del paquete Los conjuntos de reglas (rulesets) se componen mediante combinacin de algunos de estos criterios. o
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Qu es el ltrado de IP? e
El ltrado IP es una utilidad de capa de red (layer-3). No conoce nada de las aplicaciones que usan las conexiones de red. Por ejemplo, si ltramos por puerto, ese mismo servicio podr a ejecutarse en otro puerto y el rewall no lo impedir a. Para solucionar esto, se usan servidores proxy, que gestionan la conexin y s comprenden el servicio. o
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Conceptos bsicos a
default accept versus default deny. Inspeccin de paquetes: Stateful vs stateless o En los FW de primera generacin no habia estado, lo que o facilitaba el spoong. La inspeccin de estado guarda registros de todas las o conexiones de red que pasan por el cortafuegos. Establecimiento de la comunicacin TCP en tres pasos o (Three-way handshake):
SYN packet: solicitud de sincronizacin o SYN+ACK packet: sincronizacin y acuse de recibo del o servidor ACK packet: acuse de recibo (acknowledgment) del cliente.
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Filtrado de paquetes
Un rewall avanzado puede hacer ms cosas adems de a a bloquear. Realiza otras funcionalidades importantes: enmascaramiento, NAT, auditor gestin de ancho de banda, balanceo de as, o carga, ltrado por criterios espec cos, redundancia...
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Herramientas libres para ltrado de paquetes
iptables: Linux ipfilter: *Solaris, illumos, FreeBSD, NetBSD, Linux, HP-UX, IRIX PF (Packet Filter): OpenBSD (nativo), FreeBSD, NetBSD, DragonFly. Comparativa: [Link]
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Packet Filter (PF)
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Origen de PF
Nace en 2001 en el proyecto OpenBSD, a ra de un problema z de licencia con ipfilter (no permit la redistribucin de a o copias modicadas). Hoy d PF es uno de ltros de paquetes ms potentes y a a completos, comparable en funcionalidad a las soluciones privativas ms caras (Cisco, Juniper, etc.). a Busca la sencillez de las reglas, la consistencia y la legibilidad.
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Funcionalidades de PF
Network Address Translation (NAT) Gestin de ancho de banda (QoS), priorizacin de colas (v o o a ALTQ) Balanceo de carga ftp-proxy Logging y estad sticas pfsync y CARP para Alta Disponibilidad
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Un conjunto m nimo de reglas
Un conjunto m nimo de reglas block in all pass out all keep state En OpenBSD 4.1 y superiores: keep state por defecto (se deja por legibilidad) Cargar las reglas $ sudo pfctl -ef /etc/[Link]
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Macros
Se pueden denir variables (macros) para que las reglas sean ms a legibles y manejables: Ejemplos de Macros webserver = [Link] webport = 80 Macros dentro de una regla pass in proto tcp from any to $webserver port $webport
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Listas
Las listas son dos o ms objetos del mismo tipo agrupables en una a regla: Ejemplo de Lista pass proto tcp to port { 22 80 443 } { 22 80 443 } es una lista. Macros y listas pueden combinarse web servers={ [Link],[Link],[Link] } web ports={ 80 443 }
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Tablas
Las tablas (entre < >) sirven para agrupar direcciones IPv4 o IPv6: Ejemplo de Tabla table <goodguys> [Link]/24, ![Link] table <spammers> persist file /etc/spammers pass in on fxp0 from <goodguys> to any block in on fxp0 from <spammers> to any
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Traduccin de Direcciones de Red (NAT) o
Permite mapear redes enteras Necesario cuando tenemos IPs pblicas limitadas por ISP u Nos permite aprovechar las direcciones RFC 1918 (rangos privados):
[Link]/8 ([Link] - [Link]) [Link]/12 ([Link] - [Link]) [Link]/16 ([Link] - [Link])
Ejemplo de NAT pass out on em0 from [Link]/24 to any nat-to [Link]
Hace NAT en la interfaz em0 para cualquier paquete que venga de [Link]/24, y sustituye la direccin IP de origen con [Link]. o
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Redireccionamiento de trco a
Permite acceder desde el exterior a servicios de la red interna. Ejemplo de redireccionamiento pass in on em0 proto tcp from any to any port 80 \ rdr-to [Link]
Se redirecciona el trco TCP del puerto 80 (un servidor web) a una mquina a a dentro de la red interna ([Link]).
El redireccionamiento tiene implicaciones de seguridad. El sistema expuesto al exterior se suele aislar en una DMZ.
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Antispoong
Previene la falsicacin de la direccin IP de origen (con el o o propsito de esconder la direccin real o de suplantar otro nodo en o o la red): Filtrado de paquetes falsicados por interfaz antispoof for em0
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Balanceo de carga
Tipos de balanceo de carga mediante reserva de IPs (address pooling ): round-robin: rotacin secuencial. Modo por defecto. o random: env cada conexin a una IP aleatoria. a o source-hash: usa un hash de la IP para asignar una conexin o del pool de IPs. bitmask: un modo de hacer NAT entre dos bloques de direcciones IPs de igual tamao. n Ejemplo de balanceo de carga entrante
web servers = { [Link], [Link], [Link] } match in on $ext if proto tcp to port 80 rdr-to \ $web servers round-robin
Miguel Vidal, Jos Castro e Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Comandos bsicos a
Control de PF con pfctl pfctl -e #activa PF pfctl -f /etc/[Link] #carga las reglas pfctl -nf /etc/[Link] #chequea sintaxis de las reglas sin cargarlas pfctl -vf /etc/[Link] #modo verboso, vemos expansin de reglas o pfctl -s rules #ver reglas actuales pfctl -s all #ver todos los parmetros a pfctl -d #desactiva PF sysctl [Link]=1 #Gateway. En /etc/[Link]
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
/etc/[Link]
Todo se congura y controla desde /etc/[Link]. Este debe ser el orden de procesamiento de las reglas: Macros Tablas Opciones Normalizacin de trco (scrubbing) o a Gestin de ancho de banda o Traduccin (NAT) o Redireccin o Filtrado de paquetes
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Registros de bitcora a
Demonio pogd, por defecto /var/log/pog. Logs en formato binario, legibles por tcpdump -r. Activar log de estad sticas en iface externa set loginterface em0 Leer los logs $ sudo tcpdump -n -ttt -r /var/log/pog $ sudo tcpdump -nettti pog0 # trco en vivo a
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Un ejemplo de conjunto de reglas
# Macros y listas pueden combinarse int if=em1 tcp services={ 22, 113 } udp services={ domain } icmp types=echoreq # Opciones set block-policy return set loginterface em0 set skip on lo # NAT match out on egress inet from !(egress) to any nat-to (egress:0) # Filtrado - lo primero bloqueamos trafico en todas direcciones block in log pass out quick antispoof quick for { lo $int if } #Antispoofing # Permitimos paso a protocolos y puertos autorizados pass in on egress inet proto tcp from any to port $tcp services pass proto udp to port $udp services pass in inet proto icmp all icmp-type $icmp types #ping pass in on $int if # confiamos en trfico de interfaz interno a
Miguel Vidal, Jos Castro e Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Referencias
Peter N.M. Hansteen, The Book of PF, 2nd Edition, No Starch, 2011. Tony Bautts, Terry Dawson y Gregor N. Purdy. Linux Network Administrators Guide, OReilly (existe edicin en espaol). o n
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)
Cortafuegos y ltrado TCP/IP Packet Filter (PF)
Cortafuegos con Packet Filter (PF)
Curso Arquitectura de Servidores
Miguel Vidal, Jos Castro e
{mvidal,jfcastro}@[Link]
29 de abril de 2011
Miguel Vidal, Jos Castro e
Cortafuegos con Packet Filter (PF)