Pesquisa de site

Como configurar o firewall UFW no Ubuntu e Debian


Um firewall funcionando corretamente é a parte mais importante da segurança completa do sistema Linux. Por padrão, a distribuição Debian e Ubuntu vem com uma ferramenta de configuração de firewall chamada UFW (Firewall Descomplicado), é uma ferramenta de linha de comando mais popular e fácil de usar para configurar e gerenciando um firewall em distribuições Ubuntu e Debian.

Neste artigo, explicaremos como instalar e configurar um firewall UFW em distribuições Ubuntu e Debian.

Pré-requisitos

Antes de começar com este artigo, certifique-se de estar logado em seu servidor Ubuntu ou Debian com o usuário sudo ou com a conta root. Se você não tiver um usuário sudo, poderá criar um usando as seguintes instruções como usuário root.

adduser username
usermod -aG sudo username 
su - username
sudo whoami

Instale o Firewall UFW no Ubuntu e Debian

O UFW (Firewall Descomplicado) deve ser instalado por padrão no Ubuntu e Debian, caso contrário, instale-o usando o gerenciador de pacotes APT usando o seguinte comando.

sudo apt install ufw

Verifique o firewall UFW

Assim que a instalação for concluída, você pode verificar o status do UFW digitando.

sudo ufw status verbose

Na primeira instalação, o firewall UFW está desabilitado por padrão, a saída será semelhante à abaixo.

Status: inactive

Habilitar firewall UFW

Você pode ativar ou habilitar o firewall UFW usando o seguinte comando, que deve carregar o firewall e permitir que ele seja iniciado na inicialização.

sudo ufw enable

Para desabilitar o firewall UFW, use o seguinte comando, que descarrega o firewall e desabilita sua inicialização na inicialização.

sudo ufw disable 

Políticas padrão do UFW

Por padrão, o firewall UFW nega todas as conexões de entrada e permite apenas todas as conexões de saída com o servidor. Isso significa que ninguém pode acessar o seu servidor, a menos que você abra especificamente a porta, enquanto todos os serviços ou aplicativos em execução no seu servidor podem acessar a rede externa.

As políticas de firewall UFW padrão são colocadas no arquivo /etc/default/ufw e podem ser alteradas usando o seguinte comando.

sudo ufw default deny incoming
sudo ufw default allow outgoing

Perfis de aplicação UFW

Ao instalar um pacote de software usando o gerenciador de pacotes APT, ele incluirá um perfil de aplicativo no diretório /etc/ufw/applications.d que define o serviço e mantém as configurações do UFW.

Você pode listar todos os perfis de aplicativos disponíveis em seu servidor usando o seguinte comando.

sudo ufw app list

Dependendo das instalações do pacote de software em seu sistema, a saída será semelhante a esta:

Available applications:
  APACHE
  APACHE Full
  APACHE SECURE
  CUPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission

Se quiser obter mais informações sobre um determinado perfil e regras definidas, você pode usar o seguinte comando.

sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server 
Description: Apache V2 is the next generation f the omnipresent Apache web server.

Ports:
  80/tcp

Habilite IPv6 com UFW

Se o seu servidor estiver configurado com IPv6, certifique-se de que seu UFW esteja configurado com suporte para IPv6 e IPv4. Para verificar, abra o arquivo de configuração UFW usando seu editor favorito.

sudo vi /etc/default/ufw

Em seguida, certifique-se de que “IPV6” esteja definido como "yes" no arquivo de configuração, conforme mostrado.

IPV6=yes

Salve e saia. Em seguida, reinicie seu firewall com os seguintes comandos:

sudo ufw disable
sudo ufw enable

Permitir conexões SSH no UFW

Se você já habilitou o firewall UFW, ele bloqueará todas as conexões de entrada e se você estiver conectado ao seu servidor via SSH de um local remoto, você não poderá mais conectá-lo novamente.

Vamos habilitar conexões SSH com nosso servidor para impedir que isso aconteça usando o seguinte comando:

sudo ufw allow ssh

Se você estiver usando uma porta SSH personalizada (por exemplo, porta 2222), será necessário abrir essa porta no firewall UFW usando o seguinte comando.

sudo ufw allow 2222/tcp

Para bloquear todas as conexões SSH digite o seguinte comando.

sudo ufw deny ssh/tcp
sudo ufw deny 2222/tcp  [If using custom SSH port]

Habilite portas específicas no UFW

Você também pode abrir uma porta específica no firewall para permitir conexões através dela a um determinado serviço. Por exemplo, se você deseja configurar um servidor web que escuta nas portas 80 (HTTP) e 443 (HTTPS >) por padrão.

Abaixo estão alguns exemplos de como permitir conexões de entrada para serviços Apache.

Abra a porta 80 HTTP no UFW
sudo ufw allow http     [By service name]
sudo ufw allow 80/tcp   [By port number]
sudo ufw allow 'Apache' [By application profile]
Abra a porta 443 HTTPS no UFW
sudo ufw allow https
sudo ufw allow 443/tcp
sudo ufw allow 'Apache Secure'

Permitir intervalos de portas no UFW

Supondo que você tenha alguns aplicativos que deseja executar em um intervalo de portas (5000-5003), você pode adicionar todas essas portas usando os comandos a seguir.

sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp

Permitir endereços IP específicos

Se você deseja permitir conexões em todas as portas a partir do endereço IP específico 192.168.56.1, será necessário especificar antes do endereço IP.

sudo ufw allow from 192.168.56.1

Permitir endereços IP específicos em portas específicas

Para permitir a conexão em uma porta específica (por exemplo, porta 22) da sua máquina doméstica com endereço IP 192.168.56.1, você precisa adicionar qualquer porta< e o número da porta após o endereço IP, conforme mostrado.

sudo ufw allow from 192.168.56.1 to any port 22

Permitir sub-redes de rede para portas específicas

Para permitir conexões para endereços IP específicos variando de 192.168.1.1 a 192.168.1.254 até a porta 22 (SSH) , execute o seguinte comando.

sudo ufw allow from 192.168.1.0/24 to any port 22

Permitir interface de rede específica

Para permitir conexões com uma interface de rede específica eth2 para uma porta específica 22 (SSH), execute o seguinte comando.

sudo ufw allow in on eth2 to any port 22

Negar conexões no UFW

Por padrão, todas as conexões de entrada são bloqueadas, a menos que você tenha aberto especificamente a conexão no UFW. Por exemplo, você abriu as portas 80 e 443 e seu servidor web está sob ataque da rede desconhecida 11.12.13.0/24.

Para bloquear todas as conexões deste intervalo de rede 11.12.13.0/24 específico, você pode usar o seguinte comando.

sudo ufw deny from 11.12.13.0/24

Se você deseja bloquear conexões apenas nas portas 80 e 443, você pode usar os seguintes comandos.

sudo ufw deny from 11.12.13.0/24 to any port 80
sudo ufw deny from 11.12.13.0/24 to any port 443

Excluir regras do UFW

Existem duas maneiras de excluir regras UFW, por número da regra e por regra real.

Para excluir regras UFW usando o número da regra, primeiro você precisa listar as regras por números usando o seguinte comando.

sudo ufw status numbered
Saída de amostra
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere

Para excluir a regra número 1, use o seguinte comando.

sudo ufw delete 1

O segundo método é excluir uma regra usando a regra atual, por exemplo, para excluir uma regra, especifique o número da porta com o protocolo conforme mostrado.

sudo ufw delete allow 22/tcp

Regras do UFW para simulação

Você pode executar qualquer comando ufw sem realmente fazer nenhuma alteração no firewall do sistema usando o sinalizador --dry-run, isso simplesmente mostra as alterações que deveriam acontecer.

sudo ufw --dry-run enable

Redefinir firewall UFW

Por um motivo ou outro, se você deseja excluir/redefinir todas as regras de firewall, digite os seguintes comandos, isso reverterá todas as suas alterações e começará do zero.

sudo ufw reset
sudo ufw status

Funcionalidade Avançada UFW

O firewall UFW pode fazer qualquer coisa que o iptables faz. Isso pode ser feito com diferentes conjuntos de arquivos de regras, que nada mais são do que simples arquivos de texto iptables-restore.

O ajuste do firewall UFW ou a adição de comandos iptables adicionais não são permitidos através do comando ufw, é apenas uma questão de alterar os seguintes arquivos de texto

  • /etc/default/ufw: O arquivo de configuração principal com regras predefinidas.
  • /etc/ufw/before[6].rules: Neste arquivo as regras são calculadas antes de serem adicionadas através do comando ufw.
  • /etc/ufw/after[6].rules: Neste arquivo as regras são calculadas após a adição por meio do comando ufw.
  • /etc/ufw/sysctl.conf: Este arquivo é usado para ajustar a rede do kernel.
  • /etc/ufw/ufw.conf: Este arquivo habilita o ufw na inicialização.

É isso! UFW é um excelente front-end para iptables com uma interface amigável para definir regras complexas com um único comando ufw.

Se você tiver alguma dúvida ou opinião para compartilhar sobre este artigo do ufw, use o formulário de comentários abaixo para entrar em contato conosco.