Klient VPN ma dotrzeć do sieci, która zwykle dostarcza jego pakiety, a to ładne błędne koło. Pobranie jednego DEB-a OpenVPN na innej maszynie zwykle kończy się drugą brakującą zależnością, potem trzecią, a potem wieczorem spędzonym na ściganiu wersji bibliotek. Alternatywą jest pozwolenie odłączonej maszynie, by własnymi słowami powiedziała, czego potrzebuje jej menedżer pakietów. Wszystko poniżej wynika z tej zamiany stron, czyli z tego, kto pyta.

W systemach z rodziny Debiana ta rozmowa odbywa się przez apt-offline, czyli przepływ typu żądanie i zwrot. Jego własne środowisko uruchomieniowe musi najpierw istnieć na maszynie docelowej, zainstalowane z zatwierdzonego nośnika lub innego bootstrapu zarządzanego przez administratora, ponieważ żadne narzędzie nie potrafi uruchomić się z niczego.

Zacznij od stanu pakietów maszyny docelowej, nie od stanu pomocnika

Przed czymkolwiek innym zapisz wydanie dystrybucji, architekturę przestrzeni użytkownika i skonfigurowane źródła pakietów maszyny docelowej. Te trzy fakty decydują, która implementacja VPN i która integracja z pulpitem są właściwe, a są to fakty, których podłączony pomocnik nie dostarczy.

Pomocnik pobiera pliki; nie staje się podstawą zależności. Nowszy laptop, na którym OpenVPN jest już zainstalowany, ma zupełnie inny stan pakietów niż maszyna docelowa, więc jego sukces niczego nie dowodzi co do tego, co może zaakceptować cel.

Zdecyduj też, czego naprawdę chcesz. Silnik VPN, wtyczka usługi NetworkManager i edytor graficzny to osobne pakiety, a właściwy wybór zależy od wydania i od tego, jak użytkownik będzie zarządzał połączeniem. Serwer bez głowy potrzebuje silnika i pliku konfiguracyjnego; pulpit potrzebuje wtyczki, która pozwala jego ustawieniom sieciowym zarządzać tunelem. Zażądanie niewłaściwego zestawu daje instalację, która się udaje, i połączenie, którego nikt nie potrafi uruchomić.

Dwie podróże tam i z powrotem, w tej kolejności

Podręcznik rozdziela trzy operacje: wygeneruj żądanie na odłączonym systemie, pobierz na podłączonym pomocniku, zaimportuj z powrotem na celu. Odśwież metadane repozytorium celu przed żądaniem pakietów, ponieważ żądanie pakietów jest budowane z tych metadanych, a nieaktualne indeksy dają żądania, których pomocnik nie zdoła spełnić.

Na celu polecenie administratora w postaci apt-offline set vpn-meta.sig --update zapisuje żądanie odświeżenia. Przenieś ten plik na podłączoną maszynę i pobierz pakiet zbiorczy za pomocą apt-offline get vpn-meta.sig --bundle vpn-meta.zip. Zwróć pakiet zbiorczy i zaimportuj go na celu za pomocą apt-offline install vpn-meta.zip, ponownie jako administrator.

Teraz wygeneruj żądanie pakietów z odświeżonych metadanych, na przykład apt-offline set vpn-deps.sig --install-packages openvpn, i powtórz podróż z nową nazwą pakietu zbiorczego. Trzymaj każde żądanie w parze z pakietem, który wytworzyło; pakiet wygenerowany wobec starszych metadanych to nie to samo żądanie, nawet gdy nazwy plików wyglądają na wymienne.

Dodawaj pakiety integracyjne tylko wtedy, gdy projekt ich potrzebuje

Jeśli pulpit ma zarządzać tunelem przez swoje ustawienia sieciowe, żądanie potrzebuje pasującej wtyczki obok silnika. Uwzględnij konkretne nazwy pakietów, które dostarcza twoje wydanie, zamiast listy zapamiętanej z innej dystrybucji, i generuj nowe żądanie za każdym razem, gdy lista się zmienia. Przypinanie wersji też zasługuje na namysł: pakiet zbudowany dla nowszego wydania może spełnić nazwę i mimo to zawieść w czasie działania. W tym miejscu stały zestaw czterech pakietów staje się obciążeniem, ponieważ właściwa lista jest własnością celu i tylko cel potrafi ją poprawnie policzyć.

To także miejsce, w którym stały zestaw czterech pakietów staje się obciążeniem. Właściwa lista jest własnością celu, a cel jest jedyną maszyną, która potrafi ją poprawnie policzyć.

Import pakietu zbiorczego nie jest instalacją VPN-a

Mimo nazwy operacja instalacji tylko odkłada dane APT w środowisku zarządzania pakietami. Nie wykonuje transakcji pakietowej. Dokończ i przejrzyj rzeczywistą instalację APT na celu z danych dostarczonych lokalnie, a potem przeczytaj wynik, zamiast zakładać, że sukces ZIP-a oznacza obecność oprogramowania.

Jeśli ta transakcja nadal prosi o niedostępne pliki, zachowaj konkretną brakującą zależność lub błąd repozytorium i wygeneruj z niego następne żądanie. Nie podstawiaj DEB-a z innego wydania i nie wyłączaj kontroli sumy kontrolnej ani uwierzytelniania repozytorium, by to przepchnąć. Podręcznik wyraźnie ostrzega przed pomijaniem weryfikacji pobranych plików i słusznie: niezweryfikowany pakiet to gorszy wynik niż nieudana instalacja.

Pakiety to dopiero pierwsza połowa

Instalacja oprogramowania to coś innego niż uzyskanie zatwierdzonego punktu końcowego, profilu, materiału zaufania i poświadczeń, z których każde może mieć własne kontrolowane przekazanie. Działający zestaw pakietów bez ważnego profilu nie łączy się z niczym.

Potem utrzymuj ścieżkę transferu offline przy życiu na potrzeby przyszłych aktualizacji. Potraktowanie pierwszego udanego połączenia jako końca utrzymania oznacza, że następna aktualizacja bezpieczeństwa czeka, aż ktoś z samochodem będzie mógł przyjechać, i tak sieć offline po cichu zostaje lata w tyle.

Powiązane artykuły