PF ( Packet Filter , también escrito pf ) es un filtro de paquetes con estado con licencia BSD , un software central para el cortafuegos . Es comparable a netfilter ( iptables ), ipfw e ipfilter .
PF fue desarrollado para OpenBSD , pero ha sido portado a muchos otros sistemas operativos .
PF fue diseñado originalmente como reemplazo de IPFilter de Darren Reed , del cual deriva gran parte de su sintaxis de reglas. IPFilter fue eliminado del árbol CVS de OpenBSD el 30 de mayo de 2001 debido a las preocupaciones de los desarrolladores de OpenBSD con su licencia. [1]
La versión inicial de PF fue escrita por Daniel Hartmeier. [2] Apareció en OpenBSD 3.0, que se lanzó el 1 de diciembre de 2001. [3]
Posteriormente, Henning Brauer y Ryan McBride [4] lo rediseñaron en profundidad y la mayor parte del código fue escrito por Henning Brauer. Henning Brauer es actualmente el desarrollador principal de PF.
La sintaxis de filtrado es similar a IPFilter, con algunas modificaciones para que resulte más clara. La traducción de direcciones de red (NAT) y la calidad de servicio (QoS) se han integrado en PF. Características como pfsync y CARP para conmutación por error y redundancia, authpf para autenticación de sesión y ftp-proxy para facilitar la protección con cortafuegos del difícil protocolo FTP , también han ampliado PF. Además, PF admite SMP ( multiprocesamiento simétrico ) y STO (opciones de seguimiento con estado).
Una de las muchas características innovadoras es el registro de PF. El registro de PF se puede configurar por regla dentro del archivo pf.conf y los registros se proporcionan desde PF mediante una interfaz de pseudo-red llamada pflog , que es la única forma de extraer datos del modo de nivel de núcleo para programas de nivel de usuario. Los registros se pueden monitorear utilizando utilidades estándar como tcpdump , que en OpenBSD se ha ampliado especialmente para este propósito, o se pueden guardar en el disco en el formato binario tcpdump / pcap utilizando el demonio pflogd .
Además de ejecutarse en su plataforma nativa OpenBSD , PF se ha adaptado a muchos otros sistemas operativos, sin embargo, existen diferencias importantes en sus capacidades. Algunas adaptaciones datan de hace muchos años. OpenBSD siempre tiene la última versión con la mayor cantidad de funciones.
Actualmente el PF se utiliza en: