===== Exemplos do comando firewalld =====
==== Nível Básico ====
* **Verificar o status do `firewalld`:**
- sudo firewall-cmd --state
- Verifica se o serviço `firewalld` está ativo ou inativo.
* **Iniciar o serviço `firewalld`:**
- sudo systemctl start firewalld
- Inicia o serviço `firewalld`.
* **Ativar o `firewalld` para iniciar no boot:**
- sudo systemctl enable firewalld
- Ativa o serviço para iniciar automaticamente no boot.
* **Listar todas as zonas ativas e suas interfaces:**
- sudo firewall-cmd --get-active-zones
- Mostra todas as zonas ativas e as interfaces de rede atribuídas a cada zona.
* **Listar os serviços permitidos em uma zona:**
- sudo firewall-cmd --list-services --zone=public
- Lista todos os serviços permitidos na zona `public`.
* **Permitir temporariamente o tráfego HTTP (porta 80):**
- sudo firewall-cmd --add-service=http
- Permite o tráfego HTTP (porta 80) temporariamente (até o próximo reload ou reboot).
* **Remover temporariamente o tráfego HTTP:**
- sudo firewall-cmd --remove-service=http
- Remove a permissão para tráfego HTTP (porta 80) temporariamente.
==== Nível Intermediário ====
* **Permitir permanentemente o tráfego SSH (porta 22):**
- sudo firewall-cmd --add-service=ssh --permanent
- Permite o tráfego SSH na porta `22` de forma permanente.
* **Adicionar uma porta específica para tráfego TCP ou UDP:**
- sudo firewall-cmd --add-port=8080/tcp
- Permite o tráfego na porta `8080` para o protocolo `TCP`.
* **Remover uma porta aberta:**
- sudo firewall-cmd --remove-port=8080/tcp
- Remove o acesso à porta `8080` via protocolo `TCP`.
* **Recarregar as configurações de firewall sem interromper conexões:**
- sudo firewall-cmd --reload
- Recarrega as regras do firewall sem derrubar conexões ativas.
* **Verificar se uma porta está aberta em uma zona específica:**
- sudo firewall-cmd --zone=public --query-port=8080/tcp
- Verifica se a porta `8080` está aberta na zona `public`.
* **Listar as zonas e configurações ativas:**
- sudo firewall-cmd --list-all
- Lista todas as configurações da zona ativa padrão, incluindo serviços, portas e interfaces permitidas.
* **Bloquear permanentemente um endereço IP:**
- sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject' --permanent
- Bloqueia permanentemente o tráfego do endereço IP `192.168.1.100`.
* **Permitir permanentemente uma faixa de IPs:**
- sudo firewall-cmd --add-source=192.168.1.0/24 --zone=public --permanent
- Permite permanentemente o tráfego de uma faixa de IPs (`192.168.1.0/24`) na zona `public`.
==== Nível Avançado ====
* **Criar uma nova zona personalizada:**
- sudo firewall-cmd --new-zone=zona-personalizada --permanent
- Cria uma nova zona chamada `zona-personalizada`.
* **Atribuir uma interface de rede a uma zona específica:**
- sudo firewall-cmd --zone=public --change-interface=eth0
- Atribui a interface `eth0` à zona `public`.
* **Permitir tráfego de um serviço específico apenas em uma zona:**
- sudo firewall-cmd --zone=home --add-service=samba --permanent
- Permite permanentemente o tráfego para o serviço `Samba` apenas na zona `home`.
* **Aplicar uma regra de rich-rule para aceitar tráfego HTTP apenas de um IP específico:**
- sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.50" service name="http" accept' --permanent
- Permite o tráfego HTTP (porta 80) apenas do IP `192.168.1.50`.
* **Configurar um port forwarding (redirecionamento de porta):**
- sudo firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 --permanent
- Redireciona o tráfego TCP da porta `80` para a porta `8080` na zona `public`.
* **Listar todos os serviços disponíveis no `firewalld`:**
- sudo firewall-cmd --get-services
- Exibe uma lista de todos os serviços disponíveis que podem ser permitidos ou bloqueados no firewall.
* **Remover uma zona personalizada:**
- sudo firewall-cmd --delete-zone=zona-personalizada --permanent
- Remove a zona `zona-personalizada` do `firewalld` de forma permanente.
* **Visualizar a zona associada a uma interface específica:**
- sudo firewall-cmd --get-zone-of-interface=eth0
- Exibe a zona atual associada à interface `eth0`.
==== Nível Especializado ====
* **Criar e aplicar uma regra de rich-rule com base em horário:**
- sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" log prefix="SSH-Access" time daytime start="08:00" stop="18:00" accept' --permanent
- Permite o acesso SSH (porta 22) do IP `192.168.1.100` apenas entre 08:00 e 18:00, registrando cada tentativa no log.
* **Bloquear pacotes ICMP (ping) de uma zona específica:**
- sudo firewall-cmd --zone=public --add-icmp-block=echo-request --permanent
- Bloqueia pacotes ICMP `echo-request` (ping) na zona `public`.
* **Ativar masquerading (NAT) para compartilhamento de internet:**
- sudo firewall-cmd --zone=public --add-masquerade --permanent
- Ativa o masquerading na zona `public` para realizar NAT (compartilhamento de internet).
* **Desativar masquerading:**
- sudo firewall-cmd --zone=public --remove-masquerade --permanent
- Remove a regra de masquerading na zona `public`.
* **Permitir múltiplos serviços de uma só vez:**
- sudo firewall-cmd --add-service={http,https,ftp} --permanent
- Permite permanentemente os serviços `http`, `https` e `ftp` com um único comando.
* **Monitorar alterações em tempo real no `firewalld`:**
- sudo firewall-cmd --watch
- Monitora alterações no firewall em tempo real, mostrando modificações na configuração do firewall.
* **Desativar completamente o `firewalld`:**
- sudo systemctl stop firewalld
sudo systemctl disable firewalld
- Para e desativa o `firewalld` para que ele não inicie automaticamente no boot.
* **Restaurar as configurações de fábrica do `firewalld`:**
- sudo firewall-cmd --complete-reload
- Restaura todas as configurações do firewall para o estado padrão.