Pesquisa de site

Instale e use o Firewalld no Ubuntu 22.04|20.04|18.04


Firewalld é uma ferramenta de gerenciamento de firewall Linux com suporte para IPv4, IPv6, pontes Ethernet e configurações de firewall IPSet. Ele atua como um front-end para a estrutura netfilter do kernel Linux. Firewalld é um software de gerenciamento de firewall padrão na família RHEL 7.

Neste guia, mostrarei o uso básico do Firewalld nas distribuições Linux Ubuntu 22.04|20.04|18.04. O sistema de firewall padrão do Ubuntu é ufw mas você pode instalar e usar o Firewalld se preferir. O Firewalld funciona bem para mim, já que sou um usuário frequente do CentOS 7.

Passo 1 – Instale o Firewalld no Ubuntu 22.04|20.04|18.04

Instale o Firewalld no Ubuntu

sudo apt update
sudo apt install firewalld

Por padrão, o serviço deve ser iniciado, se não estiver em execução, inicie e habilite-o para iniciar na inicialização:

sudo systemctl enable firewalld
sudo systemctl start firewalld

Confirme se o serviço está em execução:

$ sudo firewall-cmd --state
running

Se você tiver o ufw ativado, desative-o para tornar o firewalld seu firewall padrão

sudo ufw disable

Etapa 2: usando Firewalld no Ubuntu 22.04|20.04|18.04

Agora que o pacote foi instalado e o serviço firewalld iniciado, vejamos alguns exemplos de uso

Veja abaixo exemplos para o uso básico do firewalld.

1. Liste todas as regras de firewall configuradas

$ sudo firewall-cmd --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

Os serviços ssh e dhcpv6-client são ativados por padrão quando você inicia o serviço firewalld.

2. Obter uma lista de todos os serviços que podem ser ativados usando um nome

Para ver todos os serviços ativos, execute o seguinte comando:

sudo firewall-cmd --get-services

3. Ativar o serviço http 

Neste exemplo habilitamos o serviço http.

sudo firewall-cmd --add-service=http --permanent

A opção --permanent significa persistir regras contra reinicializações do servidor.

4. Ative http e https em uma única linha

Aqui está um exemplo de ativação de serviços http e https:

sudo firewall-cmd --permanent --add-service={http,https} --permanent

5. Ativar porta TCP 7070

Habilitar porta TCP 7070

sudo firewall-cmd --add-port=7070/tcp --permanent

6. Ativar a porta UDP 514

Como habilitar a porta UDP 514

sudo firewall-cmd --add-port=514/udp --permanent

7. Criar uma nova zona

Criação de uma nova zona chamada myzone

sudo firewall-cmd --new-zone=myzone --permanent

8. Ativar serviço em uma zona específica

Vamos habilitar um serviço na zona criada:

sudo firewall-cmd --zone=myzone --add-port=4567/tcp --permanent

9. Definir zona padrão

Definir zona criada como padrão

sudo firewall-cmd --set-default-zone=public --permanent

10. Adicionar uma interface a uma zona

Adicionando uma interface a uma zona:

sudo firewall-cmd --get-zone-of-interface=eth0 --permanent
sudo firewall-cmd --zone=<zone> --add-interface=eth0 --permanent

11. Permitir acesso a uma porta de uma sub-rede/IP específico

Como permitir o acesso de sub-rede especificado ao serviço ou porta:

# Allow access to ssh from 192.168.0.12 sing IP address
sudo firewall-cmd --add-rich-rule 'rule family="ipv4" service name="ssh" \
source address="192.168.0.12/32" accept' --permanent

# Allow access to ssh from 10.1.1.0/24 network
sudo firewall-cmd --add-rich-rule 'rule family="ipv4" service name="ssh" \
source address="10.1.1.0/24" accept' --permanent

12. Listar regras avançadas

Listar regras ricas no sistema

sudo firewall-cmd --list-rich-rules

13. Configurar o encaminhamento de porta

Habilite o encaminhamento de porta:

# Enable masquerading
sudo firewall-cmd --add-masquerade --permanent

# Port forward to a different port within same server ( 22 > 2022)
sudo firewall-cmd --add-forward-port=port=22:proto=tcp:toport=2022 --permanent

# Port forward to same port on a different server (local:22 > 192.168.2.10:22)
sudo firewall-cmd --add-forward-port=port=22:proto=tcp:toaddr=192.168.2.10 --permanent

# Port forward to different port on a different server (local:7071 > 10.50.142.37:9071)
sudo firewall-cmd --add-forward-port=port=7071:proto=tcp:toport=9071:toaddr=10.50.142.37 --permanent

14. Removendo porta/serviço

Substitua --add por –-remove

Para leitura adicional, consulte a documentação oficial do Firewalld

Artigos relacionados: