Combiner Cloudflare et l'Anti-DDoS Netrix

Combiner Cloudflare et l'Anti-DDoS Netrix

Mettez en place Cloudflare devant votre VPS VeryCloud sans casser la protection Netrix native. Ce guide explique pourquoi et comment combiner les deux couches de protection, configurer correctement les IPs autorisées et obtenir le meilleur des deux mondes.

Introduction

Beaucoup de clients VeryCloud demandent : "Faut-il mettre Cloudflare devant un VPS qui a déjà l'Anti-DDoS Netrix ?". La réponse courte : oui, pour le web HTTP/HTTPS, mais avec quelques précautions.

Pourquoi combiner les deux

ProtectionCouvertureForce
Netrix (VeryCloud)L3/L4 (tous protocoles)Mitige les attaques volumétriques (Gbps), gaming-friendly
CloudflareL7 (HTTP/HTTPS)Mitige les attaques applicatives (DDoS HTTP, bots, scrapers), CDN, cache, WAF

Ensemble : Netrix mange les attaques massives au niveau réseau, Cloudflare filtre tout ce qui passe au niveau applicatif (bots, brute-force, scrappers).

Prérequis

  • Un VPS VeryCloud (la protection Netrix est incluse sur toutes les offres)
  • Un nom de domaine
  • Un site web qui tourne sur le VPS (Nginx, Apache, IIS)
  • Un compte Cloudflare gratuit

Étape 1 : Comprendre la topologie

Sans Cloudflare :

Client → [Internet] → Netrix (VeryCloud) → VPS

Avec Cloudflare devant :

Client → [Internet] → Cloudflare → [Internet] → Netrix → VPS

Cloudflare devient le proxy frontal. Vos visiteurs voient l'IP Cloudflare, pas celle de votre VPS. Netrix continue de protéger les ports non-HTTP (SSH, FTP, Game).

Étape 2 : Configurer Cloudflare

Ajouter votre domaine

  1. Créez un compte sur https://cloudflare.com (gratuit)
  2. Add a Site → entrez votre-domaine.com
  3. Choisissez le plan Free (largement suffisant pour démarrer)
  4. Cloudflare scanne automatiquement vos DNS

Changer les nameservers

Cloudflare vous donne 2 NS (ex: lina.ns.cloudflare.com, mark.ns.cloudflare.com).

Chez votre registrar (OVH, Gandi, Cloudflare Registrar, etc.) :

  • Trouvez l'option DNS Servers ou Nameservers
  • Remplacez les NS actuels par ceux de Cloudflare
  • Sauvegardez

Attendez 1-24h la propagation.

Étape 3 : Activer le proxy Cloudflare (orange cloud)

Dans DNS → Records chez Cloudflare :

Type    Nom        Valeur          Proxy
A       @          82.26.157.10    Proxied (orange)  ← HTTPS/HTTP
A       www        82.26.157.10    Proxied (orange)
A       ssh        82.26.157.10    DNS only (gris)   ← SSH non-proxiable
A       mail       82.26.157.10    DNS only (gris)   ← Mail non-proxiable
A       fivem      82.26.157.10    DNS only (gris)   ← Gaming non-proxiable

Règle d'or :

  • Web (80/443) → Proxied (orange)
  • SSH, FTP, Mail, Gaming, RDP → DNS only (gris)

Cloudflare ne proxifie pas les protocoles non-HTTP en plan Free (sauf Spectrum, payant).

Étape 4 : Configurer le SSL

SSL/TLS → Overview → Mode :

  • Flexible : Client→Cloudflare en HTTPS, Cloudflare→VPS en HTTP. À éviter (faux sentiment de sécurité).
  • Full : HTTPS de bout en bout, mais accepte le certificat auto-signé du VPS.
  • Full (Strict) : HTTPS de bout en bout avec certificat valide sur le VPS. Recommandé.

Installer un certificat valide sur le VPS

Méthode 1 : Let's Encrypt via Certbot (si le DNS est en DNS only temporairement)

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d votre-domaine.com -d www.votre-domaine.com

Méthode 2 : Origin Certificate Cloudflare (recommandé, valide 15 ans)

Sur Cloudflare : SSL/TLS → Origin Server → Create Certificate

  • Hostnames : *.votre-domaine.com, votre-domaine.com
  • Validité : 15 ans

Téléchargez le .pem et la clé privée, copiez-les sur le VPS :

sudo nano /etc/ssl/cloudflare/cert.pem  # collez le certificat
sudo nano /etc/ssl/cloudflare/key.pem   # collez la clé privée

Configurez Nginx :

server {
    listen 443 ssl http2;
    server_name votre-domaine.com;

    ssl_certificate /etc/ssl/cloudflare/cert.pem;
    ssl_certificate_key /etc/ssl/cloudflare/key.pem;

    # Reste de votre config
}

Une fois en place, passez en Full (Strict) sur Cloudflare.

Étape 5 : Restreindre l'accès direct au VPS aux IPs Cloudflare

C'est l'étape CRITIQUE. Sans elle, un attaquant qui découvre l'IP réelle de votre VPS contourne complètement Cloudflare et attaque directement.

Récupérez la liste à jour des plages IP Cloudflare :

# IPv4
curl -s https://www.cloudflare.com/ips-v4

# IPv6
curl -s https://www.cloudflare.com/ips-v6

Avec UFW

# Bloquer tout sur 80 et 443
sudo ufw deny 80/tcp
sudo ufw deny 443/tcp

# Autoriser uniquement les IPs Cloudflare
for ip in $(curl -s https://www.cloudflare.com/ips-v4); do
    sudo ufw allow from $ip to any port 80,443 proto tcp
done

for ip in $(curl -s https://www.cloudflare.com/ips-v6); do
    sudo ufw allow from $ip to any port 80,443 proto tcp
done

Avec iptables direct

for ip in $(curl -s https://www.cloudflare.com/ips-v4); do
    sudo iptables -A INPUT -p tcp -m multiport --dports 80,443 -s $ip -j ACCEPT
done
sudo iptables -A INPUT -p tcp -m multiport --dports 80,443 -j DROP

Persistez :

sudo apt install -y iptables-persistent
sudo netfilter-persistent save

Script de mise à jour automatique

Cloudflare ajoute parfois de nouvelles plages. Automatisez :

sudo nano /usr/local/bin/update-cloudflare-ufw.sh
#!/bin/bash
# Nettoyer les anciennes règles Cloudflare
ufw status numbered | grep -i "cloudflare" | awk '{print $1}' | tr -d ']' | sort -rn | xargs -I {} ufw --force delete {}

# Re-ajouter
for ip in $(curl -s https://www.cloudflare.com/ips-v4); do
    ufw allow from $ip to any port 80,443 proto tcp comment "Cloudflare IPv4"
done

for ip in $(curl -s https://www.cloudflare.com/ips-v6); do
    ufw allow from $ip to any port 80,443 proto tcp comment "Cloudflare IPv6"
done
sudo chmod +x /usr/local/bin/update-cloudflare-ufw.sh
sudo crontab -e
0 5 * * * /usr/local/bin/update-cloudflare-ufw.sh

Étape 6 : Récupérer la vraie IP des visiteurs sur le VPS

Sans configuration, Nginx voit toutes les requêtes venir des IPs Cloudflare. Pour récupérer la vraie IP visiteur, ajoutez dans votre config Nginx :

# /etc/nginx/conf.d/cloudflare-real-ip.conf

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

# IPv6 Cloudflare
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2a06:98c0::/29;
set_real_ip_from 2c0f:f248::/32;

real_ip_header CF-Connecting-IP;

Rechargez Nginx :

sudo nginx -t && sudo systemctl reload nginx

Désormais, vos logs Nginx affichent la vraie IP des visiteurs, pas celle de Cloudflare.

Étape 7 : Configurer Netrix pour les protocoles non-HTTP

Netrix continue de protéger SSH, FTP, Game, Mail. Aucune action nécessaire : c'est actif par défaut.

Dans l'espace client VeryCloud, vous pouvez :

  • Configurer les ports ouverts par défaut
  • Activer/désactiver la protection pour certains ports
  • Voir les statistiques d'attaques bloquées

Étape 8 : Activer le WAF Cloudflare (optionnel)

Security → WAF → Managed rules :

  • Activez Cloudflare Managed Ruleset (gratuit en plan Free, partiel)
  • Choisissez le niveau Medium ou High selon votre tolérance

Pour des règles custom, Custom rules vous permet de bloquer/challenger des patterns spécifiques (ex: bloquer tous les pays sauf France).

Étape 9 : Activer le cache (perf)

Caching → Configuration → Browser Cache TTL : 4 hours

Caching → Tiered Cache : Activé (gratuit)

Speed → Optimization → Auto Minify : cochez CSS, JS, HTML

Effet : votre site charge 30-50% plus vite, et le trafic vers votre VPS est réduit.

Étape 10 : Tester la configuration

Vérifier que Cloudflare proxifie bien

curl -I https://votre-domaine.com

Headers attendus :

Server: cloudflare
CF-RAY: xxxxxxxxxxxx-CDG

Vérifier que le VPS n'accepte plus le HTTP direct

Depuis une IP non-Cloudflare (votre PC) :

curl -I http://IP_DU_VPS/
# Doit timeout ou retourner connection refused

Vérifier que les autres protocoles fonctionnent

SSH (via Netrix) :

ssh user@IP_DU_VPS  # Doit fonctionner

Dépannage

Erreur 525 ou 526 sur Cloudflare

Le SSL entre Cloudflare et votre VPS échoue.

  • 525 : pas de certificat sur le VPS → installez Let's Encrypt ou Origin Certificate
  • 526 : certificat invalide → passez Cloudflare en Full au lieu de Full (Strict) temporairement, ou installez un cert valide

Erreur 522 / 524

Cloudflare ne joint pas le VPS.

  • 522 : connexion refusée → vérifiez UFW et que Nginx écoute sur 443
  • 524 : timeout → votre app met trop de temps à répondre, optimisez

Trafic gaming saturé

Si vous proxifiez à tort un sous-domaine FiveM ou Minecraft via Cloudflare, ça ne marche pas (sauf avec Spectrum, payant).

Solution : passez ce sous-domaine en DNS only (nuage gris).

IPs Cloudflare bloquées par Netrix

Cas rare, mais peut arriver après une mise à jour. Ouvrez un ticket support VeryCloud pour vérifier si les plages Cloudflare sont bien whitelistées chez Netrix.

Commandes utiles

# Vérifier qu'une requête passe par Cloudflare
curl -I https://votre-domaine.com | grep -i cf-ray

# Voir les vraies IPs dans les logs Nginx
sudo tail -f /var/log/nginx/access.log

# Tester un blocage UFW
sudo ufw status numbered

# Forcer une purge du cache Cloudflare (API)
curl -X POST "https://api.cloudflare.com/client/v4/zones/ZONE_ID/purge_cache" \
    -H "Authorization: Bearer YOUR_API_TOKEN" \
    -H "Content-Type: application/json" \
    --data '{"purge_everything":true}'

# Liste à jour des IPs Cloudflare
curl -s https://www.cloudflare.com/ips-v4
curl -s https://www.cloudflare.com/ips-v6

Conclusion

Vous avez maintenant une double couche de protection sur votre VPS VeryCloud :

  • Cloudflare mitige tout ce qui est HTTP/HTTPS (bots, scrapers, DDoS L7)
  • Netrix mitige tout ce qui est volumétrique L3/L4 (UDP flood, SYN flood, gaming attacks)

C'est la configuration utilisée par la majorité des sites web professionnels. Pour les serveurs gaming purs (sans web), Netrix suffit largement et Cloudflare n'apporte rien.

Ressources

Rejoignez notre serveur communautaire Discord

Pour toute question, suggestion ou simplement pour discuter avec la communauté, rejoignez-nous sur Discord !

900+Membres