# 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

```bash
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

```bash
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 :

```caddy
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é

```caddy

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

```bash
sudo systemctl reload caddy
```

Le rechargement applique la configuration sans interruption du service.

---

##### Étape 7 — Vérification

```bash
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