Služba OpenVPN selhává u profilu, který GUI otevírá: pět kontrol
Stejný profil, jiný spouštěč. Zkontrolujte pracovní adresář, účet služby, atribut šifrovaného souboru, vlastníka a potom obal.
Dva spouštěče otevírají stejný profil na jednom počítači a připojuje se jen GUI. Soubor je v pořádku a instalátor je pravděpodobně také; liší se kontext, který každý spouštěč dává openvpn.exe. Pracovní adresář, identita účtu a atributy souboru putují společně s tímto kontextem. Zkontrolujte je v tomto pořadí a zastavte se u prvního, který chybu vysvětlí.
Potvrďte, který spouštěč selhává
Začněte důkazem rozdělení. Pokud se GUI připojí a služba ne, se stejnou cestou k profilu, je soubor pro někoho čitelný a otázkou se stává, kdo ho čte a odkud. Pokud selžou oba, profil je poškozený a nic z toho neplatí. Zapište název služby a přesný profil, který měla načíst.
Služba nasměrovaná do vlastního adresáře automatického spuštění nemusí načítat soubor, který máte otevřený v editoru. Porovnejte cestu v konfiguraci služby s cestou v GUI, znak po znaku, protože název složky na konci nebo jiné písmeno jednotky stačí k tomu, aby vás to poslalo do špatné větve.
Kde se řeší relativní cesty
Profil, který odkazuje na ca.crt nebo pomocný skript pouze jménem, žádá hledání relativně k tomu, kde se proces nachází. GUI začíná v konfigurační složce, takže se tato jména vyřeší. Služba spuštěná správcem služeb takový výchozí bod nemá a hledání selže dříve, než se přečte jakýkoli certifikát. Proto stejný profil funguje v jednom spouštěči a ve druhém ne.
Dejte obalu adresář, ve kterém má začít, nebo udělejte každý odkaz absolutní. Reprodukce kontextu GUI na příkazovém řádku vypadá takto:
openvpn --cd "C:\VPN\profiles\office" --config "C:\VPN\profiles\office\office.ovpn"
Zvýšení podrobnosti u tohoto příkazu ukáže přesnou cestu, která byla zkoušena. Udělejte to před změnou oprávnění, protože chybějící soubor a odepřené čtení vyžadují různá řešení. Výchozí protokol je nerozlišuje. Jeden přepínač navíc ušetří hodinu hádání.
Když identita služby nemůže číst
Služba běží jako systémová identita, ne jako vy. ACL, který dává vašemu uživateli plnou kontrolu a nikomu jinému, tam selže, zatímco ve vaší relaci funguje dokonale. Profil uložený na mapované jednotce nebo na ověřeném sdílení selže ze stejného důvodu. Potvrďte oprávnění souboru, než se podíváte na cokoli jiného.
Kontrolou je čtení efektivních oprávnění plus čtení zkoušené jako identita služby. Spusťte první část ze zvýšeného příkazového řádku:
icacls "C:\VPN\profiles\office\office.ovpn"
Potom zkuste stejné čtení jako identita služby, například s psexec -s -i ze Sysinternals, a sledujte, zda se soubor otevře. Pokud ne, žádná oprava cesty nepomůže. Opravte ACL nebo přesuňte profil na místo, které identita služby může číst.
Šifrování na úrovni souboru je druhý, vzácnější případ. Profil označený atributem Encrypting File System se dešifruje průhledně pro uživatele, který ho zašifroval, a zůstává nečitelný pro účet služby. Proto se stejný soubor otevře ve vašem editoru a ne pod službou.
Atribut je viditelný ze zvýšeného příkazového řádku a kontrola ho neotevře profil. Spusťte oba příkazy a přečtěte výstup:
cipher /s:"C:\VPN\profiles\office"
attrib "C:\VPN\profiles\office\office.ovpn"
Odstranění atributu učiní soubor čitelným a také odstraní ochranu, kterou nesl. Pokud má profil zůstat chráněný, umístěte tajný materiál tam, kde má identita služby výslovné povolení, místo aby se spoléhalo na šifrování pro jednotlivé uživatele. Takové uspořádání přežije změnu hesla a činí přístup přezkoumatelným někým jiným než osobou, která soubor zašifrovala.
Rozhodnutí, kdo vlastní tunel
GUI může požádat o heslo a může přečíst certifikát z vašeho uživatelského úložiště. Služba nemůže ani jedno, takže profil závislý na interaktivním tajemství se nikdy nespustí bez dozoru, ať se cesty opraví jakkoli. Tento limit je rozhodnutí o návrhu, ne vada, kterou je třeba obcházet. Vyberte jednoho vlastníka, než změníte cokoli jiného.
Pokud tunel musí být nahoru před přihlášením, dejte službě zdroj přihlašovacích údajů bez dozoru a vlastní kopii profilu. Pokud má existovat jen když jste u stolu, nechte ho v GUI a kopii služby odstraňte. Obojí najednou je konfigurace, která vytváří konflikty adaptérů a duplicitní trasy.
Tento konflikt se obvykle diagnostikuje jako chyba konfigurace, nikoli jako dva vlastníci bojující o jeden adaptér. Protokol událostí ukáže jeden proces, který nedokáže otevřít zařízení TAP, což vypadá jako problém s oprávněními, ale není. Nejprve spočítejte vlastníky.
Co obal služby skutečně spouští
Vstupním bodem služby je malý obal, který přečte své uložené parametry a potom spustí openvpn.exe. Když se příkazový řádek v protokolu událostí neshoduje s vaším očekáváním, právě tyto hodnoty je třeba prozkoumat. Přeinstalace je vrátí na výchozí hodnoty a zničí důkazy. Přečtěte je nejprve.
Hodnoty žijí v registru pod vlastním klíčem služby a sc qc ukazuje cestu ke spustitelnému souboru, který správce služeb spustí. Porovnejte tuto cestu s uloženou konfigurací obalu, než upravíte kteroukoli z nich.
Nahradit obal skriptem, který ovládáte, je invazivnější, ale složí efektivní příkazový řádek do jednoho čitelného souboru. Skončete restartem a potom čtěte protokol pro jednotlivé profily, dokud se neobjeví první úspěšný řádek spuštění. Stav služby běžící znamená jen to, že obal neskončil, což platí i tehdy, když jeho potomek okamžitě zemřel.