pf防火墙简介- 发现生命中的美丽- 51CTO技术博客


PF ( 全称:Packet Filter ) --- 包过滤

PF防火墙是 UNIX LIKE 系统上进行 TCP/IP 流量过滤和网络地址转换的软件系统。PF 同样也能提供 TCP/IP 流量的整形和控制,并且提供带宽控制和数据包优先集控制。

PF 最早是由 Daniel Hartmeier 开发的,现在的开发和维护由 Daniel 和 openBSD 小组的其他成员负责。

PF防火墙-基本配置

xx:
要xx pf 并且使它在启动时调用配置文件,编辑 /etc/rc.conf 文件,修改配置pf的一行:
pf=YES

重启操作系统让配置生效。

也可以通过pfctl程序启动和停止pf

# pfctl -e  启动
# pfctl -d  停止

注意这仅仅是启动和关闭PF,实际它不会载入规则集,规则集要么在系统启动时载入,要么在PF启动后通过命令单独载入。

配置:

系统引导到在rc脚本文件运行PF时PF从/etc/pf.conf文件载入配置规则。注意当/etc/pf.conf文件是默认配置文件,在系统调用rc 脚本文件时,它仅仅是作为文本文件由pfctl装入并解释和插入pf的。对于一些应用来说,其他的规则集可以在系统引导后由其他文件载入。对于一些设计的非常好的unix程序,PF提供了足够的灵活性。

pf.conf 文件有7个部分:

* 宏: 用户定义的变量,包括IP地址,接口名称等等
* 表: 一种用来保存IP地址列表的结构
* 选项: 控制PF如何工作的变量
* 整形: 重新处理数据包,进行正常化和碎片整理
* 排队: 提供带宽控制和数据包优先级控制.
* 转换: 控制网络地址转换和数据包重定向.
* 过滤规则: 在数据包通过接口时允许进行选择性的过滤和阻止

除去宏和表,其他的段在配置文件中也应该按照这个顺序出现,尽管对于一些特定的应用并不是所有的段都是必须的。

空行会被忽略,以#开头的行被认为是注释.

# pfctl -sa 查看

控制:

引导之后,PF可以通过pfctl程序进行操作,以下是一些例子:

# pfctl -f /etc/pf.conf 载入 pf.conf 文件
# pfctl -nf /etc/pf.conf 解析文件,但不载入
# pfctl -Nf /etc/pf.conf 只载入文件中的NAT规则
# pfctl -Rf /etc/pf.conf 只载入文件中的过滤规则

# pfctl -sn 显示当前的NAT规则
# pfctl -sr 显示当前的过滤规则
# pfctl -ss 显示当前的状态表
# pfctl -si 显示过滤状态和计数
# pfctl -sa 显示任何可显示的

完整的命令列表,请参阅pfctl的man手册页。

以上转载自网络,具体的来源地址我忘记啦,向原作者致歉!

若做深入的应用或研究:可参考pf官方英文手册,下面给大家提供一个中文版的官方手册  http://www.freebsdchina.org/forum/viewtopic.php?t=24641




郑重声明:资讯 【pf防火墙简介- 发现生命中的美丽- 51CTO技术博客】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——