在 Oracle® Solaris 11.2 中确保网络安全

退出打印视图

更新时间: 2014 年 9 月
 
 

管理 IP 过滤器的包过滤规则集合

IP 过滤器允许活动和非活动的包过滤规则集合驻留在内核中。活动规则集合确定正在对传入包和传出包执行的过滤。非活动规则集合也存储规则,但不会使用这些规则,除非使非活动规则集合成为活动规则集合。可以管理、查看和修改活动和非活动的包过滤规则集合。


注 -  以下过程提供了 IPv4 网络的示例。对于 IPv6 包,使用 –6 选项,如如何显示 IP 过滤器服务缺省值 中的Step 2 所述。

如何查看活动的包过滤规则集合

开始之前

您必须成为分配有 "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 中确保用户和进程的安全 中的使用所指定的管理权限

  1. 选择以下步骤之一:
    • 如果要激活完全不同的规则集合,请在单独文件中创建一个新规则集合。

    • 在配置文件中更新当前规则集合。

  2. 删除当前的规则集合,并装入新规则集合。
    # ipf -Fa -f filename

    filename 中的规则将替换活动规则集合。


    注 -  请勿使用 ipf -Dsvcadm restart 之类的命令来装入更新的规则集合。此类命令会公开您的网络,因为它们在装入新规则集合之前禁用防火墙。
示例 5-1  激活不同的包过滤规则集合

以下示例说明如何将一个包过滤规则集替换为其他规则集合。

# 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]
    –a

    从规则集合中删除所有过滤规则。

    –i

    删除传入包的过滤规则。

    –o

    删除传出包的过滤规则。

示例 5-3  删除包过滤规则集合

以下示例显示如何从活动的过滤规则集合中删除所有过滤规则。

# 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 过滤器配置的一部分。

    • 执行以下命令:

      1. 在所选的文件中创建规则集合。

      2. 将已创建的规则添加到活动规则集合。

        # ipf -f filename

        filename 中的规则将添加到活动规则集合的结尾。由于 IP 过滤器使用“最后一个匹配规则”算法,因此,除非使用 quick 关键字,否则所添加的规则将确定过滤优先级。如果包与包含 quick 关键字的规则匹配,则执行该规则的操作,且不检查后续规则。

    如果 filename 是其中一个 IP 过滤器配置文件属性的值,则将在启用、重启或刷新服务时重新装入这些规则。否则,附加的规则将提供一个临时的规则集合。

示例 5-4  将规则附加到活动的包过滤规则集合

以下示例显示如何从命令行将规则添加到活动的包过滤规则集合。

# 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 中确保用户和进程的安全 中的使用所指定的管理权限

  1. 在所选的文件中创建规则集合。
  2. 将已创建的规则添加到非活动规则集合。
    # ipf -I -f filename

    filename 中的规则将添加到非活动规则集合的结尾。由于 IP 过滤器使用“最后一个匹配规则”算法,因此,除非使用 quick 关键字,否则所添加的规则将确定过滤优先级。如果包与包含 quick 关键字的规则匹配,则执行该规则的操作,且不检查后续规则。

示例 5-5  将规则附加到非活动规则集合

以下示例显示如何将规则从文件添加到非活动规则集合。

# 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

    使用此命令,可以在内核中活动和非活动的规则集合之间切换。请注意,如果非活动规则集合为空,则没有包过滤。


    注 -  刷新、重启或启用 IP 过滤器服务时,将会恢复 IP 过滤器服务属性文件中的规则。不会恢复非活动规则集合。
示例 5-6  在活动和非活动的包过滤规则集合之间切换

以下示例显示使用 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 -ioipfstat -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

    注 -  如果随后运行 ipf -s,则空的非活动规则集合将成为活动规则集合。空的活动规则集合意味着会执行过滤。
示例 5-7  从内核中删除非活动的包过滤规则集合

以下示例显示如何刷新非活动的包过滤规则集合以便删除所有规则。

# 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)