系统管理指南:IP 服务

管理 Oracle Solaris : IP 过滤器的包过滤规则集

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

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

  1. 承担拥有 IP 过滤器管理权限配置文件的角色,或者成为超级用户。

    可以将 IP 过滤器管理权限配置文件指定给您创建的角色。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 查看装入到内核中的活动包过滤规则集。


    # ipfstat -io
    

示例 26–2 查看活动的包过滤规则集

以下示例显示装入到内核中的活动包过滤规则集的输出。


# ipfstat -io
empty list for ipfilter(out)
pass in quick on dmfe1 from 192.168.1.0/24 to any
pass in all
block in on dmfe1 from 192.168.1.10/32 to any

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

  1. 承担拥有 IP 过滤器管理权限配置文件的角色,或者成为超级用户。

    可以将 IP 过滤器管理权限配置文件指定给您创建的角色。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 查看非活动的包过滤规则集。


    # ipfstat -I -io
    

示例 26–3 查看非活动的包过滤规则集

以下示例显示非活动的包过滤规则集的输出。


# ipfstat -I -io
pass out quick on dmfe1 all
pass in quick on dmfe1 all

Procedure如何激活不同的或更新的包过滤规则集

如果要执行以下任一任务,请使用以下过程:

  1. 承担拥有 IP 过滤器管理权限配置文件的角色,或者成为超级用户。

    可以将 IP 过滤器管理权限配置文件指定给您创建的角色。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 选择以下步骤之一:

    • 如果要激活完全不同的规则集,请在您选择的单独文件中创建一个新规则集。

    • 通过编辑包含该规则集的配置文件来更新当前规则集。

  3. 删除当前的规则集,并装入新规则集。


    # ipf -Fa -f filename
    

    filename 可以是包含新规则集的新文件,也可以是包含活动规则集的更新文件。

    活动规则集将从内核中删除。filename 文件中的规则将成为活动规则集。


    注 –

    即使是要重新装入当前配置文件,也仍需发出该命令。否则,将继续使用旧规则集,而不会应用更新的配置文件中的已修改规则集。

    请勿使用 ipf -Dsvcadm restart 之类的命令来装入更新的规则集。此类命令会在装入新规则集之前禁用防火墙,从而会公开您的网络。



示例 26–4 激活不同的包过滤规则集

以下示例说明如何在单独的配置文件 /etc/ipf/ipf.conf 中将一个包过滤规则集替换为另一个包过滤规则集。


# ipfstat -io
empty list for ipfilter(out)
pass in quick on dmfe all
# ipf -Fa -f /etc/ipf/ipf.conf
# ipfstat -io
empty list for ipfilter(out)
block in log quick from 10.0.0.0/8 to any


示例 26–5 重新装入更新的包过滤规则集

以下示例说明如何重新装入当前处于活动状态且已更新的包过滤规则集。在此示例中,使用的文件是 /etc/ipf/ipf.conf


# ipfstat -io (Optional)
empty list for ipfilter (out)
block in log quick from 10.0.0.0/8 to any

(Edit the /etc/ipf/ipf.conf configuration file.)

# ip -Fa -f /etc/ipf/ipf.conf
# ipfstat -io (Optional)
empty list for ipfilter (out)
block in log quick from 10.0.0.0/8 to any
block in quick on elx10 from 192.168.0.0/12 to any

Procedure如何删除包过滤规则集

  1. 承担拥有 IP 过滤器管理权限配置文件的角色,或者成为超级用户。

    可以将 IP 过滤器管理权限配置文件指定给您创建的角色。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 删除规则集。


    # ipf -F [a|i|o]
    
    -a

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

    -i

    删除传入包的过滤规则。

    -o

    删除传出包的过滤规则。


示例 26–6 删除包过滤规则集

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


# ipfstat -io
block out log on dmf0 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)

Procedure如何将规则附加到活动的包过滤规则集

  1. 承担拥有 IP 过滤器管理权限配置文件的角色,或者成为超级用户。

    可以将 IP 过滤器管理权限配置文件指定给您创建的角色。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 使用以下方法之一将规则附加到活动规则集:

    • 在命令行上使用 ipf -f - 命令,将规则附加到规则集。


      # echo "block in on dmfe1 proto tcp from 10.1.1.1/32 to any" | ipf -f -
      
    • 执行以下命令:

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

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


        # ipf -f filename
        

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


示例 26–7 将规则附加到活动的包过滤规则集

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


# ipfstat -io
empty list for ipfilter(out)
block in log quick from 10.0.0.0/8 to any
# echo "block in on dmfe1 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 dmfe1 proto tcp from 10.1.1.1/32 to any

Procedure如何将规则附加到非活动的包过滤规则集

  1. 承担拥有 IP 过滤器管理权限配置文件的角色,或者成为超级用户。

    可以将 IP 过滤器管理权限配置文件指定给您创建的角色。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

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

  3. 将已创建的规则添加到非活动规则集。


    # ipf -I -f filename
    

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


示例 26–8 将规则附加到非活动规则集

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


# ipfstat -I -io
pass out quick on dmfe1 all
pass in quick on dmfe1 all
# ipf -I -f /etc/ipf/ipf.conf
# ipfstat -I -io
pass out quick on dmfe1 all
pass in quick on dmfe1 all
block in log quick from 10.0.0.0/8 to any

Procedure如何在活动和非活动的包过滤规则集之间切换

  1. 承担拥有 IP 过滤器管理权限配置文件的角色,或者成为超级用户。

    可以将 IP 过滤器管理权限配置文件指定给您创建的角色。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 在活动和非活动的规则集之间切换。


    # ipf -s
    

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


示例 26–9 在活动和非活动的包过滤规则集之间切换

以下示例显示使用 ipf -s 命令如何导致非活动规则集成为活动规则集,并导致活动规则集成为非活动规则集。


Procedure如何从内核中删除非活动的包过滤规则集

  1. 承担拥有 IP 过滤器管理权限配置文件的角色,或者成为超级用户。

    可以将 IP 过滤器管理权限配置文件指定给您创建的角色。有关如何创建该角色并将其指定给用户,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 在“全部清除”命令中指定非活动规则集。


    # ipf -I -Fa
    

    此命令从内核中清除非活动规则集。


    注 –

    如果随后运行 ipf -s,则空的非活动规则集将成为活动规则集。空的活动规则集意味着会执行过滤。



示例 26–10 从内核中删除非活动的包过滤规则集

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


# ipfstat -I -io
empty list for inactive ipfilter(out)
block in log quick from 10.0.0.0/8 to any
block in on dmfe1 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)