Como Configurar Firewall no WordPress

Aprenda a configurar firewall no WordPress com Wordfence, Sucuri e Cloudflare. Proteja seu site contra ataques com este guia completo.

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:

  1. Superfície de ataque grande - milhares de plugins e temas com potenciais vulnerabilidades
  2. Instalações desatualizadas - muitos sites rodam versões antigas com falhas conhecidas
  3. Padrões previsíveis - o login fica em /wp-login.php , o admin em /wp-admin/ , a API em /wp-json/
  4. 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

  1. Acesse Plugins > Adicionar Novo
  2. Pesquise por "Wordfence Security"
  3. Clique em Instalar e depois em Ativar
  4. Na primeira tela, insira seu e-mail para alertas de segurança
  5. 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.

  1. Acesse Wordfence > Firewall
  2. Clique em Manage Firewall
  3. Verifique se o status está como "Learning Mode"
  4. O modo de aprendizado roda por uma semana por padrão
  5. 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.

  1. Acesse Wordfence > Firewall > Manage Firewall
  2. Clique em Optimize the Wordfence Firewall
  3. O plugin vai detectar sua configuração de servidor
  4. Faça o download do backup do .htaccess ou user.ini
  5. 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.

  1. Acesse Wordfence > Firewall > Rate Limiting
  2. 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

  1. Acesse Wordfence > Firewall > Brute Force Protection
  2. 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.

  1. Acesse Wordfence > Firewall > Blocking
  2. Selecione Country Blocking
  3. Marque os países que deseja bloquear
  4. 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

  1. Contrate o plano do Sucuri Firewall (a partir de $9,99/mês)
  2. Adicione seu site no painel do Sucuri
  3. O Sucuri vai fornecer novos nameservers ou um registro A
  4. Acesse o painel DNS do seu domínio
  5. 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
  1. Aguarde a propagação DNS (até 48 horas)
  2. 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

  1. Instale e ative o plugin NinjaFirewall
  2. Na primeira execução, ele verifica a compatibilidade do servidor
  3. Escolha o modo Full WAF (recomendado)
  4. O plugin vai criar o arquivo firewall.php no diretório raiz
  5. 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

  1. Crie uma conta no Cloudflare
  2. Adicione seu domínio
  3. Aponte os nameservers do domínio para o Cloudflare
  4. 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

  1. Acesse Wordfence > Tools > Live Traffic
  2. Filtre por "Blocked" para ver requisições bloqueadas
  3. Analise os padrões: mesmos IPs, mesmos endpoints, mesmos user-agents
  4. 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

  1. Verifique os logs do firewall regularmente
  2. Teste funcionalidades do site após ativar o firewall
  3. Monitore reclamações de usuários sobre erros 403

Como Resolver

No Wordfence:

  1. Acesse Wordfence > Firewall > Manage Firewall
  2. Na seção "Allowlisted URLs", adicione as URLs que estão sendo bloqueadas indevidamente
  3. Clique em Add

No ModSecurity:

# Desativar uma regra específica que causa falso positivo
SecRuleRemoveById 942100

No Cloudflare:

  1. Acesse Security > WAF > Tools
  2. 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.

Artigos relacionados