Miért indul el az OpenVPN bejelentkezéskor, de rendszerindításkor nem?
Az indítópulton lévő parancsikon asztali alkalmazást indít, nem az automatikus szolgáltatást. Ellenőrizze, melyik profilforrást olvassa a szolgáltatás, mielőtt fájlokat mozgat.
Azok az alagutak, amelyek csak azután jelennek meg, hogy valaki bejelentkezett, általában az adott személy munkamenetéből indulnak, nem az automatikus szolgáltatásból. A szokásos bűnös egy indítópulton lévő parancsikon, amely elindítja a következőt: openvpn-gui.exe, és ez nem hibás telepítés. A parancsikon asztali alkalmazást indít egy felhasználói munkameneten belül, az adott felhasználó profiljával, tanúsítványtárolóival és azzal a képességével, hogy válaszoljon egy felszólításra. Ebből semmi nem teszi a kapcsolatot függetlenné egy bejelentkezett embertől, és pontosan ezt kívánja meg a bejelentkezés előtti alagút.
A tünetnek általában három oka van
Három minta kívülről hasonlónak tűnik, és különböző javításokat igényel. Az első egy végrehajtási tulajdonos, amely felhasználói munkamenet a szolgáltatás helyett, ez az indítópultos parancsikon esete. A második egy profil, amely ott él, ahová a szolgáltatás nem néz, így a szolgáltatás elindul, nem talál semmit, és tisztán kilép. A harmadik egy profil, amelyet a szolgáltatás megtalál és elindít, de a hitelesítő adatai olyan interakciót igényelnek, amelyet egyetlen szolgáltatás sem tud biztosítani.
Annak megállapítása, melyik eset áll fenn, két olvasást igényel: mit futtat a szolgáltatás, és mely fájlokat lát. Mindkettő egy-egy parancs, és egyik sem zavar egy futó kapcsolatot.
Mit olvas valójában az automatikus szolgáltatás
A Community automatikus szolgáltatása egy burkoló, amely beolvassa a beállított automatikus indítási könyvtárát, általában a telepítés alatti config-auto könyvtárat, és minden talált megfelelő profilhoz OpenVPN-folyamatot indít. A felhasználó GUI-menüjében látható profil viszont az adott felhasználó barangoló profilja alatt él, egy olyan könyvtárban, amelyet a szolgáltatásfiók nem olvas. A Windows-szolgáltatás útmutatója leírja ezt a felderítést, és érdemes elolvasni, mielőtt bármit másol, mert a célkönyvtár a telepítés tulajdonsága, nem rögzített konvenció. Ezért egy fájl átmásolása a GUI mappájába semmit nem változtat a szolgáltatás számára, és minden config nevű mappába másolása javítás helyett duplikátumokat hoz létre.
Get-Service OpenVPNService | Select-Object Status, StartType
Get-CimInstance Win32_Service | Where-Object Name -eq 'OpenVPNService' | Select-Object PathName, StartName
gci 'C:\Program Files\OpenVPN\config-auto'
Az utolsó parancs felsorolja, mit fog valójában látni a burkoló, és ez a leggyorsabb módja annak megerősítésére, hogy egy profil rossz helyen van. A második sor azt a fiókot is megmutatja, amely alatt a szolgáltatás fut, és ez a fiók dönti el, mely fájlútvonalak és tanúsítványtárolók érhetők el egyáltalán.
Miért működik az asztali bejelentkezés, és miért nem a rendszerindítás
Az asztali siker sokáig elrejtheti a bemenettől való függőséget. A GUI össze tud gyűjteni egy kulcsmondatot, egy fiókjelszót vagy egy második tényezőt egy párbeszédablakban, mert látható asztallal rendelkező interaktív munkamenetben fut. A szolgáltatás asztal nélküli munkamenetben fut, így a bemeneti kérésnek nincs hol megjelennie, és a kapcsolat egy időtúllépés után megszakad, amely egyáltalán nem hasonlít hitelesítőadat-problémára.
A fájlhozzáférés ugyanezt a szabályt követi. A felhasználói profil alatt tárolt privát kulcs vagy a felhasználó személyes tárolójában lévő tanúsítvány nem érhető el a gépként futó szolgáltatás számára. Hasonlítsa össze az abszolút útvonalakat, az engedélyeket és az egyes oldalak tanúsítványválasztását ahelyett, hogy feltételezné, ugyanaz a profilfájl ugyanazt a környezetet jelenti.
Egy ütemezett feladat, amely attól függetlenül fut, hogy be van-e jelentkezve egy felhasználó, hasonló korlátozást örököl. Sikeresen elindíthatja a GUI végrehajtható fájlját, és mégis olyan folyamatot hozhat létre, amely soha nem szerez hitelesítő adatokat, így egy folyamat jelenléte a Feladatkezelőben nem bizonyíték a működő alagútra.
Válasszon egy tulajdonost, és tesztelje a valódi életciklust
Egy bejelentkezett személyhez tartozó kapcsolatnál használja a GUI támogatott automatikus indítását, és hagyja ki belőle a szolgáltatást. Egy olyan alagútnál, amelynek léteznie kell, mielőtt bárki bejelentkezik, konfigurálja a szolgáltatást, helyezze a profilt oda, ahol a burkoló olvassa, és használjon támogatott felügyelet nélküli hitelesítőadat-mechanizmust, például interaktív kulcsmondat nélküli kulcsot vagy dokumentált hitelesítőadat-fájlt.
Get-Content 'C:\Program Files\OpenVPN\log\openvpn.log' -Tail 40
Get-WinEvent -LogName Application -MaxEvents 20 | Where-Object ProviderName -like '*OpenVPN*'
Tesztelje a fontos életciklust: újraindítás úgy, hogy senki nem jelentkezik be, majd újracsatlakozás hálózatváltozás után. Tartson egy tulajdonost a kapcsolathoz, mert két versengő indítási mechanizmus általában két példányt hoz létre, amelyek ugyanazokért az útvonalakért és ugyanazért a kiszolgálómunkamenetért küzdenek, és ezt nehezebb diagnosztizálni, mint bármelyik mechanizmust külön.