Профил се преузима, увози и затим се зауставља на линији 12 датотеке са поруком Unrecognized option која именује keysize. Ништа се на налогу није променило, а сервер и даље прихвата друге клијенте. Променио се сам клијент: Ubuntu 24.04 инсталира OpenVPN 2.6, док је извоз написан за 2.4. Поправка је кратак низ брисања, а редослед је важан јер свака застарела опција прекида парсирање пре него што се следећа уопште прочита.

Прочитајте линију грешке пре него што дирате датотеку

OpenVPN именује датотеку и линију на којој се парсирање зауставило, па по покретању можете поправити само један проблем. Покрените профил из терминала, а не из аплета на радној површини, јер аплет обично прогута stderr, а број линије једини је поуздан показатељ који добијате: sudo openvpn --config /etc/openvpn/client/provider.ovpn. Поправите ту линију, покрените поново и очекујте да ће следећи неуспех именовати другу опцију.

Грешка парсирања увек се појављује пре било каквог TLS руковања, па је порука која помиње сертификат већ прошла фазу синтаксе. Та разлика вас спречава да уређујете датотеку која пада само на аутентикацији. Прочитајте прву реч поруке, а не њену средину.

Три класе неуспеха, три различите поправке

Стари извози падају на три препознатљива начина, а њихово спајање у један проблем разлог је зашто људи поново инсталирају пакете који никада нису били покварени. Формулација поруке говори у којој сте класи пре него што отворите датотеку.

  • Грешке парсирања именују датотеку и линију и заустављају се пре него што постоји икакав саобраћај.
  • Грешке преговарања повезују се, а затим јављају да две стране нису могле да се договоре око заједничке шифре или прихватљивог канала података.
  • Грешке аутентикације иду најдаље и именују сертификат, корисника или одбијене акредитиве.

Уређивање профила поправља само прву класу. Преговарање захтева одлуку на оба краја тунела, а одбијени акредитиви никако нису проблем синтаксе. Ако ваша порука помиње заједничку шифру или канал података, брисања испод неће променити ништа.

Избришите опције које је 2.6 уклонио, овим редоследом

Свака од ових линија сама зауставља парсирање, па их клијент пријављује једну по једну. Прођите кроз списак и покрените поново после сваког брисања.

Најпре уклоните keysize, јер нема савремени еквивалент и његово присуство обично означава шифру коју тренутни клијент ионако одбија. Затим уклоните ncp-disable, који је контролисао преговарање о шифрама, укинут је у 2.5 и нестао у 2.6. Замените ns-cert-type server са remote-cert-tls server, која изражава исту намеру кроз подржану проверу.Историја измена 2.6 наводи преостала уклањања поред њихових замена, па све што парсер још одбија има документован одговор.

Сачувајте копију изворног профила пре првог уређивања. Пружаоци заиста поново генеришу извозе, а diff са нетакнутом датотеком најбржи је начин да одвојите своје измене од њихових. Ако брисање омогући клијенту да се покрене, али тунел још увек пада,прешли сте у класу преговарања а преостале линије нису узрок. Ставите верзију клијента у назив датотеке да следећа особа зна којој су верзији уређивања намењена.

Држите BF-CBC радним само као ограничену замену

Неки пружаоци још увек завршавају на BF-CBC, који OpenVPN 2.6 неће преговарати без помоћи јер шифра има 64-битни блок. Уска поправка је списак замена плус OpenSSL legacy пружалац, а не враћање целог клијента на старију верзију.

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

Прва линија учитава legacy пружаоца да OpenSSL још може да створи ту шифру, друга задржава савремено преговарање за партнере који га подржавају, а трећа се примењује само када сервер не нуди ништа боље. То је намерно слабљење тунела, па забележите поред датотеке зашто постоји. Затражите од пружаоца истовремено поново генерисан извоз, јер је замена мост, а не одредиште.

Не прибегавајте --compat-mode као универзалном одговору. Мења неколико понашања одједном, укључујући подразумеване вредности преговарања и поновног преговарања, па никада не сазнате која је измена била важна. Радије изаберите три изричите линије горе, јер свака наводи сопствени учинак.

Проверите са профилом који клијент заиста учитава

Увезене везе се често копирају у системски директоријум, па уређивање датотеке у фасцикли за преузимање може да не промени баш ништа. Пронађите копију која се извршава: sudo grep -rl "remote " /etc/NetworkManager/system-connections /etc/openvpn. Затим покрените тунел и прочитајте линију записа која наводи стварно изабрану шифру канала података. Веза која доврши руковање на замени говори да сервер никада није понудио ништа савремено.

Тестирајте из мреже која није она коју пружалац очекује, да се captive портал или филтрирана гостујућа мрежа не представе као квар профила. Забележите верзију клијента уз сваки захтев за подршку.

Када је тунел подигнут, пошаљите један захтев који га мора проћи и један који не сме, па потврдите да се одговор resolver-а променио како сте очекивали. Ако се профил сада парсира, али веза још увек пада, оставили сте проблем синтаксе за собом и текст грешке ће именовати нову класу. Држите уређену датотеку у систему контроле верзија уз белешку која именује издање OpenVPN-а којем је намењена.

Повезани чланци