Solaris 11.1 e ipfilter

5

Estou tentando fazer com que o IP Filter funcione no Solaris 11.1.

Estou seguindo o guia do Solaris 11.1 oficial

Quando o host é inicializado, ele não pega o ipf.conf que eu esperava. Aqui está o conteúdo de 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

Do acima, estou esperando que ele pegue /etc/ipf/ipf.conf e use isso. Isso não acontece! Em vez disso, use um conjunto de regras vazio.

Após o boot, tenho:

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

Eu posso ativar meu arquivo de configuração manualmente com ipf -Fa -f /etc/ipf/ipf.conf e isso funciona bem, então é apenas o material SMF que não consigo trabalhar como eu esperava.

Eu tenho tentado ler e também olhar através do script que o SMF executa em relação ao IPFilter. Mas eu estou preso. É muito mais complexo do que posso compreender.

Talvez tenha algo a ver com o recurso de configuração de rede automática do Solaris?

Teria sido ótimo se o script SMF razoavelmente complexo fizesse alguma saída para o console (e, portanto, para o arquivo de log SMF) quanto às opções que ele está fazendo. Infelizmente isso não acontece.

Meu host é uma região não global com uma pilha IP exclusiva.

O que eu negligenciei?

    
por peterh 06.12.2012 / 18:49

2 respostas

3

Eu fiz isso funcionar!

Acontece que há um erro na documentação oficial do Solaris para o Solaris 11.1.

Diz-lhe para fazer:

$ 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"

mas se você olhar de perto você pode ver que há um erro nessa afirmação: não há espaço entre 'atring:' e o valor real!

svccfg não reclamará disso. Tome cuidado!

Em suma, o que eu fiz inicialmente foi isso (meu arquivo de configuração é simplesmente /etc/ipf/ipf.conf , o que parece mais natural para mim):

$ 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"

Então percebi que havia um espaço ausente, então fiz isso:

$ 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"

Então eu postei minha pergunta. Como você pode ver, a saída de svccfg -s ipfilter:default listprop parecia certa, mesmo naquele momento. No entanto, não funcionou. Não sei explicar porquê.

Eu finalmente fiz:

$ 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"

... e isso pareceu fazer toda a diferença.

    
por 06.12.2012 / 19:39
2

É possível usar:

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

Tags