Profil se preuzima, uvozi i zatim se zaustavlja na redu 12 datoteke s porukom Unrecognized option koja imenuje keysize. Ništa na računu se nije promijenilo i server i dalje prihvata druge klijente. Promijenio se sam klijent: Ubuntu 24.04 instalira OpenVPN 2.6, dok je izvoz napisan za 2.4. Popravka je kratak niz brisanja, a redoslijed je važan jer svaka zastarjela opcija prekida parsiranje prije nego što se sljedeća ikad pročita.

Pročitajte red s greškom prije nego dodirnete datoteku

OpenVPN imenuje datoteku i red na kojem je parsiranje stalo, pa možete popraviti samo jedan problem po pokretanju. Pokrenite profil iz terminala, a ne iz programčeta na radnoj površini, jer programče obično proguta stderr i broj reda je jedini pouzdan pokazatelj koji dobijete: sudo openvpn --config /etc/openvpn/client/provider.ovpn. Popravite taj red, pokrenite ponovo i očekujte da će sljedeći neuspjeh imenovati drugu opciju.

Greška parsiranja uvijek se pojavljuje prije bilo kakvog TLS rukovanja, pa je poruka koja spominje certifikat već prošla sintaksnu fazu. Ta razlika vas sprječava da uređujete datoteku koja pada samo na autentifikaciji. Čitajte prvu riječ poruke, a ne njenu sredinu.

Tri klase neuspjeha, tri različite popravke

Stari izvozi padaju na tri različita načina, a upravo ih stapanje u jedan problem navodi ljude da reinstaliraju pakete koji nikad nisu bili pokvareni. Formulacija poruke vam kaže u kojoj ste klasi prije nego što otvorite datoteku.

  • Greške parsiranja imenuju datoteku i red i zaustavljaju se prije nego što uopšte nastane promet.
  • Greške pregovaranja se povezuju, a zatim javljaju da se dvije strane nisu mogle dogovoriti o zajedničkoj šifri ili prihvatljivom kanalu podataka.
  • Greške autentifikacije idu najdalje i imenuju certifikat, korisnika ili odbijene akreditive.

Uređivanje profila popravlja samo prvu klasu. Pregovaranje traži odluku na oba kraja tunela, a odbijene akreditive nisu nikakav sintaksni problem. Ako vaša poruka spominje zajedničku šifru ili kanal podataka, brisanja ispod neće promijeniti ništa.

Izbrišite opcije koje je 2.6 uklonio, ovim redom

Svaka od ovih linija sama zaustavlja parsiranje, pa ih klijent prijavljuje jednu po jednu. Idite niz spisak i ponovo pokrenite nakon svakog brisanja.

Prvo izbrišite keysize, jer nema moderni ekvivalent i njegovo prisustvo obično označava šifru koju trenutni klijent ionako odbija. Zatim izbrišite ncp-disable, koji je kontrolisao pregovaranje šifri, zastario je u 2.5 i nestao u 2.6. Zamijenite ns-cert-type server s remote-cert-tls server, što izražava istu namjeru kroz podržanu provjeru. Historija promjena 2.6 navodi preostala uklanjanja uz njihove zamjene, pa sve što parser još odbija ima dokumentiran odgovor.

Sačuvajte kopiju originalnog profila prije prvog uređivanja. Provajderi ponovo generišu izvoze, a diff prema netaknutoj datoteci najbrži je način da odvojite svoje promjene od njihovih. Ako brisanje pusti klijent da se pokrene, ali tunel i dalje pada, prešli ste u klasu pregovaranja i preostale linije nisu uzrok. Stavite verziju klijenta u naziv datoteke da sljedeća osoba zna na koje se izdanje odnose izmjene.

Držite BF-CBC radnim samo kao ograničenu rezervu

Neki provajderi još završavaju vezu na BF-CBC, s kojim se OpenVPN 2.6 neće pregovarati bez pomoći jer šifra ima 64-bitni blok. Uska popravka je rezervna lista plus stari OpenSSL provajder, a ne degradacija cijelog klijenta.

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

Prvi red učitava stari provajder da bi OpenSSL još mogao stvoriti tu šifru, drugi čuva moderno pregovaranje za partnere koji ga podržavaju, a treći se primjenjuje samo kad server ne ponudi ništa bolje. To je namjerno slabljenje tunela, pa zapišite zašto postoji uz datoteku. Zatražite od provajdera i ponovo generisan izvoz, jer je rezerva most, a ne odredište.

Ne posežite za --compat-mode kao univerzalnim odgovorom. On mijenja nekoliko ponašanja odjednom, uključujući zadane vrijednosti pregovaranja i ponovnog pregovaranja, pa nikad ne naučite koja je promjena bila važna. Radije koristite tri izričita reda iznad, jer svaki navodi vlastiti efekat.

Provjerite s profilom koji klijent zaista učitava

Uvezene veze često se kopiraju u sistemski direktorij, pa uređivanje datoteke u mapi za preuzimanje možda ne mijenja baš ništa. Nađite kopiju koja radi: sudo grep -rl "remote " /etc/NetworkManager/system-connections /etc/openvpn. Zatim pokrenite tunel i pročitajte red u dnevniku koji javlja koja je šifra kanala podataka zaista odabrana. Veza koja završi rukovanje na rezervi kaže vam da server nikad nije ponudio ništa moderno.

Testirajte s mreže koja nije ona koju provajder očekuje, da se captive portal ili filtrirana gostujuća mreža ne predstave kao kvar profila. Zabilježite verziju klijenta uz svaki zahtjev za podršku.

Kad je tunel podignut, pošaljite jedan zahtjev koji ga mora preći i jedan koji ne smije, pa potvrdite da se odgovor razrješivača promijenio kako ste očekivali. Ako se profil sada parsira, ali veza i dalje pada, ostavili ste sintaksni problem za sobom i tekst greške će imenovati novu klasu. Držite uređenu datoteku u kontroli verzija uz napomenu koja imenuje OpenVPN izdanje koje cilja.

Povezani članci