VPN profily, které minulý týden fungovaly, se po upgradu verze Ubuntu rozbijí a protokol upgrade většinou vůbec nezmiňuje. Zmiňuje ale vrstvu, která selhala: TLS handshake, šifru vyjednanou pro datový kanál, nainstalovaný balíček nebo kopii OpenSSL, kterou binárka načítá při startu. Každá vrstva má vlastní podobu chyby a vlastní opravu, takže klasifikace je první práce a editace druhá. Považujte profil za nevinný, dokud ho protokol nejmenuje.

Která vrstva selhala: handshake, šifra, balíček, nebo knihovna

Přečtěte si klientský protokol, než se dotknete profilu. nejranější chyba ve výstupu je ta, která určuje vrstvu; vše vytištěné po ní je obvykle následek tohoto prvního selhání. Když se klient vůbec nespustí, je VPN protokol špatný soubor k otevření.

Stížnosti na certifikáty a podpisy nebo zpráva o délce klíče pocházejí z řídicího kanálu a z politiky knihovny, která ho řídí. Varování začínající DEPRECATED OPTION patří naopak k vyjednávání datového kanálu.

Řádek typu Unrecognized option je třetí kategorie: nová binárka už nepřijímá direktivu, kterou stará tolerovala, takže profil je třeba přepsat, a ne knihovnu uvolnit. Selhání balíčků vypadají zase jinak, protože nastávají dřív, než se spustí jakýkoli kód tunelu. Chybějící binárka, plugin, který se nenačte, nebo repozitář mířící na špatné kódové jméno všechny dávají tento tvar. Čtyři příznaky, čtyři místa, kam se dívat, a téměř žádný překryv mezi opravami.

Když handshake selže, certifikát odmítá politika TLS

Ubuntu 22.04 převedlo systém na OpenSSL 3 a výchozí úroveň zabezpečení v této větvi je přísnější k podpisům certifikátů a velikostem klíčů než v 20.04. Certifikát CA podepsaný starším digestem nebo klíč pod současným prahem nyní během handshake selhávají. Protože se ještě nic neautentizovalo, chyba vypadá jako špatné heslo nebo mrtvý server.

Úzká oprava připojí šifrovací řetězec pouze k tomuto spojení. V desktopovém editoru otevřete profil, přejděte do pokročilého nastavení a vložte DEFAULT:@SECLEVEL=0 do pole TLS šifry. Klíčový soubor NetworkManageru bere stejnou hodnotu pod [vpn]:

[vpn]
tls-cipher=DEFAULT:@SECLEVEL=0

Restartujte NetworkManager a připojte se znovu, protože démon si ukládá parsované profily do mezipaměti a jinak bude dál používat kopii, kterou už drží. Vězte, co řádek dělá, než si ho ponecháte: toto nastavení je práh přes několik parametrů certifikátů a klíčů, nikoli název šifry, takže jeho snížení rozšiřuje to, co jediný profil přijímá. Poznamenejte si, který server to vyžadoval, a nastavení zahoďte, jakmile operátor vydá aktuální materiál. Změna /etc/ssl/openssl.cnf dosáhne stejného prahu pro každý program, který tento soubor čte, což je daleko za VPN.

OpenVPN 2.6 vyžaduje šifru uvedenou pro vyjednávání

Ubuntu 22.10 dodalo OpenVPN 2.6 a v tomto vydání --cipher přestává samo vybírat datový kanál. Šifra musí být také přítomna ve vyjednávaném seznamu data-ciphers, jinak klient vytiskne varování o zastaralosti a pak tunel nezvedne.

Plugin NetworkManageru ze stejného období stále psal jen starou direktivu. Tento detail rozděluje diagnózu, protože profil opravený ručně se může připojit z shellu a přesto selhat z desktopového appletu. Přidejte seznam do souboru spojení pod [vpn]:

data-ciphers=AES-256-CBC

Použijte hodnotu, kterou server inzeruje, ne tu, kterou si pamatujete; server nabízející AES-256-GCM nevyjedná s klientským seznamem, který uvádí jen CBC. Restartujte správce a připojte se znovu, pak pokus zopakujte ze shellu s šifrou předanou výslovně pro vyjednávání i záložní variantu:

sudo openvpn --config client.ovpn --data-ciphers AES-256-CBC --data-ciphers-fallback AES-256-CBC

Pokud tento příkaz tunel zvedne, server, certifikáty i přihlašovací údaje jsou v pořádku a jedinou zbývající závadou je uložená volba správce. Varování o direktivě keysize patří ke stejnému úklidu: zakomentujte ji a původní soubor ponechte vedle profilu.

Závady balíčků a pluginů vypadají jako závady VPN

Ne každé selhání po upgradu je kryptografické. Repozitář OpenVPN přidaný pod kódovým jménem, které vydání nepoužívá, vytvoří balíček, který se nikdy nenainstaluje, takže porovnejte, co lsb_release -a hlásí, se seznamem, který jste přidali. Chybějící komponenta universe nebo bezpečnostní kapsa vytvoří balíček, který nelze vůbec najít. Oba případy nechávají profil nedotčený a tunel nemožný.

Přečtěte si chybu správce balíčků dřív než VPN protokol. Pokud klient nebyl nikdy nainstalován, žádné úpravy profilu handshake nevyprodukují.

Profily s dvěma faktory, které přestanou vyžadovat potvrzení, jsou verzí stejného příběhu pro plugin. Výzva přichází z autentizačního pluginu a upgrade, který ho vypustil nebo nahradil, nechá profil nedotčený, zatímco výzva zmizí. Přeinstalujte podporovaný plugin, místo abyste mazali druhý faktor, jen aby spojení fungovalo.

Knihovna dodavatele se může skrývat za chybou politiky

Jeden vzorec si zaslouží rozpoznání, protože poráží každou opravu politiky. Konfigurační nástroj výrobce hardwaru může nainstalovat vlastní knihovny OpenSSL a umístit je před systémové kopie v hledací cestě zavaděče. Klient pak startuje proti knihovně, kterou nikdo neupgradoval, a selhání startu vypadá přesně jako odmítnutý certifikát.

Přeinstalace VPN balíčku nemění, která knihovna je nalezena první, a snížení úrovně TLS nedosáhne na knihovnu, která nikdy nepřišla ze systému. Zeptejte se zavaděče, které kryptografické objekty binárka skutečně řeší:

ldd /usr/sbin/openvpn | grep -i -E 'ssl|crypto'

Odstraňte nebo přesměrujte kopii dodavatele a potom stejnou kontrolu spusťte znovu. Očekávaná verze musí být ta, která se používá, než se vrátíte k profilu.

Připíchnutí staršího klienta kupuje čas, ne řešení

Podržení předchozí verze klienta obnoví tunel, dokud podržení trvá. Také zmrazí bezpečnostní aktualizace tohoto balíčku a naplánuje stejné rozbití na příští upgrade, takže to berte jako datované provizorní řešení, nikoli jako nápravu.

Pokud ho přesto připnete, podržte balíček výslovně, aby ho nehlídaný upgrade nemohl zrušit, zapište důvod a datum revize a nastavte připomínku na další vydání profilu od poskytovatele. Podmínka, kterou stojí za to sledovat, je serverový profil vyjednávající aktuální šifru; jakmile existuje, připíchnutí ztrácí veškeré opodstatnění. Nezaznamenané připíchnutí se naopak stane výpadkem, který po půl roce nikdo nevysvětlí, protože člověk, který ho použil, už odešel a soubor nic nezaznamenává.

Až příště VPN po upgradu verze umře, položte pět otázek za sebou: která vrstva dala první chybu, odmítla politika TLS certifikát, je šifra vyjednatelná oběma směry, nainstaloval se balíček i jeho plugin a kterou knihovnu proces načítá. Teprve když všech pět vrátí čistý výsledek, má downgrade smysl.

Související články