Har bir satrda bitta OpenVPN direktivasi va nega satr o’rash aldaydi
Yumshoq o’ralgan ekran fayldagi yangi satr emas. Buzilgan bo’limni begona odamning shabloni bilan almashtirishdan oldin haqiqiy satr uzilishlarini tekshiring.
Ilgari ishga tushgan profil endi parametr xatosi bilan ishlamayapti va analizator keltirgan satr ekranda mutlaqo o’rinli ko’rinadi. Tuzoq shu yerda: konfiguratsiya fayli jismoniy satrlar ro’yxati bo’lib, har birida bitta parametr kalit so’zi va uning argumentlari bor, va muharrir o’ragan uzun satr baytlarga qaramaguncha ikki satr bilan bir xil ko’rinadi. Tarmoq, sertifikat yoki tunnel bu xato sinfiga aloqador emas. Ekranda bir xil ko’rinadigan ikki satr bir bayt bilan farq qilishi mumkin.
Quyidagi tekshiruvlarni tartib bilan bajaring va birinchi muvaffaqiyatsiz bo’lganida to’xtang. Har biri keyingisidan arzonroq va har biri boshqa izohni istisno qiladi.
Bitta satr, bitta direktiva
Analizator satrni o’qiydi, birinchi so’zni parametr deb oladi va qolganini shu parametrning argumentlari deb qabul qiladi. Shuning uchun cert server.crt port 1194 kabi satr ketma-ket ikki ko’rsatma emas. Bu uch argumentli bitta cert parametri va uchinchisi parametr qabul qiladigan fayl nomi emas. Xatoni yo’q satr uzilishi deb o’qish to’g’ri; uni yo’q direktiva deb o’qish esa to’g’ri emas.
# malformed: one option, three arguments
cert server.crt port 1194
# intended: two options, one argument each
cert server.crt
port 1194
O’sha tuzatilgan ikki satr — parcha, konfiguratsiya emas. Ular chegara qayerga tegishli ekanini ko’rsatish uchun mavjud. Profildagi har bir oddiy direktiva bir xil qoidaga amal qiladi va ulardan ikkitasini birlashtirgan satr yo argument xatosini, yo parametr kutmagan qiymatni keltiradi.
Satr uzilishi haqiqiy ekanini isbotlang
Muharrirlar ko’rsatish uchun o’raydi. Ba’zilari joylashganda qattiq uzilishlar ham qo’shadi, ba’zilari esa yo’q, shuning uchun bir xil vizual natija ikki juda boshqacha fayldan kelishi mumkin. Biror narsani o’zgartirishdan oldin satr oxirlarini ko’rsating va satrlarni sanang. O’lchash bitta buyruqqa tushadi; taxmin qilish bir oqshomga.
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
Birinchi natijada har bir haqiqiy satr uzilishi $ belgisi sifatida ko’rinadi, shuning uchun o’ralgan lekin bo’linmagan satr ekran o’ralgan joyda hech qanday belgi ko’rsatmaydi. Ikkinchi buyruq raqamlangan satrlarni chop etadi, bu analizator aytgan narsani fayl tarkibiga solishtirishning eng tez usuli.
Ortiqcha bo’shliqlar ham direktiva yaratmaydi. Chekinish kosmetik va bo’shliq bilan boshlanadigan satr baribir o’sha yagona parametr bo’lib qoladi. Xato xabari satr raqamini ko’rsatsa, o’sha satr tegishli bo’lgan paragrafni emas, aynan o’sha satrni o’qing.
Direktivalar ro’yxatini emas, yo’lni keltiring
Qo’shtirnoqlar bo’shliq bo’lgan argumentlar uchun, parametrlarni guruhlash uchun emas. Bo’shliqli sertifikat yo’li o’z qo’shtirnoqlariga muhtoj; bitta qo’shtirnoq juftini bo’lishadigan ikki direktiva baribir bitta buzilgan satr.
cert "/etc/openvpn/pki/lab certs/server.crt"
key "/etc/openvpn/pki/lab certs/server.key"
Parametr nomlarini tartib bilan bir vaqtda tekshiring, chunki birlashtirilgan satr hech qachon mavjud bo’lmagan ishonchli ko’rinadigan token yaratishi mumkin. Port direktivasi port; xuddi shu fikr uchun boshqa narsani ishlatadigan profil satr chegaralari tuzatilgandan keyin ham ishlamaydi. Agar nom notanish ko’rinsa, uni forum misoli bilan emas, ishlatayotgan versiyangizning parametrlar ro’yxati bilan solishtiring.
Ichki bloklarni blok sifatida saqlang
Profillar sertifikatlar va kalitlarni ichki olib yurishi mumkin va bu bloklar konfiguratsiya emas, ma’lumot. Blok ichidagi PEM satrlari tekislanishi, qayta chekinishi yoki birlashtirilishi kerak bo’lgan parametrlar emas va blok belgilari o’z satrlarida qolishi kerak.
Ichki blokka shaffof bo’lmagan hudud sifatida qarang: uning atrofidagi parametr satrlarini tuzating, mazmunini bayt-bayt tegmasdan qoldiring va uni hech qachon ochiq qo’llab-quvvatlash mavzusiga joylashtirmang. Agar formatlash vositasi blokni qayta yozgan bo’lsa, uni qo’lda tuzatish o’rniga PKI-dan tiklang.
Shablonni emas, eng kichik bo’limni tuzating
Jozibali tuzatish butun faylni „ishlaydigan“ qo’llanmadan olingan konfiguratsiya bilan almashtirishdir. Bu bitta buzilgan satrni hech kim ko’rib chiqmagan bir qator siyosat o’zgarishlariga almashtiradi: boshqa DH parametrlari, siqish sozlamalari, shifr tanlovlari, takrorlangan tinglovchilar. Asl muammo kichik va mahalliy, almashtirish esa ikkalasi ham emas.
Profilni himoyalangan ish fayliga nusxalang, o’sha nusxada satr chegaralarini tuzating va xizmatning odatiy egasiga uni yuklashga ruxsat bering. Keyin nusxani ishga tushiring va bo’lsa, birinchi xatoni boshidan o’qing.
openvpn --config /etc/openvpn/server/lab.conf --verb 3 --log /tmp/parse.log
grep -n 'Options error' /tmp/parse.log
Analiz bosqichi o’tgach, keyingi nosozlik lug’at emas, fayl, sertifikat yoki shifr haqida bo’ladi va bu haqiqiy taraqqiyot. Ish nusxasini va nima birlashtirilgani haqida bir satrli eslatmani saqlang; xuddi shu joylashtirish o’sha jamoadagi boshqa birovning boshiga yana tushadi.