Uruchamiaj OpenVPN w systemie Windows bez czynienia użytkowników administratorami
OpenVPN potrzebuje uprawnień dla swojego adaptera i tras, nie dla wszystkiego. Użyj usługi i deleguj uprawnienia sieciowe, a potem potwierdź z konta użytkownika.
Użytkownik dwukrotnie klika ikonę OpenVPN GUI, zatwierdza monit UAC i przy następnym ponownym połączeniu powtarza ten sam rytuał. Monit nie jest błędem pakowania: klient tworzy wirtualny adapter i edytuje tablicę routingu, a oba są zmianami wymagającymi uprawnień. Użyteczne pytanie brzmi, których z tych uprawnień użytkownik naprawdę potrzebuje. Usługa plus wąska delegacja pokrywają połączenie bez rozdawania członkostwa w grupie administratorów.
Które operacje naprawdę wymagają podniesienia uprawnień
Tunel kończy się na wirtualnym interfejsie sieciowym, a instalacja tego interfejsu jest operacją sterownika, która raz wymaga uprawnień administratora. Gdy adapter już istnieje, każde połączenie nadal zapisuje trasy i, zależnie od profilu, zmienia konfigurację DNS. Właśnie te dwa kroki wywołują podniesienie uprawnień na zwykłym koncie. Nic w uwierzytelnianiu ani szyfrowaniu nie wymaga uprawnień administratora i dlatego uprawnienie można oddzielić.
Oddziel czas instalacji od czasu połączenia, zanim wybierzesz nadanie. Mają różnych właścicieli i różny czas życia.
Użyj usługi jako uprzywilejowanego komponentu
Obsługiwany układ uruchamia usługę Windows, która ma wymagane uprawnienia, a GUI prosi usługę o połączenie. Dzięki temu uprzywilejowany kod nigdy nie działa w sesji użytkownika.
sc query OpenVPNService
sc qc OpenVPNServiceDziałająca usługa, której ścieżka binarna wskazuje zainstalowanego klienta, to pierwszy fakt do potwierdzenia przed delegowaniem czegokolwiek. Usługa jest właścicielem adaptera i tras, więc użytkownik tylko uruchamia i zatrzymuje połączenie. To jest kształt do stosowania na współdzielonych maszynach, ponieważ konto, które klika połącz, nie ma stałego uprawnienia. Przeczytaj deskryptor za pomocą sc sdshow przed jego edycją i zachowaj znaną dobrą kopię danych wyjściowych.
Deleguj zmiany tras do grupy wbudowanej
Dla klienta, który musi działać interaktywnie, delegowaną grupą wbudowaną jest Network Configuration Operators. Obejmuje ona ustawienia sieci i zmiany tras, wykluczając instalację oprogramowania i ogólną pracę administracyjną.
net localgroup "Network Configuration Operators" alice /add
sc sdshow OpenVPNServiceDodanie konta nie jest ciche: domyślna polityka nadal wywołuje jeden monit na sesję, więc nadanie ogranicza to, co może zrobić podniesienie uprawnień, zamiast je usuwać. Udokumentuj członkostwo, ponieważ gromadzi się po cichu i prawie nigdy nie jest przeglądane. Na drodze przez usługę edycja deskryptora za pomocą sc sdset może delegować uruchamianie i zatrzymywanie grupie, choć literówka w deskryptorze może odebrać prawa uruchamiania każdemu kontu, a cofnięcie tego wymaga administratora. Przetestuj każdą zmianę deskryptora na maszynie laboratoryjnej, zanim trafi na host produkcyjny.
Zweryfikuj z konta użytkownika
Konfiguracja wykonana w sesji administratora niczego nie dowodzi o koncie, które jej użyje. Zaloguj się jako ten użytkownik, połącz się i porównaj stan maszyny przed i po.
route print -4
Get-DnsClientServerAddressTablica routingu powinna zyskać trasy tunelu, a resolver powinien wskazywać serwery dostarczane przez VPN podczas połączenia. Po rozłączeniu oba wyniki powinny odpowiadać kopiom wykonanym wcześniej, dlatego ważne jest, aby wykonać je najpierw. Aktualizacje sterowników mogą ponownie wprowadzić wymóg administratora, więc zanotuj wersję klienta obok wyniku. Przechowuj pliki profilu i kluczy czytelne tylko dla konta, które ich używa, zamiast poluzowywać uprawnienia do instalacji współdzielonej.
Zapisz, kto może uruchomić tunel, która grupa to umożliwia i co nadal wymaga administratora. Ta notatka zamienia następną aktualizację klienta w zaplanowaną pracę, a nie w popołudnie domysłów.