Մեկ OpenVPN հրահանգ յուրաքանչյուր տողի համար, և ինչու տողադարձը ստում է
Փափուկ տողադարձված էկրանը ֆայլում նոր տող չէ։ Ստուգեք իրական տողաբեկումները նախքան անծանոթի ձևանմուշով վնասված հատվածը փոխարինելը։
Նախկինում մեկնարկող պրոֆիլն այժմ ձախողվում է ընտրանքի սխալով, և այն տողը, որը մեջբերում է վերլուծիչը, էկրանին լիովին ողջամիտ է երևում։ Դա է որոգայթը. կոնֆիգուրացիոն ֆայլը ֆիզիկական տողերի ցանկ է, յուրաքանչյուրում մեկ ընտրանքի բանալի բառ և դրա արգումենտները, և խմբագրի կողմից տողադարձված երկար տողը նույնական է թվում երկու տողի հետ, մինչև չնայես բայթերին։ Ցանցը, վկայականը կամ թունելը այս ձախողումների դասին չեն մասնակցում։ Երկու տող, որոնք էկրանին նույնական են թվում, կարող են տարբերվել մեկ բայթով։
Կատարեք ստորև բերված ստուգումները հերթականությամբ և կանգ առեք առաջին չհաջողվածի վրա։ Յուրաքանչյուրը ավելի էժան է հաջորդից, և յուրաքանչյուրը բացառում է մեկ այլ բացատրություն։
Մեկ տող, մեկ հրահանգ
Վերլուծիչը կարդում է տող, վերցնում առաջին բառը որպես ընտրանք և մնացածը համարում է այդ ընտրանքի արգումենտներ։ Այսպիսով՝ 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
Երբ վերլուծության փուլը անցնի, հաջորդ ձախողումը կլինի ֆայլի, վկայականի կամ գաղտնագրի մասին, ոչ բառապաշարի, և դա իրական առաջընթաց է։ Պահպանեք աշխատանքային պատճենը և մեկ տողանոց գրառում այն մասին, թե ինչ է միացվել. նույն տեղադրումը նորից կպատահի նույն թիմի մեկ ուրիշի հետ։