Fundamentos de Configuração de Firewall: Proteja Sua Rede
Um firewall fica entre sua rede e o mundo externo, decidindo qual tráfego passa e qual é bloqueado. Este guia explica conceitos essenciais, abordagens práticas de configuração e padrões comuns que se aplicam a diferentes tipos de firewall.
Nesta página
Um firewall fica entre sua rede e o mundo externo, decidindo qual tráfego passa e qual é bloqueado. Seja protegendo uma rede doméstica, configurando um servidor web ou gerenciando infraestrutura corporativa, entender como configurar um firewall é fundamental para segurança. Este guia apresenta os conceitos centrais, abordagens práticas de configuração e padrões comuns que se aplicam a diferentes tipos de firewall.
“There are only two types of companies: those that have been hacked and those that will be.”
— Robert Mueller
Entendendo os Tipos de Firewall e Seus Modelos de Configuração
Nem todos os firewalls funcionam da mesma forma. Firewalls de filtragem de pacotes examinam pacotes individuais com base em endereços IP, portas e protocolos. São rápidos e diretos, mas não entendem o contexto da aplicação. Firewalls stateful rastreiam estados de conexão, permitindo automaticamente o tráfego de retorno e bloqueando conexões de entrada não solicitadas. Firewalls de camada de aplicação vão além e inspecionam o conteúdo real do tráfego, filtrando com base em cabeçalhos HTTP, consultas SQL ou outros dados específicos da aplicação.
A maioria dos sistemas modernos usa firewalls stateful por padrão. Sistemas Linux normalmente usam iptables, nftables ou ufw (Uncomplicated Firewall). Windows vem com o Windows Defender Firewall. Provedores de nuvem têm seus próprios equivalentes — security groups na AWS, firewall rules no Google Cloud, network security groups no Azure. Os princípios subjacentes permanecem consistentes em todos eles: defina o que é permitido, bloqueie todo o resto e registre o que importa.
Sua primeira decisão importante é usar default-allow ou default-deny. Default-deny bloqueia tudo exceto o tráfego que você permite explicitamente. Exige mais configuração inicial, mas cria uma superfície de ataque muito menor. Default-allow é mais fácil para começar, mas deixa você exposto a serviços que esqueceu que estavam rodando. Para qualquer coisa exposta à internet, default-deny é a única escolha sensata.
Conceitos Fundamentais de Configuração
Toda regra de firewall tem os mesmos ingredientes básicos: endereços de origem e destino, portas, protocolos e uma ação (permitir, negar ou registrar). As regras são processadas em ordem, e a primeira correspondência vence. Essa ordem importa enormemente. Uma regra ampla "permitir tudo" no topo vai engolir regras "negar" mais específicas abaixo dela, e elas nunca serão executadas.
Origem e destino podem ser endereços IP individuais como 192.168.1.50, intervalos CIDR como 10.0.0.0/8, ou valores especiais como "any" ou "localhost". Portas mapeiam para serviços específicos — 22 para SSH, 80 para HTTP, 443 para HTTPS, 3306 para MySQL. Protocolos são TCP, UDP, ICMP ou outros. TCP é orientado a conexão e lida com a maioria do tráfego de aplicação. UDP não tem conexão e é usado para DNS, VoIP e streaming de vídeo. ICMP lida com diagnósticos como ping.
Inspeção stateful torna o gerenciamento de regras muito mais simples. Quando você permite tráfego HTTPS de saída, o firewall automaticamente permite os pacotes de resposta de entrada. Você não precisa de regras separadas para ambas as direções. É por isso que a maioria das configurações de firewall foca em regras de entrada — tráfego de saída normalmente é permitido por padrão, com exceções específicas criadas para prevenção de perda de dados ou necessidades de conformidade.
Exemplos Práticos de Configuração
Aqui está uma configuração básica de ufw para um servidor web rodando SSH, HTTP e HTTPS:
# Resetar para padrões e ativar
sudo ufw --force reset
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Permitir SSH (limitar taxa para prevenir força bruta)
sudo ufw limit 22/tcp
# Permitir tráfego web
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Ativar firewall
sudo ufw enable
# Verificar status
sudo ufw status verbose
A palavra-chave limit no SSH bloqueia IPs que tentam mais de 6 conexões em 30 segundos, o que para a maioria das tentativas de força bruta na hora. Dito isso, autenticação de dois fatores ainda é essencial para qualquer serviço SSH exposto à internet. Rate limiting e 2FA juntos te dão proteção real.
Para iptables, a mesma configuração requer regras mais explícitas:
# Limpar regras existentes
iptables -F
# Definir políticas padrão
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Permitir conexões estabelecidas
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Permitir loopback
iptables -A INPUT -i lo -j ACCEPT
# Permitir SSH com limitação de taxa
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Permitir HTTP e HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Salvar regras
iptables-save > /etc/iptables/rules.v4
Preste atenção naquela regra de rastreamento de conexão stateful (--ctstate ESTABLISHED,RELATED). Uma linha cuida de todo o tráfego de retorno para cada conexão de saída que você inicia — atualizações de software, chamadas de API, email, tudo. Ela está fazendo muito trabalho silencioso e importante.
Padrões Comuns de Configuração
Isolamento de servidor de banco de dados restringe o acesso ao banco apenas aos seus servidores de aplicação. Digamos que seu banco está em 10.0.2.50 e seus servidores de app estão na subnet 10.0.1.0/24. Configure o firewall do banco para aceitar conexões apenas dessa subnet:
# No servidor de banco de dados
ufw default deny incoming
ufw allow from 10.0.1.0/24 to any port 3306 proto tcp
ufw allow from 10.0.1.0/24 to any port 22 proto tcp # SSH da subnet de app
ufw enable
Configuração de bastion host cria um servidor jump protegido para acessar infraestrutura interna. O bastion aceita SSH apenas de IPs conhecidos, e servidores internos só aceitam SSH do bastion:
# No bastion host
ufw allow from 203.0.113.50 to any port 22 # IP do seu escritório
ufw allow from 198.51.100.25 to any port 22 # IP da sua casa
# Nos servidores internos
ufw allow from 10.0.0.10 to any port 22 # IP interno do bastion
Combine esse padrão com um guia robusto de criação de senhas e autenticação baseada em certificado, e você terá defesa em profundidade de verdade.
Configuração de DMZ coloca serviços públicos em uma zona desmilitarizada, isolada tanto da internet quanto da sua rede interna. Tráfego da internet alcança apenas hosts da DMZ, enquanto hosts da DMZ têm acesso limitado a recursos internos:
| Zona | Origem | Destino | Serviços Permitidos |
|---|---|---|---|
| Internet → DMZ | Any | Servidores web | HTTP, HTTPS |
| DMZ → Interno | Servidores web | Subnet de banco | MySQL (3306) |
| DMZ → Internet | Servidores web | Any | HTTP, HTTPS, DNS |
| Interno → DMZ | Subnet admin | Servidores web | SSH |
| Internet → Interno | Nenhum | Nenhum | Tudo bloqueado |
Logging e Monitoramento
Logs de firewall revelam padrões de ataque, configurações erradas e tráfego legítimo que você bloqueou acidentalmente. Ative logging para pacotes negados, mas seja seletivo. Registrar cada pacote dropado em um servidor exposto à internet gera volume enorme de ruído da internet — scanners, bots e caos geral que atinge todo IP público constantemente.
# Registrar pacotes negados com limitação de taxa
ufw logging medium
# Para iptables, registrar com prefixo
iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables-denied: " --log-level 4
iptables -A INPUT -j DROP
A limitação de taxa (--limit 5/min) mantém os logs gerenciáveis. O prefixo facilita filtrar eventos de firewall especificamente. Revise logs regularmente como parte da sua checklist de auditoria de segurança. Fique de olho nesses padrões em particular:
- Tentativas repetidas de conexão em portas fechadas (port scanning)
- Tentativas de conexão de localizações geográficas inesperadas
- Volumes ou timing de tráfego incomuns
- Serviços legítimos sendo bloqueados (o que significa que suas regras precisam de ajuste)
A maioria das configurações maduras alimenta logs de firewall em um SIEM ou agregador de logs como ELK stack, Splunk ou um serviço de logging nativo de nuvem. Configure alertas automatizados para padrões suspeitos — 100 tentativas SSH em um minuto, por exemplo — para que você possa responder antes que algo quebre.
Testes e Validação
Nunca presuma que seu firewall funciona como pretendido. Teste de fora da sua rede usando uma conexão separada ou uma VM na nuvem. A ferramenta nmap escaneia portas abertas
Perguntas Frequentes
O que é um firewall e por que preciso de um?
Um firewall é um sistema de segurança que monitora e controla o tráfego de rede de entrada e saída com base em regras que você define. Ele age como uma barreira entre sua rede interna confiável e redes externas não confiáveis como a internet. Sem um, seus sistemas ficam expostos a acesso não autorizado, malware e outros ataques.
Qual é a diferença entre regras de firewall de entrada e saída?
Regras de entrada controlam o tráfego que entra na sua rede ou dispositivo vindo de fora, como bloquear tentativas de acesso remoto não autorizado. Regras de saída controlam o tráfego que sai da sua rede, como impedir que certos aplicativos enviem dados para fora. A maioria dos iniciantes foca primeiro nas regras de entrada, mas as regras de saída são importantes para impedir malware que tenta se comunicar externamente.
Quais portas devo bloquear ou permitir como iniciante?
Um bom ponto de partida é bloquear todo o tráfego de entrada por padrão e permitir apenas as portas que seus serviços realmente usam, como as portas 80 e 443 para tráfego web ou a porta 22 para SSH. Portas comumente visadas como 23 (Telnet), 3389 (RDP) e 21 (FTP) devem ser bloqueadas ou fortemente restritas a menos que você tenha uma necessidade específica. O princípio é simples: se você não precisa de uma porta aberta, mantenha-a fechada.
Recursos em vídeo
Fontes & Leitura adicional
- EFF — Digital rights organisation with security explainers.
- OWASP — Open standards and cheat sheets for application security.
- NIST Cybersecurity Framework — Reference framework for identifying, protecting and responding to threats.
- GnuPG Documentation — Manuals and how-tos for GPG key management and encryption.
- CISA — US cybersecurity agency guidance for individuals and organisations.
- Have I Been Pwned — Check whether an email or password appeared in a known breach.
- Wikipedia: Pretty Good Privacy — Background on PGP, OpenPGP and the web of trust.