PFPacket Filter ,常縮寫為 pf)是一個以 BSD 許可發佈的,常被用於 BSD 系統防火牆軟件。類似於其他系統中的 netfilter (iptables)、 ipfwipfilter

PF
原作者Daniel Hartmeier
開發者OpenBSD 項目組
首次發佈2001年12月1日,​23年前​(2001-12-01
原始碼庫cvsweb.openbsd.org/src/
程式語言C
作業系統OpenBSD 及其他移植平台
類型防火牆
許可協議BSD許可證
網站www.openbsd.org/faq/pf/index.html

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). 

圖書

編輯

外部連結

編輯