PF ( Packet Filter , también escrito pf ) es un filtro de paquetes con estado y licencia BSD , una pieza central de software para 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 exhaustivamente y la mayor parte del código fue escrito por Henning Brauer. Henning Brauer es actualmente el principal desarrollador de PF.
La sintaxis de filtrado es similar a IPFilter, con algunas modificaciones para hacerlo más claro. La traducción de direcciones de red (NAT) y la calidad de servicio (QoS) se han integrado en PF. Funciones como pfsync y CARP para conmutación por error y redundancia, authpf para autenticación de sesión y ftp-proxy para facilitar el firewall 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 de pf.conf y los registros se proporcionan desde PF mediante una interfaz de pseudored llamada pflog , que es la única forma de extraer datos del modo de nivel de kernel para programas de nivel de usuario. Los registros pueden monitorearse usando utilidades estándar como tcpdump , que en OpenBSD se ha ampliado especialmente para este propósito, o guardarse en el disco en el formato binario tcpdump / pcap usando el demonio pflogd .
Además de ejecutarse en su plataforma principal OpenBSD , PF ha sido portado a muchos otros sistemas operativos; sin embargo, existen grandes diferencias en las capacidades. Algunos puertos datan de hace muchos años. OpenBSD siempre tiene la última versión con más funciones.
PF se utiliza actualmente en: