WAF e Firewall para WordPress: configurar proteção em sites de clientes

Um Web Application Firewall (WAF) é a camada de segurança que filtra tráfego malicioso antes de chegar ao WordPress. Bloqueia SQL injection, XSS, tentativas de exploração de vulnerabilidades conhecidas e ataques DDoS. Para agências que gerem múltiplos sites, WAF é a diferença entre reagir a incidentes e preveni-los.

O que um WAF faz e o que não faz

O que um WAF faz:

  • Bloqueia pedidos HTTP com padrões de ataque conhecidos (SQL injection, XSS, path traversal)
  • Limita rate de pedidos por IP (proteção contra brute force e DDoS)
  • Filtra bots maliciosos
  • Bloqueia pedidos de países ou IPs em blacklist
  • Protege contra exploração de vulnerabilidades conhecidas em plugins

O que um WAF não faz:

  • Não substitui updates de segurança — um WAF é uma barreira adicional, não alternativa a manter o WordPress atualizado
  • Não remove malware já instalado — para isso é necessário limpeza ativa
  • Não protege contra vulnerabilidades em código personalizado que o WAF não conhece

Tipos de WAF para WordPress

WAF ao nível de CDN/Proxy (Cloudflare)

O tráfego passa pelo Cloudflare antes de chegar ao servidor. O Cloudflare filtra na sua rede edge — sem impacto de performance no servidor. É a opção mais eficaz para proteger contra ataques volumétricos (DDoS).

  • Cloudflare Free: Bot Fight Mode, proteção DDoS básica, rate limiting básico. Sem OWASP ruleset completo.
  • Cloudflare Pro (€20/mês): WAF com OWASP Core Rule Set, mais regras geridas, rate limiting avançado. Para sites com tráfego ou de negócio.
  • Cloudflare Business (€200/mês): Para sites com requisitos avançados de segurança e conformidade.

WAF ao nível do servidor (fail2ban, ModSecurity)

Configurado diretamente no servidor web (Apache/Nginx). ModSecurity com OWASP Core Rule Set é a implementação mais robusta. Requer acesso root ao servidor e conhecimento técnico para configurar corretamente — não é opção em hosting partilhado.

WAF via plugin WordPress (Wordfence)

O Wordfence implementa um WAF ao nível da aplicação — o tráfego ainda chega ao servidor e é processado por PHP, mas antes de chegar ao WordPress. É menos eficiente que um WAF de CDN mas muito mais acessível para hosting partilhado.

Wordfence Free: WAF com regras atualizadas com 30 dias de atraso vs versão premium. Proteção básica mas funcional.
Wordfence Premium: regras em tempo real, IP blocklist atualizada em tempo real, scanner de malware avançado. ~€99/ano por site.

Configuração Cloudflare WAF para WordPress

Rules básicas para WordPress

No Cloudflare (plano Pro ou superior), crie Custom Rules:

Bloquear acesso a wp-admin de IPs não autorizados:

Rule: (http.request.uri.path contains "/wp-admin")
      and not (ip.src in {1.2.3.4 5.6.7.8})
Action: Block

Rate limiting em wp-login.php:

Rule: (http.request.uri.path eq "/wp-login.php")
      and (http.request.method eq "POST")
Action: Rate Limit (5 requests per minute per IP → Block for 1 hour)

Bloquear scanners de vulnerabilidades comuns:

Rule: (http.user_agent contains "sqlmap")
      or (http.user_agent contains "nikto")
      or (http.user_agent contains "Nessus")
Action: Block

Managed Rulesets

No Cloudflare Pro, ative os managed rulesets: Cloudflare OWASP Core Ruleset e Cloudflare Managed Ruleset. Comecem com modo "Log" para ver o que seria bloqueado antes de ativar "Block" — alguns sites com formulários complexos podem ter falsos positivos.

Configuração Wordfence para WordPress

Firewall em modo Learning vs Enabled

Quando instala pela primeira vez, o Wordfence entra em "Learning Mode" por 1 semana. Durante este período, aprende o tráfego normal do site antes de bloquear ativamente. Após 1 semana, ative manualmente "Enabled and Protecting".

Regras de brute force

Wordfence → Firewall → Brute Force Protection:

  • Lock out after X failed login attempts: 5 tentativas
  • Count failures over: 4 horas
  • Lockout duration: 24 horas
  • Immediately lock out invalid usernames: Sim (bloqueia imediatamente tentativas com username inválido)

WAF em contexto de segurança multicamadas

Um WAF é mais eficaz como parte de uma estratégia de segurança multicamadas:

  1. Nível de rede/CDN: Cloudflare WAF — bloqueia antes de chegar ao servidor
  2. Nível de servidor: fail2ban para SSH, ModSecurity para HTTP (se VPS)
  3. Nível de aplicação: Wordfence — proteção específica WordPress
  4. Nível de configuração: hardening WordPress — permissões, desativação de funcionalidades não usadas
  5. Nível de acesso: 2FA, passwords fortes, mínimo de utilizadores admin

Para agências sem budget para soluções premium, o mínimo viável é: Cloudflare gratuito (com Bot Fight Mode ativo) + Wordfence gratuito + hardening básico de WordPress. Esta combinação cobre a esmagadora maioria dos ataques comuns.

Quer que configuremos segurança WAF para os sites WordPress dos seus clientes?

O nosso serviço de manutenção WordPress inclui configuração de segurança e monitorização contínua.

Proteger sites de clientes