Kial OpenVPN ekfunkcias ĉe ensaluto sed ne ĉe Windows-startigo?
Starta ligilo lanĉas retuman aplikaĵon, ne la aŭtomatan servon. Kontrolu, kiun profilan fonton la servo legas, antaŭ ol movi dosierojn.
Tuneloj, kiuj aperas nur post kiam iu ensalutas, estas kutime lanĉitaj de la sesio de tiu persono, ne de la aŭtomata servo. La kutima kaŭzanto estas starta ligilo, kiu lanĉas openvpn-gui.exe, kaj tio ne estas rompita instalaĵo. La ligilo lanĉas retuman aplikaĵon ene de uzula sesio, kun la profilo de tiu uzanto, ties certifikaj konservejoj kaj ties kapablo respondi al invito. Nenio el tio igas la konekton sendependa de ensalutinta homo, kaj ĝuste tion postulas tunelo antaŭ ensaluto.
La simptomo kutime havas tri kaŭzojn
Tri ŝablonoj aspektas same de ekstere kaj havas malsamajn riparojn. La unua estas plenumposedanto, kiu estas uzula sesio anstataŭ la servo, kio estas la kazo de la starta ligilo. La dua estas profilo, kiu troviĝas tie, kie la servo ne rigardas, do la servo startas, trovas nenion kaj finiĝas pure. La tria estas profilo, kiun la servo trovas kaj startas, sed kies akreditaĵoj postulas interagon, kiun neniu servo povas provizi.
Distingi, kiu kazo validas, postulas du legaĵojn: kion la servo estas agordita plenumi, kaj kiujn dosierojn ĝi povas vidi. Ambaŭ estas po unu komando, kaj neniu ĝenas funkciantan konekton.
Kion la aŭtomata servo vere legas
La aŭtomata servo de Community estas ĉirkaŭaĵo, kiu skanas sian agorditan aŭtomatan startan dosierujon, kutime config-auto sub la instalaĵo, kaj lanĉas OpenVPN-procezon por ĉiu kongrua profilo, kiun ĝi trovas. Profilo videbla en la GUI-menuo de uzanto loĝas anstataŭe sub la vojaĝa profilo de tiu uzanto, en dosierujo, kiun la serva konto ne legas. La gvidilo pri la Windows-servo priskribas tiun malkovron, kaj indas legi ĝin antaŭ ol kopii ion ajn, ĉar la cela dosierujo estas eco de la instalaĵo, ne fiksa konvencio. Kopii dosieron en la dosierujon de la GUI do ŝanĝas nenion por la servo, kaj kopii ĝin en ĉiun dosierujon nomatan config kreas duplikatojn anstataŭ riparon.
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'
La lasta komando listigas, kion la ĉirkaŭaĵo vere vidos, kio estas la plej rapida maniero konfirmi, ke profilo estas en la malĝusta loko. La dua linio ankaŭ montras la konton, sub kiu la servo funkcias, kaj tiu konto decidas, kiuj dosieraj vojoj kaj certifikaj konservejoj estas atingeblaj.
Kial retuma ensaluto funkcias kaj starta ekfunkcio ne
Sukceso sur la retumo povas longe kaŝi dependecon de enigo. GUI povas kolekti ŝlosilan pasfrazon, kontan pasvorton aŭ duan faktoron en dialogo, ĉar ĝi funkcias en interaga sesio kun videbla retumo. Servo funkcias en sesio sen retumo, do peto pri enigo havas nenie por aperi, kaj la konekto malsukcesas post tempolimo, kiu tute ne aspektas kiel problema akreditaĵo.
Dosiera aliro sekvas la saman regulon. Privata ŝlosilo konservita sub la uzula profilo, aŭ certifikato en la persona konservejo de la uzanto, ne estas disponebla al servo funkcianta kiel la maŝino. Komparu absolutajn vojojn, permesojn kaj la certifikat-elekton, kiun ĉiu flanko faras, anstataŭ supozi, ke la sama profila dosiero signifas la saman medion.
Planita tasko agordita funkcii sendepende de tio, ĉu uzanto ensalutis, heredas similan limigon. Ĝi povas sukcese startigi la plenumeblan dosieron de la GUI kaj tamen produkti procezon, kiu neniam akiras akreditaĵojn, do la ĉeesto de procezo en la taskadministrilo ne estas pruvo de funkcianta tunelo.
Elektu unu posedanton kaj testu la veran vivciklon
Por konekto, kiu apartenas al ensalutinta persono, uzu la subtenatan aŭtomatan starton de la GUI kaj lasu la servon ekster ĝi. Por tunelo, kiu devas ekzisti antaŭ ol iu ensalutos, agordu la servon, metu la profilon tie, kie la ĉirkaŭaĵo legas ĝin, kaj uzu subtenatan senhoman akreditaĵan mekanismon, kiel ŝlosilon sen interaga pasfrazo aŭ dokumentitan akreditaĵan dosieron.
Get-Content 'C:\Program Files\OpenVPN\log\openvpn.log' -Tail 40
Get-WinEvent -LogName Application -MaxEvents 20 | Where-Object ProviderName -like '*OpenVPN*'
Testu la vivciklon, kiu gravas: restartigo sen ke iu ensalutu, poste rekonekto post retŝanĝo. Konservu unu posedanton por la konekto, ĉar du konkurantaj startmekanismoj kutime produktas du instancojn, kiuj luktas por la samaj itineroj kaj la sama servila sesio, kio estas pli malfacile diagnozebla ol iu ajn mekanismo sola.