OpenVPN-profilers flytbarhed: flytbare nøgler kontra platformsmuligheder
En .ovpn-fil blander flytbart identitetsmateriale med direktiver, som kun én klient forstår. Sammenlign de to, før du giver certifikatet skylden for en fejl.
Den samme .ovpn-fil åbner en tunnel i én klient og kan ikke starte i en anden, og certifikatet er som regel den første mistænkte. Tit indeholder filen et direktiv, som kun én motor implementerer. En profil er en kontrakt med en bestemt klient, ikke et flytbart script.
Skil det, der følger med identiteten, fra det, der hører til en platform. Så navngiver fejlen sig som regel selv.
Én fil, to kontrakter
En profil samler tre slags indhold: identitetsmateriale som CA- og klientcertifikater og den private nøgle, transportforhold som remote-endpointet og protokollen samt adfærdsdirektiver som DNS-håndtering eller enhedsindstillinger. De to første er bredt flytbare mellem motorer, der understøtter samme protokol. Det tredje er der, hvor implementeringerne går fra hinanden. At behandle hele filen som én flytbar enhed er det, der skaber de forvirrende fejl.
En fil, der virker i en GUI på én platform, er ikke automatisk gyldig til kommandolinjeklienten på en anden. Selv når begge er OpenVPN, er parserne og optionsættene forskellige. Derfor er en vellykket import ikke bevis på en flytbar profil.
Flytbart materiale kontra platformsdirektiver
Identitets- og transportsektionerne er den del, der skal bevares. ca, cert, key og remote beskriver, hvem der forbinder og hvorhen, og de betyder det samme for enhver konform klient.
Adfærdsdirektiver er den del, der skal sammenlignes. block-outside-dns findes for eksempel for at ændre Windows' DNS-adfærd. En Unix-klient genkender den måske slet ikke.
Læs modtagerklientens optionsliste i stedet for afsenderens. OpenVPN 2.6-referencehåndbogen dokumenterer motorens valgmuligheder, og en GUI's importdialog er ikke den liste.
Læs parserfejlen før certifikatet
En fejl, der navngiver en ukendt valgmulighed, er en parserfejl, ikke en autentificeringsfejl. Forbindelsen nåede aldrig TLS, så det hjælper ikke at skifte certifikat. Læs den første fejl fra den faktiske klient og version, og fjern eller erstat derefter kun det direktiv, som klienten ikke kan implementere. At slette certifikat- eller rutepassager for at få filen til at indlæse er måden, hvorpå en fungerende profil bliver en usikker.
Hvis fejlen nævner handshaket, et certifikat eller en cipher, blev profilen parset, og problemet ligger et andet sted.
Gem den originale fil ved siden af den tilpassede. Når den tilpassede fil senere fejler, er originalen kontrolgruppen, der fortæller, om ændringen eller miljøet flyttede sig.
Privilegier er en anden grænse
Privilegier er den anden grænse: at oprette en tunneleanordning, installere ruter og læse en privat nøgle afhænger alle af lokale tilladelser. En nøglefil, som kun root kan læse, er en normal udrulning, ikke en profilfejl. Rettelsen hører til i ejerskab eller capabilities, ikke i filen.
At køre klienten med sudo kan løse en lokal tilladelsesafvisning, og det kan ikke tilføje et direktiv, som binæren ikke implementerer. Det ændrer også, hvilken brugers nøglering, konfigurationsstier og netværksadministrator-kontekst der gælder, så resultatet er ikke den samme test.
Tilpas med vilje
Når en udbyder offentliggør separate profiler, skal du tage den, der er beregnet til modtagerklienten. At tilpasse en anden platforms fil er en sidste udvej. Det kræver en registrering af hver ændret valgmulighed og en kopi af originalen.
Test identitet, routing og DNS som tre separate resultater. En profil, der autentificerer og router, men ødelægger navneopløsningen, er en delvist tilpasset profil, ikke en fungerende.