Offline VPN-pakketten: vraag het doelsysteem wat het nodig heeft
Laat de niet-verbonden machine zelf haar afhankelijkheidsset beschrijven. Twee retourtjes, eerst een verzoek en dan een import, gevolgd door de APT-transactie die je nog steeds moet uitvoeren.
Je hebt de VPN-client nodig om het netwerk te bereiken dat normaal gesproken zijn pakketten levert, en dat is een aardig gesloten cirkeltje. Het downloaden van één OpenVPN-DEB op een andere machine eindigt meestal met een tweede ontbrekende afhankelijkheid, dan een derde, en dan een hele avond jagen op bibliotheekversies. Het alternatief is om de niet-verbonden machine, in haar eigen termen, te laten vertellen wat haar pakketbeheer nodig heeft. Alles hieronder volgt uit die omkering van wie er vraagt.
Voor systemen uit de Debian-familie verloopt dat gesprek via apt-offline, een werkwijze van verzoek en retour. De eigen runtime moet eerst op het doel aanwezig zijn, geïnstalleerd vanaf goedgekeurde media of een andere door de beheerder beheerde bootstrap, want geen enkel hulpmiddel kan zichzelf uit het niets opstarten.
Begin bij de pakketstatus van het doel, niet bij die van de helper
Leg de distributierelease, de userspace-architectuur en de geconfigureerde pakketbronnen van het doel vast voordat je iets anders doet. Die drie feiten bepalen welke VPN-implementatie en welke desktopintegratie passend zijn, en het zijn feiten die een verbonden helper niet kan leveren.
De helper downloadt bestanden; hij wordt niet de afhankelijkheidsbasis. Een nieuwere laptop waarop OpenVPN al is geïnstalleerd, heeft een heel andere pakketstatus dan het doel, dus zijn succes bewijst niets over wat het doel kan accepteren.
Bepaal ook wat je eigenlijk wilt. De VPN-engine, een NetworkManager-serviceplugin en een grafische editor zijn afzonderlijke pakketten, en de juiste keuze hangt af van de release en van hoe de gebruiker de verbinding zal beheren. Een headless server heeft de engine en een configuratiebestand nodig; een desktop heeft de plugin nodig waarmee de netwerkinstellingen de tunnel bezitten. Het verkeerde setje aanvragen levert een installatie op die slaagt en een verbinding die niemand kan starten.
Twee retourtjes, in deze volgorde
De handleiding onderscheidt drie bewerkingen: een verzoek genereren op het niet-verbonden systeem, downloaden op een verbonden helper, en terug importeren op het doel. Vernieuw de repositorymetadata van het doel voordat je pakketten aanvraagt, want het pakketverzoek wordt uit die metadata opgebouwd en verouderde indexen leveren verzoeken op waaraan de helper niet kan voldoen.
Op het doel schrijft een beheerderscommando in de vorm apt-offline set vpn-meta.sig --update het vernieuwingsverzoek. Breng dat bestand naar de verbonden machine en download een bundel met apt-offline get vpn-meta.sig --bundle vpn-meta.zip. Breng de bundel terug en importeer hem op het doel met apt-offline install vpn-meta.zip, opnieuw als beheerder.
Genereer nu het pakketverzoek uit de vernieuwde metadata, bijvoorbeeld apt-offline set vpn-deps.sig --install-packages openvpn, en herhaal de reis met een nieuwe bundelnaam. Houd elk verzoek gekoppeld aan de bundel die het heeft opgeleverd; een bundel die tegen oudere metadata is gemaakt, is niet hetzelfde verzoek, zelfs wanneer de bestandsnamen uitwisselbaar lijken.
Voeg de integratiepakketten alleen toe wanneer het ontwerp ze nodig heeft
Als de desktop de tunnel via zijn netwerkinstellingen moet beheren, heeft het verzoek naast de engine ook de bijpassende plugin nodig. Neem de specifieke pakketnamen op die jouw release levert in plaats van een lijst die je je herinnert van een andere distributie, en genereer een nieuw verzoek telkens wanneer de lijst verandert. Versiepinning verdient ook aandacht: een pakket dat voor een nieuwere release is gebouwd, kan aan de naam voldoen en toch tijdens het draaien falen. Hier wordt een vaste set van vier pakketten een last, want de juiste lijst is een eigenschap van het doel en alleen het doel kan die berekenen.
Ook hier wordt een vaste set van vier pakketten een last. De juiste lijst is een eigenschap van het doel, en het doel is de enige machine die die correct kan berekenen.
Een bundel importeren is niet de VPN installeren
Ondanks de naam plaatst de installatiebewerking APT-gegevens in de pakketbeheeromgeving. Zij voert de pakkettransactie niet uit. Voltooi en controleer de werkelijke APT-installatie van het doel op basis van de lokaal aangeleverde gegevens, en lees de uitvoer in plaats van aan te nemen dat het succes van de ZIP betekent dat de software aanwezig is.
Als die transactie nog steeds om niet-beschikbare bestanden vraagt, bewaar dan de specifieke ontbrekende afhankelijkheid of repositoryfout en genereer daaruit het volgende verzoek. Vervang geen DEB uit een andere release, en schakel de checksum- of repository-authenticatiecontroles niet uit om het erdoor te drukken. De handleiding waarschuwt uitdrukkelijk tegen het overslaan van de verificatie van gedownloade bestanden, en terecht: een ongeverifieerd pakket is een slechtere uitkomst dan een mislukte installatie.
Pakketten zijn slechts de eerste helft
Software installeren staat los van het verkrijgen van het goedgekeurde eindpunt, profiel, vertrouwensmateriaal en inloggegevens, die elk hun eigen gecontroleerde overdracht kunnen hebben. Een werkende pakkettenset zonder geldig profiel verbindt met niets.
Houd daarna het offline overdrachtspad in leven voor toekomstige updates. De eerste geslaagde verbinding als het einde van het onderhoud beschouwen betekent dat de volgende beveiligingsupdate wacht tot iemand met een auto langs kan komen, en zo raakt een offline netwerk stilletjes jaren achterop.