Openbsd PF:OpenBSD數據包過濾器
象其它平臺上的Netfilter和IP Filter一樣,OpenBSD用戶最愛用PF,這就是他們的防火墻工具。它的功能有網絡地址轉換、管理TCP/IP通訊、提供帶寬控制和數據包分級控制。它還有一些額外的功能,例如被動操作系統檢測。PF是由編寫OpenBSD的同一批人編寫的,所以你完全可以放心使用,它已經經過了很好的評估、設計和編碼以避免暴露其它包過濾器(other packet filters)上的類似漏洞。
下載鏈接:http://down.51cto.com/data/155543
啟用
默認啟用 PF。如果你希望它在系統啟動時禁止,請增加一行
- pf=NO
到文件 /etc/rc.conf.local 中,重啟系統讓它生效。你也可以使用 pfctl(8) 程序來手工啟用或關閉 PF:
- # pfctl -e
- # pfctl -d
這兩個命令分別它們啟用和關閉 PF。 注意它只是啟用和關閉 PF,不會加載規則。規則必須在啟用 PF 之前或其后單獨加載。
配置
在啟動時,PF 從文件 /etc/pf.conf 讀取過濾規則,它是被 rc 腳本加載的。注意 /etc/pf.conf 是默認配置文件,被系統 rc 腳本加載,它只是被 pfctl(8) 加載和解析執行的文本文件,插入到 pf(4) 中。某些應用可能在系統啟動后,從其它文件加載附加的過濾規則。 與任一很好設計的 Unix 應用類似,PF 提供了很好的適應性。
文件 pf.conf 有五個部分:
宏: 用戶定義的變量,保存 IP,接口名稱等。
表: 保存 IP 列表的結構。
選項: 控制 PF 工作的選項。
隊列: 提供帶寬和優先級的控制。
轉換: 網絡地址轉換和端口轉發。
過濾器規則:選擇性阻塞或放行任意網絡接口的包,過濾器規則可以為網絡地址轉換 (NAT) 和端口轉發指定參數。忽略空行,以 # 開始的行是注釋。
控制
啟動之后,可以使用 pfctl(8) 程序來控制 PF 操作。下面是一些例子:
- # pfctl -f /etc/pf.conf 加載文件 pf.conf
- # pfctl -nf /etc/pf.conf 解析文件,但是不加載
- # pfctl -sr 顯示當前的過濾器規則
- # pfctl -ss 顯示當前的狀態表
- # pfctl -si 顯示過濾器統計信息和計數器
- # pfctl -sa 顯示一切信息
完整的命令列表在 pfctl(8) 手冊頁。