Configuration de référentiels locaux avec ‘apt-mirror’ dans les systèmes Ubuntu et Debian

Quand de nos jours le trafic et la vitesse internet occasionnelle sont mesurés en dizaines de Giga en un clin d’œil même pour les clients Internet ordinaires, vous pourriez vous demander quel est le but de configurer une cache de dépôt local sur le LAN?

Setup Local Repositories in Ubuntu

Une des raisons est de réduire la bande passante Internet et la vitesse élevée pour extraire les paquets de la cache locale. Mais, une autre raison majeure devrait être la confidentialité. Imaginons que les clients de votre organisation sont restreints sur Internet, mais que leurs boîtes Linux ont besoin de mises à jour système régulières sur les logiciels et la sécurité ou ont simplement besoin de nouveaux paquets logiciels. Pour aller plus loin, imaginez un serveur qui fonctionne sur un réseau privé, contient et fournit des informations sensibles secrètes uniquement pour un segment de réseau restreint et ne doit jamais être exposé à l’Internet public.

Ce ne sont là que quelques raisons pour lesquelles vous devriez construire un miroir de dépôt local sur votre LAN, attribuer un serveur périphérique à cette tâche et configurer les clients internes pour extraire des logiciels de son miroir de cache.

Ubuntu fournit le paquet apt-mirror pour synchroniser la cache locale avec les dépôts Ubuntu officiels, miroir qui peut être configuré à travers un serveur HTTP ou FTP pour partager ses paquets logiciels avec les clients du système local.

Pour un miroir de cache complet, votre serveur doit disposer d’au moins 120G d’espace libre réservé aux dépôts locaux.

Exigences

  1. Au moins 120G d’espace libre
  2. Un serveur Proftpd installé et configuré en mode anonyme.

Étape 1 : Configurer le serveur

1. La première chose que vous voudrez peut-être faire est d’identifier les miroirs Ubuntu les plus proches et les plus rapides près de votre emplacement en visitant la page Miroir d’archive Ubuntu et en sélectionnant votre pays.

Ubuntu Archive Mirror

Si votre pays offre plusieurs miroirs, vous devriez identifier l’adresse du miroir et effectuer quelques tests basés sur les résultats de ping ou traceroute.

Select Mirror Location

2. La prochaine étape consiste à installer les logiciels nécessaires pour configurer le référentiel du miroir local. Installez les paquets apt-mirror et proftpd et configurez proftpd en tant que démon système autonome.

$ sudo apt-get install apt-mirror proftpd-basic
Install apt-mirror Proftpd
ProFTPD Configuration

3. Il est maintenant temps de configurer le serveur apt-mirror. Ouvrez et modifiez le fichier /etc/apt/mirror.list en ajoutant vos emplacements les plus proches (Étape 1) – optionnel, si les miroirs par défaut sont assez rapides ou si vous n’êtes pas pressé – et choisissez le chemin système où les paquets doivent être téléchargés. Par défaut, apt-mirror utilise l’emplacement /var/spool/apt-mirror pour le cache local, mais dans ce tutoriel, nous allons changer le chemin système et pointer la directive set base_path vers l’emplacement /opt/apt-mirror.

$ sudo nano /etc/apt/mirror.list
Configure apt-mirror Server.

Vous pouvez également décommenter ou ajouter d’autres listes de sources avant la directive clean – y compris les sources Debian – en fonction des versions d’Ubuntu que vos clients utilisent. Vous pouvez ajouter des sources à partir de 12.04, si vous le souhaitez, mais sachez qu’ajouter plus de sources requiert plus d’espace libre.

Pour les listes de sources Debian, visitez le Wiki Debian ou le Générateur de Listes.

4. Tout ce que vous avez à faire maintenant, c’est de créer un répertoire de chemin et d’exécuter la commande apt-mirror pour synchroniser les dépôts officiels Ubuntu avec notre miroir local.

$ sudo mkdir -p /opt/apt-mirror
$ sudo apt-mirror
Create apt-mirror Paths

Comme vous pouvez le voir, apt-mirror procède à l’indexation et au téléchargement des archives en présentant le nombre total de paquets téléchargés et leur taille. Comme nous pouvons l’imaginer, 110-120 Go est suffisamment grand pour prendre du temps à télécharger.

Vous pouvez exécuter la commande ls pour voir le contenu du répertoire.

Verify apt-mirror Paths

Une fois le téléchargement initial terminé, les futurs téléchargements seront de petite taille.

5. Pendant que apt-mirror télécharge les paquets, vous pouvez configurer votre serveur Proftpd. La première chose à faire est de créer un fichier de configuration anonyme pour proftpd en exécutant la commande suivante.

$ sudo nano /etc/proftpd/conf.d/anonymous.conf

Ensuite, ajoutez le contenu suivant au fichier anonymous.conf et redémarrez le service proftd.

<Anonymous ~ftp>
   User                    ftp
   Group                nogroup
   UserAlias         anonymous ftp
   RequireValidShell        off
#   MaxClients                   10
   <Directory *>
     <Limit WRITE>
       DenyAll
     </Limit>
   </Directory>
 </Anonymous>
Configure ProFTPD

6. L’étape suivante consiste à lier le chemin apt-mirror au chemin proftpd en exécutant un montage lié en lançant la commande.

$ sudo mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/  /srv/ftp/
Mount apt-mirror to ProFTP Path

Pour vérifier, exécutez la commande mount sans paramètre ni option.

$ mount
Verify Paths

7. La dernière étape consiste à s’assurer que le serveur Proftpd démarre automatiquement après le redémarrage du système et que le répertoire de cache de miroir est également automatiquement monté sur le chemin du serveur ftp. Pour activer automatiquement proftpd, exécutez la commande suivante.

$ sudo update-rc.d proftpd enable

Pour monter automatiquement le cache apt-mirror sur proftpd, ouvrez et modifiez le fichier /etc/rc.local.

$ sudo nano /etc/rc.local

Ajoutez la ligne suivante avant la directive exit 0. Utilisez également un délai de 5 secondes avant de tenter de monter.

sleep 5
sudo mount --bind  /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/
Auto Mount Apt Mirrors

Si vous téléchargez des paquets depuis les dépôts Debian, exécutez les commandes suivantes et assurez-vous que les paramètres appropriés pour le fichier rc.local ci-dessus sont activés.

$ sudo mkdir /srv/ftp/debian
$ sudo mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/debian/ /srv/ftp/debian/
Debian Repository Setup

8. Pour une synchronisation quotidienne apt-mirror, vous pouvez également créer une tâche planifiée système pour s’exécuter à 2 heures du matin tous les jours. Exécutez la commande crontab, sélectionnez votre éditeur préféré, puis ajoutez la syntaxe suivante.

$ sudo crontab –e
Daily apt-mirror Synchronization

Ajoutez la ligne suivante en dernière position.

0  2  *  *  *  /usr/bin/apt-mirror >> /opt/apt-mirror/mirror/archive.ubuntu.com/ubuntu/apt-mirror.log
Add Cron Entry for Synchronization

Maintenant, chaque jour à 2 heures du matin, le cache du dépôt système se synchronisera avec les miroirs officiels de Ubuntu et créera un fichier journal.

Étape 2 : Configurer les clients

9. Pour configurer les clients Ubuntu locaux, modifiez le fichier /etc/apt/sources.list sur les ordinateurs clients pour pointer vers l’adresse IP ou le nom d’hôte du serveur apt-mirror – remplacez le protocole http par ftp, puis mettez à jour le système.

deb ftp://192.168.1.13/ubuntu trusty universe
deb ftp://192.168.1.13/ubuntu trusty main restricted
deb ftp://192.168.1.13/ubuntu trusty-updates main restricted
## Ad so on….
Configure Clients

10. Pour afficher les dépôts, vous pouvez ouvrir un navigateur et pointer vers l’adresse IP du serveur ou le nom de domaine en utilisant le protocole FTP.

View Local Repositories

Le même système s’applique également aux clients et serveurs Debian, les seuls changements nécessaires sont le miroir Debian et le liste des sources.

De plus, si vous installez un système Ubuntu ou Debian à neuf, fournissez votre miroir local manuellement en utilisant le protocole ftp lorsque l’installateur demande quel dépôt utiliser.

Le grand avantage d’avoir vos propres miroirs locaux est que vous êtes toujours à jour et que vos clients locaux n’ont pas besoin de se connecter à Internet pour installer des mises à jour ou des logiciels.

Source:
https://www.tecmint.com/setup-local-repositories-in-ubuntu/