Profily VPN, ktoré minulý týždeň fungovali, sa po aktualizácii verzie Ubuntu pokazia a protokol aktualizáciu zriedka spomína. Menuje však vrstvu, ktorá zlyhala: TLS handshake, šifru vyjednanú pre dátový kanál, nainštalovaný balík alebo kópiu OpenSSL, ktorú binárka načíta pri štarte. Každá vrstva má vlastnú podobu chyby a vlastnú opravu, preto je klasifikácia prvou prácou a editovanie druhou. Považujte profil za nevinný, kým ho protokol nevymentuje.

Ktorá vrstva zlyhala: handshake, šifra, balík alebo knižnica

Prečítajte si klientsky protokol, kým sa dotknete profilu. najskoršia chyba vo výstupe je tá, ktorá určuje vrstvu; všetko vytlačené po nej je zvyčajne následkom tohto prvého zlyhania. Keď sa klient vôbec nespustí, VPN protokol je nesprávny súbor na otvorenie.

Sťažnosti na certifikáty a podpisy alebo správa o dĺžke kľúča prichádzajú z riadiaceho kanála a z politiky knižnice, ktorá ho spravuje. Varovanie začínajúce DEPRECATED OPTION patrí namiesto toho k vyjednávaniu dátového kanála.

Riadok typu Unrecognized option je tretia kategória: nová binárka už neprijíma direktívu, ktorú stará tolerovala, takže profil treba prepísať, a nie knižnicu uvolniť. Zlyhania balíkov vyzerajú zase inak, pretože nastanú pred spustením akéhokoľvek kódu tunela. Chýbajúca binárka, plugin, ktorý sa nenačíta, alebo repozitár ukazujúci na nesprávne kódové meno dávajú túto podobu. Štyri príznaky, štyri miesta na pohľad a takmer žiadny prienik medzi opravami.

Keď handshake zlyhá, politika TLS odmietne certifikát

Ubuntu 22.04 preniesol systém na OpenSSL 3 a predvolená úroveň zabezpečenia v tejto vetve je prísnejšia na podpisy certifikátov a veľkosti kľúčov než 20.04. Certifikát CA podpísaný starším digestom alebo kľúč pod súčasným prahom teraz zlyhávajú počas handshake. Keďže sa ešte nič neautentifikovalo, chyba sa číta ako nesprávne heslo alebo mŕtvy server.

Úzka oprava pripája šifrovací reťazec len k tomuto spojeniu. V desktopovom editore otvorte profil, prejdite do rozšíreného nastavenia a vložte DEFAULT:@SECLEVEL=0 do poľa TLS šifry. Kľúčový súbor NetworkManageru preberá rovnakú hodnotu pod [vpn]:

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

Reštartujte NetworkManager a pripojte sa znova, pretože démon ukladá spracované profily do pamäte a inak by ďalej používal kópiu, ktorú už má. Vedzte, čo riadok robí, kým si ho ponecháte: toto nastavenie je prah cez niekoľko parametrov certifikátov a kľúčov, nie názov šifry, takže jeho zníženie rozširuje to, čo jediný profil prijíma. Poznamenajte, ktorý server to vyžadoval, a nastavenie zahoďte, keď operátor znovu vydá aktuálny materiál. Zmena /etc/ssl/openssl.cnf dosahuje rovnaký prah pre každý program, ktorý tento súbor číta, čo je ďaleko za VPN.

OpenVPN 2.6 vyžaduje šifru uvedenú na vyjednávanie

Ubuntu 22.10 priniesol OpenVPN 2.6 a v tomto vydaní --cipher prestáva sám vyberať dátový kanál. Šifra musí byť aj vo vyjednávanom zozname data-ciphers, inak klient vytlačí varovanie o zastaraní a potom sa mu nepodarí zdvihnúť tunel.

Plugin NetworkManageru z toho obdobia stále písal len starú direktívu. Tento detail delí diagnózu, pretože profil opravený ručne sa môže pripojiť z shellu a napriek tomu zlyhať z desktopového appletu. Pridajte zoznam do spojového súboru pod [vpn]:

data-ciphers=AES-256-CBC

Použite hodnotu, ktorú server oznamuje, nie tú, ktorú si pamätáte; server ponúkajúci AES-256-GCM nebude vyjednávať s klientskym zoznamom, ktorý uvádza len CBC. Reštartujte správcu a pripojte sa znova, potom pokus zopakujte zo shellu s šifrou výslovne zadanou pre vyjednávanie aj záložnú možnosť:

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

Ak tento príkaz zdvihne tunel, server, certifikáty a prihlasovacie údaje sú v poriadku a jedinou zostávajúcou chybou je uložená voľba správcu. Varovanie o direktíve keysize patrí k rovnakému čisteniu: zakomentujte ju a pôvodný súbor ponechajte vedľa profilu.

Chyby balíkov a pluginov vyzerajú ako chyby VPN

Nie každé zlyhanie po aktualizácii je kryptografické. Repozitár OpenVPN pridaný pod kódovým menom, ktoré vydanie nepoužíva, vytvorí balík, ktorý sa nikdy nenainštaluje, preto porovnajte, čo lsb_release -a hlási, so zoznamovým súborom, ktorý ste pridali. Chýbajúca universe komponenta alebo bezpečnostná kapsa vytvoria balík, ktorý sa vôbec nedá nájsť. Oba prípady nechávajú profil nedotknutý a tunel nemožný.

Prečítajte si chybu správcu balíkov pred VPN protokolom. Ak sa klient nikdy nenainštaloval, žiadne úpravy profilu handshake nevyprodukujú.

Profily s dvoma faktormi, ktoré prestanú žiadať, sú verziou toho istého príbehu pre plugin. Výzva prichádza z autentifikačného pluginu a aktualizácia, ktorá ho vynechala alebo nahradila, nechá profil nedotknutý, kým výzva zmizne. Preinštalujte podporovaný plugin namiesto mazania druhého faktora, aby spojenie fungovalo.

Knižnica dodávateľa sa môže skryť za chybou politiky

Jeden vzor si zaslúži rozpoznanie, pretože poráža každú opravu politiky. Konfiguračný nástroj výrobcu hardvéru môže nainštalovať vlastné knižnice OpenSSL a umiestniť ich pred systémové kópie v hľadacej ceste zavádzača. Klient potom štartuje proti knižnici, ktorú nikto neaktualizoval, a zlyhanie štartu vyzerá presne ako odmietnutý certifikát.

Preinštalovanie balíka VPN nemení, ktorá knižnica sa nájde prvá, a zníženie úrovne TLS nedosiahne na knižnicu, ktorá nikdy neprišla zo systému. Opýtajte sa zavádzača, ktoré kryptografické objekty binárka skutočne rieši:

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

Odstráňte alebo presmerujte kópiu dodávateľa a potom spustite rovnakú kontrolu znova. Očakávaná verzia musí byť tá, ktorá sa používa, kým sa vrátite k profilu.

Pripnutie staršieho klienta kupuje čas, nie riešenie

Ponechanie predchádzajúcej verzie klienta obnoví tunel, kým ponechanie trvá. Tiež zmrazí bezpečnostné aktualizácie tohto balíka a naplánuje rovnaké pokazenie na ďalšiu aktualizáciu, preto to berte ako datované dočasné riešenie, nie ako nápravu.

Ak ho napriek tomu pripnete, podržte balík výslovne, aby ho nehliadaná aktualizácia nemohla zrušiť, zapíšte dôvod a dátum revízie a nastavte pripomienku na ďalšie vydanie profilu od poskytovateľa. Podmienka, ktorú sa oplatí sledovať, je serverový profil vyjednávajúci aktuálnu šifru; akonáhle existuje, pripnutie nemá žiadne opodstatnenie. Nezaznamenané pripnutie sa naopak stane výpadkom, ktorý po pol roku nikto nevysvetlí, pretože človek, ktorý ho použil, už odišiel a súbor nič nezaznamenáva.

Keď nabudúce VPN po aktualizácii verzie zomrie, položte päť otázok za sebou: ktorá vrstva dala prvú chybu, odmietla politika TLS certifikát, je šifra vyjednateľná v oboch smeroch, nainštalovali sa balík a jeho plugin a ktorú knižnicu proces načítava. Až keď všetkých päť vráti čistý výsledok, má downgrade zmysel.

Súvisiace články