Como fazer com que o FirewallD e o híbrido funcionem juntos?

2

Tenho o firewalld funcionando seguindo a resposta O Firewalld não inicia na inicialização .

Tenho um trabalho de sono híbrido seguindo Como uso o pm-suspend-hybrid por padrão em vez de pm-suspend?

No entanto, se o firewalld estiver ativo e eu fechar a tampa para iniciar o modo híbrido de suspensão, o sistema congela com a tela preta. Se eu iniciar o sono normal através do menu cog power > Suspender , em seguida, o computador suspende bem. Também posso fazer com que o computador durma híbrido se eu interromper o serviço do firewalld antes de colocar o computador em modo de suspensão híbrida.

Meu computador está executando o Ubuntu 16.04.2 LTE com HWE.

Minha pergunta é como evitar o conflito entre o firewallD e o sono híbrido?

Obrigado

    
por user68186 20.05.2017 / 19:12

1 resposta

2

Atualização 23 de abril de 2018: Corrigindo a causa raiz resolve esse problema

Causa raiz

O arquivo de serviço - /lib/systemd/system/firewalld.service diz que o firewalld está em conflito com ebtables.service , que é ativado por padrão no Ubuntu 16.04.

Solução

Desative e mascare ebtables.service com os dois comandos a seguir:

sudo systemctl disable ebtables
sudo systemctl mask ebtables

Isso resolve o problema com o FirewallD e o hybrid-sleep e o problema associado de O Firewalld não inicia na inicialização

Graças a resposta de Alfred à pergunta acima

Resposta original:

Pare firewalld antes do hibernar dormir e inicie-o no currículo

Plano de fundo

Coloque um arquivo de script bash em /lib/systemd/system-sleep/ . Imediatamente antes de entrar em suspensão do sistema, hibernar ou híbrido, o systemd-suspend.service (e os respectivos equivalentes) suspenderão o script bash em /lib/systemd/system-sleep/ e passarão dois argumentos para eles. O primeiro argumento será pre , o segundo suspender , hibernar ou hybrid-sleep dependendo da opção escolhida açao.

Imediatamente depois de sair do sistema suspender, hibernar ou hibernar, o mesmo script bash é executado, mas o primeiro argumento agora é post .

Fonte: link

Como fazer:

Crie um arquivo de texto: /lib/systemd/system-sleep/firewalld-sleep.sh com o seguinte conteúdo:

#!/bin/bash
case $1/$2 in
    pre/*)
    # Disable firewalld before hybrid-sleep
    systemctl stop firewalld.service    
    ;;
    post/*)
    # Enable firewalld after hybrid-sleep
    systemctl start firewalld.service
    ;;
esac

Torne o arquivo executável. Veja link para detalhes.

Observe que o script interrompe o firewalld antes de qualquer um dos três tipos de suspensão / hibernação / suspensão híbrida e o inicia novamente no resumo.

Agora, firewalld e hybrid-sleep coexistirão e o sistema não congelará se você fechar a tampa enquanto firewalld estiver em execução.

Espero que isso ajude

    
por user68186 20.05.2017 / 19:12