Changer le thème

Liste blanche des IP de retour Cloudflare : 3 méthodes pour bloquer le trafic non-CF et protéger l'origine

Easton editorial illustration: security-and-delivery gateway

Une fuite d’IP d’origine rend la protection Cloudflare presque inutile. Une fois l’IP connue, l’attaquant contourne Cloudflare : DDoS direct sur l’origine, scan de ports, exploitation de failles. Les fuites passent par la vérification SSL, l’historique DNS, les sous-domaines ou la messagerie hors CDN.

Protéger l’origine ne se limite pas au proxy Cloudflare : configurez un pare-feu côté serveur qui n’autorise que les IP de retour Cloudflare et bloque tout le reste. Cet article présente trois approches : Baota (la plus simple), Nginx pur (plus flexible), certificat d’origine (le plus sûr). Listes IP, étapes, tests et FAQ inclus.

Pourquoi limiter le trafic non-CF ? Le risque réel de fuite d’IP

Penser que pointer le domaine vers Cloudflare suffit est une erreur courante. Les attaquants ont plusieurs moyens de retrouver l’IP réelle.

Voies courantes de fuite

Requêtes sur certificat SSL : sur myssl.com et sites similaires, la détection SSL peut afficher l’IP d’origine lorsque le site est derrière le CDN Cloudflare avec certificat activé.

Historique DNS : de nombreux services cachent les résolutions ; certaines bases les conservent longtemps. Même après migration vers Cloudflare, l’ancienne IP reste visible.

Sous-domaines et messagerie : le site principal peut être en proxy orange, mais mail.example.com ou un sous-domaine oublié expose l’IP (ping, en-têtes Received). Un collègue ops a vu son serveur mail ciblé alors que le site principal était bien protégé.

Impact après fuite

L’attaquant contourne Cloudflare : DDoS sur l’origine, scan de ports, attaques ciblées. Le tableau de bord CF peut sembler calme pendant que le serveur réel subit l’assaut — typiquement quand la liste blanche n’est pas en place.

Où trouver la liste des IP de retour Cloudflare ?

Adresses officielles

Cloudflare publie trois pages :

Gardez-les en favoris pour les mises à jour.

Plages IPv4 actuelles (15 CIDR)

173.245.48.0/20
103.21.244.0/22
103.22.200.0/22
103.31.4.0/22
141.101.64.0/18
108.162.192.0/18
190.93.240.0/20
188.114.96.0/20
197.234.240.0/22
198.41.128.0/17
162.158.0.0/15
104.16.0.0/13
104.24.0.0/14
172.64.0.0/13
131.0.72.0/22

Environ 1,78 million d’adresses au total.

Plages IPv6

Si IPv6 est activé sur le serveur, ajoutez aussi :

2400:cb00::/32
2606:4700::/32
2803:f800::/32
2405:b500::/32
2405:8100::/32
2a06:98c0::/29
2c0f:f248::/32

Important : la liste évolue. Vérifiez toutes les 1-2 mois ; sinon de nouvelles IP CF peuvent être bloquées et provoquer des échecs de retour.

Méthode 1 — Baota : liste blanche Cloudflare (la plus simple)

Avec le panneau Baota, le plugin pare-feu Nginx permet une configuration graphique sans éditer les fichiers à la main.

Étape 1 : installer le plugin Nginx Firewall

Dans Baota : Boutique logicielleApplications tiercesNginx Firewall (gratuit). Installez si nécessaire.

Étape 2 : configurer la liste blanche IP

  1. Ouvrez les paramètres du pare-feu Nginx
  2. Configuration globaleListe blanche IPParamètres
  3. Ajoutez chaque plage IPv4 Cloudflare

Baota demande une IP de début et une IP de fin ; les plages sont en CIDR (ex. 173.245.48.0/20). Utilisez un convertisseur « CIDR vers plage IP » : 173.245.48.0/20173.245.48.0 à 173.245.63.255. Des listes pré-converties circulent sur des blogs — copier-coller fait gagner du temps.

  1. Importez toutes les plages
  2. Redémarrez Nginx

Note : l’interface Baota ne gère que l’IPv4 ; pour IPv6, passez à la méthode 2 ou éditez Nginx manuellement.

Étape 3 : vérifier

  • En 4G, accès direct à l’IP d’origine → 403 Forbidden
  • Via le domaine (proxy CF) → site normal

Un 502 indique souvent des plages incomplètes ou le pare-feu Baota désactivé.

Méthode 2 — Nginx pur (plus flexible)

Sans Baota, ou pour IPv6 et fichiers partagés entre sites.

Étape 1 : créer le fichier de liste blanche

sudo nano /etc/nginx/cloudflare-whitelist.conf

Contenu :

# Plages IPv4 Cloudflare
allow 173.245.48.0/20;
allow 103.21.244.0/22;
allow 103.22.200.0/22;
allow 103.31.4.0/22;
allow 141.101.64.0/18;
allow 108.162.192.0/18;
allow 190.93.240.0/20;
allow 188.114.96.0/20;
allow 197.234.240.0/22;
allow 198.41.128.0/17;
allow 162.158.0.0/15;
allow 104.16.0.0/13;
allow 104.24.0.0/14;
allow 172.64.0.0/13;
allow 131.0.72.0/22;
# Plages IPv6 Cloudflare
allow 2400:cb00::/32;
allow 2606:4700::/32;
allow 2803:f800::/32;
allow 2405:b500::/32;
allow 2405:8100::/32;
allow 2a06:98c0::/29;
allow 2c0f:f248::/32;
# Refuser tout le reste
deny all;

Le deny all; final est indispensable.

Étape 2 : inclure dans le vhost

sudo nano /etc/nginx/sites-available/your-site.conf

Dans le bloc server :

server {
    listen 80;
    server_name example.com;
    include /etc/nginx/cloudflare-whitelist.conf;
    root /var/www/html;
    index index.html;
}

Répétez pour le bloc listen 443 si HTTPS est actif.

Étape 3 : tester et recharger

sudo nginx -t
sudo systemctl reload nginx

Avantage : un seul fichier cloudflare-whitelist.conf pour tous les sites, IPv6 inclus.

Configuration complète de la liste blanche IP de retour Cloudflare

De la récupération des listes IP à la validation, pour Baota, Nginx pur et certificat d’origine

Estimated time: PT20M

  1. 1

    Step 1: Récupérer les listes IP Cloudflare

    Pages officielles :
  2. 2

    Step 2: Méthode 1 : Baota (la plus simple)

    Étapes :
  3. 3

    Step 3: Note

    IPv4 via interface ; IPv6 manuellement
  4. 4

    Step 4: Méthode 2 : Nginx pur (flexible)

    Étapes :
  5. 5

    Step 5: Méthode 3 : certificat d’origine (le plus sûr)

    Étapes :
  6. 6

    Step 6: Cloudflare

    SSL/TLS → Origin Server → Create certificate
  7. 7

    Step 7: Avantage

    double barrière (IP + certificat) même si l’IP fuit
  8. 8

    Step 8: Vérifier l’effet

    4G sur IP d’origine → 403 ; via domaine → OK. 502 : plages incomplètes ou syntaxe. 403 via CF : ordre deny/allow ou liste obsolète.

Méthode 3 — Certificat d’origine Cloudflare (le plus sûr)

En complément de la liste blanche : certificat d’origine. Accès direct à l’IP = erreur certificat, connexion refusée.

Qu’est-ce que le certificat d’origine

Certificat TLS signé par Cloudflare, utilisé uniquement entre Cloudflare et votre origine. Les navigateurs ne le font pas confiance ; seul Cloudflare s’y connecte normalement.

Combiné à la liste blanche : trafic non-CF bloqué + connexion chiffrée réservée à CF.

Étape 1 : générer le certificat

Dans Cloudflare : SSL/TLSOrigin ServerCreate certificate. Choisissez le domaine (wildcard possible), validité longue (jusqu’à 15 ans).

Enregistrez certificat et clé :

sudo nano /etc/nginx/certs/cloudflare.crt
sudo nano /etc/nginx/certs/cloudflare.key
sudo chmod 600 /etc/nginx/certs/cloudflare.key

Étape 2 : configurer Nginx

server {
    listen 443 ssl http2;
    server_name example.com;
    ssl_certificate /etc/nginx/certs/cloudflare.crt;
    ssl_certificate_key /etc/nginx/certs/cloudflare.key;
    include /etc/nginx/cloudflare-whitelist.conf;
}

Option stricte : certificat client Cloudflare + ssl_verify_client on;.

sudo nginx -t && sudo systemctl reload nginx

Pour la plupart des sites, la liste blanche IP suffit ; le certificat d’origine vise les scénarios à exigence maximale.

Tests et dépannage

Comment tester

Test 1 : en 4G, ouvrez http://VOTRE_IP_ORIGINE403 Forbidden si OK.

Test 2 : en local (hors serveur) :

curl -I http://VOTRE_IP_ORIGINE

403 Forbidden.

Test 3 : via https://votre-domaine.com → accès normal. Si 403 ici aussi, la config est incorrecte.

Problèmes fréquents

502 après configuration : plages incomplètes ou erreur de syntaxe — sudo nginx -t, logs error.log, vérifier les 15 IPv4 et 7 IPv6.

403 même via Cloudflare : deny all avant les allow, ou liste IP obsolète — réordonner et consulter https://www.cloudflare.com/ips/

Baota : import sans effet : plugin désactivé, Nginx non redémarré — vérifier l’icône verte et les logs du pare-feu.

Contournement IPv6 : ajouter les plages IPv6 CF ou désactiver IPv6 si non requis.

Autres bonnes pratiques

  • Changer le port SSH par défaut
  • Mises à jour système régulières
  • server_tokens off; dans nginx.conf
  • Mode Under Attack Cloudflare en cas d’attaque intense

Mise à jour de la liste IP Cloudflare

Les plages évoluent avec l’infrastructure mondiale. Une liste obsolète bloque de nouvelles IP de retour → pannes partielles.

Mise à jour manuelle

Tous les 2-3 mois, comparez https://www.cloudflare.com/ips/ avec votre fichier, ajoutez les nouvelles plages, nginx -t, puis reload.

Script automatique (optionnel)

#!/bin/bash
CF_IPV4_URL="https://www.cloudflare.com/ips-v4"
CF_IPV6_URL="https://www.cloudflare.com/ips-v6"
NGINX_CONF="/etc/nginx/cloudflare-whitelist.conf"
BACKUP_CONF="/etc/nginx/cloudflare-whitelist.conf.bak"
cp $NGINX_CONF $BACKUP_CONF
echo "# Cloudflare IP Whitelist - Auto-generated on $(date)" > $NGINX_CONF
echo "" >> $NGINX_CONF
echo "# IPv4 ranges" >> $NGINX_CONF
curl -s $CF_IPV4_URL | sed 's/^/allow /' | sed 's/$/;/' >> $NGINX_CONF
echo "" >> $NGINX_CONF
echo "# IPv6 ranges" >> $NGINX_CONF
curl -s $CF_IPV6_URL | sed 's/^/allow /' | sed 's/$/;/' >> $NGINX_CONF
echo "" >> $NGINX_CONF
echo "# Deny all other IPs" >> $NGINX_CONF
echo "deny all;" >> $NGINX_CONF
if nginx -t; then
    systemctl reload nginx
    echo "✓ Mise à jour réussie"
else
    cp $BACKUP_CONF $NGINX_CONF
    echo "✗ Erreur — configuration restaurée"
fi
chmod +x /root/update-cf-whitelist.sh
crontab -e

Ligne cron :

0 3 1 * * /root/update-cf-whitelist.sh >> /var/log/cf-whitelist-update.log 2>&1

Testez le script à la main avant le cron.

Conclusion

Pour protéger l’origine, la liste blanche Cloudflare est indispensable.

Récapitulatif :

  • Baota : le plus simple, IPv4 seulement
  • Nginx pur : flexible, IPv6, fichier centralisé
  • Certificat d’origine : double protection pour exigences élevées

Après configuration : 4G sur l’IP d’origine → 403 ; via le domaine → OK. Pensez à mettre à jour les plages IP régulièrement ou via cron.

Partagez ce guide avec d’autres administrateurs Cloudflare. Vérifiez tout de suite si votre IP a fuité (myssl.com ou équivalent) : si oui, appliquez l’une de ces méthodes sans attendre.

FAQ

Pourquoi l'IP d'origine fuit-elle ? Quelles voies courantes ?
Voies courantes de fuite d'IP d'origine :

1) Sites de vérification SSL (myssl.com, etc.) :
• Avec le CDN Cloudflare, la détection du certificat peut afficher l'IP d'origine

2) Historique DNS mis en cache par des services tiers :
• Certaines bases conservent les données longtemps
• Même après passage à Cloudflare, l'ancienne IP reste trouvable

3) Sous-domaines ou messagerie sans CDN :
• ping sur un sous-domaine ou en-têtes mail bruts exposent l'IP

Après fuite, l'attaquant contourne Cloudflare : DDoS direct sur l'origine, scan de ports et exploitation de failles.
Où obtenir la liste des IP de retour Cloudflare ? Comment la maintenir à jour ?
Cloudflare maintient trois pages officielles :
• Liste complète : https://www.cloudflare.com/ips/
• IPv4 : https://www.cloudflare.com/ips-v4
• IPv6 : https://www.cloudflare.com/ips-v6

Plages actuelles :
• 15 blocs CIDR IPv4 (environ 1,78 million d'adresses)
• 7 blocs IPv6

Conseils :
• La liste évolue ; vérifiez toutes les 2-3 mois
• Ou script automatisé (cron mensuel)

Sans mise à jour, de nouvelles IP CF peuvent être bloquées et provoquer des échecs de retour pour certains utilisateurs.
Quelle différence entre les trois méthodes ? Laquelle choisir ?
1) Liste blanche Baota :
• La plus simple, interface graphique, adaptée aux débutants
• IPv4 uniquement ; IPv6 à configurer à la main

2) Nginx pur :
• Plus flexible, IPv6 supporté
• Fichier dédié facile à mettre à jour
• Partageable entre plusieurs sites
• Pour utilisateurs avec bases Linux

3) Certificat d'origine :
• Le plus sûr : liste blanche + validation certificat
• Même si l'IP fuit, accès direct = erreur certificat
• Pour exigences de sécurité très élevées

En pratique : la liste blanche IP suffit souvent ; ajoutez le certificat d'origine si besoin maximal.
Comment configurer la liste blanche Nginx ? Étapes clés ?
Étapes :

1) Créer le fichier :
• sudo nano /etc/nginx/cloudflare-whitelist.conf
• Ajouter allow pour toutes les plages CF IPv4 et IPv6
• Terminer par deny all (obligatoire, après les allow)

2) Inclure dans le vhost :
• /etc/nginx/sites-available/your-site.conf
• Dans le bloc server : include /etc/nginx/cloudflare-whitelist.conf
• HTTP et HTTPS

3) Tester et recharger :
• sudo nginx -t
• sudo systemctl reload nginx

Pour les mises à jour IP, modifiez uniquement cloudflare-whitelist.conf.
Comment vérifier que c'est actif ? Dépannage courant ?
Vérification :
1) En 4G (hors CF), accès direct à l'IP d'origine → 403 Forbidden attendu
2) Via le domaine (proxy CF) → site normal

Problèmes courants :

1) 502 :
• Plages IP complètes (15 IPv4 + 7 IPv6)
• Syntaxe : sudo nginx -t
• Pare-feu activé

2) CF aussi en 403 :
• deny all bien après les allow
• Liste à jour sur https://www.cloudflare.com/ips/

3) Contournement IPv6 :
• Ajouter les plages IPv6 CF
• Ou désactiver IPv6 au pare-feu si inutile
Comment automatiser la mise à jour de la liste IP Cloudflare ?
Un script bash peut récupérer les listes officielles et régénérer la config.

Flux :
1) Sauvegarde de l'ancienne config
2) Téléchargement IPv4/IPv6 depuis CF
3) Génération allow + deny all
4) nginx -t puis reload, sinon restauration

Déploiement :
• /root/update-cf-whitelist.sh
• chmod +x
• cron : 0 3 1 * * /root/update-cf-whitelist.sh >> /var/log/cf-whitelist-update.log 2>&1

Testez manuellement une première fois avant d'activer le cron.

7 min de lecture · Publié le: 21 nov. 2025 · Mis à jour le: 27 juil. 2026

Commentaires

Connectez-vous avec GitHub pour laisser un commentaire

Easton BlogEaston Blog