Solaris 11.1 和 ipfilter

Solaris 11.1 和 ipfilter

我正在尝试让 IP 过滤器在 Solaris 11.1 上工作。

我关注官方Solaris 11.1 指南

当主机启动时,它没有收到ipf.conf我期望的信息。以下是 的内容 svccfg -s ipfilter:default listprop

config                                        application
config/ipf6_config_file                      astring     /etc/ipf/ipf6.conf
config/ipnat_config_file                     astring     /etc/ipf/ipnat.conf
config/ippool_config_file                    astring     /etc/ipf/ippool.conf
firewall_config_default                       com.sun,fw_configuration
firewall_config_default/apply_to             astring
firewall_config_default/exceptions           astring
firewall_config_default/open_ports           astring
firewall_config_default/value_authorization  astring     solaris.smf.value.firewall.config
firewall_config_default/version              count       1
firewall_config_default/policy               astring     custom
firewall_config_default/custom_policy_file   astring     /etc/ipf/ipf.conf
firewall_config_override                      com.sun,fw_configuration
firewall_config_override/apply_to            astring
firewall_config_override/policy              astring     none
firewall_config_override/value_authorization astring     solaris.smf.value.firewall.config
general                                       framework
general/complete                             astring
general/enabled                              boolean     true
restarter                                     framework                 NONPERSISTENT
restarter/logfile                            astring     /var/svc/log/network-ipfilter:default.log
restarter/contract                           count       7951
restarter/start_pid                          count       4031
restarter/start_method_timestamp             time        1354809979.642008000
restarter/start_method_waitstatus            integer     0
restarter/auxiliary_state                    astring     dependencies_satisfied
restarter/next_state                         astring     none
restarter/state                              astring     online
restarter/state_timestamp                    time        1354809979.645753000

从上面我预计它会接受/etc/ipf/ipf.conf并使用它。事实并非如此!相反,它使用空规则集。

启动后我有:

$ svcs network/ipfilter
STATE          STIME    FMRI
online         17:06:19 svc:/network/ipfilter:default
$ ipfstat -io
empty list for ipfilter(out)
empty list for ipfilter(in)

我可以手动启用我的配置文件,ipf -Fa -f /etc/ipf/ipf.conf并且工作正常,因此它只是我无法按预期工作的 SMF 内容。

我一直在尝试阅读并查看 SMF 针对 IPFilter 执行的脚本。但我被困住了。它比我能理解的要复杂得多。

也许这与 Solaris 的自动网络配置功能有关?

如果相当复杂的 SMF 脚本能够将其所做的选择的一些输出输出到控制台(从而输出到 SMF 日志文件),那就太好了。不幸的是事实并非如此。

我的主机是一个具有独占 IP 堆栈的非全局区域。

我忽略了什么?

答案1

我成功了!

事实证明,Solaris 11.1 的官方 Solaris 文档中存在错误。

它告诉你要做的事情:

$ svccfg -s ipfilter:default setpropfirewall_config_default/policy = astring:"自定义"
$ svccfg -s ipfilter:default setpropfirewall_config_default/custom_policy_file = astring:"/etc/ipf/myorg.ipf.conf"

但如果你仔细观察,你会发现该语句中有一个错误:“atring:”和实际值之间没有空格!

svccfg不会抱怨这个。小心 !

简而言之,我最初所做的是这样的(我的配置文件/etc/ipf/ipf.conf对我来说似乎是最自然的):

$ svccfg -s ipfilter:default setpropfirewall_config_default/policy = astring:"自定义"
$ svccfg -s ipfilter:default setpropfirewall_config_default/custom_policy_file = astring:"/etc/ipf/ipf.conf"

然后我意识到缺少一个空格,所以我这样做了:

$ svccfg -s ipfilter:default setpropfirewall_config_default/policy = "custom"
$ svccfg -s ipfilter:default setpropfirewall_config_default/custom_policy_file = "/etc/ipf/ipf.conf"

然后我发布了我的问题。正如您所看到的svccfg -s ipfilter:default listprop,即使在当时,输出看起来也很正确。但它没有奏效。无法解释为什么。

我终于做到了:

$ svccfg -s ipfilter:default setpropfirewall_config_default/policy = astring:“自定义”
$ svccfg -s ipfilter:default setpropfirewall_config_default/custom_policy_file = astring: "/etc/ipf/ipf.conf"

……这似乎让一切变得不同。

答案2

可以使用:

$ svccfg -s ipfilter:default setprop \
            config/ipf_config_file = astring: "/etc/ipf/ipf.conf"

相关内容