Profil se stáhne, naimportuje a poté se zastaví na řádku 12 souboru se zprávou Unrecognized option, která uvádí keysize. Na účtu se nic nezměnilo a server dál přijímá ostatní klienty. Změnil se sám klient: Ubuntu 24.04 instaluje OpenVPN 2.6, zatímco export byl napsán pro 2.4. Oprava je krátká série mazání a pořadí je důležité, protože každá zastaralá volba ukončí parsování dřív, než se ta další vůbec přečte.

Přečtěte si řádek s chybou, než se souboru dotknete

OpenVPN uvede soubor a řádek, kde se parsování zastavilo, takže na jedno spuštění opravíte jen jeden problém. Spouštějte profil z terminálu, ne z appletu na ploše, protože applet obvykle spolkne stderr a číslo řádku je jediný spolehlivý ukazatel, který dostanete: sudo openvpn --config /etc/openvpn/client/provider.ovpn. Opravte ten řádek, spusťte znovu a čekejte, že další selhání uvede jinou volbu.

Chyba parsování se vždy objeví před jakýmkoli TLS handshake, takže zpráva, která zmiňuje certifikát, už fázi syntaxe prošla. Tento rozdíl vám brání upravovat soubor, který selhává jen při autentizaci. Čtěte první slovo zprávy, ne její střed.

Tři třídy selhání, tři různé opravy

Staré exporty selhávají třemi rozlišitelnými způsoby a právě slévání do jednoho problému vede lidi k přeinstalaci balíčků, které nikdy nebyly rozbité. Formulace zprávy vám řekne, ve které třídě jste, ještě než soubor otevřete.

  • Chyby parsování uvedou soubor a řádek a zastaví se, než vůbec vznikne provoz.
  • Chyby vyjednávání se připojí a pak oznámí, že se obě strany nedohodly na společné šifře nebo přijatelném datovém kanálu.
  • Chyby autentizace dojdou nejdál a uvedou certifikát, uživatele nebo odmítnuté přihlašovací údaje.

Úprava profilu opraví jen první třídu. Vyjednávání potřebuje rozhodnutí na obou koncích tunelu a odmítnuté přihlašovací údaje nejsou vůbec problém syntaxe. Pokud vaše zpráva zmiňuje společnou šifru nebo datový kanál, mazání níže nic nezmění.

Smažte volby, které 2.6 odstranila, v tomto pořadí

Každý z těchto řádků zastaví parsování sám o sobě, takže klient je hlásí jeden po druhém. Projděte seznam dolů a po každém smazání spusťte znovu.

Nejprve smažte keysize, protože nemá moderní ekvivalent a jeho přítomnost obvykle značí šifru, kterou současný klient stejně odmítá. Potom smažte ncp-disable, který řídil vyjednávání šifer, byl zastaralý ve 2.5 a ve 2.6 už není. Nahraďte ns-cert-type server za remote-cert-tls server, což vyjadřuje stejný záměr podporovanou kontrolou. Historie změn 2.6 uvádí zbývající odstranění vedle jejich náhrad, takže vše, co parser stále odmítá, má zdokumentovanou odpověď.

Před první úpravou si uložte kopii původního profilu. Poskytovatelé exporty regenerují a diff proti nedotčenému souboru je nejrychlejší způsob, jak oddělit vaše změny od jejich. Pokud smazání nechá klienta nastartovat, ale tunel stále selhává, přešli jste do třídy vyjednávání a zbývající řádky nejsou příčinou. Dejte verzi klienta do názvu souboru, aby další člověk věděl, na kterou verzi úpravy cílí.

Nechte BF-CBC běžet jen jako omezenou zálohu

Někteří poskytovatelé stále ukončují spojení na BF-CBC, se kterou OpenVPN 2.6 bez pomoci nevyjedná, protože šifra má 64bitový blok. Úzká oprava je záložní seznam plus starý poskytovatel OpenSSL, ne downgrade celého klienta.

providers legacy default
data-ciphers AES-256-GCM:AES-128-GCM
data-ciphers-fallback BF-CBC

První řádek načte starého poskytovatele, aby OpenSSL tuto šifru ještě dokázal vytvořit, druhý zachová moderní vyjednávání pro protějšky, které ho podporují, a třetí platí jen tehdy, když server nenabídne nic lepšího. Je to záměrné oslabení tunelu, takže si vedle souboru poznamenejte, proč existuje. Zároveň požádejte poskytovatele o regenerovaný export, protože záloha je most, ne cíl.

Nesáhejte po --compat-mode jako po univerzální odpovědi. Mění několik chování najednou, včetně výchozích hodnot vyjednávání a převyjednávání, takže se nikdy nedozvíte, která změna byla důležitá. Dejte přednost třem výslovným řádkům výše, protože každý z nich uvádí svůj vlastní účinek.

Ověřte to s profilem, který klient skutečně načítá

Importovaná připojení se často kopírují do systémového adresáře, takže úprava souboru ve složce stahování nemusí změnit vůbec nic. Najděte kopii, která běží: sudo grep -rl "remote " /etc/NetworkManager/system-connections /etc/openvpn. Pak spusťte tunel a přečtěte řádek protokolu, který hlásí, která šifra datového kanálu byla skutečně zvolena. Připojení, které dokončí handshake na záloze, vám říká, že server nikdy nenabídl nic moderního.

Testujte ze sítě, která není ta, kterou poskytovatel očekává, aby se captive portal nebo filtrovaná hostující síť nevydávaly za závadu profilu. K jakékoli žádosti o podporu si poznamenejte verzi klienta.

Jakmile tunel stojí, pošlete jeden požadavek, který jím musí projít, a jeden, který nesmí, a pak potvrďte, že odpověď resolveru se změnila tak, jak jste čekali. Pokud se profil už parsuje, ale spojení stále selhává, nechali jste problém syntaxe za sebou a text chyby uvede novou třídu. Držte upravený soubor ve správě verzí vedle poznámky, která uvádí verzi OpenVPN, na kterou cílí.

Související články