Skip to main content

New Page

Exclure l’accès à des fichiers sur un serveur Caddy

Ce tutoriel explique comment protéger l’accès à des fichiers et répertoires sensibles sur un serveur web utilisant Caddy derrière un reverse proxy Nginx Proxy Manager. L’objectif est d’éviter toute fuite d’informations (code source, fichiers de configuration, backups, historiques Git, etc.) en bloquant l’accès à des chemins critiques exposés publiquement.

Prérequis
  • Un serveur avec Caddy installé et configuré
  • Nginx Proxy Manager en reverse proxy frontal
  • Accès administrateur au serveur
  • Accès au fichier de configuration Caddy (Caddyfile)

Étape 1 — Identifier les chemins sensibles

Avant toute configuration, il est important d’identifier les ressources à protéger :

  • .git (historique et code source)
  • .env (variables d’environnement)
  • backup/ ou fichiers .zip, .tar
  • fichiers de configuration (.yaml, .json, etc.)
  • dossiers d’administration ou internes

Étape 2 — Localiser la configuration Caddy
sudo find / -name Caddyfile 2>/dev/null

Dans une installation Docker, le fichier est généralement situé dans /etc/caddy/Caddyfile.


Étape 3 — Ouvrir la configuration
sudo nano /etc/caddy/Caddyfile

Modifier le bloc correspondant au site concerné.


Étape 4 — Ajouter des règles de protection

Ajouter des règles pour bloquer l’accès aux fichiers sensibles. Exemple générique :

handle_path /.git* {
    respond 404
}

handle_path /.env* {
    respond 404
}

handle_path /backup* {
    respond 404
}

Ces règles interceptent les requêtes HTTP et renvoient une réponse 404 afin de masquer l’existence des fichiers sensibles.


Étape 5 — Renforcement de la sécurité

handle_path /*/.git* {
    respond 404
}

handle_path /*/.env* {
    respond 404
}

Cela permet de bloquer également les accès indirects ou dans des sous-dossiers.


Étape 6 — Recharger Caddy
sudo systemctl reload caddy

Le rechargement applique la configuration sans interruption du service.


Étape 7 — Vérification
curl -I https://votre-domaine.tld/.env
curl -I https://votre-domaine.tld/.git/config
  • Réponse attendue : 404 Not Found
  • Aucune donnée sensible ne doit être accessible