Zainstalowałeś pakiet AWS Client VPN na Ubuntu, uruchomiłeś go i dostałeś błąd mechanizmu ładującego o brakującej bibliotece współdzielonej, zanim odczytano jakikolwiek profil. Pierwszy odruch to wzięcie tej biblioteki ze starszego wydania i parcie dalej. Zwykle zamienia to jedną zepsutą zależność na system, który nie pasuje już do własnej bazy pakietów. Błąd uruchamiania to kwestia granicy wsparcia, a nie sieci.

Błąd wskazuje bibliotekę, a nie sieć

Klient VPN na komputerze musi wczytać swoje środowisko uruchomieniowe, zanim spojrzy na twój profil lub punkt końcowy. Gdy dynamiczny ładujący nie potrafi rozwiązać symbolu, proces ginie w pierwszej sekundzie i okno nigdy się nie pojawia. Żadna ilość edycji profilu, pracy z DNS ani zmian tras nie dociera do tego etapu. Czytaj komunikat dosłownie, bo mówi dokładnie, jakiego obiektu chciał ładujący.

W ten sposób rozdzielasz też dwie rodziny awarii. Brakujący obiekt współdzielony to problem pakowania na twoim hoście, a odrzucenie uwierzytelnienia to decyzja po stronie usługi, która przychodzi znacznie później w sekwencji.

Oba kończą się zamykającym oknem, dlatego są mylone w raportach błędów.

Przełączniki globalizacji to inny problem

Błędy wspominające ICU lub globalizację pochodzą ze środowiska .NET pod niektórymi kompilacjami klienta, a nie ze stosu TLS. Ustawienie przełącznika niezmiennej globalizacji zmienia sposób obsługi danych kulturowych przez to środowisko i nie dostarcza brakującej libssl. Zastosowanie go, by uciszyć błąd TLS, zostawia klienta, który startuje, a potem zawodzi gdzie indziej.

Trzymaj oba w osobnych pudełkach: jedno zmienia zachowanie środowiska, drugie zadowala konsolidator. Sięganie po pierwsze, gdy ma się drugie, to nawyk wart porzucenia.

Jeśli host naprawdę nie może zapewnić wymaganego środowiska, obsługiwaną odpowiedzią jest inny host, a nie zmodyfikowany.

Dlaczego import starego OpenSSL obraca się przeciwko tobie

Kopiowanie libssl i libcrypto ze starszej dystrybucji do /usr/lib działa wystarczająco często, by kusić. Umieszcza też bibliotekę poza kontrolą menedżera pakietów, więc każda późniejsza aktualizacja bezpieczeństwa albo ją pomija, albo koliduje z nią. Na hoście, który uruchamia też przeglądarkę lub klienta SSH, zmieniłeś stos kryptograficzny programom, które nigdy o to nie prosiły.

Obsługiwana droga to udokumentowane źródło pakietów i jego rozwiązywanie zależności dla dokładnie twojego wydania systemu i architektury. Sprawdź wymagania klienta AWS dla Linuksa i informacje o wydaniu instalowanej wersji, bo macierz wsparcia przesuwa się między wydaniami.

Stare obejście z forum to migawka jednej pary wydań, a nie gwarancja zgodności.

Zachowaj definicję usługi dostawcy

Niektóre poradniki dają minimalną jednostkę systemd, by zastąpić tę z pakietu. Taka jednostka zwykle gubi argumenty, ustawienia utwardzania i integrację dodane przez dostawcę później, a wynikająca awaria pojawia się w miejscu, którego nie połączysz z tą zmianą.

Jeśli potrzebujesz zmiany, użyj zamiast tego drop-inu: małego pliku nadpisania w katalogu .d jednostki, który dodaje lub zastępuje jedną dyrektywę, z komentarzem, dlaczego istnieje i jak go wycofać. Plik dostawcy pozostaje nietknięty, a następna aktualizacja pakietu ani po cichu nie cofa twojej pracy, ani jej nie dubluje.

Zapisz ścieżkę nadpisania w notatkach, bo następny administrator zajrzy tam najpierw.

Udowodnij uruchomienie, zanim zaczniesz debugować trasy

Doprowadź do tego, by klient uruchamiał się niezawodnie z zatwierdzonym profilem, potem się zaloguj, potem potwierdź tunel, a dopiero potem patrz na trasy, DNS i zasoby prywatne. Każdy etap daje własny dowód, a mieszanie ich sprawia, że problem środowiska wygląda jak problem routingu. Jeśli potrzebujesz wsparcia dostawcy, przechwyć pierwsze użyteczne zdarzenie startu zamiast zrzutu ekranu zamykającego się okna.

Nigdy nie załączaj klucza prywatnego ani pełnego profilu z osadzonymi poświadczeniami jako materiału diagnostycznego.

Jedno pytanie rozwiązuje większość takich zgłoszeń: czy zainstalowana wersja klienta jest jeszcze obsługiwana w tym wydaniu systemu? Jeśli nie, poprawką jest obsługiwana para, a nie kolejne polowanie na biblioteki.

Powiązane artykuły