NM OpenVPN: den gemte profil er ikke din .ovpn-fil
Import oversætter indstillinger til en gemt forbindelse. Læs vpn.data tilbage, kontroller ta og ta-dir, og opdater én post i stedet for at erstatte ordbogen.
Den samme .ovpn fil forbinder fra en shell og udløber efter import til NetworkManager. Den naturlige konklusion er, at VPN'en er i stykker. Den mere sandsynlige forklaring er mindre: NetworkManager gemte ikke filen, den importerede en del af den til en gemt forbindelse, og den kørende tunnel bruger i stedet disse gemte data. Hvad filen siger nu, er irrelevant for det, profilen indeholder.
Filen er ikke profilen
Import er en oversættelse, ikke en montering. De indstillinger, plugin'et forstår, bliver nøgler i forbindelsens vpn.data ordbog; indstillinger, det ikke forstår, kasseres eller registreres et andet sted, og den oprindelige sti er kun en reference. Redigering af kildefilen bagefter ændrer intet ved den forbindelse, der allerede er gemt.
Det hul forklarer en hel familie af rapporter: den delte nøgle blev roteret, filen blev opdateret, og tunnelen fejler stadig. Den gemte profil peger stadig på den gamle sti eller den gamle værdi, og kommandolinjen bliver ved med at virke, fordi den læser den fil, du redigerede. To klienter, to sandhedskilder, og kun én af dem blev opdateret.
Læs den gemte profil, ikke dialogen
nmcli -f connection.id,connection.uuid,vpn.service-type,vpn.data connection show office-vpn
Brug UUID'en, når to profiler deler et navn, og bekræft, at tjenestetypen er det OpenVPN plugin, du forventer, og ikke en anden VPN-type, der tilfældigvis er installeret. Sammenlign derefter endepunktet, transporten og certifikatreferencerne med det fungerende kald.
En værdi, der er synlig i en grafisk editor, er ikke bevis for, at den blev gemt. Gem, genåbn og læs den tilbage via kommandolinjen; historiske gemmefejl er en grund til at kontrollere de gemte data, ikke et bevis for, at enhver nuværende build har samme fejl. Kontrollen koster én kommando.
To nøgler og en retning, der betyder noget
For en forbindelse med TLS-godkendelse gemmer plugin'et stien til den delte nøgle i ta og retningen i ta-dir, når udrulningen bruger en. Begge lever i profilen dataordbog, og begge skal matche det, serveren forventer.
Retning er en beslutning på serversiden, udtrykt på klienten. At vælge en, fordi en naboprofil har den, er måden, hvorpå en fungerende nøgle begynder at fejle et håndtryk. Hvis serverkonfigurationen er uden retning, bør klienten ikke opfinde en retning.
Selve nøglefilen skal kunne læses af plugin'et i den sammenhæng, det faktisk kører i. En indelukket pakke har en anden filsystemvisning end en almindelig skrivebordsinstallation, så en sti, der findes i din shell, kan være usynlig for tjenesten.
Opdater én post, ikke ordbogen
nmcli connection modify office-vpn +vpn.data 'ta=/etc/NetworkManager/certs/office-ta.key'
nmcli connection modify office-vpn +vpn.data 'ta-dir=1'
Det indledende plus opdaterer enkelte ordbogsposter. At tildele vpn.data uden det erstatter hele ordbogen, og det er sådan én manglende nøgle bliver til fem ødelagte indstillinger. Læs profilen tilbage efter ændringen, og bekræft at de andre poster overlevede. En ordbog, der har mistet sit fjernendepunkt og sine certifikater, er en meget længere eftermiddag end den, du startede med.
Genopret forbindelsen via de normale kontroller, og se på det trin, der fejler. Hvis den delte nøgles port nu passerer, og klienten rapporterer en certifikat- eller brugergodkendelsesfejl, er du kommet videre, og den næste undersøgelse er en anden.
Sammenbland ikke kontrolkanalens tilstande
tls-auth, tls-crypt, og tls-crypt-v2 er forskellige arrangementer. En nøglefil, der ser ens ud, gør dem ikke udskiftelige, og udfyldning af TLS-Auth-felterne, fordi en anden profil indeholder en formateret nøgle, giver en profil, der fejler på en måde, der ligner en forkert nøgle.
Brug den plugintilknytning, der svarer til tilstanden i serverens konfiguration. Når tilstanden er uklar, spørg serverejeren i stedet for at gætte ud fra filens første linje.
Behold en gendannelsesvej, når tunnelen bærer din administrationssession. En gemt ændring er ikke nødvendigvis en anvendt ændring, og en vellykket import er ikke bevis for, at hver kildeindstilling var understøttet. Begge huller er værd at kende, før du genopretter forbindelsen, du arbejder igennem.