Бұрын іске қосылатын профиль енді опция қатесімен сәтсіз аяқталады, ал талдаушы сілтеме жасаған жол экранда толығымен орынды көрінеді. Бұл — тұзақ: конфигурация файлы физикалық жолдардың тізімі, әрқайсысында бір опция кілт сөзі мен оның аргументтері бар, ал редактор тасымалдаған ұзын жол байттарға қарамайынша екі жолдан ажыратылмайды. Желі, сертификат немесе туннель бұл қате түріне қатыспайды. Экранда бірдей көрінетін екі жол бір байтпен ерекшеленуі мүмкін.

Төмендегі тексерулерді ретімен орындаңыз және бірінші сәтсіз болғанында тоқтаңыз. Әрқайсысы келесісінен арзан, және әрқайсысы басқа түсіндірмені жоққа шығарады.

Бір жол, бір директива

Талдаушы жолды оқиды, бірінші сөзді опция ретінде алады және қалғанын сол опцияның аргументтері ретінде қарастырады. Сондықтан cert server.crt port 1194 сияқты жол — қатарынан екі нұсқау емес. Бұл үш аргументі бар бір cert опциясы, ал үшіншісі опция қабылдайтын файл атауы емес. Қатені жетіспейтін жол үзілісі ретінде оқу дұрыс; оны жетіспейтін директива ретінде оқу дұрыс емес.

# malformed: one option, three arguments
cert server.crt port 1194

# intended: two options, one argument each
cert server.crt
port 1194

Сол түзетілген екі жол — үзінді, конфигурация емес. Олар шекараның қайда жататынын көрсету үшін бар. Профильдегі әрбір қарапайым директива сол ережеге бағынады, ал олардың екеуін қосатын жол аргумент қатесін немесе опция күтпеген мәнді шығарады.

Жол үзілісінің шынайы екенін дәлелдеңіз

Редакторлар көрсету үшін тасымалдайды. Кейбіреулері қою кезінде қатты үзілістерді де кірістіреді, кейбіреулері кірістірмейді, сондықтан бірдей визуалдық нәтиже екі мүлдем басқа файлдан келуі мүмкін. Бірдеңені өзгертпес бұрын жол аяқтарын көрсетіп, жолдарды санаңыз. Өлшеу бір пәрменге тұрады; болжау бір кешке тұрады.

cat -A /etc/openvpn/server/lab.conf | sed -n '10,20p'
awk 'NR>=10 && NR<=20 {printf "%d:%s\n", NR, $0}' /etc/openvpn/server/lab.conf

Бірінші шығыста әрбір шынайы жол үзілісі $ белгісі ретінде көрінеді, сондықтан тасымалданған бірақ бөлінбеген жол экран тасымалдайтын жерде ешбір белгі көрсетпейді. Екінші пәрмен нөмірленген жолдарды шығарады, бұл талдаушы хабарлағанды файлдағымен салыстырудың ең жылдам жолы.

Қосымша бос орындар да директива жасамайды. Шегіну — косметика, ал бос орынмен басталатын жол сол жалғыз опция болып қала береді. Егер қате хабарламасы жол нөмірін көрсетсе, оған қатысты абзацты емес, дәл сол жолды оқыңыз.

Директивалар тізімін емес, жолды дәйектеңіз

Тыржақшалар бос орыны бар аргументтер үшін, опцияларды топтау үшін емес. Бос орыны бар сертификат жолы өз тырнақшаларын қажет етеді; бір жұп тырнақшаны бөлісетін екі директива әлі де бір бүлінген жол.

cert "/etc/openvpn/pki/lab certs/server.crt"
key "/etc/openvpn/pki/lab certs/server.key"

Опция атауларын орналасумен бірге тексеріңіз, өйткені қосылған жол ешқашан болмаған сенімді көрінетін токен шығаруы мүмкін. Порт директивасы — port; сол идея үшін басқа нәрсені қолданатын профиль жол шекаралары түзетілгеннен кейін де сәтсіз болады. Егер атау таныс емес көрінсе, оны форум мысалымен емес, іске қосып отырған нұсқаңыздың опциялар тізімімен салыстырыңыз.

Ішкі блоктарды блок ретінде сақтаңыз

Профильдер сертификаттар мен кілттерді іштей алып жүре алады, және бұл блоктар конфигурация емес, деректер. Блок ішіндегі PEM жолдары тегістеу, қайта шегіндіру немесе біріктіру опциялары емес, және блок белгілері өз жолдарында қалуы керек.

Ішкі блокты мөлдір емес аймақ ретінде қарастырыңыз: айналасындағы опция жолдарын түзетіңіз, мазмұнын байт байт тимей қалдырыңыз және оны ешқашан ашық қолдау тақырыбына қоймаңыз. Егер пішімдеу құралы блокты қайта жазса, оны қолмен жөндеудің орнына PKI-ден қалпына келтіріңіз.

Үлгіні емес, ең кіші бөлімді жөндеңіз

Азғыратын жөндеу — бүкіл файлды „жұмыс істейтін” оқулықтан алынған конфигурациямен алмастыру. Бұл бір бүлінген жолды ешкім тексермеген саясат өзгерістерінің жиынтығына алмастырады: басқа DH параметрлері, сығу параметрлері, шифр таңдауы, қайталанған тыңдаушылар. Бастапқы мәселе шағын және жергілікті, ал алмастыру олардың ешқайсысы емес.

Профильді қорғалған жұмыс файлына көшіріңіз, сол көшірмедегі жол шекараларын түзетіңіз және қызметтің қалыпты иесіне оны жүктеуге рұқсат етіңіз. Содан кейін дананы іске қосып, бірінші қатені, егер бар болса, басынан оқыңыз.

openvpn --config /etc/openvpn/server/lab.conf --verb 3 --log /tmp/parse.log
grep -n 'Options error' /tmp/parse.log

Талдау кезеңі өткенде, келесі сәтсіздік сөздік туралы емес, файл, сертификат немесе шифр туралы болады, және бұл нақты ілгерілеу. Жұмыс көшірмесін және ненің біріктірілгені туралы бір жолдық жазбаны сақтаңыз; сол қою сол командадағы басқа біреуге қайта оралады.

Қатысты мақалалар