Voltar ao blog

Configurando um Firewall com FirewallD no CentOS 7

Configurando um Firewall com FirewallD no CentOS 7

Introdução

Firewalld é uma solução de gerenciamento de firewall disponível para muitas distribuições Linux. Ele serve como uma interface para o sistema de filtragem de pacotes iptables fornecido pelo kernel do Linux. Neste guia, você aprenderá como configurar um firewall para o seu servidor. Também mostraremos o básico sobre como gerenciar o firewall com a ferramenta de administração firewall-cmd.

Fundamentos do Firewalld

O FirewallD usa os conceitos de zonas e serviços, em vez das cadeias e regras do iptables. Dependendo das zonas e serviços configurados, você pode controlar qual tráfego é permitido ou não de e para o sistema. O FirewallD pode ser configurado e gerenciado usando o utilitário de linha de comando firewall-cmd.

Instalar e Ativar o seu Firewall para Iniciar no Boot

Na maioria das distribuições Linux, o firewallD já está instalado. No entanto, se você precisar instalá-lo manualmente, digite a sintaxe abaixo:

Você pode ativar o serviço e reiniciar o servidor assim que o firewalld estiver instalado:

Em seguida, reinicie o servidor. O seu firewall será ativado quando você tiver reiniciado o servidor com sucesso. Depois disso, use o comando abaixo para verificar se o serviço foi ativado:

check firewall state FirewallD

A saída mostra que a configuração padrão do firewall está funcionando.

Verificando os Padrões

Você pode verificar a zona selecionada pelo servidor usando este comando:

check firewall default zone

Verifique a zona ativa digitando:

firewall active zones

Exiba a configuração da zona padrão para conhecer as regras associadas à área pública usando esta sintaxe:

list all rules FirewallD

A saída indica que esta zona é tanto a zona padrão quanto a ativa. Ela também mostra que as interfaces eth0 e eth1 estão atribuídas a esta zona.

Verificando Zonas Alternativas

Além das zonas padrão e ativa, existem outras zonas que você pode explorar. Insira este comando para ver todas as zonas disponíveis:

firewall check other zones

Verifique a configuração específica atribuída a uma zona adicionando o parâmetro –zone= no comando –list-all:

check zone configuration FirewallD

 Alterando a Zona da Interface

Você pode alterar facilmente a zona da interface usando a opção –change-interface combinada com a opção –change-interface. O comando a seguir atribuirá a interface eth1 ao workspace:

Você pode verificar as alterações digitando:

changing firewall interface zones FirewallD

Alterando a Zona Padrão

Para alterar a zona padrão, use o –set-default-zone seguido pelo nome da zona que você deseja definir como padrão. Por exemplo, para alterar a zona padrão para iniciar, você deve executar o seguinte comando:

Em seguida, você pode verificar as alterações com:

firewall change default zone

Definindo Regras para as suas Aplicações

Vamos repassar os conceitos básicos necessários para definir exceções de firewall para os serviços:

Adicionando um Serviço às suas Zonas

A maneira mais direta é adicionando as portas ou serviços que você precisa às zonas que está usando. Da mesma forma, você pode usar a opção –get-services para ver todos os serviços disponíveis:

firewall get services FirewallD

Você pode ativar o serviço para uma zona com o parâmetro –add-service =. A ação tem como alvo a zona padrão ou qualquer zona definida pelo parâmetro –zone =. Por padrão, apenas a sessão atual do firewall é configurada. Você pode definir uma configuração de firewall permanente ativando a flag –permanent. Por exemplo, se você estiver executando um servidor web que fornece tráfego HTTP regular, você pode permitir esse tráfego para interfaces em nossa zona “public” para esta sessão inserindo:

Você pode omitir –zone = se quiser alterar a zona padrão. Você pode verificar o sucesso da operação com as operações –list-all ou –list-services:

add service to zone

Depois de verificar que tudo está funcionando como esperado, você provavelmente desejará alterar as regras permanentes do firewall para que seu serviço continue disponível após uma reinicialização. Podemos fazer a alteração em nossa zona “public” permanentemente inserindo a sintaxe:

Você pode verificar se isso foi bem-sucedido adicionando a flag –permanent à operação –list-services. Você deve usar sudo para –todas as operações permanentes:

Sua zona “public” agora permite tráfego HTTP na porta 80. Você pode adicionar isso à sessão atual e ao conjunto de regras persistentes usando o comando abaixo:

Se não houver serviços que atendam aos seus requisitos, você tem duas excelentes opções para lidar com essa situação:

  1. Abrindo uma porta para suas zonas

A maneira mais direta de adicionar suporte para sua aplicação específica é abrir as portas usadas em cada zona. É tão simples quanto designar uma porta ou intervalo de portas e o protocolo correspondente para as portas que você precisa abrir. Por exemplo, se sua aplicação roda na porta 5000 e usa TCP, você pode adicioná-la à zona “public” para esta sessão com o parâmetro –add-port =. Os protocolos podem ser TCP ou UDP:

Para verificar se a operação foi bem-sucedida, use a operação –list-ports:

Você também pode especificar um intervalo para a interface serial separando as portas inicial e final no intervalo com um hífen. Por exemplo, se sua aplicação usa as portas UDP 4990 a 4999, você pode abri-las em “public” escrevendo:

Após o teste, provavelmente desejaremos adicioná-las ao firewall permanente. Você pode fazer isso digitando o seguinte:

adding ports to permanent firewall

  1. Definindo um serviço

Um serviço é uma coleção de portas com um nome e descrição associados. Os serviços são mais fáceis de gerenciar do que as portas, mas isso requer um pouco de trabalho inicial. A maneira mais direta de começar é copiar um script existente (em / usr / lib / firewalld / services) para o diretório /etc/firewalld/services. Por exemplo, você pode copiar a definição do serviço SSH para usar na definição do serviço “example” da seguinte forma. O nome do arquivo menos o sufixo XML determina o nome do serviço na lista de serviços de firewall:

Neste ponto, você pode ajustar a definição no arquivo copiado:

Primeiro, o arquivo contém a definição de SSH que você copiou:

A maior parte desta definição consiste em metadados. Você deve alterar o nome curto do serviço nas tags <short>. Este é um nome de serviço legível. Imagine que para o nosso serviço “example”, temos que abrir a porta 7777 para TCP e 8888 para UDP. Você pode alterar a definição existente entrando no modo INSERT pressionando i:

Em seguida, pressione ESC e digite: x para salvar e fechar o arquivo. Depois, digite o comando abaixo para reiniciar o firewall a fim de ter acesso ao seu novo serviço;

Depois disso, use o comando abaixo para listar os serviços disponíveis:

get services

Este serviço agora está disponível na sua zona.

Criando Suas Zonas

Embora as zonas predefinidas provavelmente sejam suficientes para a maioria dos usuários, pode ser útil definir suas próprias zonas que descrevam sua função de forma mais completa.

Ao adicionar uma zona, adicione-a às suas configurações permanentes do firewall. Depois, você pode recarregar para trazer as configurações para a sua sessão. Por exemplo, você pode criar as duas zonas discutidas anteriormente digitando:

Você pode confirmar que elas estão presentes na sua configuração permanente usando este comando:

firewall zones

Recarregue o firewall para trazer essas novas zonas para a configuração ativa:

Agora, você pode atribuir os serviços e portas apropriados às suas zonas. Por exemplo, para a zona “publicweb”, você pode querer adicionar os serviços SSH, HTTP e HTTPS:

list public web zone

 

Além disso, você pode adicionar o serviço DNS à sua zona “privateDNS” usando este comando:

list privateDNS zone FirewallD

Em seguida, você pode alterar suas interfaces para essas novas zonas para testá-las:

Teste a configuração para ver se funciona. Se esses valores funcionarem para você, você deve adicionar as mesmas regras à configuração permanente. Você pode fazer isso reaplicando as regras com o indicador —permanent:

 

Depois de aplicar essas regras permanentemente, você pode reiniciar sua rede e recarregar o serviço de firewall:

Verifique se as zonas foram atribuídas corretamente:

check active zones FirewallD

Além disso, certifique-se de que ambas as zonas tenham o serviço correto:

Se você quiser definir uma de suas zonas como a padrão para outras interfaces, você deve configurar esse comportamento com o parâmetro –set-default-zone= usando este comando:

Conclusão

Neste ponto, você criou suas próprias zonas com sucesso. Você deve ter uma compreensão básica da administração do serviço firewalld no seu sistema CentOS para o uso diário. Ter um bom entendimento do serviço firewalld permite que você aproveite ao máximo seu poder e flexibilidade.

Boa computação!

 

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev é um designer criativo na CloudSigma, focado na construção de uma identidade empresarial consistente por meio de canais de marketing tradicionais e inovadores. Ele é hábil em combinar a visão artística com o marketing estratégico para criar narrativas de marca impactantes.

Comentários

Nenhum comentário ainda. Seja o primeiro.