솔라리스 11.1 및 ipfilter

솔라리스 11.1 및 ipfilter

저는 Solaris 11.1에서 IP 필터가 작동하도록 하려고 합니다.

나는 공식을 따른다솔라리스 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:"custom"
$ svccfg -s ipfilter:기본 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:"custom"
$ svccfg -s ipfilter:기본 setpropfirewall_config_default/custom_policy_file = astring:"/etc/ipf/ipf.conf"

그러다가 빈 공간이 있다는 것을 깨닫고 이렇게 했습니다.

$ svccfg -s ipfilter:기본 setpropfirewall_config_default/policy = "사용자 정의"
$ svccfg -s ipfilter:기본 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"

관련 정보