Én profil, to ejere: NetworkManager eller systemd
En .ovpn-fil er inaktiv, indtil noget ejer den. Sammenlign en NetworkManager-forbindelse med en selvstændig serviceunit, før du kopierer profilen begge steder hen.
Der sker intet med en .ovpn-fil, før noget ejer den. På en Pi-skrivebord er de sandsynlige ejere NetworkManager, som gemmer en importeret forbindelse i sin egen keyfile, og en selvstændig serviceunit, som læser en konfiguration fra en mappe. Det er to driftsmodeller med forskellig lagring, forskellig håndtering af legitimationsoplysninger og forskellige aktiveringsregler. At vælge den ene med vilje er hele opgaven; at kopiere filen begge steder gør bare valget tilfældigt.
Begge kan virke på én maskine, men ikke på samme tunnel i samme øjeblik, og konflikten ligner en netværksfejl snarere end en konfigurationsfejl.
To måder at eje den samme tunnel på
NetworkManagers OpenVPN-pluginnet tilføjer en editor og en tjeneste, som styrer forbindelsen for dig, og at installere OpenVPN-programmet installerer ikke den integration. En selvstændig unit er det omvendte arrangement: ingen editor, ingen integration med skrivebordet, én konfigurationsfil og de rettigheder, uniten giver. Den første holder forbindelsestilstanden i sin egen database, den anden holder den, hvor profilen og uniten siger. Det meste forvirring kommer af at antage, at en importeret profil og en kopieret fil er det samme objekt.
De er ikke to visninger af én ting. Redigering af den downloadede fil ændrer hverken det, NetworkManager gemte, eller det uniten læser, og en af dem kan være den, der byggede den tunnel, du netop har testet.
Følg den forbindelse, skrivebordet faktisk bruger
Den dokumenterede importoperation, nmcli connection import type openvpn file office.ovpn, opretter en forbindelse gennem pluginnet. Notér dens UUID og brug den identifikator bagefter, fordi navne bliver redigeret, og to forbindelser kan dele en etiket. nmcli connection show viser, hvad der findes, og læsning af forbindelsens egne egenskaber fortæller, hvilken fil den kom fra, og hvad den gemmer. Hvis den UUID, du redigerer, ikke er den, skrivebordet aktiverer, er dine ændringer pynt.
Hemmeligheder bor i ejerens lager. At tømme hver gemt hemmelighed for at finde ud af, hvilken profil der er aktiv, er langsomt og risikabelt; spørg i stedet forbindelsesobjektet, og hold privat materiale, hvor ejeren forventer det.
En importeret forbindelse behøver ikke en grafisk session for at køre, men den kan stadig behøve en kilde til legitimationsoplysninger. Om den starter uden opsyn, afhænger af dens tilladelser og hemmeligheder, ikke af om skrivebordet er til stede.
Læs unit-skabelonen, før du stoler på den
Hvor pakken leverer klientuniten i upstream-stil, svarer en instans med navnet office til %i.conf inde i unitens konfigurerede mappe, som for 2.6-skabelonen er /etc/openvpn/client. Læs den installerede unit og eventuelle drop-ins, før du tror på et eksempel fra en guide, fordi distributioner flytter stier. En manuel start fra en terminal beviser intet om tjenestens syn på filer, hemmeligheder eller tilladelser. Skrivebordets adgangskodedialog er heller ikke bevis for, at en ikke-interaktiv unit har en godkendt måde at få den samme adgangskode på.
Giv uniten kun det, den har brug for. At slække på hele tjenestens sandbox, fordi en refereret fil ikke kan læses, bytter en lille tilladelsesrettelse for en stor eksponering, og fejlen nævner normalt den fil, der kræver opmærksomhed.
Afskaf dubletten uden at miste adgang
Hvis begge ejere kan starte tunnelen, vinder den ene til sidst på det forkerte tidspunkt, og taberens ruter og enhed bliver efterladt. Fjern den tilfældige dublet gennem dens egen ejer, hold en gendannelsesvej åben, og bekræft, at den resterende ejer stadig forbinder efter en genstart. To bevidst adskilte VPN'er med forskellige routingpolitikker er et andet designspørgsmål, ikke tilladelse til at to startveje konkurrerer om én forbindelse.
Skriv derefter den livscyklus ned, du har accepteret: manuel aktivering, login eller opstart og genopkobling. Kontroller det gemte endepunkt, modpartens autentificering og den ressource, som tunnelen skal nå, fordi geninstallation af skrivebordet ikke kan erstatte viden om, hvilken konfiguration der kørte.