Solaris11.1でIPフィルターを機能させようとしています。
私は公式に従っています 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スタックを持つ非グローバルゾーンです。
私は何を見落としましたか?
私はそれを機能させました!
Solaris11.1の公式Solarisドキュメントにエラーがあることが判明しました。
それはあなたにするように告げます:
$ svccfg -s ipfilter:default setprop Firewall_config_default/policy = astring: "custom" $ svccfg -s ipfilter:default setprop Firewall_config_default/custom_policy_file = astring: "/ etc/ipf/myorg.ipf .conf "
しかし、よく見ると、そのステートメントにエラーがあることがわかります。「atring:」と実際の値の間にスペースがありません。
svccfg
はこれについて文句を言いません。気を付けて !
要するに、私が最初にしたことはこれでした(私の設定ファイルは私にとって最も自然に見えるので単に/etc/ipf/ipf.conf
です):
$ svccfg -s ipfilter:default setprop Firewall_config_default/policy = astring: "custom" $ svccfg -s ipfilter:default setprop Firewall_config_default/custom_policy_file = astring: "/ etc/ipf/ipf.conf 「
それから私は不足しているスペースがあることに気づいたので、私はこれをしました:
$ svccfg -s ipfilter:default setprop Firewall_config_default/policy = "custom" $ svccfg -s ipfilter:default setprop Firewall_config_default/custom_policy_file = "/etc/ipf/ipf.conf"
それから私は私の質問を投稿しました。ご覧のとおり、svccfg -s ipfilter:default listprop
からの出力はその時でもちょっと正しく見えました。しかし、それは機能しませんでした。理由を説明することはできません。
私はついにやった:
$ svccfg -s ipfilter:default setprop Firewall_config_default/policy = astring: "custom" $ svccfg -s ipfilter:default setprop Firewall_config_default/custom_policy_file = astring: "/etc/ipf/ipf.conf 「
...そしてそれがすべての違いを生むようでした。
使用することが可能です:
$ svccfg -s ipfilter:default setprop \
config/ipf_config_file = astring: "/etc/ipf/ipf.conf"