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個部分:
- 宏:用戶定義的變量,包括IP地址,接口名稱等等。
- 表:一種用來保存IP地址列表的結構。
- 選項:控制PF如何工作的變量。
- 整形:重新處理數據包,進行正常化和碎片整理。
- 排隊:提供帶寬控制和數據包優先級控制。
- 轉換:控制網絡地址轉換和數據包重定向。
- 過濾規則:在數據包通過接口時允許進行選擇性的過濾和阻止。
除去宏和表,其他的段在配置文件中也應該按照這個順序出現,儘管對於一些特定的應用並不是所有的段都是必須的。
空行會被忽略,以#開頭的行被認爲是註釋。
控制
引導之後,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
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。