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 com este artigo, certifique-se de ter feito login no seu servidor Ubuntu ou Debian com 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

Instalar 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

Verificar o Firewall UFW

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

$ 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

Ativar o Firewall UFW

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

$ sudo ufw enable

Para desativar o firewall UFW, use o seguinte comando, que descarrega o firewall e o desativa para iniciar 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 apenas todas as conexões de saída para o servidor. Isso significa que ninguém pode acessar seu servidor, a menos que você abra especificamente a porta, enquanto todos os serviços ou aplicativos em execução em seu servidor podem acessar a rede externa.

As políticas padrão de 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 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 de pacotes de software em seu sistema, a saída será semelhante ao 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 IPv6 com UFW

Se o seu servidor estiver configurado com IPv6, certifique-se de que o seu UFW esteja 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 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 entrantes e se você estiver conectado ao seu servidor por SSH de um local remoto, você não será capaz de se conectar novamente.

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

$ sudo ufw allow ssh

Se você estiver usando uma porta SSH personalizada (por exemplo, a porta 2222), então você precisará abrir essa porta no firewall UFW usando o comando a seguir.

$ 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 na firewall para permitir conexões via ela the um determinado serviço. Por exemplo, se você quiser 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 serviços do Apache.

Abrir 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 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

Suponha que você tem algumas aplicações que quer 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ê quer permitir conexões em todas as portas de um endereço IP específico 192.168.56.1, então você precisará especificar de 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 conexões em uma porta específica (por exemplo, porta 22) a partir do seu computador pessoal com o endereço IP de 192.168.56.1, você precisará 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 Subredes de Rede em Porta Específica

Para permitir conexões para endereços IP particulares que variam de 192.168.1.1 até 192.168.1.254 para 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ífico

Para permitir conexões para uma interface de rede específica eth2 para uma porta particular 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 entrantes 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 o seu servidor web está sob ataque da rede desconhecida 11.12.13.0/24.

Para bloquear todas as conexões desse intervalo de rede particular 11.12.13.0/24, você pode usar o seguinte comando.

$ sudo ufw deny from 11.12.13.0/24

Se você só quiser bloquear conexões em 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 2 maneiras de excluir regras do UFW, por número de regra e por regra real.

Para excluir uma regra do UFW usando número de regra, primeiro você precisará 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 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 Teste de UFW

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

$ sudo ufw --dry-run enable

Reiniciar o Firewall do UFW

Por algum motivo, se desejar excluir / redefinir todas as regras do firewall, digite os seguintes comandos, ele reverterá todas as suas alterações e reiniciará 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 apenas arquivos de texto iptables-restore simples.

Ajustar o firewall do 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 é uma excelente interface para iptables com uma interface amigável para o usuário definir regras complexas com um único comando ufw.

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

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