===== 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.