Varnish est un logiciel de mise en cache web open source très performant qui peut aider les sites web à gérer des pics de trafic et à améliorer considérablement les temps de chargement. Dans cet article, nous allons vous guider à travers les étapes d’installation, de configuration et de sécurisation de Varnish pour les ingénieurs système Linux, en utilisant des exemples concrets.
Installation de Varnish sur Linux
La première étape pour utiliser Varnish consiste à l’installer sur votre serveur Linux. Varnish est disponible dans les référentiels des distributions Linux courantes telles que Ubuntu, Debian et CentOS, ce qui facilite grandement l’installation.
Cependant, il est important de noter que les paquets des référentiels peuvent être anciens et ne pas avoir les dernières fonctionnalités. Il est donc recommandé d’installer la version la plus récente de Varnish à partir du site officiel.
Pour installer Varnish à partir du site officiel, vous pouvez suivre les étapes suivantes :
- Ajoutez le dépôt Varnish à votre système :
curl -L https://packagecloud.io/varnishcache/varnish60lts/gpgkey | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://packagecloud.io/varnishcache/varnish60lts/ubuntu/ focal main" | sudo tee /etc/apt/sources.list.d/varnishcache_varnish60lts.list
sudo apt-get update
- Installez Varnish :
arduinoCopy codesudo apt-get install varnish
Configuration de Varnish
Une fois que Varnish est installé sur votre système, vous pouvez configurer son fonctionnement. La configuration de Varnish peut être effectuée en modifiant les fichiers de configuration de Varnish, qui sont généralement situés dans le répertoire /etc/varnish/.
Le fichier de configuration principal de Varnish est varnish.params. Ce fichier contient les paramètres globaux de Varnish, tels que le port d’écoute de Varnish et le fichier de journalisation.
Par exemple, pour modifier le port d’écoute de Varnish à 8080, vous pouvez ouvrir ce fichier et ajouter la ligne suivante :
LISTEN_PORT=8080
Un autre fichier de configuration important est default.vcl. Ce fichier contient les règles de mise en cache de Varnish. Par exemple, pour indiquer à Varnish de mettre en cache les fichiers JPEG pendant 30 jours, vous pouvez ajouter le code suivant à default.vcl :
sub vcl_recv {
if (req.url ~ "\.(jpg|jpeg)$") {
set req.http.Cache-Control = "max-age=2592000";
}
}
Vous pouvez également configurer des directives pour la mise en cache de contenu dynamique, comme les cookies et les sessions utilisateur, qui peuvent être exclues de la mise en cache.
Sécurisation de Varnish
La sécurisation de Varnish est une étape importante pour protéger votre serveur contre les attaques. Voici quelques mesures de sécurité que vous pouvez prendre pour sécuriser votre installation de Varnish :
- Restreindre l’accès au port de Varnish :
Par défaut, Varnish utilise le port 6081. Vous pouvez limiter l’accès à ce port en configurant votre pare-feu pour n’autoriser que les adresses IP spécifiques qui doivent y accéder.
Par exemple, si vous utilisez ufw sur Ubuntu, vous pouvez saisir les commandes suivantes pour n’autoriser que votre adresse IP :
sudo ufw allow from YOUR_IP_ADDRESS to any port 6081
sudo ufw enable
- Utiliser SSL :
Si vous utilisez Varnish pour mettre en cache des pages sécurisées, vous devez utiliser SSL pour protéger les données entre le client et le serveur. Vous pouvez utiliser des certificats SSL gratuits tels que Let’s Encrypt pour ajouter une couche de sécurité à votre site web. - Protéger l’interface d’administration de Varnish :
Vous pouvez protéger l’interface d’administration de Varnish en configurant un mot de passe pour l’interface d’administration. Pour ce faire, vous devez ajouter les lignes suivantes au fichier de configuration de Varnish :
backend admin {
.host = "127.0.0.1";
.port = "8080";
.first_byte_timeout = 600s;
}
acl purge {
"localhost";
"127.0.0.1";
}
sub vcl_recv {
if (req.url ~ "^/wp-(login|admin|content|includes)") {
return(pass);
}
if (!client.ip ~ purge && req.request == "PURGE") {
return(synth(405,"Method not allowed"));
}
if (req.http.host) {
set req.http.host = regsub(req.http.host, "^www\.", "");
}
if (req.url ~ "^/admin" || req.url ~ "^/wp-(login|admin|content|includes)" || req.url ~ "^/dashboard" || req.url ~ "^/phpmyadmin") {
auth_basic "Restricted";
auth_basic_user_file /etc/varnish/.htpasswd;
return(pass);
}
}
Cela configure un mot de passe pour l’interface d’administration de Varnish, qui peut être utilisé pour accéder à l’interface d’administration depuis localhost.
- Limiter la taille du cache :
Il est important de limiter la taille du cache de Varnish pour éviter les attaques de déni de service. Par exemple, pour limiter la taille du cache à 1 Go, vous pouvez ajouter les lignes suivantes au fichier de configuration de Varnish :
sub vcl_init {
set max_cache_size = 1g;
}
Cela permet de limiter la quantité de données pouvant être stockées dans le cache de Varnish.
- Effectuer des mises à jour régulières :
Enfin, il est crucial de garder Varnish à jour en installant régulièrement les dernières mises à jour de sécurité. Cela garantira que votre serveur est protégé contre les dernières vulnérabilités.
Par exemple, pour mettre à jour Varnish sur Ubuntu, vous pouvez saisir les commandes suivantes :
sudo apt-get update
sudo apt-get upgrade varnish
Conclusion
Dans cet article, nous avons vu comment installer, configurer et sécuriser Varnish pour les ingénieurs système Linux, en utilisant des exemples concrets. La mise en cache avec Varnish peut aider à améliorer considérablement les performances de votre site web, mais il est crucial de le configurer correctement pour assurer la sécurité de votre serveur.
En suivant les étapes décrites dans cet article, vous pouvez optimiser Varnish pour votre site web et garantir la sécurité de votre serveur. La sécurisation de Varnish est essentielle pour éviter les attaques et protéger votre serveur. En prenant les mesures de sécurité appropriées, vous pouvez utiliser Varnish pour améliorer les performances de votre site web de manière sécurisée.