Профил који годинама ради одједном одбија да се покрене, а порука наводи директиву коју се нико не сећа да је додао: key-method. Следећи резултат претраге предлаже додавање key-method 2 ради компатибилности, што је савет из другог раздобља. Парсер који је одбио ред је актуелан и уопште нема такву опцију. Уклањање реда поправља покретање и не мења ништа у томе како две стране штите сесију.

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

Симптом је грешка при парсирању, а не неуспех руковања

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

openvpn --config /etc/openvpn/client/office.ovpn --verb 3 --log /tmp/parse.log
grep -n 'Options error' /tmp/parse.log

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

Оно што не би требало да закључите јесте да клијенту или серверу треба старији режим протокола. Неуспех парсирања је проблем речника између ваше датотеке и бинарне датотеке, а бинарна је у овом случају једноставно испустила реч из свог речника.

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

Стара опција key-method бирала је како се уоквирује TLS размена кључева, а модерна размена је метода са више пакета коју је та опција некада захтевала. Опција је нестала јер више није бирала ништа; формат који је именовала постао је једини. Уклањање реда стога оставља сесију са истим уоквиривањем као пре. Текстуална измена то не може променити ни у једном смеру.

Зато је поновно увођење старе бинарне датотеке да би се „обновила“ метода 2 погрешан поправак. Оно не обнавља ништа осим старијег парсера са старијим подразумеваним вредностима и одузима вам исправке које су дошле после њега. Иста логика важи за слабљење провере сертификата или списка шифара у нади да ће се веза вратити.

Корисна провера је верзија и парсирана конфигурација, а не присуство речи у датотеци:

openvpn --version | head -n 1
grep -rn 'key-method' /etc/openvpn/ 2>/dev/null

Шта уклонити и из које датотеке

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

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

Затим покрените предвиђену инстанцу и прочитајте њен излаз при покретању. Чисто покретање са присутним слушаоцем потврда је да је ова фаза завршена; тест клијента после тога одговара на друго питање.

Одбијен профил и одбијен клијент изгледају слично

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

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

Питања компатибилности на која ред никада није одговорио

Профили који круже са овом директивом обично носе причу о одређеној платформи, а прича надживљава технички разлог. Мобилном или десктоп клијенту још увек треба потпун подржан профил: поуздан ланац сертификата, шифра података коју прихватају оба краја, режим контролног канала који оба краја имплементирају и никакве директиве које градња клијента одбија. Ништа од тога не одређује присуство или одсуство старог реда key-method.

Компресија је одвојено питање политике истог облика. Уклањање реда key-method не говори ништа о томе да ли је директива компресије подржана или прихватљива у вашем распоређивању, и обе одлуке треба донети независно. Брисање неколико безбедносно релевантних подешавања одједном док се нешто не повеже пут је којим радни профил постаје необјашњен.

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

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