Configurando Firewall Linux é uma etapa essencial na blindagem de servidores e estações de trabalho. Em ambientes baseados em Linux, duas ferramentas dominam esse cenário: IPTables, a solução nativa e altamente granular, e UFW (Uncomplicated Firewall), uma interface simplificada que facilita o uso do IPTables sem sacrificar a segurança. Este artigo oferece uma análise milimetricamente aprofundada sobre essas ferramentas, com foco em segurança Linux, cenários avançados, boas práticas e comparações técnicas para ajudar administradores a tomar decisões informadas.
O que é um firewall e por que ele é indispensável no Linux?
Um firewall atua como um porteiro do seu sistema. Ele regula quem entra, quem sai e quem nem chega perto. No Linux, esse papel é especialmente importante em servidores expostos à internet ou redes corporativas.
Conceito para Iniciantes
Imagine seu computador como um prédio. As portas (como a 22 para SSH, 80 para HTTP) são os apartamentos. O firewall é o porteiro que decide quem pode entrar em qual apartamento. Ele se baseia em regras, como “só permitir visitas ao apto 80 das 9h às 18h”. Essa analogia simplifica o entendimento das:
- Portas: entradas e saídas para serviços.
- Protocolos: como cartas entregues via Correios (TCP) ou Sedex (UDP).
- Cadeias (chains): regras para entrada (INPUT), saída (OUTPUT) e tráfego entre redes (FORWARD).
IPTables: O coração complexo do firewall Linux
Como funciona?
O IPTables é uma ferramenta do kernel Linux baseada no framework netfilter. Ele processa pacotes de rede por meio de tabelas e cadeias (chains).
Tabelas comuns:
Tabela | Função |
---|---|
filter | Padrão. Define regras de aceitação ou bloqueio. |
nat | Lida com redirecionamento e tradução de endereços. |
mangle | Modifica pacotes (ex: definir TOS, TTL). |
raw | Processa pacotes antes do rastreamento de conexões (conntrack). |
Cadeias comuns:
Chain | Ação |
---|---|
INPUT | Tráfego que chega ao sistema. |
OUTPUT | Tráfego gerado localmente. |
FORWARD | Tráfego que atravessa o sistema (roteamento). |
PREROUTING | Manipula pacotes antes de decidir o destino. |
POSTROUTING | Manipula pacotes antes de sair da máquina. |
Sintaxe básica e comandos avançados
# Exibir regras
sudo iptables -L -n -v
# Bloquear IP específico
sudo iptables -A INPUT -s 192.168.1.100 -j DROP
# Permitir acesso à porta 22 (SSH)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Redirecionar tráfego da porta 80 para 8080 (DNAT)
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
Pontos fortes e desafios
Vantagens:
- Controle absoluto e granular.
- Suporte a NAT, roteamento e marcações complexas.
- Integração com
ipset
econntrack
.
Desvantagens:
- Curva de aprendizado íngreme.
- Complexidade em ambientes dinâmicos.
- Dificuldade de manutenção manual.
UFW: A simplicidade eficaz para configurando firewall Linux
O que é o UFW?
O UFW (Uncomplicated Firewall) é um wrapper para o IPTables criado para tornar a configuração mais intuitiva.
Comandos básicos
# Ativar UFW
sudo ufw enable
# Permitir SSH
sudo ufw allow ssh
# Bloquear porta específica
sudo ufw deny 23
# Ver regras ativas
sudo ufw status verbose
Ponto a ponto: vantagens e limitações
Vantagens:
- Sintaxe amigável.
- Ideal para iniciantes e ambientes desktop/servidores pequenos.
- Configuração rápida e persistente.
Limitações:
- Menor granularidade.
- Menor controle sobre NAT e tráfego roteado.
- Menor flexibilidade para ambientes com múltiplas interfaces.
Configurando firewall Linux: Boas práticas essenciais
1. Políticas padrão seguras
# IPTables
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# UFW
ufw default deny incoming
ufw default allow outgoing
2. SSH seguro
- Alterar porta SSH no
/etc/ssh/sshd_config
. - Restringir IPs com UFW ou IPTables:
ufw allow from 192.168.1.10 to any port 2222
iptables -A INPUT -p tcp --dport 2222 -s 192.168.1.10 -j ACCEPT
3. Proteção contra ataques
- Port scanning: bloquear ping (
icmp
) e limitar conexões:
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
- Fail2Ban: bloqueio automático após tentativas maliciosas (ver seção abaixo).
Cenários avançados com UFW e IPTables
Servidor web (HTTP/HTTPS)
ufw allow 80/tcp
ufw allow 443/tcp
Banco de dados (PostgreSQL)
ufw allow from 192.168.1.0/24 to any port 5432 proto tcp
NAT com IPTables
# Redirecionar porta externa 80 para 8080 interna
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:8080
Uso de ipset para grandes listas
ipset create blacklist hash:ip
ipset add blacklist 192.168.0.100
iptables -A INPUT -m set --match-set blacklist src -j DROP
Containers (Docker/KVM)
Docker manipula IPTables diretamente. Use --iptables=false
no daemon e configure manualmente se quiser controle total.
UFW vs IPTables: Quando usar cada um?

Critério | IPTables | UFW |
---|---|---|
Nível de controle | Avançado e granular | Básico a intermediário |
Curva de aprendizado | Alta | Baixa |
Uso em produção | Ideal para servidores críticos | Ideal para uso pessoal e rápido |
Integração com NAT | Total (com PREROUTING/POSTROUTING) | Limitada |
Facilidade de manutenção | Difícil sem scripts ou interfaces | Simples com comandos diretos |
Ferramentas complementares para segurança Linux
- Fail2Ban: bloqueia IPs após falhas repetidas de login.
- Nmap: escaneia portas e ajuda na auditoria de firewalls.
- Auditd: monitora eventos de segurança no sistema.
- Firewalld: alternativa moderna ao IPTables.
Conclusão
Configurando Firewall Linux é mais do que ativar ou bloquear portas. Trata-se de arquitetar uma política de segurança coerente com os objetivos e os riscos do ambiente. O IPTables oferece o controle absoluto, enquanto o UFW proporciona acessibilidade e velocidade para quem quer proteção com simplicidade. Dominar ambos é essencial para qualquer administrador de sistemas que busca excelência em segurança Linux.