--- title: Installer un serveur de cache APT description: tags: date: 2026-02-28 01:26 lastmod: 2026-02-28 01:26 type: - article category: - "[[Guide]]" status: brouillon --- Installer un serveur de cache APT (comme **Apt-Cacher-NG**) est une excellente initiative pour économiser de la bande passante et accélérer les mises à jour de vos serveurs ou VMs Linux. Cependant, le passage au **HTTPS** pour les dépôts complique un peu la donne : par définition, le HTTPS est conçu pour empêcher les interceptions (ce que fait un cache). Pour contourner cela sans compromettre la sécurité, nous allons configurer un tunnel "CONNECT". --- ## 1. Installation de Apt-Cacher-NG Commencez par installer le service sur la machine qui servira de serveur de cache (Debian ou Ubuntu) : Bash ``` sudo apt update sudo apt install apt-cacher-ng -y ``` Le service écoute par défaut sur le port **3142**. Vous pouvez vérifier qu'il tourne bien en accédant à `http://IP_DU_SERVEUR:3142`. --- ## 2. Configuration pour le support HTTPS Comme le cache ne peut pas "décrypter" le flux HTTPS (à moins de faire une attaque Man-in-the-Middle complexe et peu recommandée), la solution standard est d'autoriser le serveur à agir comme un **proxy tunnel**. ### Sur le serveur de cache : Éditez le fichier de configuration : Bash ``` sudo nano /etc/apt-cacher-ng/acng.conf ``` Cherchez et modifiez (ou ajoutez) la ligne suivante pour autoriser le port 443 : Plaintext ``` PassThroughPattern: ^(.*):443$ ``` _Note : Cela permet au client de passer à travers le cache pour le HTTPS. Les fichiers ne seront pas "mis en cache" de la même manière que le HTTP simple, mais cela centralise vos flux._ Redémarrez le service : Bash ``` sudo systemctl restart apt-cacher-ng ``` --- ## 3. Configuration des Clients C'est ici que la magie opère. Vous ne devez pas modifier vos fichiers `sources.list`, mais dire à APT d'utiliser votre serveur comme proxy. ### Méthode A : Configuration globale (Recommandé) Créez un fichier de configuration sur chaque machine cliente : Bash ``` sudo nano /etc/apt/apt.conf.d/00aptproxy ``` Ajoutez la ligne suivante (remplacez par l'IP de votre serveur) : Plaintext ``` Acquire::http::Proxy "http://192.168.1.50:3142"; Acquire::https::Proxy "http://192.168.1.50:3142"; ``` ### Cas particulier : Le "HTTPS-over-HTTP" Si vous voulez vraiment mettre en cache le contenu HTTPS, la méthode la plus propre est de forcer APT à utiliser le protocole HTTP vers le cache, et de laisser le serveur de cache s'occuper du HTTPS vers l'extérieur. Pour cela, dans votre `sources.list` client, remplacez `https://` par `http://` et utilisez le mapping dans `acng.conf`. Mais attention, cela demande une maintenance plus lourde. La méthode du **PassThrough** (étape 2) est la plus robuste. --- ## 4. Maintenance et Statistiques L'un des grands avantages d'Apt-Cacher-NG est son interface web. Elle vous permet de voir combien de giga-octets vous avez économisés. - **Interface :** `http://IP_DU_SERVEUR:3142/acng-report.html` - **Expiration du cache :** Le serveur gère seul le nettoyage, mais vous pouvez forcer une purge via l'interface web pour supprimer les paquets obsolètes. |**Fonctionnalité**|**Action**| |---|---| |**Logs**|`/var/log/apt-cacher-ng/`| |**Stockage des paquets**|`/var/cache/apt-cacher-ng/`| |**Sécurité**|Pensez à limiter l'accès au port 3142 via votre pare-feu (UFW/Iptables) aux IPs de votre réseau local.| --- ### Résumé de l'architecture 1. **Le Client** demande un paquet. 2. **APT** voit la configuration proxy et envoie la requête au serveur de cache. 3. **Le Serveur de cache** vérifie s'il a déjà le paquet. - Si oui : il le sert instantanément. - Si non : il le télécharge, le stocke et le sert au client. 4. Pour le **HTTPS**, il crée un tunnel direct sans stockage local (sauf configuration spécifique). Souhaitez-vous que je vous aide à rédiger un script d'automatisation (Ansible ou Bash) pour déployer cette configuration sur 50 clients d'un coup ?