Se o seu site WordPress está na internet, ele está sob ataque. Não é questão de "se", mas de "quando". Bots automatizados varrem a web 24 horas por dia procurando sites vulneráveis, tentando explorar falhas conhecidas e forçar senhas.
Um firewall é a primeira linha de defesa do seu site. Ele filtra o tráfego malicioso antes que chegue ao WordPress, bloqueando ataques como injeção de SQL, cross-site scripting (XSS) e tentativas de brute force no login.
Neste guia, vamos explicar o que é um WAF, os tipos de firewall disponíveis e como configurar as principais soluções passo a passo.
Leia também: Segurança WordPress: Guia Completo e WordPress Hackeado: O Que Fazer .
O Que é um WAF (Web Application Firewall)?
Um WAF, ou Web Application Firewall, é um tipo de firewall projetado especificamente para aplicações web. Diferente de firewalls tradicionais que operam na camada de rede, o WAF analisa o tráfego HTTP/HTTPS e filtra requisições maliciosas com base em regras predefinidas.
No contexto do WordPress, um WAF faz o seguinte:
- Bloqueia requisições maliciosas antes que cheguem ao PHP
- Detecta padrões de ataque como SQL injection e XSS
- Limita tentativas de login para evitar brute force
- Filtra bots maliciosos que consomem recursos do servidor
- Protege contra exploits conhecidos em plugins e temas
Por Que o WordPress Precisa de Firewall?
O WordPress é o CMS mais usado do mundo, presente em mais de 40% dos sites. Isso o torna o alvo favorito de hackers. As razões são claras:
- Superfície de ataque grande - milhares de plugins e temas com potenciais vulnerabilidades
- Instalações desatualizadas - muitos sites rodam versões antigas com falhas conhecidas
- Padrões previsíveis - o login fica em /wp-login.php , o admin em /wp-admin/ , a API em /wp-json/
- Ataques automatizados - bots não escolhem alvos, eles atacam todos os sites WordPress que encontram
Tipos de Firewall para WordPress
Existem três tipos principais de firewall, cada um operando em um nível diferente.
1. Firewall em Nível de Plugin
Opera dentro do próprio WordPress, como um plugin PHP. Analisa as requisições depois que elas chegam ao servidor e são processadas pelo PHP.
Vantagens: fácil de instalar, não requer acesso ao servidor. Desvantagens: consome recursos do servidor, pois o PHP precisa processar a requisição antes de bloqueá-la.
Exemplos: Wordfence, NinjaFirewall, All In One WP Security.
2. Firewall em Nível de DNS (Cloud WAF)
Opera na nuvem, entre o visitante e o seu servidor. Todo o tráfego passa pelo firewall antes de chegar ao seu servidor. As requisições maliciosas são bloqueadas na nuvem.
Vantagens: não consome recursos do servidor, bloqueia ataques antes de chegarem. Desvantagens: requer alteração de DNS, geralmente é pago.
Exemplos: Sucuri Firewall, Cloudflare WAF, StackPath.
3. Firewall em Nível de Servidor
Opera diretamente no servidor web, analisando requisições antes que cheguem ao PHP. Configurado pelo administrador do servidor.
Vantagens: muito eficiente, não depende do WordPress. Desvantagens: requer acesso root ao servidor e conhecimento técnico.
Exemplos: ModSecurity, Nginx naxsi.
Configurando o Wordfence (Firewall de Plugin)
O Wordfence é o plugin de segurança mais popular do WordPress, com mais de 4 milhões de instalações. A versão gratuita já oferece um firewall robusto.
Passo 1: Instalar e Ativar
- Acesse Plugins > Adicionar Novo
- Pesquise por "Wordfence Security"
- Clique em Instalar e depois em Ativar
- Na primeira tela, insira seu e-mail para alertas de segurança
- Aceite os termos de uso
Passo 2: Otimizar o Firewall
Depois da ativação, o firewall do Wordfence começa em Modo de Aprendizado . Ele precisa aprender o comportamento normal do seu site antes de bloquear tráfego.
- Acesse Wordfence > Firewall
- Clique em Manage Firewall
- Verifique se o status está como "Learning Mode"
- O modo de aprendizado roda por uma semana por padrão
- Após o período, mude para Enabled and Protecting
Passo 3: Configurar Proteção de Firewall Estendida
Para máxima eficiência, o Wordfence precisa rodar antes do WordPress carregar.
- Acesse Wordfence > Firewall > Manage Firewall
- Clique em Optimize the Wordfence Firewall
- O plugin vai detectar sua configuração de servidor
- Faça o download do backup do .htaccess ou user.ini
- Clique em Continue para aplicar
Isso faz o firewall carregar antes do WordPress, economizando recursos.
Passo 4: Configurar Rate Limiting
Rate limiting controla quantas requisições um IP pode fazer em determinado período.
- Acesse Wordfence > Firewall > Rate Limiting
- Configure as seguintes opções:
How should we treat Google's crawlers: Verified Google crawlers have unlimited access If anyone's requests exceed: 240 per minute - Throttle it If a crawler's page views exceed: 240 per minute - Throttle it If a crawler's pages not found exceed: 30 per minute - Block it If a human's page views exceed: 240 per minute - Throttle it If a human's pages not found exceed: 30 per minute - Block it How long is an IP address blocked: 5 minutes
Passo 5: Proteção Contra Brute Force
- Acesse Wordfence > Firewall > Brute Force Protection
- Configure:
Lock out after how many login failures: 5 Lock out after how many forgot password attempts: 3 Count failures over what time period: 4 hours Amount of time a user is locked out: 4 hours Immediately lock out invalid usernames: Yes Prevent the use of passwords leaked in data breaches: Yes
Passo 6: Bloqueio por País (Premium)
Se o seu site é voltado para o público brasileiro, você pode bloquear acessos de países com alto volume de ataques.
- Acesse Wordfence > Firewall > Blocking
- Selecione Country Blocking
- Marque os países que deseja bloquear
- Escolha se quer bloquear de todo o site ou apenas do login
Atenção: essa funcionalidade está disponível apenas na versão Premium.
Configurando o Sucuri Firewall (Cloud WAF)
O Sucuri Firewall é um WAF baseado em nuvem. Todo o tráfego do seu site passa pela rede do Sucuri antes de chegar ao seu servidor.
Como Funciona
Visitante -> DNS -> Sucuri WAF (filtra) -> Seu Servidor
|
Bloqueio de
ataques aqui
Configuração do DNS
- Contrate o plano do Sucuri Firewall (a partir de $9,99/mês)
- Adicione seu site no painel do Sucuri
- O Sucuri vai fornecer novos nameservers ou um registro A
- Acesse o painel DNS do seu domínio
- Aponte o domínio para os IPs fornecidos pelo Sucuri
# Exemplo de registros DNS seusite.com.br A 192.124.249.XX www.seusite.com.br CNAME seusite.com.br
- Aguarde a propagação DNS (até 48 horas)
- Configure o SSL no painel do Sucuri
Vantagens do Sucuri Firewall
- Bloqueia ataques antes de chegarem ao servidor
- CDN integrada para melhorar velocidade
- Proteção contra DDoS
- Virtual patching (protege contra vulnerabilidades conhecidas antes da correção)
- Não consome recursos do seu servidor
NinjaFirewall: Uma Alternativa Leve
O NinjaFirewall é uma opção interessante para quem quer um firewall de plugin mais leve que o Wordfence. Ele opera como um WAF stand-alone, carregando antes do WordPress.
Configuração Básica
- Instale e ative o plugin NinjaFirewall
- Na primeira execução, ele verifica a compatibilidade do servidor
- Escolha o modo Full WAF (recomendado)
- O plugin vai criar o arquivo firewall.php no diretório raiz
- Configure as políticas de segurança em NinjaFirewall > Firewall Policies
Opções recomendadas para ativar:
- Block direct access to PHP files in specific directories
- Scan and reject malicious content in POST requests
- Block suspicious bots and scanners
- HTTP response headers hardening
Firewall em Nível de Servidor com ModSecurity
O ModSecurity é o WAF open-source mais utilizado em servidores web. Ele funciona como um módulo do Apache ou Nginx.
Instalação no Ubuntu com Nginx
# Instalar ModSecurity sudo apt update sudo apt install libmodsecurity3 libmodsecurity-dev # Instalar o conector para Nginx sudo apt install libnginx-mod-security # Ativar o ModSecurity sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
Edite o arquivo de configuração:
sudo nano /etc/modsecurity/modsecurity.conf
Altere a diretiva principal:
# Mudar de DetectionOnly para On SecRuleEngine On
Instalar as Regras OWASP CRS
O OWASP Core Rule Set (CRS) é o conjunto de regras mais confiável para ModSecurity.
# Baixar o CRS cd /etc/modsecurity sudo git clone https://github.com/coreruleset/coreruleset.git cd coreruleset sudo cp crs-setup.conf.example crs-setup.conf
Configure o Nginx para carregar o ModSecurity:
# /etc/nginx/sites-available/seusite.conf
server {
# ... suas configurações ...
modsecurity on;
modsecurity_rules_file /etc/modsecurity/modsecurity.conf;
location / {
try_files $uri $uri/ /index.php?$args;
}
}
Reinicie o Nginx:
sudo nginx -t sudo systemctl restart nginx
Cloudflare WAF para WordPress
O Cloudflare oferece proteção WAF tanto no plano gratuito (regras básicas) quanto no plano Pro ($20/mês, com regras avançadas).
Configuração Inicial
- Crie uma conta no Cloudflare
- Adicione seu domínio
- Aponte os nameservers do domínio para o Cloudflare
- Ative o proxy (nuvem laranja) nos registros DNS
Regras de Firewall Recomendadas
No painel do Cloudflare, acesse Security > WAF e crie as seguintes regras:
Regra 1: Bloquear Acesso ao wp-login por País
Nome: Block wp-login foreign
Expressão: (http.request.uri.path contains "/wp-login.php") and (not ip.geoip.country in {"BR"})
Ação: Block
Regra 2: Bloquear XML-RPC
O arquivo xmlrpc.php é alvo frequente de ataques de brute force e DDoS.
Nome: Block XML-RPC Expressão: (http.request.uri.path contains "/xmlrpc.php") Ação: Block
Regra 3: Proteger wp-admin
Nome: Protect wp-admin
Expressão: (http.request.uri.path contains "/wp-admin/") and (not http.request.uri.path contains "/wp-admin/admin-ajax.php") and (not ip.geoip.country in {"BR"})
Ação: Managed Challenge
Regra 4: Bloquear Scanners Conhecidos
Nome: Block bad bots Expressão: (http.user_agent contains "sqlmap") or (http.user_agent contains "nikto") or (http.user_agent contains "nmap") or (http.user_agent contains "masscan") Ação: Block
Configurações de Segurança do Cloudflare
No painel, ajuste:
- Security Level: Medium
- Challenge Passage: 30 minutes
- Browser Integrity Check: On
- Bot Fight Mode: On (plano gratuito)
Regras de Firewall para Ataques Comuns
Independente da solução escolhida, existem regras que todo site WordPress deve ter.
Bloqueio de SQL Injection
Adicione ao .htaccess (Apache) ou à configuração do Nginx:
# Nginx - bloquear padrões de SQL injection
location ~* "(union|select|insert|delete|update|drop|alter|create|truncate)" {
if ($args ~* "(union|select|insert|delete|update|drop|alter)(.*)from") {
return 403;
}
}
Bloqueio de XSS
# Nginx - bloquear padrões de XSS
location / {
if ($args ~* "(<script|%3Cscript)") {
return 403;
}
}
Proteção do wp-login.php contra Brute Force
# Nginx - limitar tentativas de login
location = /wp-login.php {
limit_req zone=login burst=3 nodelay;
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Defina a zona de rate limiting no bloco http :
# No bloco http do nginx.conf limit_req_zone $binary_remote_addr zone=login:10m rate=1r/s;
Bloquear Acesso a Arquivos Sensíveis
# Nginx - bloquear acesso a arquivos sensíveis
location ~* (wp-config\.php|readme\.html|license\.txt|\.htaccess|\.env) {
deny all;
return 404;
}
location ~* /\. {
deny all;
return 404;
}
Monitorando Logs do Firewall
Configurar o firewall é só metade do trabalho. Monitorar os logs é essencial para identificar padrões de ataque e ajustar as regras.
Logs do Wordfence
- Acesse Wordfence > Tools > Live Traffic
- Filtre por "Blocked" para ver requisições bloqueadas
- Analise os padrões: mesmos IPs, mesmos endpoints, mesmos user-agents
- Use os dados para criar regras de bloqueio mais específicas
Logs do Nginx
# Ver últimos bloqueios (403)
grep " 403 " /var/log/nginx/access.log | tail -50
# Contar ataques ao wp-login.php por IP
grep "wp-login.php" /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -20
# Ver tentativas de acesso ao xmlrpc.php
grep "xmlrpc.php" /var/log/nginx/access.log | wc -l
Logs do ModSecurity
# Ver alertas do ModSecurity sudo tail -100 /var/log/modsec_audit.log # Filtrar por ataques bloqueados grep "Access denied" /var/log/modsec_audit.log | tail -20
Lidando com Falsos Positivos
Um problema comum de firewalls é o bloqueio de tráfego legítimo (falsos positivos). Isso pode acontecer quando:
- Um plugin faz requisições que parecem maliciosas
- Usuários editam conteúdo com código HTML ou JavaScript
- Integrações externas fazem chamadas à API do WordPress
Como Identificar Falsos Positivos
- Verifique os logs do firewall regularmente
- Teste funcionalidades do site após ativar o firewall
- Monitore reclamações de usuários sobre erros 403
Como Resolver
No Wordfence:
- Acesse Wordfence > Firewall > Manage Firewall
- Na seção "Allowlisted URLs", adicione as URLs que estão sendo bloqueadas indevidamente
- Clique em Add
No ModSecurity:
# Desativar uma regra específica que causa falso positivo SecRuleRemoveById 942100
No Cloudflare:
- Acesse Security > WAF > Tools
- Adicione o IP ou URL na lista de permissão
Dica Importante
Após qualquer alteração no firewall, teste o site completamente:
- Login no wp-admin
- Edição de posts (com código HTML)
- Envio de formulários
- Upload de arquivos
- Funcionalidades do WooCommerce (se aplicável)
- API REST do WordPress
Combinando Camadas de Proteção
A melhor estratégia de segurança usa múltiplas camadas. Veja uma combinação recomendada:
1. Cloudflare (DNS/CDN) - filtragem inicial de tráfego 2. ModSecurity (Servidor) - proteção no nível do servidor 3. Wordfence ou NinjaFirewall (Plugin) - proteção no WordPress 4. Regras customizadas no Nginx - bloqueio de padrões específicos
Cada camada pega o que a anterior deixa passar, criando uma defesa robusta.
Checklist de Segurança com Firewall
- [ ] WAF ativo e configurado (plugin ou cloud)
- [ ] Rate limiting no login ( /wp-login.php )
- [ ] XML-RPC bloqueado (se não usar)
- [ ] Acesso a arquivos sensíveis bloqueado
- [ ] Bloqueio de bots maliciosos
- [ ] Monitoramento de logs ativo
- [ ] Lista de falsos positivos revisada
- [ ] Backup do site antes de ativar regras novas
Leia também: Autenticação de Dois Fatores no WordPress e Como Remover Malware do WordPress .
A HOSTWP Protege Seu Site WordPress
Configurar firewall corretamente exige conhecimento técnico, monitoramento constante e ajustes frequentes. Uma regra mal configurada pode derrubar seu site. Uma regra faltando pode deixá-lo vulnerável.
Na HOSTWP, a segurança do seu site é responsabilidade nossa. Configuramos firewall em múltiplas camadas, monitoramos os logs, ajustamos regras, bloqueamos ataques e mantemos tudo atualizado. Você não precisa se preocupar com nada disso.
Não quer lidar com isso sozinho? A HOSTWP cuida de tudo, do servidor ao site.
Fale com a gente no WhatsApp e proteja seu WordPress agora.