# UFW - Gerenciamento de Firewall

**UFW** significa **Uncomplicated Firewall** (Firewall Descomplicado).

Ele é uma interface para gerenciar o firewall Netfilter no Linux, que é o sistema de filtragem de pacotes do sistema. O UFW foi desenvolvido com o objetivo de simplificar o processo de configuração de regras de firewall através do utilitário `iptables`.

O UFW é o método mais popular e recomendado para gerenciar o firewall em distribuições baseadas em Debian e Ubuntu.

### Exemplos de Comandos UFW (Guia Prático)

A maioria dos comandos UFW exige privilégios de superusuário (`sudo`).

#### 1. Verificação de Status

Verifique se o UFW está ativo e veja as regras atuais:

<table data-path-to-node="11" id="bkmrk-a%C3%A7%C3%A3o-comando-sa%C3%ADda-d"><thead><tr><td>**Ação**</td><td>**Comando**</td><td>**Saída de Exemplo**</td></tr></thead><tbody><tr><td><span data-path-to-node="11,1,0,0">**Verificar Status**</span></td><td><span data-path-to-node="11,1,1,0">`ufw status`</span></td><td><span data-path-to-node="11,1,2,0">`Status: inactive` (ou `active`)</span></td></tr><tr><td><span data-path-to-node="11,2,0,0">**Verificar Detalhes**</span></td><td><span data-path-to-node="11,2,1,0">`ufw status verbose`</span></td><td><span data-path-to-node="11,2,2,0">Lista todas as regras de forma detalhada.</span></td></tr></tbody></table>

#### 2. Ativação e Desativação

É crucial definir as regras antes de ativar, para não se trancar para fora do servidor.

<table data-path-to-node="14" id="bkmrk-a%C3%A7%C3%A3o-comando-observa"><thead><tr><td>**Ação**</td><td>**Comando**</td><td>**Observação**</td></tr></thead><tbody><tr><td><span data-path-to-node="14,1,0,0">**Ativar UFW**</span></td><td><span data-path-to-node="14,1,1,0">`ufw enable`</span></td><td><span data-path-to-node="14,1,2,0">**Atenção:** Se não tiver uma regra `allow ssh`, você perderá o acesso remoto.</span></td></tr><tr><td><span data-path-to-node="14,2,0,0">**Desativar UFW**</span></td><td><span data-path-to-node="14,2,1,0">`ufw disable`</span></td><td><span data-path-to-node="14,2,2,0">Remove o firewall (não recomendado).</span></td></tr><tr><td><span data-path-to-node="14,3,0,0">**Resetar Regras**</span></td><td><span data-path-to-node="14,3,1,0">`ufw reset`</span></td><td><span data-path-to-node="14,3,2,0">Remove todas as regras definidas pelo usuário.</span></td></tr></tbody></table>

#### 3. Políticas Padrão (Default)

Configure o que acontece com o tráfego que não corresponde a nenhuma regra específica.

<table data-path-to-node="17" id="bkmrk-a%C3%A7%C3%A3o-comando-resulta"><thead><tr><td style="width: 222px;">**Ação**</td><td style="width: 229px;">**Comando**</td><td style="width: 358px;">**Resultado**</td></tr></thead><tbody><tr><td style="width: 222px;"><span data-path-to-node="17,1,0,0">**Bloquear Entrada (Recomendado)**</span></td><td style="width: 229px;"><span data-path-to-node="17,1,1,0">`ufw default deny incoming`</span></td><td style="width: 358px;"><span data-path-to-node="17,1,2,0">Nenhuma conexão externa é permitida, a menos que especificada.</span></td></tr><tr><td style="width: 222px;"><span data-path-to-node="17,2,0,0">**Permitir Saída**</span></td><td style="width: 229px;"><span data-path-to-node="17,2,1,0">`ufw default allow outgoing`</span></td><td style="width: 358px;"><span data-path-to-node="17,2,2,0">Seu servidor pode iniciar conexões com o mundo exterior.</span></td></tr></tbody></table>

#### 4. Adicionar Regras (Permissões)

<table data-path-to-node="19" id="bkmrk-objetivo-comando-obs"><thead><tr><td style="width: 157px;">**Objetivo**</td><td style="width: 383px;">**Comando**</td><td style="width: 269px;">**Observação**</td></tr></thead><tbody><tr><td style="width: 157px;"><span data-path-to-node="19,1,0,0">**Permitir SSH (Porta 22)**</span></td><td style="width: 383px;"><span data-path-to-node="19,1,1,0">`ufw allow ssh`</span></td><td style="width: 269px;"><span data-path-to-node="19,1,2,0">Usa o nome do serviço para liberar a porta 22/TCP.</span></td></tr><tr><td style="width: 157px;"><span data-path-to-node="19,2,0,0">**Permitir HTTP (Porta 80)**</span></td><td style="width: 383px;"><span data-path-to-node="19,2,1,0">`ufw allow http`</span></td><td style="width: 269px;"><span data-path-to-node="19,2,2,0">Libera a porta 80/TCP.</span></td></tr><tr><td style="width: 157px;"><span data-path-to-node="19,3,0,0">**Permitir HTTPS (Porta 443)**</span></td><td style="width: 383px;"><span data-path-to-node="19,3,1,0">`ufw allow 443/tcp`</span></td><td style="width: 269px;"><span data-path-to-node="19,3,2,0">Libera pelo número da porta e protocolo.</span></td></tr><tr><td style="width: 157px;"><span data-path-to-node="19,4,0,0">**Porta Específica**</span></td><td style="width: 383px;"><span data-path-to-node="19,4,1,0">`ufw allow 5432/udp`</span></td><td style="width: 269px;"><span data-path-to-node="19,4,2,0">Libera a porta 5432 apenas para o protocolo UDP.</span></td></tr><tr><td style="width: 157px;"><span data-path-to-node="19,5,0,0">**Tráfego de IP Específico**</span></td><td style="width: 383px;"><span data-path-to-node="19,5,1,0">`ufw allow from 192.168.1.100 to any port 3306`</span></td><td style="width: 269px;"><span data-path-to-node="19,5,2,0">Permite que apenas o IP `192.168.1.100` acesse a porta 3306 (MySQL).</span></td></tr></tbody></table>

#### 5. Remover Regras

A remoção pode ser feita pelo número da regra ou pelo texto da regra.

<table data-path-to-node="22" id="bkmrk-a%C3%A7%C3%A3o-comando-observa-0"><thead><tr><td style="width: 115px;">**Ação**</td><td style="width: 246px;">**Comando**</td><td style="width: 448px;">**Observação**</td></tr></thead><tbody><tr><td style="width: 115px;"><span data-path-to-node="22,1,0,0">**Remover por Texto**</span></td><td style="width: 246px;"><span data-path-to-node="22,1,1,0">`ufw delete allow http`</span></td><td style="width: 448px;"><span data-path-to-node="22,1,2,0">Remove a regra de acesso a porta http (80/TCP).</span></td></tr><tr><td style="width: 115px;"><span data-path-to-node="22,2,0,0">**Remover por Número**</span></td><td style="width: 246px;"><span data-path-to-node="22,2,1,0">`ufw status numbered` </span>

<span data-path-to-node="22,2,1,0">`ufw status delete [número]` </span>

</td><td style="width: 448px;">O primeiro comando retorna uma lista com as regras existentes e sua posição, o segundo remove a regra na posição selecionada.</td></tr></tbody></table>