pfctl

PF防火牆的配置命令

補充說明

pfctl命令 是PF防火牆的配置命令,PF防火牆( 全稱:Packet Filter )是UNIX LIKE系統上進行TCP/ip流量過濾和網絡地址轉換的軟件系統。PF同樣也能提供TCP/IP流量的整形和控制,並且提供帶寬控制和數據包優先集控制。PF最早是由Daniel Hartmeier開發的,現在的開發和維護由Daniel和openBSD小組的其他成員負責。

PF防火牆的功能很多,本站只列舉一些基本配置。

激活

要激活pf並且使它在啓動時調用配置文件,編輯/etc/rc.conf文件,修改配置pf的一行:

1pf=yes

重啓操作系統讓配置生效。

也可以通過pfctl程序啓動和停止pf:

1pfctl -e
2pfctl -d

注意這僅僅是啓動和關閉PF,實際它不會載入規則集,規則集要麼在系統啓動時載入,要在PF啓動後通過命令單獨載入。

配置

系統引導到在rc腳本文件運行PF時PF從/etc/pf.conf文件載入配置規則。注意當/etc/pf.conf文件是默認配置文件,在系統調用rc腳本文件時,它僅僅是作爲文本文件由pfctl裝入並解釋和插入pf的。對於一些應用來說,其他的規則集可以在系統引導後由其他文件載入。對於一些設計的非常好的unix程序,PF提供了足夠的靈活性。

pf.conf文件有7個部分:

  1. 宏:用戶定義的變量,包括IP地址,接口名稱等等。
  2. 表:一種用來保存IP地址列表的結構。
  3. 選項:控制PF如何工作的變量。
  4. 整形:重新處理數據包,進行正常化和碎片整理。
  5. 排隊:提供帶寬控制和數據包優先級控制。
  6. 轉換:控制網絡地址轉換和數據包重定向。
  7. 過濾規則:在數據包通過接口時允許進行選擇性的過濾和阻止。

除去宏和表,其他的段在配置文件中也應該按照這個順序出現,儘管對於一些特定的應用並不是所有的段都是必須的。

空行會被忽略,以#開頭的行被認爲是註釋。

控制

引導之後,PF可以通過pfctl程序進行操作,以下是一些例子:

1pfctl -f /etc/pf.conf  # 載入 pf.conf 文件
2pfctl -nf /etc/pf.conf # 解析文件,但不載入
3pfctl -Nf /etc/pf.conf # 只載入文件中的NAT規則
4pfctl -Rf /etc/pf.conf # 只載入文件中的過濾規則
5pfctl -sn # 顯示當前的NAT規則
6pfctl -sr # 顯示當前的過濾規則
7pfctl -ss # 顯示當前的狀態表
8pfctl -si # 顯示過濾狀態和計數
9pfctl -sa # 顯示任何可顯示的

完整的命令列表,請參閱pfctl的man手冊頁。

來源:https://github.com/jaywcjlove/linux-command

最後修改於: Wednesday, January 31, 2024

相關文章:

翻譯: