Como Configurar o Firewall UFW no Ubuntu e Debian

A correctly functioning firewall is the most crucial part of the complete Linux system security. By default, Debian and Ubuntu distribution comes with a firewall configuration tool called UFW (Uncomplicated Firewall), is a most popular and easy-to-use command line tool for configuring and managing a firewall on Ubuntu and Debian distributions.

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

Pré-requisitos

Antes de começar este artigo, certifique-se de ter acessado o seu servidor Ubuntu ou Debian com um usuário sudo ou com a conta root. Se você não tiver um usuário sudo, pode 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 com o seguinte comando.

$ sudo apt install ufw

Verifique o Firewall UFW

Após a instalação ser concluída, você pode verificar o status do UFW digitando o seguinte.

$ sudo ufw status verbose

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

Status: inactive

Ative o Firewall UFW

Você pode ativar ou habilitar o firewall UFW usando o seguinte comando, que deve carregar o firewall e habilitá-lo para iniciar no boot.

$ sudo ufw enable

Para desativar o firewall UFW, use o seguinte comando, que descarrega o firewall e desabilita sua inicialização no boot.

$ sudo ufw disable 

Políticas Padrão do UFW

Por padrão, o firewall UFW nega todas as conexões de entrada e permite somente todas as conexões de saída para 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 padrão do firewall UFW 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 Aplicativos 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 no seu servidor usando o seguinte comando.

$ sudo ufw app list

Dependendo das instalações de pacotes de software no seu sistema, a saída será semelhante à seguinte:

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

Se você deseja obter mais informações sobre um perfil específico e as regras definidas, 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

Ativar o IPv6 com UFW

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

$ sudo vi /etc/default/ufw

Em seguida, verifique se “IPV6” está definido como "yes" no arquivo de configuração, conforme mostrado.

IPV6=yes

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

$ sudo ufw disable
$ sudo ufw enable

Permitir Conexões SSH no UFW

Se você habilitou o firewall UFW até agora, ele bloquearia todas as conexões de entrada e se você estiver conectado ao seu servidor via SSH a partir de um local remoto, você não será mais capaz de se reconectar.

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

$ sudo ufw allow ssh

Se você estiver usando uma porta SSH personalizada (por exemplo, a porta 2222), então você precisa 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]

Habilitar Portas Específicas no UFW

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

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

Abrir 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]
Abrir 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 algumas aplicações que deseja executar em uma faixa de portas (5000-5003), você pode adicionar todas essas portas usando os seguintes comandos.

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 de um endereço IP específico 192.168.56.1, então você precisa especificar o “from” antes do endereço IP.

$ sudo ufw allow from 192.168.56.1

Permitir Endereços IP Específicos em Porta Específica

Para permitir a conexão em uma porta específica (por exemplo, porta 22) do seu computador doméstico com o endereço IP 192.168.56.1, então 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 Porta Específica

Para permitir conexões para endereços IP específicos variando de 192.168.1.1 a 192.168.1.254 na 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 para uma interface de rede específica eth2 em 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 desta faixa de rede específica 11.12.13.0/24, 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

Há 2 maneiras de excluir regras do UFW, por número da regra e pela regra real.

Para excluir regras do 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 exemplo
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 real, por exemplo, para excluir uma regra, especifique o número da porta com o protocolo conforme mostrado.

$ sudo ufw delete allow 22/tcp

Executar Regras UFW em Modo de Teste

Você pode executar quaisquer comandos ufw sem realmente fazer quaisquer alterações no firewall do sistema usando a opção --dry-run, isso simplesmente mostra as alterações que deveriam ter ocorrido.

$ sudo ufw --dry-run enable

Redefinir Firewall UFW

Por algum motivo, se desejar excluir / redefinir todas as regras do firewall, digite os seguintes comandos, isso reverterá todas as suas alterações e começará do zero.

$ sudo ufw reset
$ sudo ufw status

Funcionalidades Avançadas do UFW

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

Ajustar o firewall UFW ou adicionar comandos iptables adicionais não é permitido via 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 via comando ufw.
  • /etc/ufw/after[6].rules: Neste arquivo, as regras são calculadas após serem adicionadas via 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 o iptables com uma interface amigável para definir regras complexas com um único comando ufw.

Se tiver alguma dúvida ou pensamento para compartilhar sobre este artigo ufw, use o formulário de comentários abaixo para nos contatar.

Source:
https://www.tecmint.com/setup-ufw-firewall-on-ubuntu-and-debian/