Como Configurar o Firewall UFW no Linux

Sem um firewall, não há regras ou restrições no tráfego da sua rede e isso leva a várias consequências negativas. O sistema Linux vem com uma ferramenta de configuração de firewall padrão, que é o Uncomplicated Firewall (UFW). Mas como configurar um firewall UFW? Relaxe e siga este tutorial, ele tem tudo explicado!

Neste tutorial, você aprenderá como configurar o UFW e instalar um firewall no seu sistema Linux para proteger sua rede e se proteger contra atos maliciosos.

Preparado? Continue lendo para começar!

Pré-requisitos

Este tutorial será uma demonstração prática. Se quiser acompanhar, certifique-se de ter o seguinte:

  • Uma máquina Ubuntu – Este tutorial usa o Ubuntu 20.04 LTS, mas outras distribuições Linux funcionarão.

Instalando o UFW e Habilitando a Conexão IPv6

Mesmo que o UFW esteja incluído no seu sistema Ubuntu, ele não é instalado por padrão. Instale primeiro o UFW com o gerenciador de pacotes apt e configure-o para permitir conexões sobre IPv6.

1. Abra o seu terminal e execute o comando apt update abaixo para atualizar o índice local de pacotes. O comando aceita todas as solicitações (-y) durante a atualização para menos intervenção do usuário.

sudo apt update -y
Updating the System Package

2. Em seguida, execute o comando abaixo para instalar o UFW (install uwf) no seu sistema, aceitando todas as solicitações (-y) durante a instalação.

sudo apt install ufw -y
Installing UFW on Ubuntu

3. Abra o arquivo de configuração do UFW (/etc/default/ufw) com o seu editor de texto favorito. O UFW suporta IPv6, mas você precisa garantir que o firewall esteja configurado para aceitar conexões sobre IPv6.

Se você só tiver o IPv4 ativado, ainda estará vulnerável a ataques IPv6.

4. Role até a variável IPV6 e defina o valor como yes, como mostrado abaixo, depois salve as alterações e saia do editor

Enabling IPV6 in the UFW Configuration File

5. Por fim, execute o comando abaixo para desabilitar e reabilitar o UFW. O comando reinicia o serviço UFW para que as alterações possam entrar em vigor.

Após a conclusão do comando, seu firewall agora pode escrever conjuntos de regras de firewall para IPv4 e IPv6.

sudo ufw disable && sudo ufw enable

Configurando Políticas Padrão para Regras de Firewall

Se você está apenas começando com o UFW, é recomendável configurar uma política padrão para suas regras. As políticas padrão são aplicadas a uma cadeia que ainda não possui regras específicas definidas.

Configure o UFW para negar todas as conexões de entrada e permitir todas as conexões de saída. Como resultado, qualquer pessoa tentando acessar sua máquina do mundo exterior será negada, enquanto você ainda pode se conectar livremente a qualquer site ou servidor.

Execute o comando ufw abaixo para negar todas as conexões de entrada por padrão.

sudo ufw default deny incoming
Denying Incoming Network Traffics

Agora execute o seguinte comando para permitir todas as conexões de saída por padrão.

sudo ufw default allow outgoing
Allowing Outgoing Network Traffics

Permitindo Conexões SSH no Firewall UFW

Você acabou de configurar políticas padrão no seu firewall UFW para negar todo o tráfego de entrada, e a regra “permitir tudo-negar tudo” é uma boa configuração para um usuário comum. Mas e se você estiver executando um servidor? Você precisará permitir tráfego específico de entrada e saída. Permitir a conexão SSH no seu firewall UFW resolverá para permitir tráfego específico de entrada e saída.

Você configurará um servidor SSH que permite conexões SSH de entrada na porta 22. Mas por que a porta 22 e não outra porta? Em sistemas semelhantes ao Unix, o daemon SSH escuta na porta 22 por padrão, então é uma boa prática usar a porta SSH padrão para facilitar um pouco sua vida.

1. Execute os comandos abaixo para instalar o servidor OpenSSH (install openssh-server) no seu sistema e iniciar um servidor OpenSSH (start ssh).

sudo apt install openssh-server -y
sudo systemctl start ssh

2. Agora execute o comando abaixo para permitir conexões SSH de entrada. Sem especificar a porta 22 será suficiente, pois o UFW sabe qual porta é para SSH.

sudo ufw allow ssh
Allowing SSH connection

O arquivo /etc/services contém uma lista de todos os serviços disponíveis no seu sistema. Abra o arquivo no seu editor de texto, role até ssh e veja que o número da porta (22) faz parte da descrição do serviço, como mostrado abaixo.

Previewing the /etc/services file

Mas talvez você prefira especificar o número da porta (22) para permitir o SSH. Se for o caso, execute o seguinte comando.

sudo ufw allow 22

3. Agora execute o comando abaixo para ativar o UFW.

sudo ufw enable

Digite Y na solicitação de confirmação, como mostrado abaixo, e pressione Enter para continuar executando o comando. O UFW agora começará a filtrar pacotes no seu sistema.

Enabling UFW

4. Por fim, execute um dos comandos abaixo para verificar o status do seu firewall UFW.

## Exibe informações mais detalhadas, como a interface e 
## o progresso atual do pacote
sudo ufw status verbose
## Mostra cada regra com um número e o status correspondente de permitir ou negar 
## O modo numerado é útil ao tentar excluir um conjunto de regras aqui e ali
sudo ufw status numbered

Se você executar o comando com a opção verbose, verá uma saída semelhante à seguinte:

  • Status: ativo – Indica que o firewall está atualmente em execução.
  • Logging: ligado (baixo) – Indica que o UFW está registrando todos os pacotes processados pelo firewall.
  • Padrão: negar (entrada), permitir (saída), desativado (roteado) – Indica que a política padrão é negar todas as conexões de entrada e permitir todas as conexões de saída.
  • Novos perfis: pular – Indica que o firewall está atualmente usando o conjunto padrão de regras.
Checking verbose UFW firewall status

Se você executar o comando com a opção numerado em vez disso, verá a saída abaixo. Você pode ver uma lista de regras numeradas e seu status correspondente de PERMITIR ou NEGAR.

Viewing the UW Firewall status in a numbered list

Permitindo Conexões HTTP e HTTPS

Neste ponto, você só permitiu conexões SSH no seu firewall UFW, mas isso limita as capacidades do seu servidor. Permita outros tipos de conexões, como HTTP ou HTTPS, e adicione mais regras ao firewall UFW.

Execute um dos seguintes comandos para permitir conexões HTTP de entrada.

## A conexão HTTP usa a porta 80 (não segura)
sudo ufw allow 80
sudo ufw allow http
Allowing HTTP connections

Agora, execute um dos comandos abaixo para permitir conexões HTTPS de entrada.

sudo ufw allow https
## A conexão HTTPS usa a porta 443 (segura)
sudo ufw allow 443
Allowing incoming HTTPS connections.

Permitindo Conexões de uma Faixa de Portas Específica e Endereço IP

Algumas aplicações usam várias portas para fornecer seus serviços. E talvez você tenha uma faixa de portas para abrir ou precise permitir conexão de um endereço IP específico. Nesse caso, adicione mais regras ao firewall UFW.

Execute os comandos abaixo para permitir conexões de entrada nas portas 5001 a 5009. Você sempre deve especificar o protocolo (tcp ou udp) após o intervalo de portas ao qual as regras se aplicam, pois nem todas as portas são utilizadas por ambos os protocolos.

Por exemplo, as portas TCP comumente usadas incluem 80 (HTTP) e 443 (HTTPS). Mas as portas UDP comuns incluem 53 (DNS) e 67/68 (DHCP).

sudo ufw allow 5001:5010/tcp
sudo ufw allow 5001:5010/udp
Allowing traffic on 5001:5010 port range

Execute o comando abaixo se preferir permitir conexões SSH de um endereço IP específico. O comando permite conexões SSH (porta 22) apenas do endereço IP 192.168.1.2.

sudo ufw allow from 192.168.1.2 to any port 22
Allowing SSH Connections from Specific IP Address

Permitindo Tráfego de uma Interface de Rede Específica

O UFW também permite que você permita tráfego apenas em uma interface de rede específica, como eth0 é a primeira interface Ethernet e wlan0 é a primeira interface Wi-Fi.

Execute um dos comandos abaixo para permitir conexões HTTP apenas nas interfaces eth0 e wlan0.

## Permitir conexão HTTP apenas na interface eth0
sudo ufw allow in on eth0 to any port 80
## Permitir conexão HTTP apenas na interface wlan0
sudo ufw allow in on wlan0 to any port 80
Allowing traffic on a specific interface

Excluindo Regras do Firewall UFW

Talvez algumas regras de firewall UFW não sirvam mais para nenhum propósito. Nesse caso, você pode querer remover algumas das regras do UFW. Mas primeiro, você deve saber o número ou o nome da regra a ser excluída.

1. Execute o comando abaixo para obter uma lista numerada das regras adicionadas ao UFW.

sudo ufw status numbered

Observe o número ou nome da regra na saída, como o exemplo abaixo.

Previewing all the rules

2. Em seguida, execute o comando abaixo para excluir a regra de número 4, que é o intervalo de porta 5001:5010/tcp.

sudo ufw delete 4
Deleting a Rule by Rule Number

3. Execute o comando abaixo para excluir uma regra pelo seu nome real com o status allow. Neste exemplo, você excluiria a regra http executando o seguinte comando.

sudo ufw delete allow http
Deleting a Rule by Rule Name (http)

4. Agora execute o seguinte comando para excluir uma regra especificando um número de porta (443) com o status allow.

sudo ufw delete allow 443
Deleting a Rule by Port Number (443)

5. Por fim, execute novamente o seguinte comando como fez no primeiro passo para listar todas as regras.

sudo ufw status numbered

Como mostrado abaixo, as regras para o intervalo de porta 5001:5010/tcp, o http e a porta 443 agora estão ausentes.

Checking the firewall rules

Redefinindo o Firewall UFW

Pode haver momentos em que você precise redefinir o UFW para suas configurações padrão, como após configurar um grande conjunto de regras. Uma atualização pode alterar sua configuração, exigindo que você reconfigure o UFW e possivelmente comece do zero.

Execute o comando ufw reset abaixo para redefinir todas as suas regras de firewall para as configurações padrão. Este comando desativa o UFW e exclui todas as suas regras de firewall atuais.

sudo ufw reset

Digite ‘Y’ e pressione Enter para continuar redefinindo seu firewall UFW.

Resetting UFW

Após a redefinição ser concluída, você terá uma instalação nova do UFW totalmente desativada e até mesmo suas políticas padrão foram removidas.

Agora execute o comando abaixo para reativar o UFW e começar a configurar suas regras de firewall do zero.

sudo ufw enable

Se você decidir que não quer mais usar o UFW, então não há necessidade de reativá-lo. Ou execute o comando abaixo para garantir que o UFW esteja desativado.

sudo ufw disable
Disabling UFW firewall

Conclusão

Ao longo deste tutorial, você percebeu que configurar um firewall não é tão assustador ao usar o UFW. Agora você deve ter um bom entendimento de como configurar e implementar suas próprias regras com o UFW no Ubuntu.

Agora, por que não construir sobre esse conhecimento recém-descoberto aprendendo mais sobre UFW e Segurança do Docker em uma máquina Linux?

Source:
https://adamtheautomator.com/ufw-firewall/