PF防火墙

PF
原作者Daniel Hartmeier
開發者OpenBSD 项目组
首次发布2001年12月1日,​22年前​(2001-12-01
源代码库cvsweb.openbsd.org/src/
编程语言C
操作系统OpenBSD 及其他移植平台
类型防火墙
许可协议BSD许可证
网站www.openbsd.org/faq/pf/index.html

PFPacket Filter ,常缩写为 pf)是一个以 BSD 许可发布的,常被用于 BSD 系统的防火墙软件。类似于其他系统中的 netfilter (iptables)、 ipfw 或 ipfilter。

PF 起初是为 OpenBSD 开发的,但已被移植到许多其他操作系统

历史

PF 的开发始于 OpenBSD 开发人员不满 Darren Reed 开发的 IPFilter 防火墙所用的许可证,而在 IPFilter 于 2001 年 5 月 30 日被从 OpenBSD 的 CVS 源码树中删除后,PF 被设计来取代 IPFilter。它的大部分规则语法也都源自 IPFilter。[1]

PF 的最初版本由 Daniel Hartmeier 编写, [2]并随 OpenBSD 3.0 于 2001 年 12 月 1 日发布[3],在此后 Henning Brauer 和 Ryan McBride [4]对其进行了深度的重新设计,大部分代码由 Henning Brauer 编写。目前 Henning Brauer 是 PF 的主要开发者。

特征

语法方面,PF 的过滤语法与 IPFilter 类似,但进行了一些修改以使其更清晰。

功能方面,PF 支持 SMP(对称多处理)和 STO(状态跟踪选项),也集成了常见的网络地址转换 (NAT) 和服务质量 (QoS) 管理模块。在扩展方面,PF 支持用于故障转移冗余的 pfsync 和 CARP 、用于会话身份验证的 authpf ,以及使配置复杂的 FTP 协议防火墙更容易的 ftp-proxy 等。

PF 的日志记录是众多创新功能之一。用户可在 pf.conf 中按规则进行配置 PF 的日志记录,被记录的日志会由 PF 通过名为 pflog 的伪网络接口(pseudo-network interface)向应用程序提供。这是从内核态将数据提取至用户态程序的唯一方法。记录下的日志既可以通过 tcpdump (该实用程序在 OpenBSD 中已专门为此目的进行了扩展) 等常见工具来监视,也可以使用 pflogd 守护程序tcpdump / pcap 二进制格式保存到磁盘。

其他平台上的移植版本

除了在其开发平台 OpenBSD 上运行之外,PF 还被移植到了许多其他操作系统,但功能上存在重大差异。有些移植版的历史可以追溯到很多年前,因此与当下 OpenBSD 上拥有最多功能的最新版本差异巨大。

PF 目前被用于:

另见

参考

  1. ^ de Raadt, Theo. CVS: cvs.openbsd.org: src; Remove ipf.. 2001-05-30 [2018-08-20]. (原始内容存档于2022-04-10). 
  2. ^ Hartmeier, Daniel. A new stateful packet filter for OpenBSD. 2017-09-26 [2018-08-20]. (原始内容存档于2023-03-25). 
  3. ^ OpenBSD 3.0. 2001-12-01 [2018-08-20]. (原始内容存档于2018-10-08). 
  4. ^ Brauer, Henning. Henning Brauer Consulting: pf. [2018-08-20]. (原始内容存档于2020-08-10). 
  5. ^ FreeBSD/amd64 5.3-RELEASE Release Notes. 2004-11-03 [2018-08-20]. (原始内容存档于2010-12-23). 
  6. ^ xnu/xnu-1456.1.26/bsd/net/pf.c.auto.html. Apple, Inc. 2008-12-05 [2018-08-20]. (原始内容存档于2023-07-16). 
  7. ^ Changes and NetBSD News in 2005: 23 Dec 2005 - NetBSD 3.0 released. [2018-08-20]. (原始内容存档于2020-01-17). 
  8. ^ pf(4) manual page. DragonFly Kernel Interfaces Manual. 2011-01-02 [2018-08-20]. (原始内容存档于2022-04-10). 
  9. ^ Introduction to Packet Filter. Securing the Network in Oracle® Solaris 11.3. Oracle Corporation. March 2018 [2018-08-20]. (原始内容存档于2022-12-22). 

图书

  • Hansteen, Peter N.M. Book of PF: A No-Nonsense Guide to the OpenBSD Firewall 3. No Starch Press. October 2014: 248 [2023-09-18]. ISBN 978-1-59327-589-1. (原始内容存档于2023-05-07). 
  • Jeremy C. Reed (编). The OpenBSD PF Packet Filter Book: PF for NetBSD, FreeBSD, DragonFly, and OpenBSD. Reed Media Services. August 2006 [2023-09-18]. ISBN 978-0-9790342-0-6. (原始内容存档于2014-05-04). 
  • Artymiak, Jacek. Building Firewalls with OpenBSD and pf. Selbstverlag. 2003 [2023-09-18]. ISBN 978-8391665114. (原始内容存档于2022-04-10). 

外部链接

OpenBSD计划
操作系统
  • OpenBSD
    • 时间线英语Timeline of OpenBSD
    • 安全英语OpenBSD security features
相关计划
  • CARP
  • LibreSSL
  • OpenSSH
  • OpenBGPD
  • OpenIKED英语OpenIKED
  • OpenOSPFD
  • OpenNTPD
  • OpenSMTPD英语OpenSMTPD
  • PF英语PF (firewall)
  • sndio英语sndio
  • spamd英语spamd
  • Systrace英语Systrace
  • Tmux
  • Xenocara英语Xenocara
  • W^X英语W^X
人物
资源
  • OpenBSD Journal英语OpenBSD Journal
FreeBSD项目
FreeBSD
  • FreeBSD核心团队英语FreeBSD Core Team
  • FreeBSD文档许可证英语FreeBSD Documentation License
  • FreeBSD基金会英语FreeBSD Foundation
  • FreeBSD Ports
  • 历史英语History of FreeBSD
子系统
  • busdma英语busdma
  • GEOM英语GEOM
  • Ipfirewall
  • FreeBSD jail
  • Netgraph英语Netgraph
  • OpenPAM英语OpenPAM
  • OpenBSM英语OpenBSM
  • pf英语PF (firewall)
  • Soft updates英语Soft updates
  • ULE scheduler英语ULE scheduler
  • bhyve英语bhyve
  • 高可用存储
  • portsnap英语portsnap
  • kqueue
  • geom raid5英语geom raid5
  • geli英语Geli (software)
  • moused英语moused
  • Vinum volume manager英语Vinum volume manager
人物
  • Jordan Hubbard英语Jordan Hubbard
  • Poul-Henning Kamp英语Poul-Henning Kamp
  • Mike Karels英语Michael J. Karels
  • Ben Laurie英语Ben Laurie
  • Sam Leffler英语Samuel J Leffler
  • Marshall Kirk McKusick英语Marshall Kirk McKusick
  • Diomidis Spinellis英语Diomidis Spinellis
  • Robert Watson英语Robert Watson (computer scientist)
  • Dru Lavigne英语Dru Lavigne
衍生品英语List of products based on FreeBSD
Linux
应用软件
发行版
  • Endian Firewall英语Endian Firewall
  • IPFire英语IPFire
  • LEDE
  • OpenWrt
  • SmoothWall英语SmoothWall
  • Zeroshell英语Zeroshell
BSD
应用软件
  • IPFilter
  • ipfirewall
  • NPF英语NPF (firewall)
  • PF英语PF (firewall)
    • pfsync英语pfsync
发行版
macOS
  • Little Snitch英语Little Snitch
  • NetBarrier X4英语NetBarrier X4
  • PeerGuardian英语PeerGuardian
  • VirusBarrier X6英语Intego
Windows
商业软件
免費增值
开源软件
  • PeerBlock
  • PeerGuardian英语PeerGuardian
基于上下文的访问控制英语Context-based access control
  • Palo Alto PA-Series
  • F5 BIG-IP iSeries
  • FortiGate Series英语Fortinet
  • Novell BorderManager英语Novell BorderManager
  • Vyatta英语Vyatta
  • ZoneAlarm Z100G英语ZoneAlarm Z100G
  • Zorp firewall英语Zorp firewall
  • Comparison of firewalls英语Comparison of firewalls