本节介绍如何使用 pfil STREAMS 模块激活或取消激活 Oracle Solaris : IP 过滤器以及如何查看 pfil 统计信息。该过程只适用于运行下列 Oracle Solaris 10 发行版之一的系统:
Solaris 10 3/05 发行版
Solaris 10 1/06 发行版
Solaris 10 6/06 发行版
Solaris 10 11/06 发行版
以下任务列表提供了与配置 pfil 模块关联的过程。
表 26–3 使用 pfil 模块(任务列表)
任务 |
说明 |
参考 |
---|---|---|
启用 Oracle Solaris : IP 过滤器 |
缺省情况下不启用 Oracle Solaris : IP 过滤器。必须手动启用它,或者使用 /etc/ipf/ 目录中的配置文件并重新引导系统。 | |
为包过滤激活 NIC |
配置 pfil 模块,以在 NIC 上激活包过滤 | |
在 NIC 上取消激活 Oracle Solaris : IP 过滤器 |
删除 NIC 并允许所有包通过 NIC。 | |
查看 pfil 统计信息。 |
使用 ndd 命令查看 pfil 模块的统计信息,以帮助对 Oracle Solaris : IP 过滤器进行故障排除。 |
Oracle Solaris : IP 过滤器与 Oracle Solaris : 一同安装。但是,缺省情况下不启用包过滤。使用以下过程可以激活 Oracle Solaris : IP 过滤器。
如果您的系统运行的是 Solaris 10 7/07 发行版或更高版本,请执行如何启用 Oracle Solaris : IP 过滤器过程(使用包过滤器钩子)。
承担拥有 IP 过滤器管理权限配置文件的角色,或者成为超级用户。
可以将 IP 过滤器管理权限配置文件指定给您创建的角色。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
启动所选的文件编辑器,然后编辑 /etc/ipf/pfil.ap 文件。
此文件包含主机上网络接口卡 (network interface card, NIC) 的名称。缺省情况下,这些名称已被注释掉。对传输要过滤的网络通信流量的设备名称取消注释。如果未列出您系统的 NIC 名称,则添加一行以指定 NIC。
# vi /etc/ipf/pfil.ap # IP Filter pfil autopush setup # # See autopush(1M) manpage for more information. # # Format of the entries in this file is: # #major minor lastminor modules #le -1 0 pfil #qe -1 0 pfil hme -1 0 pfil (Device has been uncommented for filtering) #qfe -1 0 pfil #eri -1 0 pfil #ce -1 0 pfil #bge -1 0 pfil #be -1 0 pfil #vge -1 0 pfil #ge -1 0 pfil #nf -1 0 pfil #fa -1 0 pfil #ci -1 0 pfil #el -1 0 pfil #ipdptp -1 0 pfil #lane -1 0 pfil #dmfe -1 0 pfil |
通过重新启动 network/pfil 服务实例,激活对 /etc/ipf/pfil.ap 文件所做的更改。
# svcadm restart network/pfil |
创建包过滤规则集。
包过滤规则集包含由 Oracle Solaris : IP 过滤器使用的包过滤规则。如果希望在引导时装入包过滤规则,请编辑 /etc/ipf/ipf.conf 文件以实现 IPv4 包过滤。对于 IPv6 包过滤规则,请使用 /etc/ipf/ipf6.conf 文件。如果不希望在引导时装入包过滤规则,请将这些规则放置在所选的文件中,然后手动激活包过滤。有关包过滤的信息,请参见使用 Oracle Solaris : IP 过滤器的包过滤功能。有关使用配置文件的信息,请参见创建和编辑 Oracle Solaris : IP 过滤器配置文件。
(可选)创建网络地址转换 (network address translation, NAT) 配置文件。
网络地址转换 (Network Address Translation, NAT) 不支持 IPv6。
如果要使用网络地址转换,请创建 ipnat.conf 文件。如果希望在引导时装入 NAT 规则,请创建一个名为 /etc/ipf/ipnat.conf 的文件,在其中放置 NAT 规则。如果不希望在引导时装入 NAT 规则,请将 ipnat.conf 文件放置在所选的位置中,然后手动激活 NAT 规则。
有关 NAT 的更多信息,请参见使用 Oracle Solaris : IP 过滤器的 NAT 功能。
(可选)创建地址池配置文件。
如果要将一组地址作为单个地址池引用,请创建 ipool.conf 文件。如果希望在引导时装入地址池配置文件,请创建一个名为 /etc/ipf/ippool.conf 的文件,在其中放置地址池。如果不希望在引导时装入地址池配置文件,请将 ippool.conf 文件放置在所选的位置中,然后手动激活这些规则。
一个地址池可以只包含 IPv4 地址和 IPv6 地址中的一种,也可以同时包含这两种地址。
有关地址池的更多信息,请参见使用 Oracle Solaris : IP 过滤器的地址池功能。
使用以下方法之一激活 Oracle Solaris : IP 过滤器:
启用 IP 过滤器并重新引导计算机。
# svcadm enable network/ipfilter # reboot |
如果无法在 NIC 上安全地使用 ifconfig unplumb 和 ifconfig plumb 命令,则需要重新引导。
通过使用 ifconfig unplumb 和 ifconfig plumb 命令启用 NIC。然后启用 IP 过滤器。必须检测接口的 inet6 版本,以便实现 IPv6 包过滤。
# ifconfig hme0 unplumb # ifconfig hme0 plumb 192.168.1.20 netmask 255.255.255.0 up # ifconfig hme0 inte6 unplumb # ifconfig hme0 inet6 plumb fec3:f849::1/96 up # svcadm enable network/ipfilter |
有关 ifconfig 命令的更多信息,请参见 ifconfig(1M) 手册页。
如果 /etc/ipf/ipf.conf 文件(或使用 IPv6 时的 /etc/ipf/ipf6.conf 文件)存在,则在引导时启用 Oracle Solaris : IP 过滤器。如果需要在启用 Oracle Solaris : IP 过滤器后在 NIC 上启用过滤,请使用以下过程。
承担拥有 IP 过滤器管理权限配置文件的角色,或者成为超级用户。
可以将 IP 过滤器管理权限配置文件指定给您创建的角色。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
启动所选的文件编辑器,然后编辑 /etc/ipf/pfil.ap 文件。
此文件包含主机上 NIC 的名称。缺省情况下,这些名称已被注释掉。对传输要过滤的网络通信流量的设备名称取消注释。如果未列出您系统的 NIC 名称,则添加一行以指定 NIC。
# vi /etc/ipf/pfil.ap # IP Filter pfil autopush setup # # See autopush(1M) manpage for more information. # # Format of the entries in this file is: # #major minor lastminor modules #le -1 0 pfil #qe -1 0 pfil hme -1 0 pfil (Device has been uncommented for filtering) #qfe -1 0 pfil #eri -1 0 pfil #ce -1 0 pfil #bge -1 0 pfil #be -1 0 pfil #vge -1 0 pfil #ge -1 0 pfil #nf -1 0 pfil #fa -1 0 pfil #ci -1 0 pfil #el -1 0 pfil #ipdptp -1 0 pfil #lane -1 0 pfil #dmfe -1 0 pfil |
通过重新启动 network/pfil 服务实例,激活对 /etc/ipf/pfil.ap 文件所做的更改。
# svcadm restart network/pfil |
使用以下方法之一启用 NIC:
重新引导计算机。
# reboot |
如果无法在 NIC 上安全地使用 ifconfig unplumb 和 ifconfig plumb 命令,则需要重新引导。
将 ifconfig 命令与 unplumb 和 plumb 选项一起使用,以启用要过滤的 NIC。必须检测每个接口的 inet6 版本,以便实现 IPv6 包过滤。
# ifconfig hme0 unplumb # ifconfig hme0 plumb 192.168.1.20 netmask 255.255.255.0 up # ifconfig hme0 inet6 unplumb # ifconfig hme0 inet6 plumb fec3:f840::1/96 up |
有关 ifconfig 命令的更多信息,请参见 ifconfig(1M) 手册页。
如果需要在 NIC 上停止过滤包,请使用以下过程。
承担拥有 IP 过滤器管理权限配置文件的角色,或者成为超级用户。
可以将 IP 过滤器管理权限配置文件指定给您创建的角色。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
启动所选的文件编辑器,然后编辑 /etc/ipf/pfil.ap 文件。
此文件包含主机上 NIC 的名称。已经用于过滤网络通信流量的 NIC 被取消注释。注释掉不再希望用来过滤网络通信流量的设备名称。
# vi /etc/ipf/pfil.ap # IP Filter pfil autopush setup # # See autopush(1M) manpage for more information. # # Format of the entries in this file is: # #major minor lastminor modules #le -1 0 pfil #qe -1 0 pfil #hme -1 0 pfil (Commented-out device no longer filters network traffic) #qfe -1 0 pfil #eri -1 0 pfil #ce -1 0 pfil #bge -1 0 pfil #be -1 0 pfil #vge -1 0 pfil #ge -1 0 pfil #nf -1 0 pfil #fa -1 0 pfil #ci -1 0 pfil #el -1 0 pfil #ipdptp -1 0 pfil #lane -1 0 pfil #dmfe -1 0 pfil |
使用以下方法之一取消激活 NIC:
重新引导计算机。
# reboot |
如果无法在 NIC 上安全地使用 ifconfig unplumb 和 ifconfig plumb 命令,则需要重新引导。
将 ifconfig 命令与 unplumb 和 plumb 选项一起使用,以取消激活 NIC。必须取消检测每个接口的 inet6 版本,以便取消激活 IPv6 包过滤。请执行以下步骤。系统中的样例设备为 hme:
标识取消激活的设备的主要编号。
# grep hme /etc/name_to_major hme 7 |
显示 hme0 的当前 autopush 配置。
# autopush -g -M 7 -m 0 Major Minor Lastminor Modules 7 ALL - pfil |
删除 autopush 配置。
# autopush -r -M 7 -m 0 |
打开设备并为设备指定 IP 地址。
# ifconfig hme0 unplumb # ifconfig hme0 plumb 192.168.1.20 netmask 255.255.255.0 up # ifconfig hme0 inet6 unplumb # ifconfig hme0 inet6 plumb fec3:f840::1/96 up |
有关 ifconfig 命令的更多信息,请参见 ifconfig(1M) 手册页。
在对 Oracle Solaris : IP 过滤器进行故障排除时,可以查看 pfil 统计信息。
承担拥有 IP 过滤器管理权限配置文件的角色,或者成为超级用户。
可以将 IP 过滤器管理权限配置文件指定给您创建的角色。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。
查看 pfil 统计信息。
# ndd -get /dev/pfil qif_status |
以下示例显示如何查看 pfil 统计信息。
# ndd -get /dev/pfil qif_status ifname ill q OTHERQ num sap hl nr nw bad copy copyfail drop notip nodata notdata QIF6 0 300011247b8 300011248b0 6 806 0 4 9 0 0 0 0 0 0 0 dmfe1 3000200a018 30002162a50 30002162b48 5 800 14 171 13681 0 0 0 0 0 0 0 |