Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1316109
  • 博文数量: 554
  • 博客积分: 10425
  • 博客等级: 上将
  • 技术积分: 7555
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-09 09:49
文章分类

全部博文(554)

文章存档

2012年(1)

2011年(1)

2009年(8)

2008年(544)

分类:

2008-04-10 17:07:36

 
Solaris IP 过滤器包处理
第25 章• Solaris IP 过滤器(概述) 563
包处理顺序包括下列步骤:
 网络地址转换(Network Address Translation,NAT)
将专用IP 地址转换为不同的公共地址,或者将多个专用地址的别名指定为单个公共地
址。当组织具有现有的网络并需要访问Internet 时,通过NAT,该组织可解决IP 地址用
尽的问题。
 IP 记帐
可以分别设置输入规则和输出规则,从而记录所通过的字节数。每次与规则匹配时,都
会将包的字节计数添加到该规则中,并允许收集层叠统计信息。
 片段高速缓存检查
如果当前流量中的下一个包是片段,而且允许前一个包通过,则也将允许包片段通过,
从而绕过状态表和规则检查。
 包状态检查
如果规则中包括keep state,则会自动传递或阻止指定会话中的所有包,具体取决于规
则指明了pass 还是block。
 防火墙检查
可以分别设置输入规则和输出规则,确定是否允许包通过Solaris IP 过滤器传入内核的
TCP/IP 例程或者传出到网络上。
 组
通过分组可以按树的形式编写规则集。
 功能
功能是指要执行的操作。可能的功能包括block、pass、literal 和send ICMP
response。
 快速路由
快速路由指示Solaris IP 过滤器不将包传入UNIX IP 栈进行路由,从而导致TTL递减。
 IP 验证
已验证的包仅通过防火墙循环一次来防止双重处理。
使用Solaris IP 过滤器的指导
 Solaris IP 过滤器由SMF 服务svc:/network/pfil and svc:/network/ipfilter 管理。有关SMF 的
完整概述,请参见《System Administration Guide: Basic Administration》中的第14 章,
“Managing Services (Overview)”。有关与SMF 关联的逐步过程的信息,请参见《System
Administration Guide: Basic Administration》中的第15 章,“Managing Services (Tasks)”。
 Solaris IP 过滤器要求直接编辑配置文件。
 Solaris IP 过滤器是作为Solaris OS 的一部分安装的。缺省情况下,在初次安装后不会激
活Solaris IP 过滤器。要配置过滤,必须编辑配置文件并手动激活Solaris IP 过滤器。可以
通过重新引导系统,或者使用ifconfig 命令检测接口来激活过滤。有关更多信息,请参
见ifconfig(1M) 手册页。有关与启用Solaris IP 过滤器关联的任务,请参见第573 页中的
“配置Solaris IP 过滤器”。
使用Solaris IP 过滤器的指导
564 系统管理指南:IP 服务• 2006 年8 月
 要管理Solaris IP 过滤器,必须能够承担拥有IP 过滤器管理权限配置文件的角色或者成
为超级用户。可以将IP 过滤器管理权限配置文件指定给您创建的角色。要创建角色并将
其指定给用户,请参见《System Administration Guide: Security Services》中的“Configuring
RBAC (Task Map)”。
 IP 网络多路径(IP Network Multipathing, IPMP) 仅支持无状态过滤。
 Sun Cluster 配置不支持使用Solaris IP 过滤器进行过滤。
 Solaris IP 过滤器当前不支持区域间过滤。
使用Solaris IP 过滤器配置文件
Solaris IP 过滤器可用于提供防火墙服务或网络地址转换(network address translation, NAT)。
可以使用可装入的配置文件实现Solaris IP 过滤器。Solaris IP 过滤器包括一个名为/etc/ipf
的目录。可以创建名为ipf.conf、ipnat.conf 和ippool.conf 的配置文件,并将其存储在
/etc/ipf 目录中。当这些文件驻留在/etc/ipf 目录中时,在引导过程中会将其自动装入。
也可以将配置文件存储在其他位置并将其手动装入。有关配置文件的示例,请参见第603
页中的“创建和编辑Solaris IP 过滤器配置文件”。
使用Solaris IP 过滤器规则集
要管理防火墙,请使用Solaris IP 过滤器指定用于过滤网络通信流量的规则集。可以创建以
下类型的规则集:
 包过滤规则集
 网络地址转换(Network Address Translation, NAT) 规则集
此外,还可以创建地址池以引用IP 地址组。然后,可以在规则集中使用这些池。地址池有
助于加快规则处理速度,还可使大型地址组更易于管理。
使用Solaris IP 过滤器的包过滤功能
可以使用包过滤规则集来设置包过滤。使用ipf 命令可以对包过滤规则集进行处理。有关
ipf 命令的更多信息,请参见ipf(1M) 命令。
可以在命令行上使用ipf 命令或在包过滤配置文件中创建包过滤规则。如果希望在引导时
装入包过滤规则,请创建一个名为/etc/ipf/ipf.conf 的配置文件,在其中放置包过滤规
则。如果不希望在引导时装入包过滤规则,请将ipf.conf 文件放置在所选的位置中,然后
使用ipf 命令手动激活包过滤。
使用Solaris IP 过滤器可以维护两种包过滤规则集:活动规则集和非活动规则集。大多数情
况下,会使用活动规则集。但是,使用ipf -I 命令可以将命令操作应用于非活动规则列
表。除非您选择非活动规则列表,否则Solaris IP 过滤器不会使用该列表。非活动规则列表
可提供一个存储规则的位置,而不会影响活动包过滤。
使用Solaris IP 过滤器规则集
第25 章• Solaris IP 过滤器(概述) 565
在传递或阻止包之前,Solaris IP 过滤器会按照从已配置规则列表开头到其结尾的顺序处理
规则列表中的规则。Solaris IP 过滤器可维护用于确定它是否将传递包的标志。它会遍历整
个规则集,并基于最后一个匹配规则来确定是传递包还是阻止包。
此过程有两种例外情况。第一种例外情况是当包与包含quick 关键字的规则匹配时。如果规
则包括quick 关键字,则会针对该规则执行操作,并且不会检查后续规则。第二种例外情况
是当包与包含group 关键字的规则匹配时。如果包与组匹配,则仅会检查标记有该组的规
则。
配置包过滤规则
使用以下语法可创建包过滤规则:
action [in|out] option keyword, keyword...
1. 每个规则都以操作开头。如果包与规则匹配,则Solaris IP 过滤器将操作应用于该包。以
下列表包括应用于包的常用操作。
block 阻止包通过过滤器。
pass 允许包通过过滤器。
log 记录包但不确定是阻止包还是传递包。使用ipmon 命令可查看日志。
count 将包包括在过滤器统计信息中。使用ipfstat 命令可查看统计信息。
skip number 使过滤器跳过number 个过滤规则。
auth 请求由验证包信息的用户程序执行包验证。该程序会确定是传递包还是
阻止包。
preauth 请求过滤器查看预先验证的列表以确定如何处理包。
2. 操作后面的下一个单词必须是in 或out。您的选择将确定是将包过滤规则应用于传入包
还是应用于传出包。
3. 接下来,可以从选项列表中进行选择。如果使用多个选项,则这些选项必须采用此处显
示的顺序。
log 如果规则是最后一个匹配规则,则记录包。使用ipmon 命令可
查看日志。
quick 如果存在匹配的包,则执行包含quick 选项的规则。所有进一
步的规则检查都将停止。
on interface-name 仅当包移入或移出指定接口时才应用规则。
dup-to interface-name 复制包并将interface-name 上的副本向外发送到选择指定的IP
地址。
to interface-name 将包移动到interface-name 上的外发队列。
4. 指定选项后,可以从确定包是否与规则匹配的各关键字中进行选择。必须按此处显示的
顺序使用以下关键字。
使用Solaris IP 过滤器规则集
566 系统管理指南:IP 服务• 2006 年8 月
tos 基于表示为十六进制或十进制整数的服务类型值,对包进行过滤。
ttl 基于包的生存时间值与包匹配。在包中存储的生存时间值指明了包
在被废弃之前可在网络中存在的时间长度。
proto 与特定协议匹配。可以使用在/etc/protocols 文件中指定的任何协
议名称,或者使用十进制数来表示协议。关键字tcp/udp 可以用于
与TCP 包或UDP包匹配。
from/to/all/any 与以下任一项或所有项匹配:源IP 地址、目标IP 地址和端口号。
all 关键字用于接受来自所有源和发往所有目标的包。
with 与和包关联的指定属性匹配。在关键字前面插入not 或no 一词,以
便仅当选项不存在时才与包匹配。
flags 供TCP 用来基于已设置的TCP 标志进行过滤。有关TCP 标志的更
多信息,请参见ipf(4) 手册页。
icmp-type 根据ICMP 类型进行过滤。仅当proto 选项设置为icmp 时才使用此
关键字;如果使用flags 选项,则不使用此关键字。
keep keep-options 确定为包保留的信息。可用的keep-options 包括state 选项和frags
选项。state 选项会保留有关会话的信息,并可以保留在TCP、
UDP和ICMP 包中。frags 选项可保留有关包片段的信息,并将该
信息应用于后续片段。keep-options 允许匹配包通过,而不会查询访
问控制列表。
head number 为过滤规则创建一个新组,该组由数字number 表示。
group number 将规则添加到编号为number 的组而不是缺省组。如果未指定其他
组,则将所有过滤规则放置在组0 中。
以下示例说明如何组织包过滤规则语法以创建规则。要阻止从IP 地址192.168.0.0/16 传入
的流量,需要在规则列表中包括以下规则:
block in quick from 192.168.0.0/16 to any
有关用于编写包过滤规则的完整语法和句法,请参见ipf(4) 手册页。有关与包过滤关联的
任务,请参见第584 页中的“管理Solaris IP 过滤器的包过滤规则集”。有关示例中所示的
IP 地址方案(192.168.0.0/16) 的说明,请参见第2 章。
使用Solaris IP 过滤器的NAT 功能
NAT 可设置映射规则,用于将源IP 地址和目标IP 地址转换为其他Internet 或内联网地址。
这些规则可修改传入或传出IP 包的源地址和目标地址并继续发送包。另外,还可以使用
NAT 将流量从一个端口重定向到另一个端口。在对包进行任何修改或重定向的过程中,
NAT 将维护包的完整性。
使用Solaris IP 过滤器规则集
第25 章• Solaris IP 过滤器(概述) 567
使用ipnat 命令可对NAT 规则列表进行处理。有关ipnat 命令的更多信息,请参见
ipnat(1M) 命令。
可以在命令行上使用ipnat 命令或在NAT 配置文件中创建NAT 规则。NAT 配置规则驻留在
ipnat.conf 文件中。如果希望在引导时装入NAT 规则,请创建一个名为
/etc/ipf/ipnat.conf 的文件,在其中放置NAT 规则。如果不希望在引导时装入NAT 规
则,请将ipnat.conf 文件放置在所选的位置中,然后使用ipnat 命令手动激活包过滤。
配置NAT 规则
使用以下语法创建NAT 规则:
command interface-name parameters
1. 每个规则都以以下命令之一开头:
map 在无法控制的循环过程中将一个IP 地址或网络映射到另一个IP 地址或网
络。
rdr 将包从一个IP 地址和端口对重定向到另一个IP 地址和端口对。
bimap 在外部IP 地址和内部IP 地址之间建立双向NAT。
map-block 建立基于静态IP 地址的转换。此命令基于将地址强制转换为目标范围的
算法。
2. 此命令后面的下一个单词是接口名称,如hme0。
3. 接下来,可以从确定NAT 配置的各种参数中进行选择。其中一些参数包括:
ipmask 指定网络掩码。
dstipmask 指定ipmask 要转换成的地址。
mapport 指定tcp、udp 或tcp/udp 协议以及端口号的范围。
以下示例说明如何组织NAT 规则语法以创建NAT 规则。要重新编写从源地址为
192.168.1.0/24 的de0 设备上传出的包并在外部将该设备的源地址显示为10.1.0.0/16,需
要在NAT 规则集中包括以下规则:
map de0 192.168.1.0/24 -> 10.1.0.0/16
有关用于编写NAT 规则的完整语法和句法,请参见ipnat(4) 手册页。
使用Solaris IP 过滤器的地址池功能
地址池可建立用于命名一组地址/网络掩码对的单个引用。地址池提供可减少将IP 地址与规
则相匹配的时间的进程, 还可使大型地址组更易于管理。
使用Solaris IP 过滤器规则集
568 系统管理指南:IP 服务• 2006 年8 月
地址池配置规则驻留在ippool.conf 文件中。如果希望在引导时装入地址池规则,请创建一
个名为/etc/ipf/ippool.conf 的文件,在其中放置地址池规则。如果不希望在引导时装入
地址池规则,请将ippool.conf 文件放置在所选的位置中,然后使用ippool 命令手动激活
包过滤。
配置地址池
使用以下语法可创建地址池:
table role = role-name type = storage-format number = reference-number
table 定义对多个地址的引用。
role 指定Solaris IP 过滤器中池的角色。此时,可以引用的唯一角色是ipf。
type 指定池的存储格式。
number 指定过滤规则所用的引用号。
例如,要将地址组10.1.1.1 和10.1.1.2 以及网络192.16.1.0 作为池编号13 引用,需要在
地址池配置文件中包括以下规则:
table role = ipf type = tree number = 13
{ 10.1.1.1/32, 10.1.1.2/32, 192.168.1.0/24 };
然后,要在过滤规则中引用池编号13,需要构建与以下示例类似的规则:
pass in from pool/13 to any
请注意,必须在装入包含对池的引用的规则文件之前装入池文件。如果不这样做,则池是
未定义的,如以下输出所示:
# ipfstat -io
empty list for ipfilter(out)
block in from pool/13(!) to any
即使稍后添加池,所添加的池也不会更新内核规则集。另外,还需要重新装入引用池的规
则文件。
有关用于编写包过滤规则的完整语法和句法,请参见ippool(4) 手册页。
使用Solaris IP 过滤器规则集
第25 章• Solaris IP 过滤器(概述) 569
使用pfil STREAMS 模块激活Solaris IP 过滤器
pfil STREAMS 模块是启用Solaris IP 过滤器所必需的。但是,Solaris IP 过滤器不提供将模块
推送到每个接口上的自动机制。相反,pfil STREAMS 模块由SMF 服务svc:/network/pfil
进行管理。要在网络接口上激活过滤,需要首先配置pfil.ap 文件。然后,请激活
svc:/network/pfil 服务,以便为网络接口提供pfil STREAMS 模块。要使STREAMS 模块
生效,必须重新引导系统,或者必须取消检测要过滤的每个网络接口,然后重新检测。要
激活IPv6 包过滤功能,需要检测接口的inet6 版本。有关与激活Solaris IP 过滤器关联的任
务,请参见第573 页中的“配置Solaris IP 过滤器”。
如果未找到网络接口的pfil 模块,请将SMF 服务置于维护状态。导致此情况的最常见原因
是错误编辑了/etc/ipf/pfil.ap 文件。如果将服务置于维护模式,则在过滤日志文件中会
记录事件。
有关与激活Solaris IP 过滤器关联的任务,请参见第573 页中的“配置Solaris IP 过滤器”。
用于Solaris IP 过滤器的IPv6
从Solaris 10 6/06 发行版开始,Solaris IP 过滤器可以支持IPv6。IPv6 包过滤可以基于源/目标
IPv6 地址、包含IPv6 地址的池和IPv6 扩展头进行过滤。
IPv6 在许多方面都与IPv4 类似。但是,这两个版本的IP 的包头和包大小是不同的,这是IP
过滤器的重要注意事项。称为jumbogram 的IPv6 包包含长度超过65,535 字节的数据报。
Solaris IP 过滤器不支持IPv6 jumbogram。要了解有关其他IPv6 功能的更多信息,请参见第
61 页中的“IPv6 的主要特征”。
注– 有关jumbogram 的更多信息,请参阅Internet 工程任务组(Internet Engineering Task
Force, IETF) 的文档“IPv6 Jumbograms”(RFC 2675)。
[]
与IPv6 关联的IP 过滤器任务和与IPv4 关联的任务差异不大。最明显的差异是,前者将-6
选项与某些命令一起使用。ipf 命令和ipfstat 命令都包括用于IPv6 包过滤的-6 选项。使
用带有-6 选项的ipf 命令可以装入和清除IPv6 包过滤规则。要显示IPv6 统计信息,请使用
带有-6 选项的ipfstat 命令。尽管没有用于IPv6 支持的关联选项,ipmon 和ippool 命令仍
支持IPv6。ipmon 命令已增强为包含IPv6 包的日志记录。ippool 命令支持具有IPv6 地址的
包。可以创建仅包含IPv4 地址或IPv6 地址的池,或创建在同一池内既包含IPv4 地址又包含
IPv6 地址的池。
可以使用ipf6.conf 文件创建用于IPv6 的包过滤规则集。缺省情况下,ipf6.conf 配置文件
包括在/etc/ipf 目录中。与其他过滤配置文件一样,ipf6.conf 文件存储在/etc/ipf 目录
中时也会在引导过程中自动装入。您也可以在其他位置创建和存储IPv6 配置文件,然后将
其手动装入。
使用pfil STREAMS 模块激活Solaris IP 过滤器
570 系统管理指南:IP 服务• 2006 年8 月
注– 网络地址转换(Network Address Translation,NAT) 不支持IPv6。
设置用于IPv6 的包过滤规则后,请通过检测接口的inet6 版本激活IPv6 包过滤功能。
 
 
以上文章转自于 : http://developers.sun.com.cn/
阅读(753) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~