Files
s-informer-sur-la-tech-www/articles/2026/Installer un serveur de cache APT.md

131 lines
4.0 KiB
Markdown

---
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 ?