O IP real do visitante atrás do Cloudflare: registos, aplicações e bloqueios por IP

Velocidade, Cache e CDN·· 13 visualizações· 4 min de leitura

Para quem gere o site, programa nele ou tem um VPS. Com o site a laranja no Cloudflare, quem liga ao servidor é a Cloudflare, não o visitante. Se nada traduzir isso, os registos de acesso, os formulários, os plugins de segurança e os bloqueios por IP vêem endereços da Cloudflare em vez do endereço real. O endereço verdadeiro vem num cabeçalho, CF-Connecting-IP (e também no X-Forwarded-For). O trabalho é pôr o servidor ou a aplicação a lê-lo, mas só quando o pedido vem mesmo da Cloudflare.

Onde se nota

Sintoma Porquê
Comentários, encomendas ou tentativas de entrada aparecem com poucos endereços, sempre os mesmos A aplicação guarda o endereço de quem liga, e quem liga é a Cloudflare.
Um bloqueio por IP no .htaccess não trava o visitante A regra compara com o endereço que o servidor vê. Se esse endereço é o da Cloudflare, nunca coincide: bloquear um endereço IP.
Um plugin de segurança bloqueia muita gente de uma vez Bloqueou um endereço da Cloudflare, e atrás desse endereço há muitos visitantes.
O país do visitante sai errado ou sai sempre o mesmo A geolocalização está a usar o endereço da Cloudflare em vez do do visitante.
Os registos já mostram endereços variados e reais O servidor já traduz o cabeçalho. Não há nada a fazer além de confirmar com o teste abaixo.

Ver o que o seu site vê, e corrigir

1 Crie um ficheiro de teste temporário na pasta do site, por exemplo ip-teste.php, com o código abaixo.
2 Abra-o no navegador e compare as duas linhas com o seu IP público (como saber o seu IP público). Se o REMOTE_ADDR já é o seu, o servidor traduz o cabeçalho e as aplicações vêem o endereço certo. Se o REMOTE_ADDR é outro e o CF-Connecting-IP é o seu, falta a tradução.
3 Apague o ficheiro logo a seguir. Ficheiros de diagnóstico esquecidos no site são uma porta aberta.
4 Numa hospedagem partilhada, a tradução faz-se no servidor e não está nas suas mãos: se o teste mostra o endereço da Cloudflare, diga-nos o domínio. Entretanto, nos plugins de segurança e de formulários procure a opção que escolhe de onde se lê o endereço do visitante, e escolha o cabeçalho da Cloudflare só se o site estiver mesmo atrás dela.
5 Num VPS ou servidor dedicado, a tradução faz-se no servidor web, com a lista oficial de endereços da Cloudflare (cloudflare.com/ips): no Apache com o mod_remoteip, no Nginx com o módulo real_ip, no LiteSpeed com a opção de usar o IP do cliente que vem no cabeçalho. Os exemplos estão a seguir ao código de teste.
6 Para bloquear um visitante enquanto o site está a laranja, bloqueie-o no Cloudflare, nas regras de acesso por IP, onde o endereço real é conhecido.

O ficheiro de teste (PHP):

<?php
echo 'REMOTE_ADDR: ' . htmlspecialchars($_SERVER['REMOTE_ADDR']) . '<br>';
echo 'CF-Connecting-IP: ' . htmlspecialchars($_SERVER['HTTP_CF_CONNECTING_IP'] ?? '-');

Num VPS, o essencial da configuração (troque a indicação entre < > por cada faixa da lista oficial, uma linha por faixa):

# Apache (mod_remoteip)
RemoteIPHeader CF-Connecting-IP
RemoteIPTrustedProxy <uma faixa da lista cloudflare.com/ips>

# Nginx (uma linha set_real_ip_from por faixa)
real_ip_header CF-Connecting-IP;
set_real_ip_from <uma faixa da lista cloudflare.com/ips>;

Nunca aceite o cabeçalho vindo de qualquer lado. Qualquer pessoa pode enviar um CF-Connecting-IP ou um X-Forwarded-For inventado directamente ao servidor. Se a aplicação o aceitar sem confirmar que o pedido veio de um endereço da Cloudflare, quem ataca escolhe o IP que quiser e passa por cima de bloqueios e limites. É por isso que as configurações de VPS levam a lista dos endereços em que se confia.
Ao pedir ajuda com bloqueios ou com registos, diga logo que usa o Cloudflare. Se foi a firewall do servidor a bloquear alguém, o endereço a desbloquear é o do visitante, não o da Cloudflare: porque é que o seu IP é bloqueado pela firewall.

Não sabe se o seu site vê o endereço real? Diga-nos o domínio e o que o ficheiro de teste mostrou.

Abrir pedido de suporte

VEJA TAMBÉM

Cloudflare: o que é, o que muda, e o que fica na mesma

Bloquear um endereço IP de visitar o seu site

Como saber o seu endereço IP público (e porque o pedimos)

Ler as páginas Errors e Raw Access do cPanel quando uma página falha

Porque é que o seu IP é bloqueado no firewall (e como evitar)

Estatísticas de visitas: onde estão e o que significam

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 321,75 MT/mês (plano de 3 anos, com cupão)

Ver planos
Esta resposta foi útil? A sua resposta ajuda-nos a melhorar este artigo.