Como as regras de firewall do chef são aplicadas ao firewalld no CentOS 7?

0

Estou usando o livro de receitas de firewall do chef da seguinte maneira:

firewall 'default'

firewall_rule 'ssh' do
    port 22
end

Configura internamente o firewalld escrevendo comandos como este para /etc/sysconfig/firewalld-chef.rules :

firewall-cmd --direct --add-rule ipv4 filter INPUT 50 -p tcp -m tcp -m multiport --dports 22 -m comment --comment 'ssh' -j ACCEPT
firewall-cmd --direct --add-rule ipv6 filter INPUT 50 -p tcp -m tcp -m multiport --dports 22 -m comment --comment 'ssh' -j ACCEPT

No entanto, após systemctl restart firewalld , essas alterações não são aplicadas. Eu não tenho experiência com configuração de rede Linux, então não sei como posso continuar. Existe uma maneira fácil de definir esse arquivo para ser executado com o firewalld start? Estou fazendo algo errado na minha receita?

    
por Lukáš Lánský 22.10.2015 / 11:05

1 resposta

1

O livro de receitas do firewall está usando /etc/sysconfig/firewalld-chef.rules para rastrear o estado das regras do firewall. Ele cria a lista de comandos que deve ser executada e, se a lista for diferente do conteúdo desse arquivo, ele reaplicará o arquivo inteiro, limpando o conjunto de regras e, em seguida, executando cada comando no arquivo. Não necessariamente executa esse arquivo diretamente.

Alguém contribuiu com a lógica original nesta receita, então eu não poderia dizer muito mais sobre como eles a estão usando, mas executar a ação :save parece ser a maneira pretendida de garantir que as regras sejam permanentes . Se você estiver tentando garantir que as regras sejam aplicadas na inicialização, tente executar a ação :save do recurso de firewall depois que todas as regras de firewall forem aplicadas.

    
por 22.10.2015 / 11:29