Você está na página 1de 19

MTODOS DE AUTENTICACIN Y FIREWALL TIPOS DE FIREWALL

El firewall, en castellano muro de fuego, es un sistema que es utilizado para proteger una computadora en particular o bien una red . Normalmente su objetivo es evitar el ingreso de agentes externos, no autorizados o informacin. Existen distintos tipos de firewalls, que pueden ser clasificados de diversas maneras en: FILTRADO DE PAQUETES, FILTRADO DE PROXYS Y FILTROS DE PAQUETES CON ESTADOS La accin de filtrar paquetes es bloquear o permitir el paso a los paquetes de datos de forma selectiva, segn van llegando a una interfaz de red. Los criterios que usa pf(4) para inspeccionar los paquetes los toma de la informacin existente en la capa 'Layer 3' (IPv4 and IPv6) y en la capa 'Layer 4' (TCP, UDP, ICMP y ICMPv6) de las cabeceras de los paquetes. Los criterios que ms se utilizan son los de la direccin de origen y de destino, el puerto de origen y de destino, y el protocolo. Las reglas de filtrado especifican los criterios con los que debe concordar un paquete y la accin a seguir, bien sea bloquearlo o permitir que pase, que se toma cuando se encuentra una concordancia. Las reglas de filtrado se evalan por orden de secuencia, de la primera a la ltima. A menos que el paquete concuerde con una regla que contenga la clave quick, se evaluar el paquete comparndolo con todas las reglas de filtrado antes de decidir una accin final. La ltima regla que concuerde ser la ganadora y la que dictamine qu accin se tomar con el paquete. Al principio del grupo de reglas de filtrado hay un pass all implcito que indica que si algn paquete no concuerda con ninguna de las reglas de filtrado, la accin a seguir ser pass, o sea permitirle el paso. Sintaxis de las reglas La sintaxis general, muy simplificada, para las reglas de filtrado es: action [direction] [log] [from src_addr [port [flags tcp_flags] [state] action La accin a seguir para los paquetes que concuerden, ya sea pass o block. La accin pass permitir el paso al paquete de vuelta hasta el ncleo del sistema, para que ste lo procese, mientras que la accin block actuar [quick] [on interface] [af] [proto protocol] src_port]] [to dst_addr [port dst_port]] \ \

segn se indique en la configuracin de la opcin de la poltica de bloqueo, block-policy. La accin por omisin se puede anular especificando block drop (bloquear y eliminar el paquete) o block return (bloquear y devolver el paquete). direction La direccin en la que se mueve el paquete en una interfaz, que ser in (entrante) o out (saliente). log Indica que se debe registrar el paquete por medio de pflogd(8). Si la regla crea un estado, entonces slo se registrar el paquete que establezca el estado. Para registrar todos los paquetes hay que usar la opcin log (all). quick Si un paquete concuerda con una regla que especifique la opcin quick, entonces esa regla se considera como la regla final de concordancia para el paquete, y se tomar la accin que est especificada en action sin ms dilacin. interface El nombre o el grupo de la interfaz de red a travs del cual se mueve el paquete. Los interfaces pueden aadirse a grupos arbitrarios por medio de la orden ifconfig(8) Varios grupos tambin son creados automticamente por el kernel:

El grupo egress, que contiene la(s) interfaces(s) relativa(s) a la ruta por omisin. El grupo de la familia de interfaces clonadas: Por ejemplo: ppp o carp.

Esto causara la concordancia de la regla para todo paquete que atraviesa cualquier interfaz ppp o carp, respectivamente. af La familia de direcciones del paquete, que ser inet para IPv4 inet6 para IPv6. Generalmente, PF es capaz de determinar este parmetro basndose en la direccin, o direcciones, de origen y/o de destino. protocol El protocolo de la capa 'Layer 4' del paquete:

tcp udp icmp icmp6 Un nombre de protocolo vlido del fichero /etc/protocols Un nmero de protocolo entre 0 y 255 Un grupo de protocolos que usen una lista.

src_addr, dst_addr La direccin de origen y/o de destino en la cabecera IP. Las direcciones se pueden especificar como:

Una sola direccin IPv4 o IPv6. Un bloque de red CIDR. Un Nombre de Dominio Totalmente Cualificado (FQDN) que se resolver por el Servicio de Nombres de Dominio cuando se carguen las reglas. Todas las direcciones IP resultantes se sustituirn dentro de la regla. El nombre de una interfaz de red o grupo. Cualquier direccin IP asignada a la interfaz se sustituir dentro de la regla. El nombre de una interfaz de red seguido de la mscara de red como sigue: /netmask (o sea, /24). Cada direccin IP en la interfaz se combina con la mscara de red para formar un bloque de red CIDR, que se sustituye dentro de la regla. El nombre de una interfaz de red o grupo entre parntesis ( ). De este modo se instruye a PF para que actualice la reglas si la direccin, o direcciones, IP en dicha interfaz cambia. Es de gran utilidad cuando la interfaz obtiene su direccin IP por medio de DHCP o de una conexin tipo dial-up (por conexin telefnica), ya que no hay que volver a cargar las reglas cada vez que cambie la direccin. El nombre de la interfaz de red seguido por cualquiera de los siguientes modificadores: o :network - expande al bloque de red CIDR (por ejemplo: 192.168.0.0/24) o :broadcast - expande a la direccin de difusin (broadcast) de la red. (por ejemplo: 192.168.0.255) o :peer - expande a la direccin IP del otro extremo en un enlace punto a punto.

Adems, el modificador :0 puede ser aadido tanto a un nombre de interfaz o a cualquiera de los modificadores mencionados arriba para indicar que PF no debe incluir la direccin IP de alias en la expansin. Estos modificadores tambin puede ser usados cuando la interfaz est entre parntesis. Ejemplo: fxp0:network:0

Una tabla. La palabra-clave urpf-failed puede usarse en las direcciones origen para indicar que debe continuar a travs de una comprobacin uRPF. Cualquiera de las anteriores en negacin, usando el modificador ! ("not"). Un grupo de direcciones que usen una lista. La clave any para indicar todas las direcciones. La clave all, que es una abreviacin de from any to any.

src_port, dst_port El puerto de origen y/o de destino en la capa 'Layer 4' de la cabecera IP. Los puertos se pueden especificar como:

Un nmero entre el 1 y el 65535 Un nombre de servicio vlido del fichero /etc/services Un grupo de puertos que usen una lista Un intervalo: o != (distinto de) o < (menor que) o > (mayor que) o <= (menor o igual que) o >= (mayor o igual que) o >< (intervalo) o <> (intervalo inverso)

Los dos ltimos son operadores binarios (toman dos argumentos) y no incluyen los argumentos en el intervalo.
o

: (intervalo inclusivo)

El operador de intervalo inclusivo tambin es un operador binario e incluye el argumento en el intervalo. tcp_flags Especifica los indicadores que deben existir en la cabecera TCP cuando se usa proto tcp. Los indicadores se especifican como flags check/mask. Por ejemplo, flags S/SA instruye a PF para que slo mire los indicadores S y A (SYN y ACK), y que acepte la concordancia si el indicador SYN est activo (y esto se aplica a todas las reglas TCP predeterminadas). flags any instruye a PF para que no verifique los indicadores (flags). state Especifica si se guarda la informacin sobre el estado en paquetes que concuerden con esta regla.

no state - funciona con TCP, UDP e ICMP. PF no trazar esta conexin con estado. Para conexiones TCP, flags any suele ser necesario. keep state - funciona con TCP, UDP e ICMP. Esta es la opcin predeterminada en todas las reglas de filtrado. modulate state - slo funciona con TCP. PF generar Nmeros de Secuencia Inicial (ISNs, Initial Sequence Numbers) seguros para los paquetes que concuerden con esta regla. synproxy state - hace de proxy para las conexiones TCP entrantes con el fin de ayudar a proteger a los servidores de desbordamientos TCP SYN falsificados. Esta opcin incluye las funcionalidades keep state y modulate state.

Denegacin predeterminada La prctica recomendada para configurar un cortafuegos es la de tomar una aproximacin de denegacin predeterminada; o sea, denegar el paso a todo y a

partir de ah ir permitiendo el paso a travs del cortafuegos de forma selectiva a cierto trfico. Esta aproximacin es la recomendada ya que los posibles fallos se cometeran a favor de la seguridad, y tambin porque hace ms fcil la creacin de grupos de reglas. Para crear una poltica de filtrado de denegacin predeterminada, las primeras dos reglas deben ser: block block out all in all

Con esto se bloquea todo el trfico en todas las interfaces en cualquier direccin, y desde cualquier origen, hasta cualquier destino. Paso de trfico Ahora hay que permitir de forma explcita y selectiva el paso del trfico a travs del cortafuegos, o de lo contrario ser bloqueado por la poltica de denegacin predeterminada. Aqu es donde entran en juego los criterios del paquete, como son el puerto de origen/destino, la direccin de origen/destino, y el protocolo. Siempre que se permita el paso de cierto trfico a travs del cortafuegos hay que escribir las reglas de un modo tan restrictivo como sea posible. Esto es para asegurarse de que slo pasar el trfico que se permita, y ningn otro. Algunos ejemplos: # Permitir el paso al trfico entrante en la interfaz dc0 de la red local, # 192.168.0.0/24, hacia la direccin IP 192.168.0.1 de la mquina de OpenBSD. # Tambin permitir el paso al trfico saliente que es enviado de vuelta en dc0. pass in on dc0 from 192.168.0.0/24 to 192.168.0.1 pass out on dc0 from 192.168.0.1 to 192.168.0.0/24

# Permitir el paso al trfico entrante TCP en la interfaz fxp0 del servidor # de web que se encuentra en la mquina de OpenBSD. El nombre de la # interfaz, fxp0, se usa como la direccin de destino para que los paquetes # slo concuerden con esta regla si tienen como destino la mquina de OpenBSD. pass in on fxp0 proto tcp from any to fxp0 port www La palabra-clave quick Como se ha indicado anteriormente, cada paquete se evala con el grupo de reglas de filtrado, desde la primera hasta la ltima. El resultado predeterminado es el de marcar el paquete para que se le permita el paso; esto puede cambiar con cualquiera de las reglas por las que pasa, y podra cambiar varias veces antes de llegar al final de las reglas de filtrado. La ltima regla con la que concuerde

marcar el resultado. Existe una excepcin para esto: la opcin quick en una regla de filtrado tiene el efecto de cancelar el procesamiento de cualquier regla consiguiente, y provoca que se ejecute la accin especificada sin ms dilacin. Veamos un par de ejemplos: Mal: block in pass in all on fxp0 proto tcp to port ssh

En este caso, la lnea block puede ser evaluada, pero nunca tendr ningn efecto, ya que va seguida por una lnea que permite el paso de todo. Mejor: block in pass in all quick on fxp0 proto tcp to port ssh

Estas reglas se evalan de una forma algo diferente. Si un paquete concuerda con la lnea block, debido a la naturaleza de la opcin quick, se bloquear el paso a dicho paquete y se ignorar el resto del grupo de reglas. Mantenimiento del estado Una de las funcionalidades importantes de PF es la del mantenimiento del estado (keeping state) o inspeccin completa del estado (stateful inspection). La inspeccin del estado se refiere a la capacidad de PF de llevar un seguimiento del estado, o del progreso, de una conexin de red. Almacenando informacin sobre cada conexin en una tabla de estado, PF puede determinar rpidamente si un paquete que est pasando a travs del cortafuegos pertenece a una conexin ya establecida. Si es as, se le permite pasar a travs del cortafuegos sin tener que pasar a travs de la evaluacin del grupo de reglas. El mantenimiento del estado tiene muchas ventajas, entre otras que los grupos de reglas son ms simples y se obtiene un rendimiento ms alto del filtrado de paquetes. PF puede puede hacer que los paquetes que vayan en cualquier direccin concuerden con entradas en la tabla de estado, lo que quiere decir que no es necesario escribir reglas de filtrado que permitan el paso del trfico de vuelta. Y, como los paquetes que concuerdan con conexiones stateful no pasan a travs de la evaluacin del grupo de reglas, el tiempo que tarda PF en procesarlos puede reducirse considerablemente. Cuando una regla crea el estado, el primer paquete que concuerda con ella crea un estado entre el remitente y el destinatario. A partir de ah, los paquetes que vayan desde el remitente hacia el destinatario no sern los nicos que concuerden con la entrada de estado y que circunvalen la evaluacin de las reglas, sino que

tambin lo harn los paquetes de respuesta desde el destinatario hacia el remitente. Todas las reglas pass crean automticamente una entrada en la tabla de estado cuando un paquete concuerda con la regla. Esto puede deshabilitarse de manera explcita mediante la opcin no state pass out on fxp0 proto tcp from any to any Esto permite el paso de cualquier trfico TCP saliente en la interfaz fxp0, y tambin permite que el trfico de respuesta pase de vuelta a travs del cortafuegos. El mantenimiento del estado mejora de forma significativa el rendimiento del cortafuegos, ya que las bsquedas de estados son mucho ms rpidas que la evaluacin de un paquete a travs de todas las reglas de filtrado. La opcin de modulacin del estado (modulate state), funciona como keep state, con la diferencia que solo es vlida para paquetes TCP. Con modulate state, el ISN de las conexiones salientes es aleatorio. Esta opcin es til para proteger conexiones que hayan sido iniciadas por ciertos sistemas operativos que realizan un pobre trabajo al escoger ISNs. Para simplificar las reglas, la opcin modulate state puede usarse en reglas que especifican protocolos diferentes de TCP; en estos casos es tratada como keep state. Mantenimiento del estado en paquetes TCP, UDP e ICMP salientes y ISN TCP modulados: pass out on fxp0 to any modulate state proto { tcp, udp, icmp } from any \

Otra ventaja del mantenimiento del estado es que el trfico ICMP correspondiente tambin pasar por el cortafuegos. Por ejemplo, si una conexin TCP pasa a travs del cortafuegos, como se mantiene el estado, y llega una seal de congestin (source quench) ICMP, se buscar su concordancia con la entrada apropiada de la tabla de estado y pasar a travs del cortafuegos. El mbito de una entrada en la tabla de estados es controlado globalmente por la opcin en tiempo de ejecucin state-policy y al nivel de cada regla por las palabras-clave de opciones de estado if-bound y floating. Estas palabras-clave usadas en las reglas tienen el mismo efecto que cuando se usan con la opcin state-policy. Ejemplo: pass out on fxp0 proto to any modulate state (if-bound) { tcp, udp, icmp } from any \

Esta regla dictaminara que para que los paquetes concuerden con la entrada de estado deben transitar por la interfaz fxp0.

Mantenimiento del estado para UDP Algunos dicen que no se puede crear estado con UDP, ya que UDP es un protocolo sin estado. Aunque es cierto que una sesin de comunicacin de UDP no tiene ningn concepto de estado (un comienzo y un final de las comunicaciones explcito), esto no tiene ningn impacto en la capacidad de PF para crear estado para una sesin de UDP. En el caso de protocolos sin paquetes de inicio ni final, PF se limita a mantener un seguimiento del tiempo transcurrido desde que ha pasado un paquete que concuerde. Los valores del tiempo agotado ( timeout) se pueden configurar en la seccin de opciones del fichero pf.conf. Opciones de seguimiento de estado Las reglas de filtrado que crean una entrada en la tabla de estados pueden especificar varias opciones para controlar el comportamiento de la entrada de estado resultante. Estn disponibles las siguientes opciones: max nmero Limita el nmero mximo de entradas de estado que la regla puede crear para nmero. Si se alcanza el mximo, los paquetes que normalmente crearan un estado son rechazados hasta que el nmero de estados existentes decrece por debajo del lmite. no state Impide que la regla cree automticamente una entrada en la tabla de estados. source-track Esta opcin habilita el seguimiento del nmero de estados creados por direccin IP de origen. Esta opcin tiene dos formatos:

source-track rule - El nmero mximo de estados creados por esta regla est limitado por las opciones max-src-nodes y max-src-states de la regla. Solamente las entradas de estado creadas por esta regla en particular cuenta para los lmites de la regla. source-track global - El nmero de estados creados por todas las reglas que usan esta opcin se limita. Cada regla puede especificar diferentes opciones max-src-nodes y max-src-states, sin embargo las entradas de estado creadas por cualquier regla participante cuenta para los lmites individuales de la regla.

El nmero total de direcciones IP de origen rastreados globalmente puede controlarse por medio de la opcin en tiempo de ejecucin src-nodes. max-src-nodes nmero Cuando se usa la opcin source-track, max-src-nodes limitar el nmero de direcciones IP de origen que pueden crear estado de forma simultnea. Esta opcin solo puede usarse con source-track rule. max-src-states nmero Cuando se usa la opcin source-track, max-src-states limitar el nmero de entradas de estado simultneas que pueden crearse por direccin IP de

origen. El alcance de este lmite (o sea, estados creados solamente por esta regla o estados creados por todas las reglas que usan source-track) es dependiente de la opcin source-track especificada. Las opciones se especifican entre parntesis e inmediatamente despus de una de las palabras-clave de estado (keep state, modulate state, or synproxy state). Si hay mltiples opciones, deben ir separadas por comas. En OpenBSD 4.1 y versiones ms recientes, la opcin keep state se utiliza de forma predeterminada implcitamente para todas las reglas de filtrado. A pesar de ello, cuando se especifican opciones de mantener estado, debe especificarse todava una de las palabras-clave por delante de las opciones. Una regla de ejemplo: pass in on $ext_if proto tcp to $web_server port www keep state (max 200, source-track rule, max-src-nodes 100, max-src-states 3) La regla anterior define el siguiente comportamiento:

\ \

Limita a 200 el nmero mximo de estados que esta regla puede crear Habilita el seguimiento del origen; limita la creacin de estados basados en estados creados solo por esta regla Limita a 100 el nmero mximo de nodos que pueden crear estados simultneamente Limita a 3 el nmero mximo de estados simultneos por IP de origen.

Puede ponerse un conjunto separado de restricciones en conexiones TCP con estado que han completado la negociacin en tres pasos (3-way handshake). max-src-conn nmero Limita el nmero mximo de conexiones TCP simultneas que hayan completado la negociacin en tres pasos y que una nica mquina puede realizar. max-src-conn-rate nmero / intervalo Limita la tasa de nuevas conexiones a una cierta cantidad por intervalo de tiempo Ambas opciones invocan automticamente la opcin source-track rule y son incompatibles con source-track global Dado que estos lmites solo son colocados en conexiones TCP que han completado la negociacin en tres pasos, se pueden adoptar acciones ms agresivas en direcciones IP ofensivas. overload <tabla>

Coloca una direccin IP de una mquina ofensiva en la tabla nombrada. flush [global] Cesa cualquier otro estado que concuerde con esta regla y que fuese creado por esta IP de origen. Cuando global es especificado, cesa todos los estados coincidentes con esta IP de origen, sin discernir qu regla cre el estado. Un ejemplo: table block <abusive_hosts> quick from persist <abusive_hosts> \ \

in

pass in on $ext_if proto tcp to $web_server port www flags S/SA keep state (max-src-conn 100, max-src-conn-rate 15/5, overload <abusive_hosts> flush) Esto hace lo siguiente:

Limita a 100 el nmero mximo de conexiones por origen Limita la tasa del nmero de conexiones a 15 en un lapso de 5 segundos Pone la direccin IP de cualquier mquina que quiebre estos lmites en la tabla <abusive_hosts> Para cualquier direccin IP ofensiva, suprime los estados creados por esta regla.

Indicadores de TCP La concordancia de paquetes TCP basada en indicadores es algo que se suele usar para filtrar paquetes TCP que estn intentando abrir una nueva conexin. Aqu se puede ver una lista de indicadores TCP y sus significados:

F : FIN - Finish; final de la sesin S : SYN - Synchronize; indica una peticin para iniciar la sesin R : RST - Reset; abandona una conexin P : PUSH - Push; el paquete es enviado inmediatamente A : ACK - Acknowledgement (acuse de recibo) U : URG - Urgent (urgente) E : ECE - Explicit Congestion Notification Echo (mensaje de congestin explcita) W : CWR - Congestion Window Reduced (ventana de congestin reducida)

Para que PF inspeccione los indicadores TCP durante la evaluacin de una regla se usa la clave flags con la sintaxis siguiente:

flags flags any

check/mask

La parte mask indica a PF que slo inspeccione los indicadores especificados, y la parte check especifica qu indicadores deben estar activos ("on") en la cabecera para que ocurra una concordancia. EL uso de la palabra-clave any permite que cualquier combinacin de indicadores (flags) sea definido en la cabecera. pass in on fxp0 proto tcp from any to any port ssh flags S/SA pass in on fxp0 proto tcp from any to any port ssh Como los indicadores S/SA se definen de forma prederminada, las reglas anteriores son equivalentes. Cada una de estas reglas permite el paso de trfico TCP con el indicador SYN activo, y slo mira a los indicadores SYN y ACK. Un paquete con los indicadores SYN y ECE concordara con la regla anterior, mientras que un paquete con SYN y ACK, o slo con ACK, no concordara. Los indicadores predeterminados pueden sobreescribirse mediante la opcin flags tal como se ha descrito anteriormente. Hay que tener cuidado con el uso de indicadores; hay que entender qu es lo que se est haciendo y por qu, y tener cuidado con los consejos recibidos de otros ya que muchos suelen ser errneos. Algunas personas han sugerido la creacin de estado solo si est activado el indicador SYN, y no otros. Una regla de este tipo terminara as . . . flags S/FSRPAUEW mala idea!! La teora es crear estado solo en el inicio de la sesin TCP, y la sesin debera iniciarse con un indicador SYN, y ningn otro. El problema es que algunos sitios estn empezando a usar el indicador ECN, y cualquier sitio que use ECN e intentara conectar con nosotros sera rechazado por una regla de ese tipo. Un enfoque mucho mejor sera no especificar indicador alguno y dejar a PF que aplique los indicadores predeterminados a las reglas de usted. Si realmente necesita usted especificar indicadores, entonces esta combinacin debera ser segura: . . . flags S/SAFR Aunque esto es prctico y seguro, tambin es necesario comprobar los indicadores FIN y RST si se est normalizando (scrub) el trfico. El proceso de normalizacin de paquetes har que PF descarte cualquier paquete entrante que lleve una combinacin ilegal del indicador TCP (como SYN y RST) y normalice combinaciones potencialmente ambiguas (como SYN y FIN). Proxy de paquetes TCP SYN

Normalmente, cuando un cliente inicia una conexin TCP a un servidor, PF pasa los paquetes del saludo inicial ( handshake) entre los dos extremos segn llegan. Sin embargo, PF tambin puede hacer de proxy para el saludo inicial. Con el modo proxy, PF completar el saludo inicial con el cliente, iniciar un saludo inicial con el servidor, y pasar los paquetes entre los dos. La ventaja de este proceso es que no se enviar ningn paquete al servidor antes de que el cliente complete el saludo inicial. Esto elimina la amenaza de que desbordamientos TCP SYN falseados puedan afectar al servidor, debido a que una conexin de un cliente falseado no podr completar el saludo inicial. El proxy TCP SYN se activa usando la clave synproxy state en las reglas de filtrado. Ejemplo: pass in on $ext_if proto tcp to $web_server port www synproxy state En este ejemplo, PF har de proxy TCP para las conexiones del servidor web. Debido al modo en que funciona synproxy state, tambin incluye la misma funcionalidad que keep state y modulate state. El proxy SYN no funcionar si PF est funcionando sobre un bridge(4). Bloqueo de paquetes falsificados La falsificacin de direcciones (spoofing) es cuando un usuario con malas intenciones falsifica la direccin IP de origen en los paquetes que se transmiten, con el objetivo de esconder su direccin real o de suplantar otro nodo en la red. Una vez que el usuario ha falsificado su direccin, puede lanzar un ataque a nivel de red sin revelar la direccin real de origen del ataque, o intentar obtener acceso a servicios de la red que estn restringidos para ciertas direcciones IP. PF ofrece cierto nivel de proteccin contra la falsificacin de direcciones mediante la clave antispoof: antispoof [log] [quick] for interface [af] log Indica que los paquetes que concuerden se deben registrar en un fichero a travs de pflogd(8). quick Si un paquete concuerda con esta regla, entonces se considerar que es la regla ganadora y finalizar la evaluacin del grupo de reglas. interface La interfaz de red en la que se va a activar la proteccin contra las falsificaciones. Tambin puede ser una lista de interfaces. af

La familia de direcciones para la que se va a activar la proteccin contra las falsificaciones, y que puede ser inet para IPv4 inet6 para IPv6. Ejemplo: antispoof for fxp0 inet Cuando se carga un grupo de reglas, cualquier suceso de la clave antispoof se expandir en dos reglas de filtrado. Asumiendo que la interfaz fxp0 tuviera una direccin IP 10.0.0.1 y una mscara de subred de 255.255.255.0 (o sea, un /24), la regla antispoof anterior se expandira as: block in on ! fxp0 block in inet from 10.0.0.1 to any Estas reglas realizan dos funciones:

inet

from

10.0.0.0/24

to

any

Bloquean todo el trfico que viene desde la red 10.0.0.0/24 que no pase a travs de fxp0. Como la red 10.0.0.0/24 est en la interfaz fxp0, los paquetes que tengan una direccin de origen en ese bloque de red nunca entrarn por ninguna otra interfaz. Bloquean todo el trfico entrante desde 10.0.0.1, la direccin IP en fxp0. La mquina anfitriona no debera enviar nunca paquetes a s misma a travs de una interfaz externa; por lo tanto, se puede considerar que cualquier paquete entrante con una direccin de origen que pertenezca a la mquina es malicioso.

NOTA: Las reglas de filtrado resultantes de la expansin de la regla antispoof tambin bloquearn los paquetes que se enven por la interfaz de loopback hacia direcciones locales. Es recomendable desactivar el filtrado en las interfaces de loopback, pero esto se convierte en necesidad cuando se utilizan reglas contra falsificaciones: set antispoof for fxp0 inet El uso de antispoof se debe restringir a las interfaces a las que se les haya asignado una direccin IP. El uso de antispoof en una interfaz sin una direccin IP resultar en reglas de filtrado como: block drop block drop in inet all in on ! fxp0 inet all skip on lo0

Con estas reglas existe el riesgo de bloquear todo el trfico entrante en todas las interfaces.

Unicast Reverse Path Forwarding PF ofrece la funcionalidad Unicast Reverse Path Forwarding (uRPF). Cuando un paquete se somete a la comprobacin uRPF, se busca la direccin IP de origen del paquete en la tabla de enrutamiento. Si la interfaz de salida hallada en la la tabla de enrutamiento es la misma por la que el paquete acaba de entrar, entonces la comprobacin uRPF permite el paso del paquete. Si las interfaces no coinciden, entonces es posible que el paquete tenga su direccin de origen falsificada. La comprobacin uRPF puede realizarse en los paquetes utilizando la palabraclave urpf-failed en las reglas de filtrado: block in quick from urpf-failed label uRPF Ntese que la comprobacin uRPF solo tiene sentido en un entorno donde el enrutado es simtrico. uRPF proporciona la misma funcionalidad que las reglas antifalsificacin Deteccin pasiva del Sistema Operativo La identificacin pasiva del sistema operativo (OS Fingerprinting u OSFP por sus siglas en ingls) es un mtodo para detectar pasivamente el sistema operativo de una mquina remota basado en ciertas caractersticas contenidas en sus paquetes SYN TCP. Esta informacin puede usarse despus como criterio en las reglas de filtrado. PF determina el sistema operativo remoto comparando las caractersticas de un paquete SYN TCP con el archivo de huellas digitales (fingerprints), que por omisin es /etc/pf.os. Una vez que PF est habilitado, la lista actual de huellas digitales puede verse con la siguiente instruccin: # pfctl -s osfp Dentro de una regla de filtrado, una huella digital puede especificarse mediante una clase de sistema operativo, versin o nivel de subtipo/parche. Cada uno de estos elementos se lista en la salida de la instruccin pfctl de arriba. Para especificar una huella digital en una regla de filtrado se usa la palabra clave os: pass in on $ext_if from any os block in on $ext_if from any block in on $ext_if from any block in on $ext_if from any os unknown OpenBSD keep state os "Windows 2000" os "Linux 2.4 ts"

La clase especial de sistema operativo unknown hace que los paquetes concuerden con la regla si las huellas digitales del sistema operativo son desconocidas. TOME NOTA de lo siguiente:

Las huellas digitales de los sistemas operativos de vez en cuando son incorrectas debido a paquetes falsificados y/o fabricados que son hechos para parecer como si provinieran de un sistema operativo especfico. Ciertas revisiones o niveles de parcheo de un sistema operativo pueden cambiar el comportamiento de la pila y hacer que ya no concuerde con el archivo de huellas digitales o que concuerde con algn otro sistema operativo. El OSFP slo funciona con los paquetes SYN TCP; no funcionar con otro protocolos o con conexiones ya establecidas.

Opciones de IP Por definicin, PF bloquea los paquetes con las opciones IP activadas. Esto puede hacer las cosas ms difciles para utilidades de deteccin de sistemas operativos (OS fingerprinting) como nmap. Si se tiene una aplicacin que requiere el paso de estos paquetes, como multidifusin o IGMP, se puede usar la directiva allow-opts: pass in quick on fxp0 all allow-opts Ejemplo de reglas de filtrado A continuacin tenemos un ejemplo de un grupo de reglas de filtrado. La mquina en la que est funcionando PF acta como cortafuegos entre una red interna pequea e Internet. Slo se muestran las reglas de filtrado; las reglas de queueing, nat, rdr, etc.. se han omitido en este ejemplo. ext_if = "fxp0" int_if = "dc0" lan_net = "192.168.0.0/24" # tabla que contiene todas las direcciones IP asignadas al cortafuegos table <firewall> const { self } # no filtrar en el interfaz loopback set skip on lo0 # normalizar los paquetes entrantes match in all scrub (no-df) # configurar una poltica de denegacin predeterminada

block all # activar la proteccin contra la falsificacin de direcciones # para todas las interfaces block in quick from urpf-failed

# permitir slo conexiones por ssh si provienen # desde la mquina de confianza, 192.168.0.15; # usar "block return" para que se enve un TCP RST # para cerrar inmediatamente las conexiones bloqueadas; # usar "quick" para que las reglas "pass" que # vienen a continuacin no anulen esta regla. block return in quick on $int_if proto tcp from ! 192.168.0.15 \ to $int_if port ssh # permitir el paso del trfico hacia y desde la red local # estas reglas crearn entradas de estado debido a la opcin # por omisin "keep state" que se aplica automticamente pass in on $int_if from $lan_net pass out on $int_if to $lan_net # permitir el paso de paquetes tcp, udp e icmp # salientes en la interfaz externa (Internet); # modular el estado en conexiones tcp y mantener el estado en udp/icmp. pass out on $ext_if proto { tcp udp icmp } all modulate state # permitir el paso de las conexiones entrantes de ssh # en la interfaz externa siempre que su destino NO sea # el cortafuegos (o sea, aquellas cuyo destino sea # una mquina en la red local); registrar el paquete inicial # para que podamos ver ms tarde quin intenta conectar. # Usar el proxy tcp syn para la conexin. # PF aplicar automticamente los indicadores por omisin "S/SA" # a la regla. pass in log on $ext_if proto tcp to ! <firewall> \ port ssh synproxy state

FUNCIONAMIENTO Y CARACTERISTICAS DEL FIREWALL


SISTEMA INTEGRADO SEGURO EN TIEMPO REAL
Un sistema en tiempo real (STR) es aquel sistema digital que interacta activamente con un entorno con dinmica conocida en relacin con sus entradas,

salidas y restricciones temporales, para darle un correcto funcionamiento de acuerdo con los conceptos de predictibilidad, estabilidad, controlabilidad y alcanzabilidad. Los sistemas en tiempo real estn presentes en nuestra vida diaria, prcticamente en todo lo que nos rodea; en los aviones, trenes y automviles; en el televisor, la lavadora o el horno de microondas, en los telfonos celulares y en las centrales telefnicas digitales. Son un elemento imprescindible para garantizar la generacin, transmisin y distribucin de la energa elctrica y para asegurar la calidad y la seguridad de incontables procesos industriales. La principal caracterstica que distingue a los STR de otros tipos de sistemas es el tiempo de interaccin. Sin embargo, antes de continuar es necesario aclarar el significado de las palabras "tiempo" y "real". La palabra "tiempo" significa que el correcto funcionamiento de un sistema depende no slo del resultado lgico que devuelve la computadora, tambin depende del tiempo en que se produce ese resultado. La palabra "real" quiere decir que la reaccin de un sistema a eventos externos debe ocurrir durante su evolucin. Como una consecuencia, el tiempo del sistema (tiempo interno) debe ser medido usando la misma escala con que se mide el tiempo del ambiente controlado (tiempo externo). Los STR se pueden encontrar en lugares muy importantes debido a los servicios que prestan: ellos monitorean, controlan y protegen, por ejemplo, los sistemas de transmisin y distribucin que hacen llegar la energa elctrica a las industrias y tambin a nuestros hogares. Los STR estn presentes en el las reas de monitoreo de trfico de trenes; su importancia es relevante debido a que diariamente se transportan millones de pasajeros. Un STR tiene tres condiciones bsicas:

Interacta con el mundo real (proceso fsico), emite respuestas correctas y cumple restricciones temporales.

En contraste con la definicin de STR, un sistema rpido produce su salida sin considerar las restricciones de tiempo del ambiente con que interacta, para esa clase de sistemas no es importante el tiempo en el cual los datos llegan al sistema digital sino solamente el tiempo en que la salida es producida, en otras palabras nicamente interesa la rapidez de dar la respuesta dentro del intervalo de tiempo cuya medida, entre ms pequea es mejor, sin importar el costo de generar esa respuesta. De igual manera, tiende a confundirse el concepto de STR con el de sistema en lnea: Un sistema en lnea es aquel que siempre debe estar encendido, disponible y generalmente conectado a una red de computadoras y depende de la capacidad del hardware para atender peticiones de servicio y en ningn momento est en sincrona con el mundo real ni tiene restricciones temporales.

ALGORITMO DE SEGURIDAD ADAPTABLE (ASA)


El mtodo de seguridad ASA, orientado a conexin, crea flujos de sesin basados en las direcciones de origen y destino, nmeros de (TCP) ,nmeros de puerto, y marcadores TCP adicionales. Esta informacin se almacena en una tabla, y todos los paquetes entrantes y salientes se comparan con las anotaciones de la tabla. El firewall cuenta con la funcin "alternativa para abrir camino" -"cut-through proxy"- basada en el Sistema de Control de Acceso al Controlador de Acceso del Terminal (TACACS+) o el Servicio de Autenticacin Remota del Usuario mediante Llamada Telefnica (RADIUS). Esta funcin permite que el firewall tenga un rendimiento ms rpido que los servidores proxy. Tambin puede disponer de una funcin llamada Mail Guard que permite la transferencia de correo directamente a un anfitrin - host - de correo interno, eliminando as la necesidad de instalar un anfitrin -host- de transmisin de correo.

CONFIGURACION BASICA Ahora veremos la configuracin bsica de un pix. Notaran que la sintaxis de los comandos del fos es muy parecida a la del ios.nota: limpie la configuracin antes de usar el pix mediante el comando "write erase" (borra la configuracin), y "reload" para reiniciar el firewall. Conectados al pix con un cable de consola. existe una similitud entre el fos y el ios en cuanto a los modos de operacin: pixfirewall>enable pixfirewall# configure terminal pixfirewall(config)# quit pixfirewall# disable pixfirewall> Algo muy prctico, es que desde el modo de configuracin podemos utilizar todos los comandos que se encuentran fuera de este modo. Otra cosa que se encuentra disponible en el ios, y no est disponible en el fos (finesse), es la posibilidad de que los comandos se autocompleten con latecla tab.el siguiente paso ser cambiar el hostname del pix y configurar los passwords del modo no privilegiado y el modo privilegiado. pixfirewall(config)# hostname Arcadia Arcadia(config)# password mal0r Arcadia(config)# enable password MUYmal0r

CONFIGURACIN DEL FIREWALL DE POLTICA BASAD EN ZONAS CON CLI:


1. Crear las zonas para el firewall con el comando zonesecurity 2. Definir clases de trfico con el comando class-maptypeinspect 3. Especificar polticas de firewall con el comando policy-m a p t y p e i n s p e c t 4. Aplicar polticas de firewall a los pares de zonas de origeny destino usando el comando zone-pairsecurity 5. Asignar interfaces de routera las zonas usando elcomando de interface zone-membersecurity.

Você também pode gostar