OpenVPN di Windows bermula semasa log masuk, bukan semasa boot?
Pintasan permulaan melancarkan aplikasi desktop, bukan perkhidmatan automatik. Semak sumber profil mana yang dibaca oleh pemilik sebelum memindahkan fail.
Terowong yang muncul hanya selepas seseorang log masuk biasanya dilancarkan oleh sesi orang itu, bukan oleh perkhidmatan automatik. Punca biasa ialah pintasan permulaan yang melancarkan openvpn-gui.exe, dan ia bukan pemasangan yang rosak. Pintasan itu melancarkan aplikasi desktop di dalam sesi pengguna, dengan profil pengguna itu, stor sijil pengguna itu dan keupayaan pengguna itu untuk menjawab gesaan. Tiada apa-apa tentangnya menjadikan sambungan bebas daripada manusia yang log masuk, dan itulah sebenarnya yang diperlukan oleh terowong sebelum log masuk.
Gejala biasanya mempunyai tiga punca
Tiga corak kelihatan sama dari luar dan mempunyai pembetulan yang berbeza. Yang pertama ialah pemilik pelaksanaan yang merupakan sesi pengguna dan bukan perkhidmatan, iaitu kes pintasan permulaan. Yang kedua ialah profil yang terletak di tempat perkhidmatan tidak melihat, jadi perkhidmatan bermula, tidak menemui apa-apa dan keluar dengan bersih. Yang ketiga ialah profil yang ditemui dan dimulakan oleh perkhidmatan, tetapi kelayakannya memerlukan interaksi yang tidak dapat disediakan oleh mana-mana perkhidmatan.
Mengenal pasti yang mana satu terpakai memerlukan dua bacaan: apa yang dikonfigurasikan untuk dijalankan oleh perkhidmatan, dan fail mana yang boleh dilihatnya. Kedua-duanya satu arahan setiap satu, dan kedua-duanya tidak mengganggu sambungan yang sedang berjalan.
Apa yang sebenarnya dibaca oleh perkhidmatan automatik
Perkhidmatan automatik Community ialah pembalut yang mengimbas direktori permulaan automatik yang dikonfigurasikan, biasanya config-auto di bawah pemasangan, dan melancarkan proses OpenVPN bagi setiap profil sepadan yang ditemuinya. Profil yang kelihatan dalam menu GUI pengguna sebaliknya terletak di bawah profil perayauan pengguna itu, dalam direktori yang tidak dibaca oleh akaun perkhidmatan. Panduan perkhidmatan Windows menerangkan penemuan itu, dan ia wajar dibaca sebelum menyalin apa-apa, kerana direktori sasaran ialah sifat pemasangan dan bukan konvensyen tetap. Oleh itu menyalin fail ke folder GUI tidak mengubah apa-apa bagi perkhidmatan, dan menyalinnya ke setiap folder bernama config mencipta pendua dan bukan pembetulan.
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'
Arahan terakhir menyenaraikan apa yang sebenarnya akan dilihat oleh pembalut, iaitu cara terpantas untuk mengesahkan bahawa profil berada di tempat yang salah. Baris kedua juga menunjukkan akaun yang digunakan oleh perkhidmatan, dan akaun itu menentukan laluan fail dan stor sijil mana yang boleh dicapai sama sekali.
Mengapa log masuk desktop berfungsi dan permulaan boot tidak
Kejayaan di desktop boleh menyembunyikan kebergantungan input untuk masa yang lama. GUI boleh mengumpul frasa laluan kunci, kata laluan akaun atau faktor kedua dalam dialog, kerana ia berjalan dalam sesi interaktif dengan desktop yang kelihatan. Perkhidmatan berjalan dalam sesi tanpa desktop, jadi permintaan untuk input tiada tempat untuk muncul, dan sambungan gagal selepas tamat masa yang sama sekali tidak kelihatan seperti masalah kelayakan.
Akses fail mengikut peraturan yang sama. Kunci peribadi yang disimpan di bawah profil pengguna, atau sijil dalam stor peribadi pengguna, tidak tersedia kepada perkhidmatan yang berjalan sebagai mesin. Bandingkan laluan mutlak, kebenaran dan pilihan sijil yang dibuat oleh setiap pihak daripada menganggap fail profil yang sama bermaksud persekitaran yang sama.
Tugas berjadual yang ditetapkan untuk berjalan sama ada pengguna log masuk atau tidak mewarisi kekangan yang serupa. Ia mungkin berjaya memulakan fail boleh laku GUI dan masih menghasilkan proses yang tidak pernah memperoleh kelayakan, jadi kehadiran proses dalam pengurus tugas bukan bukti terowong yang berfungsi.
Pilih satu pemilik dan uji kitaran hayat sebenar
Untuk sambungan milik orang yang log masuk, gunakan tingkah laku permulaan automatik yang disokong GUI dan jauhkan perkhidmatan daripadanya. Untuk terowong yang mesti wujud sebelum sesiapa log masuk, konfigurasikan perkhidmatan, letakkan profil di tempat pembalut membacanya, dan gunakan mekanisme kelayakan tanpa pengawasan yang disokong seperti kunci tanpa frasa laluan interaktif atau fail kelayakan yang didokumenkan.
Get-Content 'C:\Program Files\OpenVPN\log\openvpn.log' -Tail 40
Get-WinEvent -LogName Application -MaxEvents 20 | Where-Object ProviderName -like '*OpenVPN*'
Uji kitaran hayat yang penting: but semula tanpa sesiapa log masuk, kemudian sambung semula selepas perubahan rangkaian. Kekalkan satu pemilik untuk sambungan, kerana dua mekanisme permulaan yang bersaing biasanya menghasilkan dua contoh yang bertelagah atas laluan yang sama dan sesi pelayan yang sama, yang lebih sukar didiagnosis daripada mana-mana mekanisme itu sahaja.