OpenVPN-fout: onbekende optie tls-remote of keysize
Een nieuwere OpenVPN-client weigert oude profielregels zoals tls-remote en keysize. Lees de optienaam, vervang de controle en houd de verificatie aan.
Meestal begint het met een profiel dat jarenlang verbinding heeft gemaakt, dat op een nieuwere client wordt geopend en al faalt voordat de tunnel überhaupt start. De terminal toont iets als Options error: Unrecognized option ... in client.ovpn:130: tls-remote, met achteraan een versie tussen haakjes. Lees het als een klacht van de parser: het bestand bevat een richtlijn die deze client niet meer kent.
Dat ene bericht verklaart waarom sleutels opnieuw genereren, het wachtwoord opnieuw intypen of de server controleren niets oplevert. De fout treedt op terwijl de client zijn eigen configuratie leest, nog voordat hij een socket opent. Nuttig werk is de afgewezen richtlijn opsporen en vervangen door het huidige equivalent.
Lees de foutregel voordat je iets wijzigt
Start de client zelf in plaats van hem via een systeemvakpictogram te openen, zodat het bericht zichtbaar is en het pad naar het profiel eenduidig is. Open het bestand op de gemelde regel en bekijk het token dat de client noemt. Het regelnummer is de regel in het profiel, geen versie, en daar gaan mensen de fout in omdat hetzelfde nummer tussen de haakjes als releaseaanduiding staat.
Oude profielgeneratoren schreven niet één slechte richtlijn, maar meerdere. Los de eerste fout op, start de client opnieuw en verwacht dat de volgende opduikt. Die volgorde is normaal en geen teken dat de wijzigingen het erger hebben gemaakt.
Wat er met keysize en tls-remote is gebeurd
keysize vroeg om een ciphersleutellengte in de tijd dat het profiel de cipher expliciet koos. OpenVPN 2.4 heeft het afgeschaft, en latere clients hebben het uit de optietabel verwijderd, dus de parser weigert de regel nu in plaats van hem te negeren. Moderne onderhandeling leidt de sleutellengte af uit de gekozen cipher, daarom valt er voor de richtlijn niets meer te regelen.
tls-remote is in 2.4 verwijderd. Het vergeleek het servercertificaat met een verwachte naam, en de vervanger is verify-x509-name, die strenger is in hoe de naam wordt vergeleken. De oude richtlijn bestaat niet meer, dus een profiel dat haar bevat, zal op een huidige client nooit worden geparseerd.
Los per poging één richtlijn op. Als het profiel ook een cipher opgeeft die de client niet aanbiedt, levert dat later een andere fout op, en beide wijzigingen in één keer doorvoeren maakt het onmogelijk te zien welke de handshake heeft gebroken. Maak na elke wijziging opnieuw verbinding en bewaar de fouttekst. Die gewoonte laat ook een werkende terugvaloptie als een wijziging het erger maakt.
Herschrijf de controle van de serveridentiteit
De vervanging neemt de verwachte naam en een vergelijkingsmodus. verify-x509-name vpn.example.edu name vereist dat het onderwerp van het certificaat precies gelijk is aan die waarde. Andere modi vergelijken een prefix of een volledige onderwerpstring, en de verkeerde modus kiezen verandert een werkend profiel in een nette verificatiefout.
Als het oude tls-remote-argument de volledige common name van de server was, is een exacte name-vergelijking meestal juist. Was het een gedeeltelijke waarde, gebruik dan de prefixmodus in plaats van de verwachte naam in te korten, want een kortere exacte match verifieert niet. Als de oorspronkelijke waarde niet is opgeschreven, vraag degene die de server beheert naar het onderwerp dat zij publiceren.
Dempt de controle niet om de fout te laten verdwijnen. De verificatie van de serveridentiteit verwijderen maakt van een oplosbaar profielprobleem een ongeverifieerde tunnel, en precies dat risico moest de richtlijn voorkomen.
Gecorrigeerd profiel, lokale bewerking of oudere client
Als iemand anders de server beheert, is een actueel profiel van die persoon de schoonste route. Jouw kopie komt van een oudere generator, en hun export gebruikt al de huidige richtlijnen. Eén download haalt de hele categorie fouten weg en houdt toekomstige bewerkingen op één plek.
Beheer je beide kanten, bewerk dan een kopie en bewaar het origineel. Wijzig één richtlijn, sla op, maak verbinding en noteer de clientversie die je hebt getest. Zet een korte notitie bij elke bewerking, want een profiel dat over meerdere sessies is aangepast, is moeilijk uit het geheugen te controleren. Opdrachten vanaf de commandoregel tegen het bewerkte bestand maken die lus snel, omdat de fout direct in de terminal verschijnt.
Vastzetten of teruggaan naar een client van vóór 2.4 laat het bericht ook verdwijnen, en bij een apparaat dat nooit wordt bijgewerkt is dat misschien de enige werkbare noodoplossing. Behandel het als tijdelijk: een oude client op een actuele desktop betekent meestal een oude bibliotheek en een niet-ondersteunde configuratie, en dat is een uitgesteld probleem in plaats van een opgelost probleem.
Nadat de tunnel is opgekomen, lees je het hele profiel nog één keer. Profielen die één verwijderde richtlijn bevatten, bevatten er vaak nog een, en de tweede komt pas boven water als de eerste weg is.