Który plik binarny openvpn działa? Sprawdź ścieżkę uruchomienia
Nazwa polecenia, ścieżka usługi i plik pakietu mogą być trzema różnymi obiektami. Sprawdź ścieżkę uruchomienia, zweryfikuj pliki pakietu, a następnie usuń opakowanie.
Stare obejście przeniosło plik wykonywalny OpenVPN w inne miejsce i zostawiło w pierwotnej ścieżce powłokę shell. Miesiące później pojawia się aktualizacja, a wycofanie obejścia staje się zgadywanką, który plik jest naprawdę klientem. Nazwa polecenia, plik wykonywalny skonfigurowany w usłudze i własna lista plików pakietu mogą wskazywać na różne obiekty, a naprawa jednego z nich bez pozostałych daje host, który wygląda na naprawiony i zachowuje się gorzej.
Zacznij od ścieżki, którą uruchamia usługa
Terminal i jednostka systemd nie rozwiązują plików wykonywalnych w ten sam sposób. Powłoka przeszukuje PATH; jednostka nazywa ścieżkę, a nadpisania drop-in mogą ją zastąpić bez dotykania pliku, który czytasz. Ta różnica wyjaśnia większość zamieszania w tym zadaniu. Decyduje też, na który plik musi celować twoja naprawa.
Zapytaj jednostkę, co uruchamia, wraz z nadpisaniami drop-in, które ją zmieniają, i czytaj wynikowy wiersz ExecStart, a nie fragment, który uważasz za wiążący. Następnie prześledź tę ścieżkę przez dowolne dowiązanie symboliczne aż do pliku końcowego. Opakowanie kończące się exec w ukrytym katalogu to częsty układ z tych starych poprawek.
Zapisz rozwiązaną ścieżkę, zanim cokolwiek zmienisz.
systemctl cat [email protected] | grep -n 'ExecStart'
readlink -f "$(command -v openvpn)"Porównaj nazwę polecenia ze ścieżką usługi
Obie odpowiedzi często się różnią, a ta różnica nie jest automatycznie usterką. Wtyczka NetworkManager może uruchamiać własną ścieżkę, a kontener może montować jeszcze inną.
Ważne jest, aby wiedzieć, który właściciel uruchamia proces obsługujący ruch. Jeśli jednostka uruchamia /usr/local/sbin/openvpn-wrapper, podczas gdy twoja powłoka rozwiązuje /usr/sbin/openvpn, naprawa drugiego pliku niczego nie zmienia w usłudze.
Zapytaj, do którego pakietu należy każdy kandydat, a następnie zdecyduj, czy plikiem zarządza pakiet, czy został umieszczony lokalnie. Plik bez pakietu, który go posiada, to plik, który ktoś umieścił tam celowo, i zasługuje na nazwę, właściciela i powód, zanim zostanie usunięty. Odwrotny błąd też jest częsty: nadpisanie pliku pakietu starym zapisanym binarium, bo wpis na forum używał tego samego katalogu.
Pozwól bazie danych pakietów mówić o plikach pakietu
Gdy oprogramowanie pochodzi z pakietu Debiana, baza danych pakietów może powiedzieć, czy jego pliki nadal odpowiadają temu, co zainstalowano. To wąskie pytanie o integralność, nie werdykt bezpieczeństwa, i ta różnica ma znaczenie, gdy decydujesz, co naprawić. Niezgodność oznacza, że plik zmienił się po instalacji, co może być twoim starym obejściem albo legalną lokalną zmianą. Wynik nie rozstrzyga, które, więc czytaj go jako wskazówkę, a nie wniosek.
Uruchom weryfikację i czytaj wynik, zamiast traktować pusty rezultat jako dowód czegokolwiek.
dpkg -S /usr/sbin/openvpn
dpkg --verify openvpnPodręcznik dpkg dokumentuje, że weryfikacja porównuje zainstalowane pliki z lokalnie zapisanymi metadanymi, używając zapisanych sum kontrolnych tam, gdzie istnieją. Zauważa zmieniony plik pakietu i nie potrafi powiedzieć, czy zamiast niego uruchamiane jest inne binarium.
Zarejestruj stan przed naprawą
Zbierz rozwiązaną ścieżkę uruchomienia, relację pliku z pakietem, lokalizację opakowania i zapis zmiany, który je wprowadził. Skopiuj opakowanie w chronione miejsce, jeśli zawiera pracę integracyjną, która będzie potrzebna później.
Nie wklejaj zawartości opakowania do wątku pomocy przed jej przeczytaniem, ponieważ te skrypty czasami zawierają dane uwierzytelniające lub szczegóły bramy.
Zapisz, których profili używa usługa i kto jest połączony, gdy pracujesz, ponieważ ponowne uruchomienie tunelu może przerwać sesję, którą administrujesz hostem.
Zweryfikuj uruchomienie, a następnie usuń opakowanie
Po naprawie uruchom usługę i potwierdź, że proces działa na zamierzonej ścieżce. Ręczne zapytanie o wersję dowodzi, że plik działa; nie dowodzi, że jednostka go używa.
Następnie połącz ponownie klienta i sprawdź, czy profil nadal się uwierzytelnia, ponieważ podmiana binarium, która ignoruje oryginalne opcje, zawiedzie w sposób wyglądający jak problem z certyfikatem.
Usuń wyparte opakowanie przez ten sam zapis zmiany, który je wprowadził. Zakończona naprawa mówi, który plik wykonywalny działa, dlaczego i który plik został usunięty; przywrócenie nazwy pliku i nadzieja to nie to samo.