Skip to content

18.2 Packet Filter(PF)

PF(Packet Filter,包过滤器)是一款源自 OpenBSD 的防火墙,具备 ALTQ(Alternate Queuing,交替队列)等多种功能。ALTQ 是 PF 的流量队列管理机制,用于服务质量(QoS)控制。

18.2.1 启用 PF

启用 PF 前,需先加载内核模块、准备配置文件并启动相关服务,具体步骤如下。

sh
# kldload pf                  # 加载 pf 内核模块,使系统能够识别和使用 PF 防火墙
# cp /usr/share/examples/pf/pf.conf /etc/  # 复制示例文件作为默认配置规则集,否则 pf 无法启动
# service pf enable           # 设置 pf 在系统启动时自动启动
# service pf start            # 启动 pf 服务
  • ① 如果不执行上述操作,系统会提示 pfctl: /dev/pf: No such file or directory,此时可重启系统后再执行 service pf start

  • ② 若未复制配置文件,将提示如下信息:

sh
/etc/rc.d/pf: WARNING: /etc/pf.conf is not readable.

18.2.2 文件结构

PF 防火墙的配置文件结构如下。

sh
/
├── etc
   └── pf.conf
└── usr
    └── share
        └── examples
            └── pf
                └── pf.conf

18.2.3 参考文献