PF (Packet Filter) Paquete de Cortafuegos

BASADO EN CONFIGURACIÓN DINÁMICA

(Stateful Rules)

PF (Packet Filter) es el filtro de paquetes o cortafuegos basado en configuración dinámica (stateful rules) de OpenBSD escrito por Darren. Reemplazó al filtro de Darren Reed IPFilter en OpenBSD debido a problemas con la licencia, en concreto que Reed tenía que dar autorización a los desarrolladores de OpenBSD para cambiar el código.

Theo de Raadt dijo cuando se eliminó el IPFilter que "el software que OpenBSD utiliza y distribuye debe ser libre para todos (tanto usuarios como compañías), para cualquier fin que quiera dársele, incluyendo su modificación, uso, mear sobre él o incluso su integración en máquinas trituradoras de bebés o en bombas atómicas para arrojar en Australia". Debido a la incomodidad del equipo de OpenBSD con la licencia de Reed, se optó por reemplazar todo el paquete antes que perder más tiempo intentando negociar la cuestión.

El PF se ha desarrollado desde entonces muy rápidamente, y en OpenBSD 3.8 ya tenía mucha ventaja sobre otras opciones de cortafuegos. La sintaxis de filtrado es muy similar a la de IPFilter, aunque se modificó para hacerla más clara. La traducción de direcciones de red (NAT) y calidad del servicio (QoS) se integraron perfectamente en PF, para permitir mayor flexibilidad. Se alcanzó el QoS integrando colas alternativas (ALTQ) en el propio PF.

El PF puede utilizarse para montar dispositivos cortafuegos de gran flexibilidad, ya que incluye características como pfsync y protocolo de redundancia para direcciones comunes (CARP), authpf (Identificador de sesión), un proxy ftp y otros extras relacionados con el PF.

Se ha portado PF al NetBSD 3.0 por itojun, se instala en la configuración por defecto de FreeBSD desde la versión 5.3 y aparece en DragonFlyBSD desde la versión 1.2.


Comandos y opciones

  • pfctl -e -> activa PF 
  • pfctl -d -> desactiva PF 
  • pfctl -f -> si no aparecen errores de sintaxis en , se cargan reglas nuevas en PF 


Ejemplo de un archivo pf.conf

## Macros 
Interfaz interna (conectada a la red local). #int_if="xl0" 
## Opciones 
Se ajusta la política por defecto para devolver RSTs o ICMPs para tráfico bloqueado #set block-policy return # Ignorar la interfaz loopback por completo. set skip on lo0 
## Reglas de reenrutado 
El tráfico NAT en la interfaz englobada dentro del grupo por defecto de interfaz egress # 
(al que se asigna la interfaz de salida de la ruta por defecto) desde la red local #nat on egress from $int_if:network to any -> (egress) 
## Reglas de filtrado 
Regla de denegación por defecto, todos los paquetes bloqueados registrados en log #block log all 
tráfico desde y hacia la red local, utilizando quick para que # Pasa todo el t 
después no se evalúen las reglas para este caso. Algunas reglas restringirán el ## tráfico local mucho más. pass quick on $int_if all 
estado para que las respuestas # pasen automáticamente. Muchas reglas tendrán aquí má # Permite la salida de todo el tráfico, manteniendo el s reglas, restringiendo el # tráfico de entrada y salida en la interfaz externa (egress). 
pass out keep stat e

Registro

El registro PF se configura por reglas dentro de pf.conf. Los logs se manejan en el formato binario de tcpdump/pcap. 

Se puede acceder a los logs a través del pseudodispositivo de red llamado 'pflog' mediante una utilidad como tcpdump. Alternativamente la utilidad 'pflogd' puede recoger y colocar logs en el archivo binario de log /var/log/pflog, que también puede manejarse con tcpdump, Ethereal y otras aplicaciones similares.

Otras definiciones

Filtro de paquetes (de aquí en adelante denominado PF) es el sistema de OpenBSD para filtrar el tráfico TCP/IP y hacer Network Address Translation. PF también es capaz de normalizar y acondicionamiento de tráfico TCP/IP y proporcionar control de ancho de banda y la priorización de paquetes. PF ha sido parte del núcleo de OpenBSD genérica puesto que OpenBSD 3.0. OpenBSD versiones previas de utilizar un servidor de seguridad diferentes paquete / NAT que ya no se admite.

PF fue desarrollado originalmente por Daniel Hartmeier y ahora es mantenido y desarrollado por el equipo de OpenBSD entero.

Este conjunto de documentos, también disponible en formato PDF, está concebido como una introducción general al sistema de FP como ejecutar en OpenBSD. Incluso si cubre todas las características de los principales PF, que sólo se diseñó para ser utilizado como un suplemento a la páginas de manual, y no como un sustituto para ellos.

Para una completa y visión detallada de lo que PF puede hacer, por favor, empezar por leer el pf (4) página de manual.

Como con el resto de las preguntas frecuentes, este conjunto de documentos se centra en los usuarios de OpenBSD 4.6. Como PF es siempre creciente y en desarrollo, hay cambios y mejoras de entre el 4.6-versión y la versión en OpenBSD-current así como las diferencias entre 4,6 y versiones anteriores. Se informa al lector a ver las páginas del manual para la versión de OpenBSD actualmente están trabajando.

¿Qué es OpenBSD-Firewall?

OpenBSD-Firewall (PF: filtro de paquetes) es una licencia BSD de estado de paquetes de filtro, una pieza central de software de cortafuegos. Y cortafuegos en común se pueden definir como dispositivo dedicado, o software que se ejecuta en otro equipo, que inspecciona el tráfico de red que pasa por él, y niega o permite el paso sobre la base de un conjunto de normas, pero en forma específica, firewall es un método de protección de los hosts y redes conectadas a otros hosts y redes contra los ataques (se define como intentos de ataques de para obtener acceso no autorizado a nuestra red, la interrupción de los servicios, de escuchar o alterar las comunicaciones, el robo de datos o software, alteración de datos o software) desde el exterior y desde dentro.

Comentarios