Usando Firewall com UFW no Ubuntu Linux

Usando Firewall com UFW no Ubuntu Linux

Aprenda os conceitos básicos do uso do firewall UFW para proteger seu sistema Linux neste guia para iniciantes.

UFW (Uncomplicated Firewall) é um utilitário de firewall simples de usar com muitas opções para todos os tipos de usuários.

Na verdade, é uma interface para o iptables, que é a ferramenta clássica de baixo nível (e mais difícil) para configurar regras para sua rede.

Por que você deve usar um Firewall?

Um firewall é uma maneira de regular o tráfego de entrada e saída em sua rede. Isso é crucial para os servidores, mas também torna o sistema de um usuário normal muito mais seguro, dando-lhe controle. Se você é uma daquelas pessoas que gostam de manter as coisas sob controle em um nível avançado, mesmo na área de trabalho, você pode considerar a configuração de um firewall.

Em suma, o firewall é algo obrigatório para os servidores. Em desktops, cabe a você se você deseja configurá-lo.

Configurando um firewall com UFW

É importante configurar corretamente o firewall. Uma configuração incorreta pode deixar o servidor inacessível se você estiver fazendo isso para um sistema Linux remoto, como um servidor em nuvem ou VPS. Por exemplo, você bloqueia todo o tráfego de entrada no servidor que está acessando via SSH. Agora você não poderá acessar o servidor via SSH.

Neste tutorial, analisaremos a configuração de um firewall que atenda às suas necessidades, dando uma visão geral do que pode ser feito usando esse utilitário simples. Isso deve ser adequado para ambos usuários de servidor Ubuntu e desktop.

Por favor, note que estaremos usando o método de linha de comando aqui. Existe um front-end GUI chamado Gufw para usuários de desktop, mas não vamos abordá-lo neste tutorial. Há um guia para Gufw dedicado se você quiser usar.

Instalando o UFW

Se você estiver usando o Ubuntu, UFW já deve estar instalado. Caso contrário, você pode instalá-lo usando o seguinte comando:

Comandos para usar no terminal

sudo apt install ufw

Para outras distribuições, use seu gerenciador de pacotes para instalar o UFW.

Para verificar se o UFW está instalado corretamente, rode:

Comandos para usar no terminal

ufw --version

Se ele estiver instalado, você deverá ver os detalhes da versão:

ufw 0.36.1
Copyright 2008-2021 Canonical Ltd.

Legal! Então você tem UFW em seu sistema. Vamos ver sobre como usá-lo agora.

Nota: Você precisa usar sudo ou ser root para executar (quase) todos os comandos ufw.

Verifique o status e as regras do UFW

O UFW funciona configurando regras para o tráfego de entrada e saída. Essas regras consistem em permitir e negar fontes e destinos específicos.

Você pode verificar as regras de firewall usando o seguinte comando:

Comandos para usar no terminal

sudo ufw status

Isso deve fornecer a seguinte saída neste estágio:

Estado: inativo

O comando acima teria mostrado as regras de firewall se o firewall estivesse habilitado. Por padrão, o UFW não está habilitado e não afeta sua rede. Cuidaremos disso na próxima seção.

ufw_1

Mas aqui está a coisa, você pode ver e modificar as regras de firewall, mesmo ufw não estando habilitado.

Comandos para usar no terminal

sudo ufw show added

E no caso aqui, mostrou esse resultado:

Regras de usuário adicionadas (veja 'ufw status' para executar o firewall):
ufw allow 12345/tcp
ufw allow 12345
ufw allow 80/tcp
ufw deny 22
ufw deny 443/udp
ufw allow 90:100/tcp

Políticas padrão

Por padrão, o UFW nega toda a entrada e permite todo o tráfego de saída. Esse comportamento faz todo o sentido para o usuário médio de desktop, já que você deseja se conectar a vários serviços (como http/https para acessar páginas da Web) e não deseja que ninguém se conecte à sua máquina.

No entanto, se você estiver usando um servidor remoto, deverá permitir o tráfego na porta SSH para que você possa se conectar ao sistema remotamente.

Você pode permitir o tráfego na porta padrão SSH 22:

Comandos para usar no terminal

sudo ufw allow 22

Caso você esteja usando SSH em alguma outra porta, permita-o no nível de serviço:

Comandos para usar no terminal

sudo ufw allow ssh

Observe que o firewall ainda não está ativo. Isso é uma coisa boa. Você pode modificar regras antes de habilitar o ufw para que os serviços essenciais não sejam afetados.

Se você for usar o UFW como um servidor de produção, certifique-se de permitir portas por meio do UFW para os serviços em execução.

Por exemplo, os servidores web geralmente usam a porta 80, então use sudo ufw allow 80. Você também pode fazê-lo no nível de serviço sudo ufw allow apache.

Esse ônus está do seu lado e é sua responsabilidade garantir que seu servidor funcione corretamente.

Para usuários de desktop, você pode ir em frente com as políticas padrão.

Comandos para usar no terminal

sudo ufw default deny incoming

Ativando e desativando o UFW

Para que o UFW funcione, você precisa habilitá-lo:

Comandos para usar no terminal

sudo ufw enable

Isso iniciará o firewall e o agendará para iniciar toda vez que você inicializar. Você recebe a seguinte mensagem:

Firewall está ativo e habilitado na inicialização do sistema

Novamente: se você estiver conectado a uma máquina via ssh, certifique-se de que ssh é permitido antes de ativar ufw inserindo sudo ufw allow ssh.

Se você quiser desativar o UFW, digite:

Comandos para usar no terminal

sudo ufw disable

Você receberá:

Firewall parado e desativado na inicialização do sistema

Recarregando firewall para novas regras

Se o UFW já estiver habilitado e você modificar as regras de firewall, será necessário recarregá-lo antes que as alterações entrem em vigor.

Você pode reiniciar o UFW desabilitando-o e habilitando-o novamente:

Comandos para usar no terminal

sudo ufw disable && sudo ufw enable

Ou recarregue as regras:

Comandos para usar no terminal

sudo ufw reload

Redefinindo para as regras de firewall padrão

Se, a qualquer momento, você estragar qualquer uma de suas regras e quiser retornar às regras padrão (ou seja, sem exceções para permitir o tráfego de entrada ou de saída), você pode iniciá-lo novamente com:

Comandos para usar no terminal

sudo ufw reset

Lembre-se de que isso excluirá todas as configurações do firewall.

Configurando o firewall com UFW (visualização mais detalhada)

Tudo bem! Então você aprendeu a maioria dos comandos básicos do ufw. Nesta fase, talvez queira ir um pouco mais em detalhes sobre a configuração das regras de firewall.

Permitindo e negando por protocolo e portas

É assim que você adiciona novas exceções ao seu firewall; allow permite que sua máquina receba dados do serviço especificado, enquanto deny faz o oposto

Por padrão, esses comandos adicionarão regras para IP e IPv6. Se você quiser modificar esse comportamento, você terá que editar o arquivo de configuração /etc/default/ufw. Mude

IPV6=yes

Para

IPV6=no

Dito isto, os comandos básicos são:

sudo ufw allow porta/opcional: protocolo
sudo ufw deny porta/opcional: protocolo

Se a regra foi adicionada com êxito, você receberá:

Regras atualizadas
Regras atualizadas (v6)

Por exemplo:

Comandos para usar no terminal

sudo ufw allow 80/tcp sudo ufw deny 22 sudo ufw deny 443/udp

Nota: se você não incluir um protocolo específico, a regra será aplicada para tcp e udp.

Se você habilitar (ou, se já estiver em execução, recarregar) o UFW e verificar seu status, poderá ver que as novas regras foram aplicadas com êxito.

ufw_2

Você também pode permitir/negar intervalos de portas. Para esse tipo de regra, você deve especificar o protocolo. Por exemplo:

Comandos para usar no terminal

sudo ufw allow 90:100/tcp

Permitirá todos os serviços nas portas 90 a 100 usando o protocolo TCP. Você pode recarregar e verificar o status:

ufw_3

Permitindo e negando por serviços

Para facilitar as coisas, você também pode adicionar regras usando o nome do serviço:

Comandos para usar no terminal

sudo ufw allow nome_do_serviço sudo ufw deny nome_do_serviço

Por exemplo, para permitir ssh e bloquear HTTP:

Comandos para usar no terminal

sudo ufw allow ssh sudo ufw deny http

Ao fazê-lo, UFW lerá os serviços de /etc/services. Você mesmo pode conferir a lista:

Comandos para usar no terminal

less /etc/services

ufw_4

Adicionando regras para aplicativos

Alguns aplicativos fornecem serviços nomeados específicos para facilitar o uso e podem até utilizar portas diferentes. Um exemplo é ssh. Você pode ver uma lista desses aplicativos que estão presentes em sua máquina com o seguinte:

Comandos para usar no terminal

sudo ufw app list

ufw_5

No nosso caso, as aplicações disponíveis são Apache, CUPS (um sistema de impressão em rede), OpenSSH e Samba.

Para adicionar uma regra para um aplicativo, digite:

Comandos para usar no terminal

sudo ufw allow aplicação sudo ufw deny aplicação

Por exemplo:

Comandos para usar no terminal

sudo ufw allow OpenSSH

Recarregando e verificando o status, você deve ver que a regra foi adicionada:

ufw_6

Conclusão

Esta foi apenas a ponta do iceberg. Há muito mais nos firewalls no Linux que um livro pode ser escrito nele.

Se você achou complicado configurar um firewall com UFW, você deve tentar usar iptables ou nftables. Então você perceberá como o UFW descomplica a configuração do firewall.

Esperamos que tenham gostado deste guia para iniciantes do UFW. Deixe-nos saber se você tiver dúvidas ou sugestões.

Última atualização deste artigo: 23 de december de 2022