Wat een .ovpn-bestand werkelijk bevat, en wat het niet kan
Een .ovpn-bestand configureert je client, niet de server. Zie wat de transport-, sleutel- en routineregels kunnen doen, en waar hun invloed ophoudt.
De meeste mensen nemen aan dat een .ovpn-bestand een VPN configureert. Dat doet het niet: het configureert één client, en alles wat het vraagt moet al aan de andere kant bestaan. Een regel in het bestand wijzigen kan veranderen wat je machine probeert, nooit wat de server biedt. Dat onderscheid verklaart het grootste deel van de verwarring rond profielen die niet importeren of geen verbinding maken.
Lees het bestand als een lijst met verzoeken aan je client, en de meeste regels worden vanzelf duidelijk.
Het bestand beschrijft je client, niet de server
Een profiel bundelt een remote-eindpunt, een transport, een interfacetype, identiteitsmateriaal en elk clientgedrag dat de operator wil. Elke regel wordt bij het opstarten door de client uitgevoerd. Geen ervan bereikt de server als configuratiewijziging, en geen ervan kan een luisteraar aanmaken die nog niet draait. Een profiel dat TCP 443 noemt tegen een server die alleen op UDP 1194 luistert mislukt al bij het eerste pakket.
Daarom gedraagt hetzelfde bestand zich anders op twee clients: het bestand vraagt, en de client bepaalt hoeveel van het verzoek hij kan inwilligen.
Transportregels moeten overeenkomen met een luisteraar die al bestaat
proto en remote moeten overeenkomen met wat de server werkelijk bindt. UDP is de gebruikelijke keuze omdat een verloren datagram de tunnel niet laat stokken, terwijl TCP beperkende netwerken kan overleven ten koste van head-of-line-blokkering in de tunnel. Een profiel van UDP naar TCP omzetten zorgt er niet voor dat de server TCP accepteert; het zorgt er alleen voor dat de client naar een poort stuurt die niemand leest.
Poort 443 is populair omdat hij netwerken passeert die bijna niets anders toestaan, en het blijft een OpenVPN sessie in plaats van een HTTPS-verzoek. Als de operator meerdere remote regels publiceert, probeert de client ze op volgorde, wat een failoverlijst is en geen beslissing over loadbalancing. Houd de combinaties die de operator leverde aan in plaats van een host uit de ene vermelding te mengen met een poort uit een andere.
Ingebedde sleutels veranderen hoe je met het bestand omgaat
Certificaten en sleutels kunnen inline staan tussen de tags <ca>, <cert> en <key>, of als afzonderlijke bestanden worden genoemd. Ingebed materiaal maakt het profiel zelfstandig en maakt het ook een geheim, omdat de privésleutel van de client erin meereist. Een CA-certificaat is openbaar vertrouwensmateriaal en kan veilig worden gedeeld; een privésleutel niet, zelfs niet als die op een onleesbaar tekstblok lijkt.
De wachtwoordzin die een sleutel beschermt, is een apart geheim van het accountwachtwoord, en ze door elkaar halen levert een authenticatiefout op die op verkeerde inloggegevens lijkt.
Routes en DNS komen misschien helemaal niet uit het bestand
Routing kan door de server worden geduwd, door het profiel met redirect-gateway worden ingesteld, of aan de eigen standaardwaarden van de client worden overgelaten. Het gedownloade bestand bepaalt dus niet volledig waar het verkeer heen gaat nadat de tunnel omhoog is. Wanneer interne namen oplossen en openbare sites niet, doet het split-tunnelbeleid wat het is ontworpen om te doen, en faalt het niet.
DNS volgt hetzelfde patroon: een geduwde dhcp-option DNS kan door de client worden toegepast, genegeerd of door een lokale resolverbeheerder worden overschreven. Controleer de status van de resolver na het verbinden in plaats van het profiel opnieuw te lezen.
Niet-ondersteunde opties zijn een kwestie van clientversie
Importwaarschuwingen betekenen meestal dat de client een richtlijn niet implementeert, niet dat het bestand beschadigd is. Desktopclients kunnen scripts en plug-ins uitvoeren onder gedocumenteerde controles, terwijl mobiele clients een smaller aanbod accepteren en regels die ze niet begrijpen stil kunnen laten vallen. Een cipher- of TLS-instelling die een oudere client weigert, is een versieprobleem dat met de operator moet worden opgelost. Onbekende rechten inschakelen om een import af te dwingen, ruilt een waarschuwing voor een groter aanvalsoppervlak.
Bewaar het originele bestand ter vergelijking, noteer de exacte niet-ondersteunde richtlijn in je verzoek, en vraag om een profiel dat is gebouwd voor de client die je werkelijk gebruikt.
Bevestig na elke vervanging welke profielvermelding de app gebruikt, want het importeren van een nieuw bestand overschrijft niet altijd het oude.