Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
Partager sur:

Comment créer un proxy APT à l'aide d'un Raspberry PI avec apt-cacher-ng?

Raspberry Pi
Scanner de sécurité des applications Web Invicti – la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

Si vous vivez et travaillez quelque part avec un Internet plus lent et que vous avez besoin de mettre à jour un tas de systèmes Debian et / ou Ubuntu apt proxy vous rendra la vie beaucoup plus facile et plus rapide.

APT est le programme utilisé par les distributions Debian et Ubuntu Linux pour installer et mettre à jour leurs logiciels. Dans leur configuration prête à l'emploi, lorsque vous utilisez apt pour installer un programme, par exemple:

sudo apt install inkscape

APT téléchargera l'archive du logiciel à partir des serveurs du référentiel de distribution et l'installera. Cela fonctionne très bien lorsque le progiciel est petit, que seuls quelques fichiers doivent être téléchargés et que votre connexion Internet est rapide.

Cependant, si vous avez beaucoup de logiciels à installer et que vous avez un bureau rempli de machines qui doivent toutes être mises à jour et que vous avez une connexion Internet lente, cela peut prendre beaucoup de temps pour tout télécharger et installer sur chaque machine.

Un serveur proxy, en particulier un proxy de mise en cache, comme apt-cacher-ng est un programme qui se situe entre l'ordinateur que vous essayez de mettre à jour et le serveur de référentiel qui héberge le logiciel que vous téléchargez. La machine que vous mettez à jour demandera le logiciel au serveur proxy au lieu du référentiel, et le proxy transmettra ensuite la demande au référentiel, téléchargera le logiciel et le remettra à la machine de mise à jour.

La partie intelligente est que le proxy conservera une copie de tous les fichiers logiciels qu'il a téléchargés. Lorsqu'une autre machine sur le réseau local tente de télécharger les mêmes fichiers, c'est-à-dire qu'elle veut installer ou mettre à jour le même logiciel, le proxy a déjà une copie qu'il peut remettre à la machine demandeuse sans avoir besoin de la télécharger.

Après le premier téléchargement, tous les téléchargements suivants seront compressés à la vitesse de votre réseau local.

Requirements

Pour compléter ce guide, vous aurez besoin des éléments suivants:

  • Un écran et un clavier à brancher sur votre Raspberry Pi. Ceux-ci sont facultatifs si vous pouvez SSH dans votre Raspberry Pi.
  • Un utilisateur non root et compatible sudo sur votre Raspberry Pi.
  • Un système Debian ou Ubuntu sur votre réseau local.

Une fois que vous avez toutes ces exigences, connectez-vous à un terminal sur votre Raspberry PI en tant qu'utilisateur sudo et passez à la section suivante.

Installing apt-cacher-ng

Avant d'installer de nouveaux packages sur Linux, il est toujours judicieux d'effectuer une mise à jour du système. Cela garantira que votre système exécute les mêmes versions de packages que celles disponibles dans les référentiels de distribution et également que votre liste locale de versions de packages est à jour. Cela garantit que vous ne rencontrez aucune erreur lors de l'installation de apt-cacher-ng.

Les commandes suivantes mettront à jour votre système:

$ sudo apt update
$ sudo apt upgrade

Maintenant que votre Raspberry PI est installé à jour apt-cacher-ng :

$ sudo apt install apt-cacher-ng

Le programme d'installation vous demandera si vous souhaitez activer les tunnels HTTPS via apt-cacher-ng. Vous devez répondre «Non» à cette question. Nous allons configurer APT pour proxy les connexions HTTPS via apt-cacher-ng au lieu d'avoir besoin de tunnels. De plus, vous pouvez modifier ces options dans le apt-cacher-ng fichier de configuration ultérieurement si vous en avez besoin.

Conformément aux conventions logicielles modernes, un systemd le fichier de service est créé et activé lors de l'installation apt-cacher-ng. Cela signifie que apt-cacher-ng démarre automatiquement au démarrage et vous pouvez également gérer apt-cacher-ng avec les commandes de service systemd normales:

$ sudo systemctl start apt-cacher-ng.service
$ sudo systemctl stop apt-cacher-ng.service
$ sudo systemctl restart apt-cacher-ng.service

apt-cacher-ng s'exécute maintenant en tant que démon système à l'écoute sur le port 3142 et prêt à accepter les connexions de apt.

Configuring apt on the Raspberry PI

Le premier système que nous allons configurer pour utiliser apt-cacher-ng le proxy sera apt sur le Raspberry PI. La façon dont nous allons configurer apt d'utiliser le apt-cacher-ng proxy sera de réécrire les URL dans aptle fichier des sources. Le fichier sources contient une liste d'URL des référentiels où le logiciel de la distribution est disponible au téléchargement.

Vous trouverez le fichier source principal de Raspbian à l'adresse /etc/apt/sources.list et sur une nouvelle installation ressemble à ce qui suit:

deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
# deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

La seule ligne active (non commentée) ici est la première, c'est-à-dire:

deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

Nous devons modifier cette ligne alors ouvrez le fichier avec un éditeur de texte, ici nous utilisons nano:

$ sudo nano /etc/apt/sources.list

Modifiez la première ligne pour qu'elle ressemble à ce qui suit:

deb http://127.0.0.1:3142/raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

Ce que vous avez fait ici était d'insérer 127.0.0.1:3142 dans l'URL.

L'adresse IP 127.0.0.1 est toujours l'adresse IP de l'ordinateur local, souvent appelée «localhost». le :3142 partie indique le port.

Sauvegarder et quitter nano en appuyant CTRL+o, ENTER, CTRL+x.

Vous devrez maintenant apporter la même modification à un fichier source à /etc/apt/sources.list.d/raspi.list.

apt et apt-cacher-ng sont maintenant prêts pour les tests.

Testing apt with apt-cacher-ng

Chaque fois que tu cours apt il mettra en cache une copie de tous les fichiers qu'il télécharge. apt le fait pour ne pas effectuer de téléchargements inutiles et pour conserver une copie locale des archives d'installation au cas où un paquet aurait besoin d'être réinstallé et qu'il n'y aurait pas d'Internet.

Cette mise en cache locale signifie que apt ne contactera pas le proxy lorsque vous exécuterez apt update or apt upgrade si le référentiel n'a pas changé. Par conséquent, pour tester le proxy, nous devrons effacer apt cache manuellement. Les commandes suivantes effaceront tout aptpaquets mis en cache de:

$ sudo rm -rf /var/lib/apt/lists/
$ sudo rm -rf /var/cache/apt/*

Maintenant testez apt en exécutant une mise à jour et en vérifiant les éventuelles erreurs:

$ sudo apt update

Vous devriez voir plusieurs lignes de sortie qui ressemblent à:

Get:1 http://127.0.0.1:3142/raspbian.raspberrypi.org/raspbian buster InRelease [15.0 kB]

L'URL commençant http://127.0.0.1:3142/ indique que apt reçoit les fichiers de mise à jour de apt-cacher-ng.

Vous pouvez également regarder le apt-cacher-ng journal des erreurs en exécutant cette commande:

$ tail -f /var/log/apt-cacher-ng/apt-cacher.log

dans un deuxième terminal. Si vous ne rencontrez aucune erreur, vous pouvez procéder à la configuration d'un système Debian ou Ubuntu sur votre réseau local.

Configuring an Ubuntu or Debian System to use apt-cacher-ng

Les systèmes Debian ou Ubuntu de votre réseau local dont vous souhaitez bénéficier du proxy apt-cacher-ng n'ont pas besoin d'installer de logiciel supplémentaire. Tout ce que vous avez à faire est de réécrire leurs fichiers sources afin qu'ils collectent toutes leurs mises à jour à partir de apt-cacher-ng au lieu de contacter directement le référentiel.

La modification que vous devez apporter aux fichiers sources est exactement la même que la modification que vous avez apportée aux sources sur le Raspberry PI sauf que vous devez utiliser l'adresse IP du Raspberry PI à la place de 127.0.0.1.

Cela signifie que vous devrez d'abord obtenir l'adresse IP de votre Raspberry Pi. Le moyen le plus simple d'obtenir l'adresse IP du Raspberry PI est d'exécuter la commande suivante dans un terminal du Raspberry PI:

$ hostname -I

Cela imprimera les adresses IP du Raspberry PI. Utilisez la première adresse IP IPv4. Ici, je vais utiliser l'exemple d'adresse 192.168.0.2. Vous devrez remplacer l'adresse IP de votre Raspberry PI.

De retour sur la machine cliente, ouvrez le fichier des sources principales à l'aide d'un éditeur de texte, ici nous utilisons nano:

$ sudo nano /etc/apt/sources.list

Le fichier contiendra des lignes du même format que celles des Raspberry PI /etc/apt/sources.list. Voici un exemple de ligne d'une installation Debian Buster:

deb http://ftp.debian.org/debian buster main

Vous devez modifier ces lignes comme suit en utilisant l'adresse IP de votre Raspberry PI, par exemple:

deb http://192.168.0.2:3142/ftp.debian.org/debian buster main

Modifiez toutes les lignes de /etc/apt/sources.list et tout autre fichier source sous /etc/apt/sources.list.d/. Supprimez ensuite tous les fichiers mis en cache localement pour les tests:

$ sudo rm -rf /var/lib/apt/lists/*
$ sudo rm -rf /var/cache/apt/*

Mettez à nouveau le système à jour:

$ sudo apt update
$ sudo apt upgrade

La sortie de apt doit indiquer que les fichiers de mise à jour proviennent du apt-cacher-ng proxy en imprimant des lignes comme celle-ci contenant l'adresse IP du proxy:

Hit:1 http://192.168.0.2:3142/ftp.debian.org/debian buster InRelease

Cette machine est maintenant entièrement configurée pour utiliser votre nouveau apt Procuration. Vous devrez modifier tout nouveau fichier sources que vous ajouterez à cette machine à l'avenir, y compris toutes les nouvelles lignes qui seront ajoutées pour les mises à niveau de distribution.

APT over HTTPS

Les fichiers source que nous avons examinés jusqu'à présent ont tous utilisé des connexions HTTP. Il s'agit d'une décision de conception délibérée de Debian et d'Ubuntu car les archives d'installation ont des signatures cryptographiques internes intégrées qui empêchent la falsification malveillante. HTTPS n'ajoute donc pas beaucoup de sécurité supplémentaire tout en ajoutant considérablement à la charge d'ingénierie d'avoir un grand nombre de miroirs géographiquement diversifiés.

Cependant, l'utilisation de HTTPS présente plusieurs avantages, ce qui signifie que certains référentiels non officiels utilisent HTTPS. apt-cacher-ng prend en charge deux méthodes de gestion des référentiels HTTPS.

La première consiste à transmettre les connexions du client directement au serveur de référentiel. Cela a pour conséquence regrettable que les packages ne sont pas mis en cache par apt-cacher-ng. Si vous souhaitez courir apt-cacher-ng dans ce mode puis ouvrez /etc/apt-cacher-ng/acng.conf avec un éditeur de texte:

$ sudo nano /etc/apt-cacher-ng/acng.conf

Et ajoutez la ligne suivante:

PassThroughPattern: .*

Cela configure apt-cacher-ng pour permettre aux connexions HTTPS de passer du client au référentiel.

La deuxième méthode consiste à modifier les lignes du référentiel dans les fichiers source du client afin que le client se connecte à apt-cacher-ng via HTTP mais apt-cacher-ng se connectera ensuite au référentiel via HTTPS. Les packages seront téléchargés vers apt-cacher-ng via HTTPS, ils seront ensuite envoyés à la machine client via HTTP. apt-cacher-ng est capable de mettre en cache les packages et nous ne perdons pas les avantages du HTTPS.

La ligne sources suivante permet d'accéder au Docker référentiel sur HTTPS:

deb [arch=amd64] https://download.docker.com/linux/debian buster stable

Lorsque vous avez modifié les lignes HTTP que vous avez ajoutées 192.168.0.2:3142 dans l'URL. Lorsque vous modifiez des lignes HTTPS, vous devez ajouter 192.168.0.2:3142/HTTPS/// par exemple:

deb [arch=amd64] http://192.168.1.67:3142/HTTPS///download.docker.com/linux/debian buster stable

Maintenant, la machine client demandera le package à apt-cacher-ng via HTTP et apt-cacher-ng téléchargera et mettra en cache les packages de Docker via HTTPS.

Administering apt-cacher-ng

Une interface graphique Web est disponible pour gérer apt-cacher-ng sur votre réseau local. Pour accéder à cette interface graphique, vous devez pointer votre navigateur vers:

http://<Proxy IP>:3142/acng-report.html

En remplaçant l'exemple d'IP du réseau local, 192.168.0.2, nous donne:

http://192.168.0.2:3142/acng-report.html

La première section, et la plus importante, de l'interface graphique, «Statistiques de transfert», vous fournit des informations sur la quantité de données téléchargées à partir des référentiels par rapport aux données qui ont été servies à partir du cache. L'image suivante montre cette section de l'interface graphique:

La section «Efficacité du cache» vous informe sur le nombre de fichiers apt-cacher-ngest servi à partir de son cache Vs lesquels ont contourné le cache. «Hits» indique les fichiers que le proxy a servis à partir du cache et «Misses» sont des fichiers que la machine proxy a téléchargés à partir du référentiel et ajoutés au cache.

Managing the cache

Les fichiers qui apt-cacher-ng les téléchargements et les services aux ordinateurs clients de votre réseau local deviendront obsolètes lorsque les développeurs ajouteront une nouvelle version au référentiel. Lorsque cela se produit, ces stales apt-cacher-ng doivent les supprimer du cache car ils ne sont plus nécessaires et occupent de l'espace sur votre disque. Le Raspberry PI examine le cache et supprime automatiquement les fichiers périmés.

Lorsque vous avez installé apt-cacher-ng vous avez également installé un cron déposer à:

/etc/cron.daily/apt-cacher-ng

Cela est géré par cron chaque jour qui efface le cache pour vous.

Si vous souhaitez examiner et vider le cache manuellement, vous devez vous connecter à l'interface graphique Web et cliquer sur le bouton «Démarrer l'analyse et / ou l'expiration». Cela n'est généralement pas nécessaire, mais vous devrez peut-être le faire si vous effectuez une mise à jour à partir de référentiels mis à jour rapidement.

Vous disposez désormais d'un apt proxy qui soulagera la charge réseau des mises à jour système importantes et répétées dans votre bureau ou à domicile.

Intéressé par l'exploration de Raspberry Pi, consultez ce cours en ligne.

Merci à nos commanditaires
Plus de bonnes lectures sur la confidentialité
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Semrush est une solution de marketing numérique tout-en-un avec plus de 50 outils de référencement, de médias sociaux et de marketing de contenu.
    Essayez Semrush
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder