Linux命令 pfctl - PF防火墻的配置命令

2022-03-16 16:20 更新

pfctl

PF防火墻的配置命令

補(bǔ)充說(shuō)明

pfctl命令 是PF防火墻的配置命令,PF防火墻( 全稱:Packet Filter )是UNIX LIKE系統(tǒng)上進(jìn)行TCP/ip流量過(guò)濾和網(wǎng)絡(luò)地址轉(zhuǎn)換的軟件系統(tǒng)。PF同樣也能提供TCP/IP流量的整形和控制,并且提供帶寬控制和數(shù)據(jù)包優(yōu)先集控制。PF最早是由Daniel Hartmeier開(kāi)發(fā)的,現(xiàn)在的開(kāi)發(fā)和維護(hù)由Daniel和openBSD小組的其他成員負(fù)責(zé)。

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

激活

要激活pf并且使它在啟動(dòng)時(shí)調(diào)用配置文件,編輯/etc/rc.conf文件,修改配置pf的一行:

pf=yes

重啟操作系統(tǒng)讓配置生效。

也可以通過(guò)pfctl程序啟動(dòng)和停止pf:

pfctl -e
pfctl -d

注意這僅僅是啟動(dòng)和關(guān)閉PF,實(shí)際它不會(huì)載入規(guī)則集,規(guī)則集要么在系統(tǒng)啟動(dòng)時(shí)載入,要在PF啟動(dòng)后通過(guò)命令單獨(dú)載入。

配置

系統(tǒng)引導(dǎo)到在rc腳本文件運(yùn)行PF時(shí)PF從/etc/pf.conf文件載入配置規(guī)則。注意當(dāng)/etc/pf.conf文件是默認(rèn)配置文件,在系統(tǒng)調(diào)用rc腳本文件時(shí),它僅僅是作為文本文件由pfctl裝入并解釋和插入pf的。對(duì)于一些應(yīng)用來(lái)說(shuō),其他的規(guī)則集可以在系統(tǒng)引導(dǎo)后由其他文件載入。對(duì)于一些設(shè)計(jì)的非常好的unix程序,PF提供了足夠的靈活性。

pf.conf文件有7個(gè)部分:

  1. 宏:用戶定義的變量,包括IP地址,接口名稱等等。
  2. 表:一種用來(lái)保存IP地址列表的結(jié)構(gòu)。
  3. 選項(xiàng):控制PF如何工作的變量。
  4. 整形:重新處理數(shù)據(jù)包,進(jìn)行正常化和碎片整理。
  5. 排隊(duì):提供帶寬控制和數(shù)據(jù)包優(yōu)先級(jí)控制。
  6. 轉(zhuǎn)換:控制網(wǎng)絡(luò)地址轉(zhuǎn)換和數(shù)據(jù)包重定向。
  7. 過(guò)濾規(guī)則:在數(shù)據(jù)包通過(guò)接口時(shí)允許進(jìn)行選擇性的過(guò)濾和阻止。

除去宏和表,其他的段在配置文件中也應(yīng)該按照這個(gè)順序出現(xiàn),盡管對(duì)于一些特定的應(yīng)用并不是所有的段都是必須的。

空行會(huì)被忽略,以#開(kāi)頭的行被認(rèn)為是注釋。

控制

引導(dǎo)之后,PF可以通過(guò)pfctl程序進(jìn)行操作,以下是一些例子:

pfctl -f /etc/pf.conf  # 載入 pf.conf 文件
pfctl -nf /etc/pf.conf # 解析文件,但不載入
pfctl -Nf /etc/pf.conf # 只載入文件中的NAT規(guī)則
pfctl -Rf /etc/pf.conf # 只載入文件中的過(guò)濾規(guī)則
pfctl -sn # 顯示當(dāng)前的NAT規(guī)則
pfctl -sr # 顯示當(dāng)前的過(guò)濾規(guī)則
pfctl -ss # 顯示當(dāng)前的狀態(tài)表
pfctl -si # 顯示過(guò)濾狀態(tài)和計(jì)數(shù)
pfctl -sa # 顯示任何可顯示的

完整的命令列表,請(qǐng)參閱pfctl的man手冊(cè)頁(yè)。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)