Profil li qabel kien jibda issa jonqos b’żball tal-għażliet, u l-linja li jikkwota l-parser tidher perfettament raġonevoli fuq l-iskrin. Din hija n-nassa: fajl tal-konfigurazzjoni huwa lista ta’ linji fiżiċi, kull waħda b’kelma ewlenija waħda tal-għażla u l-argumenti tagħha, u linja twila miksura minn editur tidher identika għal żewġ linji sakemm wieħed iħares lejn il-bytes. Xejn min-netwerk, miċ-ċertifikat jew mill-mina mhu involut f’din il-klassi ta’ falliment. Żewġ linji li jidhru identiċi fuq l-iskrin jistgħu jvarjaw b’byte wieħed biss.

Agħmel il-kontrolli hawn taħt fl-ordni u waqaf fl-ewwel waħda li tfalli. Kull waħda tiswa inqas minn dik li jmiss, u kull waħda telimina spjegazzjoni differenti.

Linja waħda, direttiva waħda

Il-parser jaqra linja, jieħu l-ewwel kelma bħala l-għażla u jittratta l-bqija bħala l-argumenti ta’ dik l-għażla. Linja bħal cert server.crt port 1194 għalhekk mhijiex żewġ struzzjonijiet f’sekwenza. Hija għażla waħda cert bi tliet argumenti, u t-tielet wieħed mhuwiex isem ta’ fajl li l-għażla taċċetta. Li taqra l-iżball bħala ksur ta’ linja nieqes huwa sewwa; li taqrah bħala direttiva nieqsa mhuwiex.

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

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

Dawk iż-żewġ linji korretti huma framment, mhux konfigurazzjoni. Jeżistu biex juru fejn għandu jkun il-konfini. Kull direttiva ordinarja fi profil issegwi l-istess regola, u linja li tgħaqqad tnejn minnhom tipproduċi jew żball tal-argument jew valur li l-għażla ma kinitx tistennieh.

Ipprova li l-ksur tal-linja huwa veru

L-edituri jiksru għall-wiri. Xi wħud ukoll idaħħlu ksur iebes meta tippejstja, u xi wħud le, għalhekk l-istess riżultat viżwali jista’ jiġi minn żewġ fajls differenti ħafna. Uri t-truf tal-linji u għodd il-linji qabel ma tbiddel xejn. Il-kejl jiswa kmand; l-istima tiswa lejla.

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

Fl-ewwel output kull ksur tal-linja veru jidher bħala markatur $, għalhekk linja miksura iżda mhux maqsuma ma turi l-ebda markatur fejn l-iskrin tiegħek jaqsam. It-tieni kmand jipprintja linji numerati, li huwa l-eħfef mod biex tqabbel dak li jirrapporta l-parser ma’ dak li jinsab fil-fajl.

Spazji żejda lanqas joħolqu direttiva. L-indentazzjoni hija kosmetika, u linja li tibda b’ispazju bajd għadha l-istess għażla waħda. Jekk il-messaġġ tal-iżball jindika numru tal-linja, aqra eżattament dik il-linja minflok il-paragrafu li tagħha hija parti.

Iċċita mogħdija, mhux lista ta’ direttivi

Il-virgoletti jeżistu għall-argumenti li fihom spazji, mhux biex jiġbru l-għażliet. Mogħdija ta’ ċertifikat b’ispazju teħtieġ il-virgoletti tagħha stess; żewġ direttivi li jaqsmu par virgoletti għadhom linja malformata waħda.

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

Iċċekkja l-ismijiet tal-għażliet flimkien mat-tqassim, għax linja magħquda tista’ tipproduċi token li jidher plawżibbli li qatt ma eżista. Id-direttiva tal-port hija port; profil li juża xi ħaġa oħra għall-istess idea jonqos anki wara li jiġu korretti l-konfini tal-linji. Meta isem jidher mhux magħruf, qabblu mal-lista tal-għażliet għall-verżjoni li qed tħaddem minflok ma’ eżempju tal-forum.

Żomm il-blokki inline bħala blokki

Il-profili jistgħu jġorru ċertifikati u ċwievet inline, u dawk il-blokki huma data, mhux konfigurazzjoni. Il-linji PEM ġewwa blokk mhumiex għażliet li għandhom jiġu ċċattjati, iddentrati mill-ġdid jew magħquda, u l-markaturi tal-blokk iridu jibqgħu fuq linji tagħhom stess.

Ittratta blokk inline bħala reġjun opak: ikkoreġi l-linji tal-għażliet madwaru, ħalli l-kontenut tiegħu kif inhu byte b’byte, u qatt tpejstjah fi ħajt pubbliku tal-appoġġ. Jekk għodda tal-ifformattjar kitbet mill-ġdid il-blokk, irrestawrah mill-PKI tiegħek minflok ma ssewwih bl-idejn.

Sewwi l-iżgħar sezzjoni, mhux il-mudell

It-tiswija li tħajjar hija li tissostitwixxi l-fajl kollu b’konfigurazzjoni minn tutorial li «jaħdem». Dan ibiddel linja malformata waħda għal sett ta’ bidliet fil-politika li ħadd ma rewiehom: parametri DH differenti, settings tal-kompressjoni, għażliet taċ-ċifrar, semmiegħa duplikati. Il-problema oriġinali hija żgħira u lokali, u s-sostitut mhuwiex la waħda u lanqas l-oħra.

Ikkopja l-profil f’fajl tax-xogħol protett, ikkoreġi l-konfini tal-linji f’dik il-kopja, u ħalli s-sid normali tas-servizz jgħabbiha. Imbagħad ibda l-istanza u aqra l-ewwel żball, jekk hemm, mill-bidu.

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

Meta l-fażi tal-parsing tgħaddi, il-falliment li jmiss ikun dwar fajl, ċertifikat jew ċifrar minflok dwar vokabularju, u dak huwa progress veru. Żomm il-kopja tax-xogħol u nota ta’ linja waħda dwar x’ġie magħqud; l-istess pejstjer jerġa’ jiġri lil xi ħadd ieħor fl-istess tim.

Artikli relatati