Paquets VPN hors ligne : demandez à la cible de quoi elle a besoin
Laissez la machine déconnectée décrire son propre ensemble de dépendances. Deux allers-retours, requête puis importation, suivis de la transaction APT que vous devez encore exécuter.
Vous avez besoin du client VPN pour atteindre le réseau qui fournirait normalement ses paquets, ce qui forme une jolie petite boucle. Télécharger un seul DEB OpenVPN sur une autre machine finit généralement par une deuxième dépendance manquante, puis une troisième, puis une soirée passée à courir après des versions de bibliothèques. L’alternative consiste à laisser la machine déconnectée déclarer, dans ses propres termes, ce dont son gestionnaire de paquets a besoin. Tout ce qui suit découle de cette inversion de la question de savoir qui demande.
Sur les systèmes de la famille Debian, cette conversation passe par apt-offline, un flux de requête et de retour. Son propre environnement d’exécution doit d’abord être présent sur la cible, installé depuis un support approuvé ou un autre amorçage géré par l’administrateur, car aucun outil ne peut s’amorcer lui-même à partir de rien.
Partez de l’état des paquets de la cible, pas de celui de l’assistant
Notez la version de la distribution de la cible, l’architecture de l’espace utilisateur et les sources de paquets configurées avant toute autre chose. Ces trois faits décident quelle implémentation VPN et quelle intégration de bureau conviennent, et ce sont les faits qu’un assistant connecté ne peut pas fournir.
L’assistant télécharge des fichiers ; il ne devient pas la référence des dépendances. Un ordinateur portable plus récent qui a déjà OpenVPN installé présente un état de paquets totalement différent de celui de la cible, si bien que son succès ne prouve rien sur ce que la cible peut accepter.
Décidez aussi ce que vous voulez réellement. Le moteur VPN, un greffon de service NetworkManager et un éditeur graphique sont des paquets distincts, et le bon choix dépend de la version et de la manière dont l’utilisateur gérera la connexion. Un serveur sans écran a besoin du moteur et d’un fichier de configuration ; un bureau a besoin du greffon qui permet à ses paramètres réseau de posséder le tunnel. Demander le mauvais ensemble produit une installation qui réussit et une connexion que personne ne peut démarrer.
Deux allers-retours, dans cet ordre
Le manuel sépare trois opérations : générer une requête sur le système déconnecté, télécharger sur un assistant connecté et réimporter sur la cible. Rafraîchissez les métadonnées du dépôt de la cible avant de demander des paquets, car la requête de paquets est construite à partir de ces métadonnées, et des index périmés produisent des requêtes que l’assistant ne peut pas satisfaire.
Sur la cible, une commande d’administrateur de la forme apt-offline set vpn-meta.sig --update écrit la requête de rafraîchissement. Portez ce fichier sur la machine connectée et téléchargez un lot avec apt-offline get vpn-meta.sig --bundle vpn-meta.zip. Rapportez le lot et importez-le sur la cible avec apt-offline install vpn-meta.zip, de nouveau en tant qu’administrateur.
Générez maintenant la requête de paquets à partir des métadonnées rafraîchies, par exemple apt-offline set vpn-deps.sig --install-packages openvpn, et répétez le trajet avec un nouveau nom de lot. Gardez chaque requête appariée au lot qu’elle a produit ; un lot généré à partir de métadonnées plus anciennes n’est pas la même requête, même lorsque les noms de fichiers semblent interchangeables.
N’ajoutez les paquets d’intégration que lorsque la conception en a besoin
Si le bureau est censé gérer le tunnel via ses paramètres réseau, la requête a besoin du greffon correspondant en plus du moteur. Incluez les noms de paquets précis que votre version fournit plutôt qu’une liste mémorisée d’une autre distribution, et générez une nouvelle requête chaque fois que la liste change. L’épinglage des versions mérite aussi réflexion : un paquet construit pour une version plus récente peut satisfaire le nom et échouer tout de même à l’exécution. C’est ici qu’un ensemble fixe de quatre paquets devient une charge, car la bonne liste est une propriété de la cible et seule la cible peut la calculer.
C’est aussi ici qu’un ensemble fixe de quatre paquets devient une charge. La bonne liste est une propriété de la cible, et la cible est la seule machine capable de la calculer correctement.
Importer un lot n’est pas installer le VPN
Malgré son nom, l’opération d’installation dépose des données APT dans l’environnement de gestion des paquets. Elle n’effectue pas la transaction de paquets. Terminez et vérifiez la véritable installation APT de la cible à partir des données fournies localement, et lisez la sortie au lieu de supposer que le succès du ZIP signifie que le logiciel est présent.
Si cette transaction réclame encore des fichiers indisponibles, conservez la dépendance manquante ou l’erreur de dépôt précise et générez la requête suivante à partir d’elle. Ne remplacez pas par un DEB d’une autre version et ne désactivez pas les contrôles de somme de vérification ou d’authentification du dépôt pour le forcer. Le manuel avertit explicitement contre le fait de sauter la vérification des fichiers téléchargés, et à juste titre : un paquet non vérifié est un résultat pire qu’une installation ratée.
Les paquets ne sont que la première moitié
Installer un logiciel est distinct de l’obtention du point de terminaison approuvé, du profil, du matériel de confiance et des identifiants, et chacun peut avoir sa propre remise contrôlée. Un ensemble de paquets fonctionnel sans profil valide ne se connecte à rien.
Ensuite, gardez vivant le chemin de transfert hors ligne pour les futures mises à jour. Considérer la première connexion réussie comme la fin de la maintenance signifie que la prochaine mise à jour de sécurité attend qu’une personne avec une voiture puisse passer, et c’est ainsi qu’un réseau hors ligne prend discrètement des années de retard.