IP 过滤器允许活动和非活动的包过滤规则集合驻留在内核中。活动规则集合确定正在对传入包和传出包执行的过滤。非活动规则集合也存储规则,但不会使用这些规则,除非使非活动规则集合成为活动规则集合。可以管理、查看和修改活动和非活动的包过滤规则集合。
开始之前
您必须成为分配有 "IP Filter Management"(IP 过滤器管理)权限配置文件的管理员。有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限。
以下示例显示装入到内核中的活动包过滤规则集合的输出。
# ipfstat -io empty list for ipfilter(out) pass in quick on net1 from 192.168.1.0/24 to any pass in all block in on net1 from 192.168.1.10/32 to any
开始之前
您必须成为分配有 "IP Filter Management"(IP 过滤器管理)权限配置文件的管理员。有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限。
以下示例显示非活动的包过滤规则集合的输出。
# ipfstat -I -io pass out quick on net1 all pass in quick on net1 all
如果要执行以下任一任务,请使用以下过程:
激活当前 IP 过滤器正在使用的包过滤规则集合之外的另一个包过滤规则集合。
重新装入最近已更新的同一过滤规则集合。
开始之前
您必须成为分配有 "IP Filter Management"(IP 过滤器管理)权限配置文件的管理员。有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限。
如果要激活完全不同的规则集合,请在单独文件中创建一个新规则集合。
在配置文件中更新当前规则集合。
# ipf -Fa -f filename
filename 中的规则将替换活动规则集合。
以下示例说明如何将一个包过滤规则集替换为其他规则集合。
# ipfstat -io empty list for ipfilter(out) pass in quick on net0 all # ipf -Fa -f /etc/ipf/ipfnew.conf # ipfstat -io empty list for ipfilter(out) block in log quick from 10.0.0.0/8 to any示例 5-2 重新装入更新的包过滤规则集合
以下示例说明如何重新装入当前处于活动状态且已更新的包过滤规则集合。
也可以列出活动的规则集合。
# ipfstat -io empty list for ipfilter (out) block in log quick from 10.0.0.0/8 to any
然后,编辑 /etc/ipf/myorg.ipf.conf 配置文件,刷新服务,接着再次列出活动的规则集合。
# svcadm refresh network/ipfilter # ipfstat -io empty list for ipfilter (out) block in log quick from 10.0.0.0/8 to any block in quick on net1 from 192.168.0.0/12 to any
开始之前
您必须成为分配有 "IP Filter Management"(IP 过滤器管理)权限配置文件的管理员。有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限。
# ipf -F [a|i|o]
从规则集合中删除所有过滤规则。
删除传入包的过滤规则。
删除传出包的过滤规则。
以下示例显示如何从活动的过滤规则集合中删除所有过滤规则。
# ipfstat -io block out log on net0 all block in log quick from 10.0.0.0/8 to any # ipf -Fa # ipfstat -io empty list for ipfilter(out) empty list for ipfilter(in)
将规则附加到现有规则集合在测试或故障排除时可能非常有用。IP 过滤器服务在添加规则时保持启用状态。但是,这些规则将在刷新、重启或启用服务时丢失,除非它们位于 IP 过滤器服务的属性文件中。
开始之前
您必须成为分配有 "IP Filter Management"(IP 过滤器管理)权限配置文件的管理员。有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限。
在命令行上使用 ipf -f - 命令,将规则附加到规则集合。
# echo "block in on net1 proto tcp from 10.1.1.1/32 to any" | ipf -f -
在刷新、重启或启用服务时,这些附加的规则不属于 IP 过滤器配置的一部分。
执行以下命令:
在所选的文件中创建规则集合。
将已创建的规则添加到活动规则集合。
# ipf -f filename
filename 中的规则将添加到活动规则集合的结尾。由于 IP 过滤器使用“最后一个匹配规则”算法,因此,除非使用 quick 关键字,否则所添加的规则将确定过滤优先级。如果包与包含 quick 关键字的规则匹配,则执行该规则的操作,且不检查后续规则。
如果 filename 是其中一个 IP 过滤器配置文件属性的值,则将在启用、重启或刷新服务时重新装入这些规则。否则,附加的规则将提供一个临时的规则集合。
以下示例显示如何从命令行将规则添加到活动的包过滤规则集合。
# ipfstat -io empty list for ipfilter(out) block in log quick from 10.0.0.0/8 to any # echo "block in on net1 proto tcp from 10.1.1.1/32 to any" | ipf -f - # ipfstat -io empty list for ipfilter(out) block in log quick from 10.0.0.0/8 to any block in on net1 proto tcp from 10.1.1.1/32 to any
在内核中创建非活动规则集合在测试或故障排除时可能非常有用。该规则集合可与活动规则集合进行切换,而无需停止 IP 过滤器服务。但是,刷新、重启或启用该服务时,必须添加非活动规则集合。
开始之前
您必须成为分配有 "IP Filter Management"(IP 过滤器管理)权限配置文件的管理员。有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限。
# ipf -I -f filename
filename 中的规则将添加到非活动规则集合的结尾。由于 IP 过滤器使用“最后一个匹配规则”算法,因此,除非使用 quick 关键字,否则所添加的规则将确定过滤优先级。如果包与包含 quick 关键字的规则匹配,则执行该规则的操作,且不检查后续规则。
以下示例显示如何将规则从文件添加到非活动规则集合。
# ipfstat -I -io pass out quick on net1 all pass in quick on net1 all # ipf -I -f /etc/ipf/ipftrial.conf # ipfstat -I -io pass out quick on net1 all pass in quick on net1 all block in log quick from 10.0.0.0/8 to any
在内核中切换到其他规则集合在测试或故障排除时可能非常有用。无需停止 IP 过滤器服务即可激活规则集合。
开始之前
您必须成为分配有 "IP Filter Management"(IP 过滤器管理)权限配置文件的管理员。有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限。
# ipf -s
使用此命令,可以在内核中活动和非活动的规则集合之间切换。请注意,如果非活动规则集合为空,则没有包过滤。
以下示例显示使用 ipf -s 命令如何导致非活动规则集合成为活动规则集合,并导致活动规则集合成为非活动规则集合。
运行 ipf -s 命令之前,ipfstat -I -io 命令的输出显示非活动规则集合中的规则。ipfstat -io 命令的输出显示活动规则集合中的规则。
# ipfstat -io empty list for ipfilter(out) block in log quick from 10.0.0.0/8 to any block in on net1 proto tcp from 10.1.1.1/32 to any # ipfstat -I -io pass out quick on net1 all pass in quick on net1 all block in log quick from 10.0.0.0/8 to any
运行 ipf -s 命令后,ipfstat -I -io 和 ipfstat -io 命令的输出显示两个规则集合的内容已切换。
# ipf -s Set 1 now inactive # ipfstat -io pass out quick on net1 all pass in quick on net1 all block in log quick from 10.0.0.0/8 to any # ipfstat -I -io empty list for inactive ipfilter(out) block in log quick from 10.0.0.0/8 to any block in on net1 proto tcp from 10.1.1.1/32 to any
开始之前
您必须成为分配有 "IP Filter Management"(IP 过滤器管理)权限配置文件的管理员。有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限。
# ipf -I -Fa
以下示例显示如何刷新非活动的包过滤规则集合以便删除所有规则。
# ipfstat -I -io empty list for inactive ipfilter(out) block in log quick from 10.0.0.0/8 to any block in on net1 proto tcp from 10.1.1.1/32 to any # ipf -I -Fa # ipfstat -I -io empty list for inactive ipfilter(out) empty list for inactive ipfilter(in)