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.

Kapcsolódó cikkek