PF系统简介

2009-05-13 14:38:06来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


包过滤 (以下简称 PF) 是OpenBSD 系统上进行TCP/IP流量过滤和网络地址转换的软件系统。 PF 同样也能提供TCP/IP流量的整形和控制,并且提供带宽控制和数据包优先集控制。PF自openbsd 3.0以后作为内核的默认安装配置。以前版本的openbsd发行版使用一个不同的防火墙/NAT软件包,现在已经不再被支持。
  PF 最早是由 Daniel Hartmeier 开发的,现在的开发和维护由Daniel 和openbsd小组的其他成员负责。
  本文档对openbsd上运行的PF系统做一个简明的简介。本文可被用作是man手册页的补充,而不是它们的替代。本文档涵盖了PF的主要特性。要完整和深入的了解PF能做什么,请阅读pf(4)man手册页。
  本FAQ文档是针对使用openbsd 3.5的用户的。由于pf是不断成长和开发中的,3.5版本和当前版本之间存在软件的变化和功能增强。建议读者阅读正在运行系统的man手册页。
* 基本配置
PF: 开始
激活
要激活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(8)装入并解释和插入pf(4)的。对于一些应用来说,其他的规则集可以在系统引导后由其他文件载入。对于一些设计的非常好的unix程序,PF提供了足够的灵活性。
pf.conf 文件有7个部分:
* 宏:用户定义的变量,包括IP地址,接口名称等等
* 表: 一种用来保存IP地址列表的结构
* 选项: 控制PF如何工作的变量
* 整形: 重新处理数据包,进行正常化和碎片整理
* 排队: 提供带宽控制和数据包优先级控制.
* 转换: 控制网络地址转换和数据包重定向.
* 过滤规则: 在数据包通过接口时允许进行选择性的过滤和阻止
除去宏和表,其他的段在配置文件中也应该按照这个顺序出现,尽管对于一些特定的应用并不是所有的段都是必须的。
空行会被忽略,以#开头的行被认为是注释.
控制
引导之后,PF可以通过pfctl(8)程序进行操作,以下是一些例子:
# 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: 列表和宏
列表
一个列表允许一个规则集中指定多个相似的标准。例如,多个协议,端口号,地址等等。因此,不需要为每一个需要阻止的IP地址编写一个过滤规则,一条规则可以在列表中指定多个IP地址。列表的定义是将要指定的条目放在{ }大括号中。
当pfctl(8)在载入规则集碰到列表时,它产生多个规则,每条规则对于列表中的一个条目。例如:
block out on fxp0 from { 192.168.0.1, 10.5.32.6 } to any
展开后:
block out on fxp0 from 192.168.0.1 to any
block out on fxp0 from 10.5.32.6 to any
多种列表可以在规则中使用,并不仅仅限于过滤规则:
rdr on fxp0 proto tcp from any to any port { 22 80 } -> \

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Akonadi的系统架构和使用

下一篇:FreeBSD 中DNS解析错误hostname nor servname provided解决!