Usługa OpenVPN zawodzi na profilu, który otwiera GUI: pięć kontroli
Ten sam profil, inny launcher. Sprawdź katalog roboczy, konto usługi, atrybut zaszyfrowanego pliku, właściciela, a następnie otoczkę.
Dwa launchery otwierają ten sam profil na jednej maszynie, a łączy się tylko GUI. Plik jest nienaruszony, a instalator prawdopodobnie jest w porządku; różni się kontekst, który każdy launcher daje openvpn.exe. Katalog roboczy, tożsamość konta i atrybuty pliku podróżują razem z tym kontekstem. Sprawdź je w tej kolejności i zatrzymaj się na pierwszym, który wyjaśnia błąd.
Potwierdź, który launcher zawodzi
Zacznij od udowodnienia podziału. Jeśli GUI łączy się, a usługa nie, przy tej samej ścieżce profilu, plik jest czytelny dla kogoś i pytanie zmienia się w to, kto go czyta i skąd. Jeśli oba zawodzą, profil jest uszkodzony i nic z tego nie ma zastosowania. Zapisz nazwę usługi i dokładny profil, który miała załadować.
Usługa wskazana na własny katalog autostartu może nie ładować pliku, który masz otwarty w edytorze. Porównaj ścieżkę w konfiguracji usługi ze ścieżką w GUI, znak po znaku, bo nazwa folderu na końcu lub inna litera dysku wystarczy, by skierować cię na złą gałąź.
Gdzie rozwiązywane są ścieżki względne
Profil, który odwołuje się do ca.crt lub skryptu pomocniczego tylko z nazwy, wymaga wyszukania względem miejsca, w którym znajduje się proces. GUI startuje w folderze konfiguracji, więc te nazwy są rozwiązywane. Usługa uruchomiona przez menedżera usług nie ma takiego punktu startu i wyszukiwanie zawodzi, zanim odczytany zostanie jakikolwiek certyfikat. Dlatego ten sam profil działa w jednym launcherze, a w drugim nie.
Daj otoczce katalog do startu albo uczyń każde odwołanie bezwzględnym. Odtworzenie kontekstu GUI w wierszu poleceń wygląda tak:
openvpn --cd "C:\VPN\profiles\office" --config "C:\VPN\profiles\office\office.ovpn"
Zwiększenie szczegółowości tego polecenia pokazuje dokładną ścieżkę, która została wypróbowana. Zrób to przed zmianą uprawnień, bo brakujący plik i odmówiony odczyt wymagają różnych poprawek. Domyślny dziennik ich nie rozróżnia. Jedna dodatkowa flaga oszczędza godzinę zgadywania.
Gdy tożsamość usługi nie może czytać
Usługa działa jako tożsamość systemowa, a nie jako ty. ACL, który daje twojemu użytkownikowi pełną kontrolę, a nikomu innemu, zawodzi tam, choć w twojej sesji działa doskonale. Profil trzymany na dysku mapowanym lub w uwierzytelnionym udziale zawodzi z tego samego powodu. Potwierdź uprawnienia pliku, zanim spojrzysz na cokolwiek innego.
Kontrola to odczyt efektywnych uprawnień oraz odczyt próbowany jako tożsamość usługi. Uruchom pierwszą część z podniesionego wiersza poleceń:
icacls "C:\VPN\profiles\office\office.ovpn"
Następnie spróbuj tego samego odczytu jako tożsamość usługi, na przykład za pomocą psexec -s -i z Sysinternals, i obserwuj, czy plik się otwiera. Jeśli nie, żadna poprawka ścieżki nie pomoże. Popraw ACL lub przenieś profil w miejsce, które tożsamość usługi może czytać.
Szyfrowanie na poziomie pliku to drugi, rzadszy przypadek. Profil oznaczony atrybutem Encrypting File System jest odszyfrowywany przezroczyście dla użytkownika, który go zaszyfrował, i pozostaje nieczytelny dla konta usługi. Dlatego ten sam plik otwiera się w twoim edytorze, a nie pod usługą.
Atrybut jest widoczny z podniesionego wiersza poleceń, a jego sprawdzenie nie otwiera profilu. Uruchom oba polecenia i odczytaj wynik:
cipher /s:"C:\VPN\profiles\office"
attrib "C:\VPN\profiles\office\office.ovpn"
Wyczyszczenie atrybutu czyni plik czytelnym i usuwa też ochronę, którą niósł. Jeśli profil ma pozostać chroniony, umieść tajny materiał tam, gdzie tożsamość usługi ma wyraźne uprawnienie, zamiast polegać na szyfrowaniu na użytkownika. Taki układ przetrwa zmianę hasła i sprawia, że dostęp może przejrzeć ktoś inny niż osoba, która zaszyfrowała plik.
Decyzja, kto jest właścicielem tunelu
GUI może poprosić o hasło i odczytać certyfikat z twojego magazynu użytkownika. Usługa nie potrafi ani jednego, ani drugiego, więc profil zależny od interaktywnej tajemnicy nigdy nie wystartuje bez nadzoru, niezależnie od tego, jak poprawi się ścieżki. Ten limit jest decyzją projektową, a nie wadą do obejścia. Wybierz jednego właściciela, zanim zmienisz cokolwiek innego.
Jeśli tunel musi być podniesiony przed logowaniem, daj usłudze źródło poświadczeń bez nadzoru i własną kopię profilu. Jeśli ma istnieć tylko wtedy, gdy siedzisz przy biurku, trzymaj go w GUI i usuń kopię usługi. Oba naraz to konfiguracja, która powoduje konflikty adapterów i zduplikowane trasy.
Ten konflikt jest zwykle diagnozowany jako błąd konfiguracji, a nie jako dwóch właścicieli walczących o jeden adapter. Dziennik zdarzeń pokaże jeden proces, który nie może otworzyć urządzenia TAP, co wygląda na problem z uprawnieniami i nim nie jest. Najpierw policz właścicieli.
Co naprawdę uruchamia otoczka usługi
Punktem wejścia usługi jest mała otoczka, która odczytuje własne zapisane parametry, a następnie uruchamia openvpn.exe. Gdy wiersz poleceń w dzienniku zdarzeń nie zgadza się z twoim oczekiwaniem, właśnie te wartości trzeba zbadać. Ponowna instalacja przywraca je do domyślnych i niszczy dowody. Przeczytaj je najpierw.
Wartości żyją w rejestrze pod własnym kluczem usługi, a sc qc pokazuje ścieżkę pliku binarnego, który uruchomi menedżer usług. Porównaj tę ścieżkę z zapisaną konfiguracją otoczki, zanim edytujesz którąkolwiek z nich.
Zastąpienie otoczki skryptem, który kontrolujesz, jest bardziej inwazyjne, ale składa efektywny wiersz poleceń w jeden czytelny plik. Zakończ restartem, a następnie czytaj dziennik dla każdego profilu, aż pojawi się pierwszy udany wiersz startu. Stan usługi uruchomiona oznacza tylko, że otoczka nie wyszła, co jest prawdą także wtedy, gdy jej dziecko zginęło natychmiast.