OpenVPN ning bir nechta --up skripti haqidagi ogohlantirishi: faqat bittasi ishlaydi
Ikki up satrini qayta tartiblash ikkalasini ham ishga tushirmaydi. OpenVPN har bir bosqich uchun bitta buyruq saqlaydi, shuning uchun ikkala ta’rifni toping va ishga yagona kirish nuqtasini bering.
Bir nechta skript haqidagi ogohlantirish jadvalga oid shikoyatga o‘xshaydi, shuning uchun ko‘rinib turgan yechim satrlarni u yo‘qolguncha qayta tartiblashdir. Lekin bu jadval shikoyati emas. Keyingi --up ta’rifi o‘sha bosqich uchun allaqachon saqlangan buyruqni almashtiradi va tahlilchi buni aytadi, ya’ni ikki skriptingizdan faqat bittasi ishlagan. Ikkinchisi uning orqasida navbatda emas; u yo‘q bo‘lgan.
Shuning uchun ogohlantirish halokatli bo‘lmasa ham e’tiborga loyiq: u jim to‘xtagan DNS yangilanishi yoki marshrut o‘zgarishini bashorat qiladi.
Ogohlantirish tartib haqida emas
OpenVPN up bosqichi uchun bitta foydalanuvchi skript buyrug‘ini saqlaydi. Tahlilchi boshqa ta’rifga duch kelganda, profildan, kiritilgan fayldan yoki buyruq satridan, u allaqachon ushlab turgan narsani almashtiradi va ogohlantirish chiqaradi. Hech narsa birlashtirilmaydi, hech narsa ikki marta ishlamaydi va tartib haqida savol yo‘q. Omon qoladigan buyruq tahlilchi oxirgi ko‘rgan buyruq, shuning uchun satrni ko‘chirish g‘olibni o‘zgartirishi va boshqa skript o‘lik qolishi mumkin.
Xuddi shu naqsh boshqa skript bosqichlariga ham tegishli: har biriga bitta buyruq. Agar ikki ish ikkalasi ham bajarilishi kerak bo‘lsa, ularga ro‘yxatga o‘xshash ikki ko‘rsatma emas, yagona kirish nuqtasi kerak.
Ikkala ta’rifni haqiqiy ishga tushirishda toping
Tahrirlagan profilingizdan emas, demon haqiqatda olgan narsadan boshlang. ps -ef va birlikning ExecStart buyruq satrini ko‘rsatadi, unga konteyner kirish nuqtasi yoki o‘ramdan --up qo‘shilgan bo‘lishi mumkin; distributivning init fayli ham shunday qilishi mumkin. systemctl cat openvpn-server@server xizmatning o‘zi nima qo‘shishini ochib beradi, konfiguratsiya katalogidagi rekursiv grep esa fayl darajasidagi ta’riflarni topadi. Dublikatlar odatda turli qatlamlardan keladi va bitta faylni tahrirlash hech narsani o‘zgartirmasligining sababi ham shu.
Skriptni boshqa katalogga ko‘chirish yoki nomini o‘zgartirish ham ko‘rsatmani olib tashlamaydi. Tahlilchi fayllarni emas, ta’riflarni sanaydi.
Ishga bitta hook egalik qilsin
Barqaror yechim — ikkala amalni o‘ylangan tartibda bajaradigan bitta dispetcher. set -eu bilan qisqa shell skripti kerakli integratsiyani, so‘ng mahalliy amalni chaqiradi va argument chegaralari saqlanib qolishi uchun "$@" uzatadi; shu bilan xatti-harakat tekshiriladigan bir joyda qoladi. Argumentlarni uzatish ularni faqat saqlaydi; u ikki yordamchi bir xil interfeysni kutishini isbotlamaydi, shuning uchun har birining shartnomasini o‘qing. Xatolik nima qilishi va qisman o‘zgarishlarni qaytarish kerakligini hal qiling.
Agar ishga tushiruvchi qo‘llab-quvvatlanadigan kengaytma hookini taklif qilsa, uni qo‘lda qurilgan zanjirdan afzal ko‘ring. Konteyner obrazi yoki sotuvchi paketi ko‘pincha qo‘shimcha ish uchun hujjatlashtirilgan joyga ega va undan foydalanish yangilanish sizning dispetcheringizni ustidan yozish oldini oladi.
Tozalash tegishli down bosqichiga tegishli. DNS ni qayta yozadigan yoki marshrutlar qo‘shadigan up amali hujjatlashtirilgan qaytarishni talab qiladi, va faqat ishga tushirishni boshqaradigan dispetcher — dizaynning yarmi.
Sukunatni emas, integratsiyani tasdiqlang
Dublikat ogohlantirishni olib tashlash — oson qismi; integratsiya hali ham ishlashi kerak. Ulangandan so‘ng resolvectl status yoki /etc/resolv.conf o‘qish orqali hal qiluvchi holatini tekshiring va marshrutlarni ip route bilan tasdiqlang. So‘ng uzilib qayta ulaning, chunki shoshqaloqlik bilan ulangan hook oldingi sessiyadan nimanidir qoldiradi. journalctl -u openvpn-server@server -b dispetcheringiz ishlaganini va nima chop etganini ko‘rsatadi.
Hookning imtiyozlarini joyida saqlang. script-security ni oshirish yoki demonni ko‘proq huquqlar bilan ishga tushirish almashtirilgan hook uchun yechim emas; bu har bir kelgusi skriptning, jumladan hujumchi nomlaydigan skriptning ham nima qila olishini kengaytiradi.
Tuzatish haqiqiy ekanining belgisi jurnaldagi sukunat emas. Bu DNS javobi, marshrut yozuvi va tozalash — ikkita qayta ulanishdan keyin hammasi to‘g‘ri ishlaydi.