Como começar com firewalld no Linux

Laptop em um fundo azul mostrando um prompt de comando do Linux.

Se você está procurando um firewall moderno e poderoso para Linux que seja fácil de configurar na linha de comando ou com sua interface GUI, provavelmente firewalldé o que você está procurando.

A necessidade de firewalls

As conexões de rede têm origem e destino. O software na origem solicita a conexão e o software no destino a aceita ou rejeita. Se for aceito, pacotes de dados – genericamente chamados de tráfego de rede – podem passar em ambas as direções pela conexão. Isso vale quer você esteja compartilhando pela sala em sua própria casa, conectando-se remotamente ao trabalho em seu escritório doméstico ou usando um recurso distante baseado em nuvem.

As boas práticas de segurança dizem que você deve limitar e controlar as conexões ao seu computador. Isto é o que os firewalls fazem . Eles filtram o tráfego de rede por endereço IP , porta ou protocolo e rejeitam conexões que não atendem a um conjunto predefinido de critérios – as regras de firewall – que você configurou. Eles são como seguranças em um evento exclusivo. Se o seu nome não estiver na lista, você não entrará.

É claro que você não quer que suas regras de firewall sejam tão restritivas que suas atividades normais sejam restringidas. Quanto mais simples for configurar seu firewall, menor será a chance de você configurar inadvertidamente regras conflitantes ou draconianas. Freqüentemente ouvimos usuários dizerem que não usam firewall porque é muito complicado de entender ou porque a sintaxe do comando é muito opaca.

O firewalldfirewall é poderoso, mas simples de configurar, tanto na linha de comando quanto por meio de seu aplicativo GUI dedicado. Nos bastidores, os firewalls do Linux dependem de

 netfilter 

, a estrutura de filtragem de rede do lado do kernel. Aqui na terra do usuário, temos uma variedade de ferramentas para interagir

 netfilter 

, como

 iptables 

,

 ufw 

o firewall descomplicado e firewalld.

Em nossa opinião, firewalldoferece o melhor equilíbrio entre funcionalidade, granularidade e simplicidade.

Instalando firewalld

Existem duas partes para firewalld. Existe firewalldo processo daemon que fornece a funcionalidade do firewall, e existe o firewall-config. Esta é a GUI opcional para firewalld. Observe que não há “d” em firewall-config.

A instalação firewalldno Ubuntu, Fedora e Manjaro é simples em todos os casos, embora cada um deles tenha sua própria opinião sobre o que está pré-instalado e o que vem no pacote.

Para instalar no Ubuntu , precisamos instalar firewallde firewall-config.

sudo apt instalar firewalld

Instalando firewalld no Ubuntu

sudo apt instalar firewall-config

Instalando firewall-config no Ubuntu

No Fedora , firewalldjá está instalado. Só precisamos adicionar firewall-config.

sudo dnf install firewall-config

Instalando firewall-config no Fedora

No Manjaro , nenhum dos componentes está pré-instalado, mas eles estão agrupados em um único pacote para que possamos instalar os dois com um único comando.

Recomendado:  O seu Microsoft Office ainda está recebendo atualizações de segurança?

sudo pacman -Sy firewalld

Instalando firewalld e firewall-config com um comando no Manjaro

Precisamos habilitar o firewallddaemon para permitir que ele seja executado sempre que o computador for inicializado.

sudo systemctl ativar firewalld

Habilitando o firewalld para iniciar automaticamente na inicialização

E precisamos iniciar o daemon para que ele esteja rodando agora.

sudo systemctl iniciar firewalld

Iniciando o daemon firewalld

Podemos usar systemctlpara verificar se firewalldfoi iniciado e está funcionando sem problemas:

sudo systemctl status firewalld

Verificando o status do firewalld com systemctl

Também podemos usar firewalldpara verificar se está em execução. Isso usa o firewall-cmdcomando com a --stateopção. Observe que não há “d” em firewall-cmd:

sudo firewall-cmd --state

Verificando o status do firewalld com o comando firewall-cmd

Agora que temos o firewall instalado e funcionando, podemos prosseguir com a configuração.

O conceito de zonas

O firewalldfirewall é baseado em zonas. As zonas são coleções de regras de firewall e uma conexão de rede associada. Isso permite que você personalize diferentes zonas – e um conjunto diferente de limitações de segurança – sob as quais você pode operar. Por exemplo, você pode ter uma zona definida para corrida diária regular, outra zona para corrida mais segura e uma zona de bloqueio completa “nada dentro, nada fora”.

Para passar de uma zona para outra, e efetivamente de um nível de segurança para outro, você move sua conexão de rede da zona em que está para a zona sob a qual deseja operar.

Isso torna muito rápido mover um conjunto definido de regras de firewall para outro. Outra maneira de usar zonas seria fazer com que seu laptop usasse uma zona quando você estiver em casa e outra quando estiver fora e usando uma rede Wi-Fi pública.

firewalldvem com nove zonas pré-configuradas. Estas podem ser editadas e mais zonas adicionadas ou removidas.

  • drop : Todos os pacotes recebidos são descartados. O tráfego de saída é permitido. Este é o cenário mais paranóico.
  • bloco : Todos os pacotes recebidos são descartados e uma icmp-host-prohibitedmensagem é enviada ao originador. O tráfego de saída é permitido.
  • confiável : todas as conexões de rede são aceitas e outros sistemas são confiáveis. Esta é a configuração mais confiável e deve ser restrita a ambientes muito seguros, como redes de teste cativas ou sua casa.
  • public : Esta zona é para uso em redes públicas ou outras redes onde nenhum dos outros computadores é confiável. Uma pequena seleção de solicitações de conexão comuns e geralmente seguras é aceita.
  • externo : Esta zona é para uso em redes externas com mascaramento NAT ( encaminhamento de porta ) habilitado. Seu firewall atua como um roteador que encaminha o tráfego para sua rede privada, que permanece acessível, mas ainda privada.
  • interno : Esta zona destina-se a ser usada em redes internas quando o seu sistema atua como gateway ou roteador. Outros sistemas nesta rede são geralmente confiáveis.
  • dmz : Esta zona é para computadores localizados na “zona desmilitarizada” fora das defesas do seu perímetro e com acesso limitado à sua rede.
  • trabalho : Esta zona é para máquinas de trabalho. Outros computadores nesta rede são geralmente confiáveis.
  • home : Esta zona é para máquinas domésticas. Outros computadores nesta rede são geralmente confiáveis.
Recomendado:  Como copiar arquivos para uma unidade flash USB no Windows 10

As zonas residencial, de trabalho e interna têm funções muito semelhantes, mas separá-las em zonas diferentes permite ajustar uma zona de acordo com sua preferência, encapsulando um conjunto de regras para um cenário específico.

Um bom ponto de partida é descobrir qual é a zona padrão. Esta é a zona à qual suas interfaces de rede são adicionadas quando firewalldinstaladas.

sudo firewall-cmd --get-default-zone

Encontrando a zona firewalld padrão

Nossa zona padrão é a zona pública. Para ver os detalhes de configuração de uma zona, use a --list-allopção. Isso lista tudo o que foi adicionado ou habilitado para uma zona.

sudo firewall-cmd --zone=public --list-all

Listando os detalhes da zona pública

Podemos ver que esta zona está associada à conexão de rede enp0s3 e permite tráfego relacionado a DHCP , mDNS e SSH . Como pelo menos uma interface foi adicionada a esta zona, esta zona está ativa.

firewalldpermite adicionar serviços dos quais você gostaria de aceitar tráfego a uma zona. Essa zona permite a passagem desse tipo de tráfego. Isso é mais fácil do que lembrar que o mDNS, por exemplo, usa a porta 5353 e o protocolo UDP e adicionar manualmente esses detalhes à zona. Embora você também possa fazer isso.

Se executarmos o comando anterior em um laptop com conexão Ethernet e placa Wi-Fi, veremos algo semelhante, mas com duas interfaces.

sudo firewall-cmd --zone=public --list-all

Uma zona com duas interfaces

Ambas as nossas interfaces de rede foram adicionadas à zona padrão. A zona possui regras para os mesmos três serviços do primeiro exemplo, mas DHCP e SSH foram adicionados como serviços nomeados, enquanto o mDNS foi adicionado como um emparelhamento de porta e protocolo.

Para listar todas as zonas use a --get-zonesopção.

sudo firewall-cmd --get-zones

Listando todas as zonas do firewalld

Para ver a configuração de todas as zonas de uma vez, use a --list-all-zonesopção. Você vai querer canalizar isso paraless .

sudo firewall-cmd --list-all-zones | menos

Listando os detalhes de todas as zonas

Isso é útil porque você pode percorrer a listagem ou usar o recurso de pesquisa para procurar números de porta, protocolos e serviços.

Os detalhes de todas as zonas exibidos em menos

Em nosso laptop, moveremos nossa conexão Ethernet da zona pública para a zona inicial. Podemos fazer isso com as opções --zonee --change-interface.

sudo firewall-cmd --zone=home --change-interface=enp3s0

Adicionando uma interface de rede à zona inicial

Vamos dar uma olhada na zona local e ver se nossa alteração foi feita.

sudo firewall-cmd --zone=home --list-all

A zona inicial com uma interface de rede adicionada

E tem. Nossa conexão Ethernet é adicionada à zona inicial.

No entanto, esta não é uma mudança permanente. Alteramos a configuração de execução do firewall, não a configuração armazenada. Se reiniciarmos ou usarmos a --reloadopção, reverteremos às configurações anteriores.

Recomendado:  O que um purificador de ar faz e como funciona?

Para tornar uma alteração permanente, precisamos usar a --permanentopção apropriadamente nomeada.

Isso significa que podemos alterar o firewall para requisitos únicos sem alterar a configuração armazenada do firewall. Também podemos testar as alterações antes de enviá-las para a configuração. Para tornar nossa mudança permanente, o formato que devemos usar é:

sudo firewall-cmd --zone=home --change-interface=enp3s0 --permanent

Se você fizer algumas alterações, mas esquecer de usar --permanentalgumas delas, poderá gravar as configurações da sessão atual do firewall na configuração usando a --runtime-to-permanentopção.

sudo firewall-cmd --runtime-to-permanent

Recarregando a configuração do firewall

Adicionando e removendo serviços

firewalldconhece muitos serviços. Você pode listá-los usando a --get-servicesopção.

sudo firewall-cmd --get-services

Listando os serviços que o firewalld pode referenciar por nome

Nossa versão dos firewalld192 serviços listados. Para habilitar um serviço em uma zona, use a --add-service opção.

Lista de serviços reconhecidos

Podemos adicionar um serviço a uma zona usando a --add-serviceopção.

sudo firewall-cmd --zone=public --add-service=http

Adicionando o serviço HTTP a uma zona

O nome do serviço deve corresponder à sua entrada na lista de serviços de firewalld.

Para remover um serviço, substitua --add-servicepor--remove-service

Adicionando e removendo portas e protocolos

Se preferir escolher quais portas e protocolos serão adicionados, você também pode fazer isso. Você precisará saber o número da porta e o protocolo para o tipo de tráfego que está adicionando.

Vamos adicionar tráfego HTTPS à zona pública. Isso usa a porta 443 e é uma forma de tráfego TCP.

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

Adicionando um emparelhamento de porta e protocolo a uma zona

Você pode fornecer um intervalo de portas fornecendo a primeira e a última portas com um hífen ” -” entre elas, como “400-450”.

Para remover uma porta substitua --add-portpor --remove-port.

Usando a GUI

Pressione a tecla “Super” e comece a digitar “firewall”. Você verá o ícone da parede de tijolos do firewall-config aplicativo.

O ícone de configuração do firewall

Clique nesse ícone para iniciar o aplicativo.

Adicionar um serviço firewalldusando a GUI é tão fácil quanto selecionar uma zona na lista de zonas e selecionar o serviço na lista de serviços.

Você pode optar por modificar a sessão em execução ou a configuração permanente selecionando “Tempo de execução” ou “Permanente” no menu suspenso “Configuração”.

O menu suspenso de configuração

Para fazer alterações na sessão em execução e somente confirmá-las depois de testá-las, defina o menu “Configuração” como “Tempo de execução”. Faça suas alterações. Quando estiver satisfeito com o que eles estão fazendo, use a opção de menu Opções > Tempo de execução para permanente.

Para adicionar uma entrada de porta e protocolo a uma zona, selecione a zona na lista de zonas e clique em “Portas”. Clicar no botão adicionar permite fornecer o número da porta e escolher o protocolo em um menu.

Adicionando um emparelhamento de porta e protocolo usando a GUI de configuração do firewall

Para adicionar um protocolo, clique em “Protocolos”, clique no botão “Adicionar” e selecione o protocolo no menu pop-up.

Um protocolo na zona pública, na GUI de configuração do firewall

Para mover uma interface de uma zona para outra, clique duas vezes na interface na lista “Conexões” e selecione a zona no menu pop-up.

Movendo uma interface de rede de uma zona para outra na GUI de configuração do firewall

A ponta do iceberg

Há muito mais que você pode fazer firewalld, mas isso é suficiente para você começar a trabalhar. Com as informações que fornecemos, você poderá criar regras significativas em suas zonas.