Zašto je OpenVPN prestao da se povezuje nakon nadogradnje Ubuntua?
Ubuntu 22.04 i 22.10 promijenili su OpenSSL politiku, podrazumijevano pregovaranje šifre i zadane postavke paketa. Pročitajte fazu koja pada prije nego što uredite profil.
VPN profili koji su radili prošle sedmice pucaju nakon nadogradnje izdanja Ubuntua, a dnevnik rijetko uopće spominje nadogradnju. Ono što imenuje jeste sloj koji je pao: TLS rukovanje, šifra pregovarana za kanal podataka, paket koji je instaliran ili kopija OpenSSL-a koju binarni fajl učitava pri pokretanju. Svaki sloj ima svoj oblik greške i svoj popravak, zbog čega je klasifikacija prvi posao, a uređivanje drugi. Smatrajte profil nevinim dok ga dnevnik ne imenuje.
Koji je sloj pao: rukovanje, šifra, paket ili biblioteka
Pročitajte dnevnik klijenta prije nego što dirnete profil. najranija greška u izlazu je ona koja identificira sloj; sve što se ispiše nakon nje obično je posljedica tog prvog pada. Kada se klijent uopće ne pokrene, VPN dnevnik je pogrešan fajl za otvaranje.
Žalbe na certifikate i potpise, ili poruka o dužini ključa, dolaze iz kontrolnog kanala i politike biblioteke koja ga uređuje. Upozorenje koje počinje sa DEPRECATED OPTION pripada umjesto toga pregovaranju kanala podataka.
Linija oblika Unrecognized option je treća kategorija: nova binarna datoteka više ne prihvaća direktivu koju je stara tolerisala, pa profil treba prepisati, a ne biblioteku popustiti. Kvarovi paketa izgledaju opet drugačije jer se dešavaju prije nego što se pokrene ijedan kod tunela. Nedostajuća binarna datoteka, dodatak koji se ne učitava ili repozitorij koji pokazuje na pogrešno kodno ime svi daju taj oblik. Četiri simptoma, četiri mjesta za gledanje i gotovo nikakvo preklapanje između popravaka.
Kada rukovanje padne, TLS politika odbija certifikat
Ubuntu 22.04 premjestio je sistem na OpenSSL 3, a podrazumijevani nivo sigurnosti u toj grani stroži je prema potpisima certifikata i veličinama ključeva nego što je bio u 20.04. CA certifikat potpisan starijim sažetkom ili ključ ispod trenutnog praga sada padaju tokom rukovanja. Pošto ništa još nije autentificirano, greška se čita kao pogrešna lozinka ili mrtav server.
Uski popravak prikačinje šifrirani niz samo na ovu vezu. U stolnom uređivaču otvorite profil, pređite na napredne postavke i stavite DEFAULT:@SECLEVEL=0 u polje TLS šifre. NetworkManager datoteka s ključem uzima istu vrijednost pod [vpn]:
[vpn]
tls-cipher=DEFAULT:@SECLEVEL=0Restartujte NetworkManager i ponovo se povežite, jer demon kešira raščlanjene profile i inače će nastaviti koristiti kopiju koju već drži. Znajte šta linija radi prije nego što je zadržite: ta postavka je prag preko nekoliko parametara certifikata i ključeva, a ne naziv šifre, pa njeno snižavanje širi ono što pojedinačni profil prihvaća. Zapišite koji je server to zahtijevao i odbacite postavku kada operater ponovo izda aktuelni materijal. Mijenjanje /etc/ssl/openssl.cnf postiže isti prag za svaki program koji čita taj fajl, što je daleko izvan VPN-a.
OpenVPN 2.6 zahtijeva da šifra bude navedena za pregovaranje
Ubuntu 22.10 isporučio je OpenVPN 2.6, a u tom izdanju --cipher prestaje sam birati kanal podataka. Šifra mora biti prisutna i na pregovaranoj listi data-ciphers, inače klijent ispiše upozorenje o zastarjelosti i zatim ne uspije podići tunel.
NetworkManager dodatak iz istog perioda još je pisao samo staru direktivu. Taj detalj dijeli dijagnozu, jer profil ispravljen ručno može se povezati iz ljuske i ipak pasti iz stolne aplikacije. Dodajte listu u datoteku veze pod [vpn]:
data-ciphers=AES-256-CBCKoristite vrijednost koju server oglašava, a ne onu koju pamtite; server koji šalje AES-256-GCM neće pregovarati s klijentskom listom koja navodi samo CBC. Restartujte menadžer i povežite se ponovo, pa ponovite pokušaj iz ljuske sa šifrom eksplicitno proslijeđenom i za pregovaranje i za rezervu:
sudo openvpn --config client.ovpn --data-ciphers AES-256-CBC --data-ciphers-fallback AES-256-CBCAko ta komanda podigne tunel, server, certifikati i vjerodajnice su svi ispravni i jedini preostali kvar je sačuvana opcija menadžera. Upozorenje o direktivi keysize pripada istom čišćenju: zakomentarišite je i čuvajte originalni fajl pored profila.
Kvarovi paketa i dodataka izgledaju kao VPN kvarovi
Nije svaki kvar nakon nadogradnje kriptografski. OpenVPN repozitorij dodan pod kodnim imenom koje izdanje ne koristi daje paket koji se nikada ne instalira, pa uporedite šta lsb_release -a prijavljuje s listom koju ste dodali. Nedostajuća komponenta universe ili sigurnosni džep daje paket koji se uopće ne može pronaći. Oba slučaja ostavljaju profil netaknutim, a tunel nemogućim.
Pročitajte grešku menadžera paketa prije VPN dnevnika. Ako klijent nikada nije instaliran, nikakvo uređivanje profila neće proizvesti rukovanje.
Profili s dva faktora koji prestanu pitati verzija su iste priče za dodatak. Izazov dolazi od dodatka za autentifikaciju, a nadogradnja koja ga je ispustila ili zamijenila ostavlja profil netaknutim dok upit nestaje. Ponovo instalirajte podržani dodatak umjesto da brišete drugi faktor da bi veza proradila.
Biblioteka dobavljača može se sakriti iza greške politike
Jedan obrazac zaslužuje prepoznavanje jer pobjeđuje svaki popravak politike. Alat za konfiguraciju dobavljača hardvera može instalirati vlastite OpenSSL biblioteke i staviti ih ispred sistemskih kopija u putanji pretrage učitavača. Klijent tada starta protiv biblioteke koju nitko nije nadogradio, a kvar pri pokretanju izgleda tačno kao odbijeni certifikat.
Ponovna instalacija VPN paketa ne mijenja koja se biblioteka prva nalazi, a snižavanje TLS nivoa ne može doći do biblioteke koja nikad nije došla iz sistema. Pitajte učitavač koje kripto objekte binarni fajl zaista razrješava:
ldd /usr/sbin/openvpn | grep -i -E 'ssl|crypto'Uklonite ili preusmjerite kopiju dobavljača, pa ponovo pokrenite istu provjeru. Očekivana verzija mora biti ona u upotrebi prije nego što se vratite profilu.
Prikivanje starijeg klijenta kupuje vrijeme, ne rješenje
Zadržavanje prethodne verzije klijenta vraća tunel dokle god zadržavanje traje. Ono takođe zamrzava sigurnosna ažuriranja za taj paket i zakazuje isti kvar za sljedeću nadogradnju, pa to tretirajte kao datiranu privremenu mjeru, a ne rješenje.
Ako ga ipak prikujete, zadržite paket izričito da nenadgledana nadogradnja ne može poništiti prikivanje, zapišite razlog i datum za ponovni pregled i postavite podsjetnik za sljedeće izdanje profila od dobavljača. Stanje koje vrijedi pratiti je serverski profil koji pregovara aktuelnu šifru; kada on postoji, prikivanje nema više nikakvo opravdanje. Nezabilježeno prikivanje, nasuprot tome, postaje prekid koji nitko ne može objasniti šest mjeseci kasnije, jer je osoba koja ga je primijenila otišla, a fajl ne bilježi ništa.
Sljedeći put kada VPN umre nakon nadogradnje izdanja, postavite pet pitanja po redu: koji je sloj proizveo prvu grešku, je li TLS politika odbila certifikat, je li šifra pregovarljiva u oba smjera, jesu li paket i njegov dodatak zaista instalirani i koju biblioteku proces učitava. Tek kada svih pet vrati čisto, downgrade ima smisla.