Como instalar, configurar e usar o Firewalld em Centos e Ubuntu

Como instalar, configurar e usar o Firewalld em Centos e Ubuntu

Firewalld (Daemon Firewall) é uma alternativa ao iptables Serviço, para gerenciar dinamicamente o firewall de um sistema com suporte para zonas de rede (ou firewall) e fornece uma interface D-BUS para gerenciar configurações. É fácil de usar e configurar, e agora é a ferramenta de gerenciamento de firewall padrão em RHEL/CENTOS, Fedora e várias outras distribuições Linux.

Neste artigo, discutiremos como configurar o firewall do sistema com Firewalld e implementar filtragem básica de pacotes em CENTOS/RHEL 7 e Ubuntu.

O básico sobre o firewalld

Firewalld compreende três camadas, que são::

  • camada central: Responsável por lidar com a configuração e as extremidades traseiras (listadas abaixo).
  • Interface D-Bus: Os principais meios de mudar e criar a configuração do firewall.
  • back -end: para interagir com o Netfilter (o módulo de kernel nativo usado para o firewalling). Eles incluem iptables, IP6Tables, Ebtables, IPSet, NFT, Linnftables; gerente da rede; e módulos.

Ele gerencia as regras do firewall implementando zonas de rede/firewall que definem o nível de confiança de conexões de rede ou interfaces. Outros recursos do firewall suportados incluem serviços, configuração direta (usada para passar diretamente sintaxe iptables brutas), ipsets e tipos de ICMP.

Dois tipos de ambientes de configuração são suportados pelo Firewalld:

  • Configuração de tempo de execução, que só é eficaz até que a máquina seja reiniciada ou o serviço de firewalld tenha sido reiniciado
  • Configuração permanente que é salva e funciona persistentemente.

A ferramenta de linha de comando firewall-cmd é usada para gerenciar o tempo de execução e a configuração permanente. Como alternativa, você pode usar a Ferramenta de Configuração do Usuário do Firewall-Config (GUI) para interagir com o daemon.

Além disso, Firewalld Oferece uma interface bem definida para outros serviços ou aplicativos locais para solicitar alterações nas regras do firewall diretamente, se elas estiverem executando com privilégios de raiz.

O arquivo de configuração global para firewalld está localizado em /etc/firewalld/firewalld.conf e os recursos do firewall são configurados no formato XML.

Compreendendo importantes recursos do firewalld

A característica central do firewalld é as zonas de rede/firewall. Todos os outros recursos são delimitados a uma zona. Uma zona de firewall descreve o nível de confiança para uma conexão, interface ou ligação de endereço de origem.

A configuração padrão vem com uma série de zonas predefinidas classificadas de acordo com o nível de confiança padrão das zonas de não confiáveis ​​a confiáveis: gota, bloqueio, público, externo, DMZ, trabalho, casa, interno e confiável. Eles são definidos em arquivos armazenados sob o /usr/lib/firewalld/zonas diretório.

Você pode configurar ou adicionar suas zonas personalizadas usando o cliente da CLI ou simplesmente criar ou copiar um arquivo de zona em /etc/firewalld/zonas dos arquivos existentes e edite -os.

Outro conceito importante sob o firewalld é os serviços. Um serviço é definido usando portas e protocolos; Essas definições representam um determinado serviço de rede, como um servidor da web ou serviço de acesso remoto. Os serviços são definidos em arquivos armazenados sob o /usr/lib/firewalld/serviços/ ou /etc/firewalld/serviços/ diretório.

Se você conhece conceitos básicos de iptables/ip6tables/ebtables, também pode usar a interface (ou configuração) direta para obter acesso direto ao firewall. Mas, para aqueles sem nenhum conhecimento iptables, você pode empregar a linguagem rica para criar regras de firewall mais complexas para IPv4 e IPv6.

Como instalar o pacote firewalld no Linux

Sobre CENTOS 7, o Firewalld O pacote vem pré-instalado e você pode verificar usando o seguinte comando.

$ rpm -qa firewalld 

Sobre Ubuntu 16.04 e 18.04, Você pode instalá -lo usando o gerenciador de pacotes padrão, conforme mostrado.

$ sudo apt install firewalld 

Como gerenciar o serviço de firewalld no Linux

Firewalld é um serviço de sistema regular que pode ser gerenciado através do comando SystemCTL.

 $ sudo systemctl start firewalld #start o serviço para o tempo médio $ sudo systemctl ativar o firewalld #enable o serviço para iniciar automaticamente no tempo de inicialização 

Depois de começar Firewalld Serviço, você também pode verificar se o daemon está em execução ou não, usando o Firewall-CMD Ferramenta (caso não esteja ativo, este comando será lançado "não executa").

$ sudo firewall-cmd-estado 
Verifique o status do firewalld

Se você salvar qualquer alteração permanentemente, poderá recarregar o firewalld. Isso recarregará as regras do firewall e manterá as informações do estado. A configuração permanente atual se tornará uma nova configuração de tempo de execução.

$ sudo firewall-cmd--reload 

Como trabalhar com zonas de firewall em firewalld

Para obter uma lista de todas as zonas e serviços de firewall disponíveis, execute esses comandos.

$ sudo firewall-cmd-get-zones $ sudo firewall-cmd-get-services 

A zona padrão é a zona usada para cada recurso de firewall que não é explicitamente limitado a outra zona. Você pode obter a zona padrão definida para conexões de rede e interfaces executando.

$ sudo firewall-cmd-get-default-zon 
Listar zona de firewalld padrão

Para definir a zona padrão, por exemplo para externo, use o seguinte comando. Observe que adicionar a opção --permanente Define a configuração permanentemente (ou permite a consulta de informações do ambiente de configuração permanente).

$ sudo firewall-cmd--sef-default-zone = externo ou $ sudo firewall-cmd--default- zone = externo --permanent $ sudo firewall-cmd--reload 

Em seguida, vamos ver como adicionar uma interface a uma zona. Este exemplo mostra como adicionar seu adaptador de rede sem fio (WLP1S0) para a casa da zona, que é usada em áreas domésticas.

$ sudo firewall-cmd-zone = home --add-interface = wlp1s0 
Adicione uma interface à zona do firewalld

Uma interface só pode ser adicionada a uma única zona. Para movê -lo para outra zona, use o --interface de mudança alternar como mostrado ou removê -lo da zona anterior usando o -Remover-interface alterne e adicione -o à nova zona.

Supondo que você queira se conectar a uma rede Wi-Fi pública, você deve mover sua interface sem fio de volta para a zona pública, assim:

$ sudo firewall-cmd-zone = public --add-interface = wlp1s0 $ sudo firewall-cmd-zone = public --change-interface = wlp1s0 
Interface de zona de mudança no firewalld

Você pode usar muitas zonas ao mesmo tempo. Para obter uma lista de todas as zonas ativas com os recursos ativados, como interfaces, serviços, portas, protocolos, execução:

$ sudo firewall-cmd-get-attive-zonas 
Liste zonas ativas no firewalld

Em relação ao ponto anterior, se você deseja encontrar mais informações sobre uma zona específica, eu.e tudo adicionado ou ativado nele, use um desses comandos:

$ sudo firewall-cmd-zone = home-lista-tudo ou $ sudo firewall-cmd--info-zone público 
Encontre informações da zona de firewall

Outra opção útil é --alvo, que mostra o alvo de uma zona permanente. Um alvo é um dos: padrão, aceitar, soltar, rejeitar. Você pode verificar o alvo de várias zonas:

$ sudo firewall-cmd --permanent-zone = public-getget-alget $ sudo firewall-cmd --permanent-zone = block --get-alget $ sudo firewall-cmd --permanente-zone = dmz- -Get-Target $ sudo firewall-cmd --permanente-zone = externo --get-alget $ sudo firewall-cmd --permanente-zone = gota-get-target 

Como abrir e bloquear portas no firewalld

Para abrir uma porta (ou combinação de porta/protocolo) no firewall, basta adicioná -lo em uma zona com o --add-port opção. Se você não especificar explicitamente a zona, ela será ativada na zona padrão.

O exemplo a seguir mostra como adicionar porta 80 e 443 para permitir o tráfego da Web em limite via Http e Https Protocolos, respectivamente:

$ sudo firewall-cmd-zone = public --permanent --add-port = 80/tcp --add-port = 443/tcp 

Em seguida, recarregue o firewalld e verifique os recursos ativados na zona pública mais uma vez, você poderá ver as portas recém -adicionadas.

$ sudo firewall-cmd--reload $ sudo firewall-cmd-info-zone público 

Bloquear ou fechar uma porta no firewall é igualmente fácil, basta removê -lo de uma zona com o --remover-se opção. Por exemplo, para fechar as portas 80 e 443 na zona pública.

$ sudo firewall-cmd-zone = public --permanente-remove-port = 80/tcp--remove-port = 443/tcp 

Em vez de usar a combinação de porta ou porta/protocolo, você pode usar o nome do serviço ao qual uma porta é atribuída conforme explicado na próxima seção.

Como abrir e bloquear serviços no firewalld

Para abrir um serviço no firewall, ative -o usando o --add-service opção. Se a zona for omitida, a zona padrão será usada.

O comando a seguir permitirá permanentemente o serviço HTTP na zona pública.

$ sudo firewall-cmd-zone = public --permanent --add-service = http $ sudo firewall-cmd--reload 

O --Remover serviço a opção pode ser usada para desativar um serviço.

$ sudo firewall-cmd-zone = public --permanent-remove-service = http $ sudo firewall-cmd--reaload 

Como habilitar e desativar o IP disfarçado usando o firewalld

IP disfarçado (também conhecido como Ipmasq ou Masq) é um Nat (Tradução do Endereço da Rede) Mecanismo nas redes Linux, que permite que seus hosts em uma rede, com endereços IP privados se comunicarem com a Internet usando o endereço IP público atribuído do seu servidor Linux (gateway publicado ipmasq).

É um mapeamento um para muitos. O tráfego dos seus hosts invisíveis aparecerá para outros computadores na internet como se fossem do seu servidor Linux.

Você pode ativar o IP disfarçado em uma zona desejada, por exemplo, a zona pública. Mas antes de fazer isso, verifique se a disfarce está ativa ou não (um "não" significa que está desativado e um "sim" significa o contrário).

$ sudo firewall-cmd-zone = public --Query-massquerade $ sudo firewall-cmd-zone = public --Add-masmerade 

Um estojo de uso típico para disfarçar é executar o encaminhamento de porta. Supondo que você queira SSH de uma máquina remota para um host em sua rede interna com o IP 10.20.1.3, em que o daemon sshd está ouvindo na porta 5000.

Você pode encaminhar todas as conexões para a porta 22 No seu servidor Linux para a porta pretendida no seu host de destino, emitindo:

$ sudo firewall-cmd-zone = public --Add-forward-port = porta = 22 = proto = tcp: toport = 5000: toaddr = 10.20.1.3 

Para desativar a disfarce em uma zona, use o --Remover massqueada trocar.

$ sudo firewall-cmd-zone = public--remove-massqueada 

Como ativar e desativar a mensagem IMCP em firewalld

ICMP (Protocolo de mensagem de controle da Internet) As mensagens são solicitações de informação ou respostas a solicitações de informação ou em condições de erro.

Você pode ativar ou desativar mensagens ICMP no firewall, mas antes dessa lista primeiro todos os tipos de ICMP suportados.

$ sudo firewall-cmd-get-icmptypes 
Lista de tipos ICMP suportados em firewalld

Para adicionar ou remover um tipo de bloco que você deseja.

$ sudo firewall-cmd-zone = home --add-icmp-block = echo-reply ou $ sudo firewall-cmd-zone = home--remove-icmp-block = eco-replicação 

Você pode ver todos os tipos de ICMP adicionados em uma zona usando o --Lista-ICMP-Blocks trocar.

$ sudo firewall-cmd-zone = home-lista-icmp-blocks 

Como usar a interface direta para passar os comandos brutos iptables

O Firewall-CMD também fornece opções diretas (--direto) para você obter mais acesso direto ao firewall. Isso é útil para aqueles com conhecimento básico de iptables.

Importante: Você deve usar apenas as opções diretas como último recurso quando não for possível usar o regular Firewall-CMD opções explicadas acima.

Aqui está um exemplo de como passar a regra dos iptables brutos, usando o --ADD-RULES trocar. Você pode remover facilmente essas regras substituindo --add-regul com --Remova-se-rela:

$ sudo firewall -cmd - -Direct -Filtro IPv4 -RULE RUL 

Para mais informações sobre iptables, Consulte este guia: Como configurar um firewall iptables para ativar o acesso remoto aos serviços no Linux.

Se você não está familiarizado com a sintaxe iptables, pode optar por "Firewalld"idioma rico”Para criar regras de firewall mais complexas de uma maneira fácil de entender, conforme explicado a seguir.

Como usar a linguagem rica em firewalld

O idioma rico (também conhecido como regras ricas) é usado para adicionar regras de firewall mais complexas para IPv4 e IPv6 sem o conhecimento da sintaxe iptables.

Ele estende os recursos da zona (serviço, porto, bloco ICMP, mascarada e port para a frente) que cobrimos. Ele suporta endereços de origem e destino, registro, ações e limites para toras e ações.

O --add-rico-regra é usado para adicionar regras ricas. Este exemplo mostra como permitir novo IPv4 e IPv6 Conexões para o serviço HTTP e registro 1 por minuto usando auditoria:

$ sudo firewall-cmd --Add-rico-rule = 'Nome do serviço de regra = "http" Valor limite de auditoria = "1/m" aceita " 

Para remover a regra adicionada, substitua o --add-rico-regra opção com --Remova-se-rica.

$ sudo firewall-cmd--remove-rich-rule = 'Nome do serviço de regra = "http" Valor limite de auditoria = "1/m" aceita " 

Esse recurso também permite bloquear ou permitir o tráfego de um endereço IP específico. O exemplo a seguir mostra como rejeitar conexões do IP 10.20.1.20.

$ sudo firewall-cmd-zone = public --add-rich-rule = 'regra família = "ipv4" endereço de origem = "192.168.0.254 "rejeitar ' 

Como habilitar e desativar o modo de pânico no firewalld

Modo de pânico é um modo especial sob o firewalld, onde todos os pacotes de limite e desbotados são descartados e as conexões ativas expirarão uma vez ativadas.
Você pode ativar esse modo em situações de emergência em que uma ameaça ao seu ambiente de rede sai.

Para consultar o modo de pânico, use o --Query-panic opção.

$ sudo firewall-cmd-quadriy-panic 

Para ativar o modo de pânico, use o --Panic-on opção. Você pode testar se estiver funcionando usando o comando ping como mostrado. Porque o pacote é descartado, o nome www.Google.com não pode ser resolvido, portanto o erro exibido.

$ sudo firewall-cmd-panic-on $ ping -c 2 www.Google.com 
Ativar modo de pânico no firewalld

Para desativar o modo de pânico, use o --pânico opção.

$ sudo firewall-cmd-panic-off 

Como bloquear firewalld

Lembre -se, mencionamos sob o básico sobre o Firewalld que aplicativos ou serviços locais podem alterar a configuração do firewall se eles estiverem executando com privilégios de raiz. Você pode controlar quais aplicativos podem solicitar mudanças de firewall, especificando então em uma lista de permissões de bloqueio.

Esse recurso é desligado por padrão, você pode habilitá -lo ou desativá -lo com o --Lockdown-on ou --confinamento interruptor receptivamente.

$ sudo firewall-cmd--lockdown-on ou $ sudo firewall-cmd--lockdown-off 

Observe que é recomendável ativar ou desativar esse recurso editando o arquivo de configuração principal, porque o Firewall-CMD pode não existir na lista de bloqueio quando você habilita o bloqueio.

$ sudo vim/etc/firewalld/firewalld.conf 

Encontre o parâmetro Confinamento e mudar seu valor de não (significa desativar) para sim (significa em).

Bloqueio = sim 

Para fazer esta configuração Firewalld permanente de recarga.

$ sudo firewall-cmd--reload 
Resumo

Firewalld é uma substituição fácil de usar para o serviço iptables, que usa iptables como um back -end. Neste artigo, mostramos como instalar o pacote Firewalld, explicamos os recursos importantes do firewalld e discutimos como configurá -los nos ambientes de tempo de execução e configuração permanente.

Se você tiver alguma dúvida ou comentário, sinta -se à vontade para entrar em contato conosco através do formulário de comentário abaixo. Você pode se referir à página manual do firewalld (Man Firewalld) ou à documentação do Firewalld no site do projeto, para obter mais informações.