Início
» LINUX
»
Como configurar o firewall do SLES 15 com o firewall-cmd
Como configurar o firewall do SLES 15 com o firewall-cmd
Um serviço pode estar em execução em um servidor SLES 15 e ainda assim apresentar tempo limite excedido para clientes remotos porque o firewall bloqueia o novo tráfego de entrada. A solução geralmente consiste em identificar a zona ativa do firewalld e permitir apenas o serviço ou a porta necessária para a aplicação. A ferramenta de linha de comando do SLES para essa tarefa é o `firewalld` firewall-cmd.
Este guia segue o Guia de Segurança e Reforço de Segurança do SLES 15 SP7 da SUSE e a referência de comandos do firewalld, verificada em 7 de outubro de 2026. Service packs anteriores e sistemas SLES 12 atualizados podem ter estados diferentes ou configurações de firewall legadas. As imagens do terminal mostram exemplos representativos, não resultados capturados de um servidor real; substitua os nomes de interface, zonas e serviços pelos valores do seu host.
1. Verifique se o firewalld está em execução.
A documentação da SUSE indica que o firewalld está instalado e habilitado por padrão no SLES 15. O YaST normalmente o inicia após a instalação e coloca as interfaces na publiczona padrão. Mesmo assim, verifique a máquina em vez de presumir que as configurações padrão não foram alteradas. Execute estes comandos com uma conta que tenha permissão para usar sudo:
sudo systemctl status firewalld
sudo firewall-cmd --state
O gerenciador de serviços deve informar que o serviço firewalldestá ativo e também firewall-cmd --statedeve exibir uma mensagem running. Se o serviço estiver instalado, mas parado, inicie-o e habilite-o na inicialização do sistema.
sudo systemctl enable --now firewalld
Caso firewall-cmdesteja faltando, verifique se o firewalldpacote está instalado e disponível nos repositórios SUSE habilitados. Não instale ou substitua componentes de firewall indiscriminadamente em um servidor gerenciado.
O terminal de exemplo verifica o status do firewalld e mostra um exemplo de zona pública ativa com a interface eth0.
2. Encontre a zona que protege a interface do servidor.
O Firewalld agrupa regras em zonas , que representam diferentes níveis de confiança. A publiczona `untrusted` é comumente usada para redes que não são confiáveis. Um serviço aberto em uma zona não abre automaticamente em todas as zonas, portanto, uma regra correta na zona errada pode deixar seu aplicativo inacessível.
Use a saída `active-zone` para encontrar a zona associada à interface que transporta o tráfego do cliente. O nome da interface pode ser `<nome_da_interface>` eth0, ens160`<nome_da_interface>` ou outro nome. Se precisar verificar uma interface específica, execute:
sudo firewall-cmd --get-zone-of-interface=eth0
Substitua eth0pela interface real. Uma interface não explicitamente atribuída a uma zona é gerenciada pela zona padrão. Evite alterar a zona padrão sem necessidade: isso pode afetar interfaces que dependem dela. Em um servidor remoto, identifique a zona SSH ou outra zona de gerenciamento e confirme sua regra de acesso antes de recarregar as configurações do firewall. Mantenha um caminho de recuperação via console ou fora da banda disponível, se houver.
A lista de zonas mostra quais interfaces e serviços estão associados à zona pública de exemplo antes de quaisquer alterações.
3. Escolha um serviço nomeado ou uma porta específica.
Um serviço do firewalld é uma definição nomeada que pode incluir uma ou mais portas e protocolos. Geralmente é mais fácil permitir um serviço conhecido pelo nome do que memorizar o número da porta. Verifique a lista de serviços instalados e inspecione a definição antes de usá-la.
Para um servidor web, o httpserviço predefinido normalmente abrange a porta TCP 80; httpsexiste um serviço separado para tráfego web TLS. A documentação do SLES mostra o mesmo método baseado em serviços com exemplos como DHCP. Use o serviço que sua aplicação realmente exige e verifique a definição do serviço localmente se tiver dúvidas.
Se nenhum serviço predefinido for adequado, abra apenas a porta e o protocolo necessários. Por exemplo, um aplicativo que escuta na porta TCP 8443 pode ser permitido com o comando `/etc/applications/ --add-port=8443/tcptcp`. Abrir uma porta no firewall não inicia um aplicativo, não o vincula à rede nem o torna seguro; confirme se o próprio serviço está configurado para escutar no endereço desejado.
Teste primeiro uma regra temporária.
Para um teste rápido, aplique uma regra à configuração de tempo de execução. As alterações em tempo de execução entram em vigor imediatamente, mas são perdidas após uma recarga do firewall ou reinicialização do serviço, a menos que você também as salve permanentemente. O Firewalld oferece suporte a regras com tempo limitado, o que é útil quando você deseja que um teste expire automaticamente.
Para um teste de porta único, use --add-port=8443/tcp --timeout=5mem vez de --add-service=http. Selecione a zona que realmente contém a interface do servidor; não copie publicse o seu host usar outra zona.
O comando de exemplo adiciona o serviço HTTP à configuração permanente da zona pública e, em seguida, recarrega o firewalld para aplicá-lo.
4. Salve a regra e recarregue o firewalld.
Quando estiver pronto para manter uma regra, adicione-a à configuração permanente. O exemplo a seguir permite HTTP na zona pública:
Estes exemplos modificam primeiro a configuração permanente e, em seguida, recarregam-na para que a nova regra entre em vigor. Uma recarga também substitui as configurações de tempo de execução pela configuração permanente. Quaisquer alterações feitas apenas em tempo de execução em outros locais podem, portanto, ser descartadas. Antes de recarregar um sistema de produção, revise as regras importantes de tempo de execução e as regras permanentes, especialmente o acesso à administração remota.
Existe também um fluxo de trabalho que prioriza o tempo de execução: teste uma regra em tempo de execução, confirme se o serviço funciona e, em seguida, adicione essa mesma regra --permanente recarregue. Evite usar --runtime-to-permanentcomo atalho, a menos que você pretenda salvar todas as regras de tempo de execução atuais, incluindo alterações temporárias feitas por outros administradores ou softwares.
Como você pode verificar se a alteração funcionou?
Verifique tanto a regra de tempo de execução ativa quanto a regra salva. Para um serviço HTTP na zona pública, execute:
A consulta deve retornar yes, a lista de serviços permanentes deve incluir http, e a verificação de configuração deve ser concluída com sucesso. Para uma regra de porta, use --query-port=8443/tcpe --list-portsnos comandos equivalentes. Teste também a partir de um cliente separado que consiga acessar o servidor; uma consulta de firewall local confirma a presença da regra, mas não se o DNS, o roteamento, os firewalls upstream ou o listener do aplicativo estão corretos.
Os comandos de verificação verificam a regra de serviço ativa, a lista de serviços salvos e a sintaxe de configuração permanente.
Problemas comuns e soluções seguras
A regra está presente, mas as conexões ainda expiram: certifique-se de que ela foi adicionada à zona associada à interface voltada para o cliente. Em seguida, verifique se o aplicativo está escutando no endereço e porta esperados e verifique qualquer firewall de rede a montante.
A regra funcionou até a recarga da página: provavelmente foi adicionada apenas em tempo de execução. Adicione-a novamente --permanente recarregue a página, depois consulte ambas as configurações.
O acesso SSH está em risco: verifique os serviços da zona ativa e os serviços permanentes antes de recarregar. Se o SSH for necessário e estiver ausente, adicione o sshserviço à zona correta permanentemente antes de recarregar. Não encerre sua sessão remota atual até testar uma segunda conexão.
Você está migrando de uma versão antiga do SUSE: o SLES 15 substituiu o SuSEfirewall2 pelo firewalld. A SUSE alerta que os perfis de firewall legados têm compatibilidade retroativa limitada; consulte o guia de migração em vez de presumir que todas as regras antigas foram traduzidas.
Parece haver conflito entre as regras: o firewalld foi projetado para gerenciar as regras de firewall do host. A SUSE recomenda cautela ao modificar as mesmas regras separadamente com ferramentas como o firewalld iptables, pois isso pode confundir a configuração ativa.
Para remover um serviço ou porta permanente desnecessários, use a opção correspondente --remove-servicecom --remove-port, --permanentdepois recarregue e verifique novamente. Por exemplo, remova o HTTP da zona pública com sudo firewall-cmd --permanent --zone=public --remove-service=httpseguido de sudo firewall-cmd --reload.
Faça uma autoavaliação antes de terminar.
firewalldEstá em execução e inicia quando o servidor é inicializado.
Você identificou a zona ativa da interface que recebe o tráfego.
Somente o serviço ou a porta que o aplicativo precisa é permitido nessa zona.
A administração remota continua permitida antes e depois da reinicialização.
A regra aparece em consultas de tempo de execução e permanentes, e a verificação de configuração é aprovada.
Um teste de conexão a partir de outro host confirma que o aplicativo está acessível.