Fermer

juin 12, 2018

Rendre votre site Web plus rapide et plus sûr avec Cloudflare –


Cloudflare est un chef de file de l'industrie de la distribution de contenu ce qui réduit la charge et accélère les millions de sites Web.

Ce qui est particulier à ce fournisseur, c'est qu'il n'a pas commencé comme accélérateur / performance tool, mais est né de Project Honeypot qui a été conçu comme un service de protection contre le spam et le piratage. À ce jour, c'est l'un des principaux arguments de vente de Cloudflare: la détection et la protection contre les attaques DDoS. Leurs algorithmes prennent en compte les adresses IP des visiteurs, les charges utiles, les ressources demandées et la fréquence des requêtes pour détecter les visiteurs malveillants.

Parce qu'il se positionne comme un proxy entre les sites Web et tout le trafic entrant, Cloudflare est capable de réduire considérablement les beaucoup de sorte que les attaques DDoS n'atteignent même pas les sites Web d'origine, comme expliqué dans cette introduction . Cloudflare fournit également l'option Toujours en ligne, qui met en cache une version du site Web de l'utilisateur et en diffuse une version limitée en cas de panne du serveur d'origine, lorsque le site Web d'origine renvoie des erreurs 5xx ou 4xx. Il dispose également d'un cache de page à part entière.

Ces fonctionnalités peuvent être un énorme avantage: elles peuvent sauver un serveur web en difficulté et, en cas d'erreurs de serveur, donner une certaine marge de manœuvre aux développeurs pour comprendre

 Fonction toujours en ligne

Il est également disponible gratuitement. Bien sûr, il y a des niveaux premium et il y a des choses (comme des règles de page supplémentaires) qui demandent à être payées, mais la portée du niveau libre de Cloudflare seul vaut la peine d'en apprendre les tenants et aboutissants.

benchmarks place Cloudflare quelque part au milieu en termes de vitesse, mais il serait difficile de prétendre que c'est la meilleure valeur CDN sur le marché

Configurer Cloudflare

Configurer un site avec Cloudflare est très simple. Après s'être inscrit sur (cloudflare.com) [http://www.cloudflare.com]nous pouvons ajouter un nouveau site web. Pendant que le système analyse l'adresse IP du domaine et d'autres détails, une vidéo d'introduction est proposée. À la fin, on nous donne de nouveaux serveurs de noms à configurer avec notre registrar.

 Ajout du site web à Cloudflare

Nous devons enregistrer ces serveurs DNS auprès de notre bureau d'enregistrement et attendre que les changements se propagent. l'Internet. Cela peut prendre jusqu'à 24 heures.

Ce changement signifie donner tout le contrôle de notre domaine à Cloudflare. Cela signifie également que, si nous avons des e-mails sur ce domaine (enregistrements MX), nous devons transférer ces enregistrements vers Cloudflare. Si nous avons des sous-domaines, ils doivent également être configurés comme enregistrements A respectifs dans le tableau de bord de Cloudflare

Tous les enregistrements de domaine existants créés avec notre registrar de domaine ou fournisseur d'hébergement doivent être déplacés / copiés dans Cloudflare.

Certains hébergeurs gérés peuvent simplifier / automatiser encore plus ce processus de transition

 Tableau de bord DNS Cloudflare

Pour chacun de nos enregistrements de domaine, nous pouvons décider pour laisser tout le trafic passer directement à nos serveurs – ce qui signifie que nous pouvons définir des exceptions pour certains sous-domaines – ou nous pouvons désactiver toutes les fonctionnalités de Cloudflare – par exemple, lorsque nous apportons des modifications sur le site Web.

 commutation de CDN sur

Une fois que nous avons défini le domaine, c'est tout le travail requis en dehors du tableau de bord de Cloudflare. Il n'y a plus rien à faire sur le site même ou sur le serveur d'origine. Tout autre réglage est fait sur le site Web de Cloudflare.

Configuration du cryptage

Un certificat SSL fait partie du plan libre sur Cloudflare. Il y a quatre options pour l'installation de SSL, et nous pouvons les trouver sous l'onglet Crypto dans le tableau de bord.

  • OFF – ceci est explicite. Tout le trafic sera redirigé vers un protocole non sécurisé (http)
  • FLEXIBLE – quel que soit le protocole de notre serveur, et que nous ayons ou non un certificat SSL existant, Cloudflare servira toutes nos pages aux visiteurs finaux plus de https . Les connexions de Cloudflare au serveur d'origine iront sur une connexion non sécurisée.
  • FULL – Cloudflare communiquera à votre serveur via https, mais ne validera pas les certificats sur l'origine. Trafic de Cloudflare aux visiteurs est servi sur https.
  • FULL STRICT – Cloudflare exigera des certificats SSL valides (non autosignés) sur le serveur d'origine. Le trafic de Cloudflare aux visiteurs est servi sur https.

Avec ces paramètres, nous devons nous assurer que la configuration est raisonnable parce que nous avons deux couches entre nos utilisateurs finaux et notre contenu de serveur, donc les omissions ici peuvent entraîner une boucle de redirection, Cloudflare offre également la possibilité d'acheter un certificat personnalisé, et pour les utilisateurs premium qui ont besoin de plus de sécurité ou d'attention pour leur image de marché, il est possible de télécharger des fichiers personnalisés / premium. certificats. Ceci fait partie des plans premium

Sécurisation du site Web

C'est un domaine où Cloudflare brille: il donne une valeur sans précédent gratuitement. Dans l'environnement d'hébergement, la protection DDoS est un service premium, pas toujours fourni, même pour les clients payants.

Cloudflare offre une protection DDoS non mesurée sur le niveau libre, ainsi que d'autres outils sophistiqués qui protègent les sites Web au niveau de l'infrastructure avant que le trafic malveillant ne l'atteigne. Il offre limitation du débit – limitation des visites
selon des règles personnalisables définies par l'utilisateur. Il offre des règles de pare-feu intelligentes, des blocs de pays, des vérifications d'intégrité de navigateur, des protections de captcha, etc.

Aujourd'hui, lorsque les botnets gèrent Internet, des sites Web ou des serveurs fraîchement installés sont parfois noyés dans des tentatives d'effraction. en ligne, quand les spammeurs automatisent les commentaires sur le web, le spam du référent est rampant même sans effraction, les attaques POST et les attaques lentes utilisant des moyens peu orthodoxes ne sont pas rares. Ce type de protection peut faire ou défaire des sites Web de plus petite ou moyenne taille.

Il y a aussi une protection de raclage, refusant certaines ressources à certains profils de visiteurs, ou dissimulant des courriels.

Les niveaux supérieurs offrent encore plus d'options. et performance

Par défaut, avec Cloudflare, nous obtenons la mise en cache du contenu statique – JavaScript, polices, feuilles de style, et même des images. Nous pouvons définir des règles pour l'expiration du cache. Pour différents systèmes CMS, des plugins peuvent se connecter à Cloudflare afin de purger le cache depuis notre site web.

Ces ressources statiques sont "prises en charge" lors de la configuration DNS par l'infrastructure de Cloudflare et sont ensuite servies depuis son réseau. des centres de données à travers le monde, en fonction de l'emplacement du visiteur.

Les ressources peuvent être mises en cache (ou extraites de l'origine) en fonction des chaînes de requête ou des en-têtes de cache définis par notre serveur d'origine. Par exemple, en PHP, nous pourrions définir l'expiration du cache comme ceci:

 header ('Cache-Control: max-age = 3600');

Si cela ne suffit pas, nous devrons peut-être supprimer les en-têtes Pragma Expires et Cache Control :

 header_remove ('Pragma') ;
header_remove ('Expires');
header_remove ('Cache-Control');

Nous pouvons également le faire au niveau du serveur. Dans nginx, nous définirions ces règles dans un bloc / fichier hôte virtuel:

 if ($ http_cookie ~ * "some-cookie") {
    #enlever les en-têtes qui arrêtent Cloudflare cloudflare de la mise en cache
    more_clear_headers 'Pragma';
    more_clear_headers 'Expire';
    more_clear_headers 'Cache-Control';
    add_header Cache-Control "pas de cache, pas de magasin, max-age = 0";
}

location ~ * "(!?. * some-url-path. *)" {
    #enlever les en-têtes qui arrêtent Cloudflare cloudflare de la mise en cache
    more_clear_headers 'Pragma';
    more_clear_headers 'Expire';
    more_clear_headers 'Cache-Control';
    add_header Cache-Control "max-age = 3600";
}

Les utilisateurs d'Apache mettraient quelque chose comme ça dans leur fichier .htaccess :


 En-tête non renseigné Pragma env = LONGCACHE
En-tête non renseigné Expire env = LONGCACHE
Jeu d'en-têtes Cache-Control "max-age = 3600" env = LONGCACHE

De toute évidence, certains biscuits et certains url-path ci-dessus doivent être remplacés par des valeurs correctes. Ces règles sont également nécessaires pour la mise en cache des pages, mentionnée ci-dessous

Nous pouvons choisir de réduire notre CSS, JS et HTML. Il y a une option pour exploiter AMP pour les liaisons AMP sortantes. Il existe également une fonctionnalité beta Rocket Loader qui regroupe et sert JS de manière asynchrone, en utilisant le stockage local du navigateur pour le mettre en cache. Soyez prudent avec cela, car de petites erreurs dans l'ordre de chargement des ressources peuvent casser votre site Web.

Les clients payants ont la fonctionnalité Railgun disponible qui résout le principal problème des systèmes de cache: le contenu dynamique. Il tente d'accélérer la diffusion de contenu dynamique à partir du serveur d'origine. Il nécessite des installations logicielles sur le serveur d'origine, et fonctionne par compression du contenu fourni et " maintien d'une seule connexion persistante pour plusieurs requêtes simultanées, éliminant la latence de la connexion réseau ". Cela rappelle la fonction de multiplexage du protocole HTTP / 2 – ici seulement, entre le serveur d'origine et Cloudflare

Il y a aussi compression / optimisation d'image pour le plan Pro, dans les mécanismes polonais et Mirage. Sous l'onglet Trafic il y a l'optimisation des routes Argo dans les centres de données Cloudflare à travers le monde et les options d'équilibrage de charge

Mise en cache HTML pleine page

de notre système – CMS, application, système de blog ou autre chose.

Sous Page Rules il y a une gemme cachée qui peut transformer votre compte Cloudflare en un système de cache complet capable de rivaliser avec des solutions professionnelles Comme Varnish et – grâce aux centres de données sur le globe – probablement surperformer.

 Configuration de mise en cache de page complète

Une règle de Niveau de cache définie sur Tout cache mettra en cache tout le contenu HTML du site, ainsi que toutes les autres ressources.

En ordonnant ces règles, nous pouvons obtenir des solutions complexes de mise en cache / exclusion et même livrer du contenu généré dynamiquement avec une latence minimale. 15x améliorations dans Time To First Byte ( TTFB ) ne sont pas inconnues .

Ces règles prennent en charge les caractères génériques, et doivent être classées par ordre de priorité:

 * some-website .com / statique / *
[/static/ subdirectory for static HTML pages]

* some-website.com / *. shtml
[.shtml file extension to signify HTML that is static]

* some-website.com / *? * statique = true *
[adding static=true query parameter]

Si nous combinons cette règle avec un paramètre Bypass comme dans l'image suivante, nous pouvons définir des sections de notre site Web qui doivent être mises en cache / omises du cache sous différentes conditions – telles que les sections admin , etc.

 Cache de contournement

Si le cache de page fonctionne, nous devrions voir CF-Cache-Status: HIT parmi nos en-têtes de réponse dans l'inspecteur du navigateur. ] Les clients payants disposent d'options supplémentaires de mise en cache ou de contournement du cache en fonction d'un cookie. Ici, les noms de cookies peuvent être définis avec des caractères génériques, et le contenu peut également être mis en cache en fonction du type de périphérique.

Ces règles sont plus sophistiquées et ne seront pas nécessaires pour chaque type de site Web. Les clients libres disposent de trois règles de pages, mais d'autres peuvent être achetées:

HTTP / 2 et serveur push

 L'inspecteur de navigateur affiche le chargement parallèle et asynchrone des ressources sur le protocole HTTP / 2

chargement de ressources sur le protocole HTTP / 2

Par défaut, les clients libres et d'entreprise obtiennent HTTP / 2 activé – une grande amélioration par rapport au protocole HTTP / 1.1 – qui inclut:

  • multiplexage – plusieurs ressources peuvent être envoyées dans une seule connexion, de manière asynchrone
  • en-tête de compression
  • serveur push – le serveur prédit les demandes de ressources, et les envoie avant même que le navigateur ne les demande

juge les améliorations et la valeur de Cloudflare au cas par cas, il est juste de dire que, en général, la valeur que fournit Cloudflare (en particulier son niveau libre) se situe nettement au-dessus de la moyenne.

Conclusion

Thi s article a couvert comment utiliser et configurer Cloudflare avec un site Web pour le rendre rapide, fiable et preuve DDoS. Cela ne veut pas dire qu'un site CDNed est impénétrable. En fait, cela apporte de nouvelles vulnérabilités à la table.

Lorsque l'erreur humaine a causé des problèmes aux services Cloudflare dans le cas du fournisseur de réseau Telia en 2016, c'était un problème majeur pour l'internet européen. Il est estimé que les services Cloudflare sont utilisés par 6,2% des 1 million de sites Web les plus importants du monde

 En 2016, le routeur mal configuré de Telia aurait envoyé la majeure partie du trafic européen en Asie

Infographie de Cloudflare's rapport post-mortem de l'arrêt Telia, lorsqu'un routeur mal configuré a dérouté une grande partie du trafic vers l'Asie, entraînant des pertes de paquets.

Quoi qu'il en soit, nous ne devrions pas craindre les CDN à cause d'incidents de ce genre. Ils sont rares et contribuent à la construction d'un réseau beaucoup plus robuste à la fin.




Source link