Mostrando entradas con la etiqueta Packet Filter. Mostrar todas las entradas
Mostrando entradas con la etiqueta Packet Filter. Mostrar todas las entradas

sábado, 31 de diciembre de 2011

PF: OS based redirection

Supongamos que tenemos en nuestra red dos servidores web, a uno solo pueden entrar los clientes que corran Windows, a los otros los que usan GNU/Linux. ¿Es posible hacer esto de alguna manera sencilla?, la respuesta es si!. Utilizando PF, OS Fingerprints y una regla de redirección.

OS Fingerprints es un mecanismo que tiene PF para determinar el sistema operativo que esta utilizando un host en concreto que pasa por el firewall, lo hace mediante la examinación de algunos campos del header del paquete, como por ejemplo el TTL, y acorde a lo establecido en el archivo /etc/pf.os determina el sistema operativo al que corresponde el paquete.

Unix: Stateful firewalls vs. Non-Stateful firewalls

Hace unos días tuve una interesante discusión en Twitter sobre las ventajas de utilizar como firewall Packet Filter contra Netfilter (IPTables). Cabe destacar que tengo mas conocimientos de PF que de IPTables, por lo cual conozco más las ventajas prácticas del primero que del último.

En teoría de firewalls, encontramos los denominados stateful firewalls, son firewalls que actúan en layer 3 del modelo OSI/ISO (network) donde su punto fuerte es el poder de inspeccionar estados, y saber si los mismos corresponden a una conexión ya existente o no. Esto es posible lograrlo en Linux mediante connectrion tracking utilizando los módulos conntrack, y  así mantener un record de los estados existentes en el sistema operativo.

Tanto Packet Filter como IP Filter utilizan una estructura denominada tabla de estados (o status table), para mantener dicha información. Si un paquete IP ingresa al firewall, se va a buscar mediante una previa inspección del header si el mismo forma parte de una conexión ya existente, y si esto es cierto no se van a inspeccionar reglas de filtrado, sino que el paquete va a pasar directamente. Si un paquete llega por primera vez al firewall, el mismo si matchea con alguna regla, entonces va a crear una entrada en la tabla de estados del firewall, y ya, mientras la conexión siga viva no va a pasar por dicha inspección de reglas.

sábado, 24 de diciembre de 2011

FreeBSD: Enabling ALTQ support for PF queues

Hace unos días, en DC Solutions migramos en un cliente un Firewall que utilizaba la tecnología FreeBSD/IPFilter, a FreeBSD/Packet Filter a fin de poder soportar queues para permitiri una priorización del tráfico VoIP y además aliviar el bug descrito en este post IPF NAT entry causes kernel crash.
No voy a describir las ventajas de utilizar una tecnología como PF sobre IPF (aunque pueden ver este post), sino que solo voy a comentarles como darle soporte a las queues dentro del kernel de FreeBSD, el cual no se encuentra soportado por default dentro del kernel instalado con el sistema operativo, sino que debemos activarlo modificando el archivo de configuración del kernel.