Protection contre le hotlinking avec Varnish

Voici un exemple de condition à ajouter dans votre vcl recv pour protéger un dossier d’un site :

if (req.http.host == "le.domaine.a.proteger.ltd" && req.url ~ "^/l/uri/a/proteger" && (req.http.referer && req.http.referer !~ "^http://le.domaine.a.proteger.ltd/")) {
    error 403 "No hotlinking please";
}

Remplacer :

  • le.domaine.a.proteger.ltd par le domaine (attention si votre site est accessible avec et sans www)
  • /l/uri/a/proteger : par l’uri à protéger, supprimer cette partie si vous voulez protéger l’intégralité du site

Pour mettre en place le même type de protection via apache, voir cet article : Un htaccess pour les pompeurs de sites dans lequel est expliqué comment procéder avec des règles de réécriture Apache

Configuration de Varnish

Mise en place du dépôt Varnish et installation Pour cela, il faut : Installer la clef PGP du dépôt Varnish Ajouter le dépôt Varnish Installer Varnish curl http://repo.varnish-cache.org/debian/GPG-key.txt | apt-key add - echo "deb http://repo.varnish-cache.org/debian/ $(lsb_release -s -c) varnish-3.0" >> /etc/apt/sources.list.d/varnish.list apt-get update apt-get install varnish``` # Activation de varnish et configuration du port 80 a la place du port 6081 ```sh sed -i "#START#s#no#yes#" /etc/default/varnish- sed -i "s#-a :6081#-a :80#" /etc/default/varnish sed -i "s#/etc/varnish/default. [Lire]