15.2 Packet Filter(PF)
PF(Packet Filter,包过滤器)是一款由 OpenBSD 移植而来的防火墙,提供了大量功能,包括 ALTQ (Alternate Queuing,交错队列) 等。
启用 PF
# kldload pf # ① 加载内核模块
# 复制示例文件作为默认配置规则集文件,否则 pf 无法启动 ②
# cp /usr/share/examples/pf/pf.conf /etc/
# service pf enable # 设置 pf 开机启动
# service pf start # 启动 pf① 如不做,则提示
pfctl: /dev/pf: No such file or directory。或者你重启再service pf start。② 否则提示:
/etc/rc.d/pf: WARNING: /etc/pf.conf is not readable.pfctl
pfctlpf 的管理命令为 pfctl,常用操作示例如下:
# 启动 pf,相当于 service pf start
# pfctl -e
# 即禁止规则。几乎相当于 service pf stop(停止防火墙)
# pfctl -d
# 加载规则集文件中的规则
# pfctl -f /etc/pf.conf
# 解析规则,但不加载。-f 参数还可以与其他参数配合,如 -N 表示只载入 NAT 规则,-R 表示只载入过滤规则,-A 只载入队列规则,-O 只载入选项规则
# pfctl -nf /etc/pf.conf
# 查看 pf 所有对象信息。如果想查看特定对象信息,可以用 nat、queue、rules、Anchors、states、Sources、info、Running、labels、timeouts、memory、Tables、osfp、Interfaces 替换 all
# pfctl -s all
# 清理 pf 所有规则
# pfctl -F all如果想查看特定规则,可以用 nat、queue、rules、states、Sources、info、Tables、osfp 替换 all。
不过以上操作并没有对规则的管理,因此还需要修改规则集文件,常用示例如下:
可能用到的规则集文件 /etc/pf.conf 如下:
保存文件,接下来在终端执行命令:
最后更新于
这有帮助吗?