Quitter le forum et retourner au site

Un petit cache APT via apt-cacher-ng ?

Vous avez un didactiel ou une astuce particulière concernant un logiciel, partagez votre expérience dans cette partie.
Avatar de l’utilisateur
le Manchot Masqué
Administrateur du site
Messages : 722
Inscription : lun. 26 mai 2008, 21:05
Distribution : Debian, Ubuntu
Niveau : Moitié plein !
Localisation : Guebwiller

Un petit cache APT via apt-cacher-ng ?

Message par le Manchot Masqué »

Dans le petit monde GNU/Linux, un paquet est en fait un programme, qui peut dépendre d'autres programmes, que l'on nomme alors des dépendances, lesquelles sont automatiquement sélectionnées et installées avec le programme de base si besoin.
Installer un cache de paquets APT permet d'économiser de la bande passante réseau, en téléchargeant une fois le paquet demandé, puis en le redistribuant localement à tous les postes clients qui en font la demande. C'est un gain de temps considérable si vous avez beaucoup de postes clients à mettre à jour, si vous installez souvent des distributions GNU/Linux puisque ça vous évite à chaque fois de retélécharger les milliers de paquets nécessaires, offrant un gain de vitesse et de confort considérables... Bien entendu si vous n'avez qu'un ou deux PC, l'intérêt est moindre voire nul.

Il y a plusieurs systèmes disponibles sous GNU/Linux, un des plus connus étant le couple squid-deb-proxy (côté serveur) et squid-deb-proxy-client (côté clients). Problème : le paquet squid-deb-proxy n'est plus disponible actuellement dans la Debian 12, étant coincé en version testing... Reviendra t'il ou pas dans un avenir proche, mystère. Toujours est-il qu'on peut le remplacer par apt-cacher-ng qui va jouer le même rôle.

On considère ici un pare-feu GNU/Linux, installé "au cul de la box" pour rester courtois, comprenez une machine standard peu puissante, mais si possible avec deux interfaces réseau : une vers la box fibre/ADSL, l'autre vers un switch (commutateur) qui va distribuer le réseau local...

Le plus simple est alors d'installer apt-cacher-ng sur ce pare-feu, qui va proposer le service de cache sur le port TCP 3142, port qu'il faudra évidemment restreindre au réseau local, et ne pas rendre disponibles sur l'interface vers le web...

Code : Tout sélectionner

apt update && apt install apt-cacher-ng -y
À noter que les fichiers de configuration, dans /etc/apt-cacher-ng, sont déjà préconfigurés pour couvrir bon nombre de distributions courantes, dont la Debian et la Ubuntu/Mint, ce qui est un gain de temps appréciable.

En admettant que bind9 (serveur DNS) soit également installé sur le pare-feu, et propose un domaine local avec zone directe et résolution inverse, la petite astuce sympathique est qu'on peut alors indiquer directement, dans la zone directe, le service de cache APT aux clients, via une entrée de type :

Code : Tout sélectionner

...
_apt_proxy._tcp IN SRV 0 0 3142 nom_canonique_de_mon_proxy_ou_son_ip
...
nom_canonique_de_mon_proxy IN A 192.168.X.Y
...
Enfin, il est de bon ton de restreindre le service au seul réseau local... Par défaut, le paquet est configuré pour écouter sur toutes les interfaces, ce qui est un trou de sécurité assez béant ! Il faut donc éditer /etc/apt-cacher-ng/acng.conf et rajouter la ligne

Code : Tout sélectionner

BindAdress: localhost ADRESSE_IP_LOCALE_DU_PAREFEU
Exemple

Code : Tout sélectionner

BindAdress: localhost 192.168.0.1
Et on vérifie nos sockets en écoute via :

Code : Tout sélectionner

ss -tunlp
On doit alors voir quelque chose du genre

Code : Tout sélectionner

...192.168.0.1:3142...
...127.0.0.1:3142...
Sur les machines clientes, il suffit d'installer le paquet auto-apt-proxy, qui comme son nom l'indique, s'occupe de chercher automatiquement les caches APT disponibles sur le réseau.

Code : Tout sélectionner

apt update && apt install auto-apt-proxy -y
Pour vérifier la configuration sur les clients :

Code : Tout sélectionner

auto-apt-proxy
doit vous renvoyer

Code : Tout sélectionner

http://nom_canonique_de_mon_proxy.mondomaine.fr:3142
Et voilà ! Vous disposez avec un minimum d'efforts d'un cache fonctionnel, qui vous apportera vitesse et confort !
Répondre