===== Exemplos do comando ufw =====
==== Nível Básico ====
* **Verificar o status do `ufw`:**
- sudo ufw status
- Exibe o status atual do firewall, incluindo se ele está ativo e as regras configuradas.
* **Ativar o `ufw`:**
- sudo ufw enable
- Ativa o firewall `ufw`.
* **Desativar o `ufw`:**
- sudo ufw disable
- Desativa o firewall `ufw`.
* **Permitir conexões SSH (porta 22):**
- sudo ufw allow ssh
- Permite conexões na porta `22` para SSH.
* **Permitir conexões HTTP (porta 80):**
- sudo ufw allow http
- Permite conexões na porta `80` para HTTP.
* **Permitir conexões HTTPS (porta 443):**
- sudo ufw allow https
- Permite conexões na porta `443` para HTTPS.
* **Bloquear uma porta específica:**
- sudo ufw deny 8080
- Bloqueia o tráfego na porta `8080`.
* **Listar todas as regras do `ufw`:**
- sudo ufw status numbered
- Exibe todas as regras do `ufw` numeradas, permitindo remoções específicas.
* **Remover uma regra por número:**
- sudo ufw delete 2
- Remove a segunda regra listada pelo comando `ufw status numbered`.
==== Nível Intermediário ====
* **Permitir tráfego em uma faixa de portas (por exemplo, 1000 a 2000):**
- sudo ufw allow 1000:2000/tcp
- Permite conexões em todas as portas entre `1000` e `2000` via protocolo `TCP`.
* **Permitir tráfego de uma faixa de IPs:**
- sudo ufw allow from 192.168.1.0/24
- Permite o tráfego de toda a rede `192.168.1.0/24`.
* **Bloquear um endereço IP específico:**
- sudo ufw deny from 203.0.113.100
- Bloqueia todas as conexões do endereço IP `203.0.113.100`.
* **Permitir conexões de um IP específico a uma porta:**
- sudo ufw allow from 192.168.1.100 to any port 22
- Permite conexões SSH (porta `22`) apenas do IP `192.168.1.100`.
* **Configurar regras por interface de rede:**
- sudo ufw allow in on eth0 to any port 80
- Permite conexões HTTP (porta `80`) na interface de rede `eth0`.
* **Bloquear conexões de saída (outgoing):**
- sudo ufw default deny outgoing
- Define a política padrão para bloquear todas as conexões de saída.
* **Permitir conexões de saída (outgoing):**
- sudo ufw default allow outgoing
- Define a política padrão para permitir todas as conexões de saída.
* **Permitir conexões FTP (portas 20 e 21):**
- sudo ufw allow ftp
- Permite conexões FTP via portas `20` e `21`.
* **Reiniciar as regras do firewall para o estado padrão:**
- sudo ufw reset
- Restaura as configurações padrão do `ufw`, removendo todas as regras personalizadas.
==== Nível Avançado ====
* **Adicionar regras específicas para IPv6:**
- sudo ufw allow from 2001:db8::/32 to any port 22 proto tcp
- Permite conexões SSH (porta `22`) de uma rede IPv6 (`2001:db8::/32`).
* **Permitir tráfego apenas em uma interface de rede específica:**
- sudo ufw allow in on eth1 to any port 443 proto tcp
- Permite conexões HTTPS (porta `443`) apenas na interface de rede `eth1`.
* **Bloquear tráfego de uma rede inteira:**
- sudo ufw deny from 203.0.113.0/24
- Bloqueia o tráfego de toda a rede `203.0.113.0/24`.
* **Permitir todos os serviços DNS (porta 53):**
- sudo ufw allow 53
- Permite o tráfego na porta `53` para consultas DNS.
* **Configurar uma regra para um aplicativo específico (usando perfis de aplicativo):**
- sudo ufw app list
sudo ufw allow "Nginx Full"
- Exibe a lista de aplicativos disponíveis e permite todos os perfis de `Nginx` (HTTP e HTTPS).
* **Permitir conexões SNMP (porta 161) de uma rede específica:**
- sudo ufw allow from 192.168.1.0/24 to any port 161
- Permite conexões SNMP na porta `161` da rede `192.168.1.0/24`.
* **Limitar conexões SSH para evitar ataques de força bruta:**
- sudo ufw limit ssh
- Limita as tentativas de conexão SSH, permitindo apenas 6 tentativas por minuto de um IP.
==== Nível Especializado ====
* **Permitir tráfego para múltiplas portas com um único comando:**
- sudo ufw allow 80,443/tcp
- Permite conexões nas portas `80` (HTTP) e `443` (HTTPS) via protocolo `TCP` com um único comando.
* **Bloquear pacotes ICMP (ping):**
- sudo ufw deny proto icmp
- Bloqueia todos os pacotes ICMP, impedindo que a máquina responda a `ping`.
* **Criar regras complexas com múltiplos parâmetros:**
- sudo ufw allow proto tcp from 203.0.113.100 to any port 22 comment "Acesso SSH para manutenção"
- Permite o tráfego TCP na porta `22` (SSH) apenas do IP `203.0.113.100`, com um comentário "Acesso SSH para manutenção".
* **Permitir redirecionamento de porta (Port Forwarding):**
- sudo ufw route allow proto tcp from any to any port 80
- Configura o firewall para permitir o redirecionamento de tráfego da porta `80` (HTTP).
* **Monitorar tentativas de conexão bloqueadas:**
- sudo ufw logging on
sudo tail -f /var/log/ufw.log
- Habilita o log de firewall e monitora tentativas de conexão bloqueadas em tempo real.
* **Desativar completamente o log do `ufw`:**
- sudo ufw logging off
- Desativa o log de firewall para evitar sobrecarga do sistema.
* **Permitir conexões temporárias em uma porta específica:**
- sudo ufw allow 3000/tcp comment "Acesso temporário" && sleep 3600 && sudo ufw delete allow 3000/tcp
- Permite conexões temporárias na porta `3000` por 1 hora, removendo a regra automaticamente após esse tempo.
* **Visualizar regras de firewall para IPv6 separadamente:**
- sudo ufw status verbose | grep v6
- Exibe apenas as regras de firewall configuradas para IPv6.
* **Permitir tráfego para um serviço personalizado via arquivo de perfil:**
- **Criar o arquivo de perfil:**
sudo nano /etc/ufw/applications.d/meuservico
- **Adicionar o seguinte conteúdo:**
```ini
[MeuServico]
title=Meu Serviço Personalizado
description=Permite conexões TCP para Meu Serviço
ports=12345/tcp
```
- **Permitir o serviço com o perfil criado:**
sudo ufw allow "MeuServico"
- Cria um perfil personalizado para um serviço na porta `12345` e permite o tráfego para ele.