Tuzatish: OpenVPN Auth foydalanuvchi nomini standart kiritishdan o'qiy olmadi
OpenVPN'ning «could not read Auth username from stdin» xatosi mahalliy kiritish nosozligidir. Xizmatga o'qiladigan hisob ma'lumotlari manbasini bering; script-security bunga aloqasi yo'q.
could not read Auth username from stdin autentifikatsiya muammosiga o'xshaydi, lekin unday emas. OpenVPN foydalanuvchi nomini standart kiritishdan so'rashga urindi, o'qiladigan narsa topmadi va serverga ulanishdan oldin to'xtadi. Hisob to'liq yaroqli bo'lishi mumkin; jarayonning so'raydigan odami yo'q.
Shuning uchun birinchi foydali qadam mijozi nima o'qiyotganini tasdiqlashdir, ulanishni qayta urinish yoki server tomonidagi sozlamalarni o'zgartirish emas. Quyidagi tekshiruvlarni tartib bilan bajaring va birinchi muvaffaqiyatsizida to'xtang.
Xatoni mahalliy kiritish nosozligi sifatida o'qing
Qachon auth-user-pass fayl argumentisiz paydo bo'lsa, mijoz so'rashni kutadi. Interaktiv qobiqda bu so'rov ishlaydi, chunki jarayon terminalga ega. systemd, cron vazifasi yoki konteyner ostida standart kiritish odatda bo'sh bo'ladi va o'qish siz ko'rayotgan xato bilan darhol qaytadi.
Xabar muvaffaqiyatsiz bo'lgan maydonni ham nomlaydi, foydalanuvchi nomi yoki parol, bu o'qish qanchalik uzoqqa ketganini ko'rsatadi. Foydalanuvchi nomi yo'qligi jarayon umuman hech narsa o'qiy olmaganini bildiradi. Muvaffaqiyatli foydalanuvchi nomidan keyin parol yo'qligi kiritish oqimining ikki o'qish orasida tugaganini bildiradi, bu yarim yozilgan fayl yoki yopilgan quvur uchun odatiy hol.
Boshqa narsani o'zgartirishdan oldin mijozning o'z ko'rinishini tasdiqlang. Uni bir xil konfiguratsiya va bir xil foydalanuvchi bilan oldingi planda ishga tushiring va so'rov paydo bo'lishini kuzating. Qobiqingizda paydo bo'lib, xizmat menejeri ostida paydo bo'lmasa, farq kiritish manbasida, hisob ma'lumotlarida emas. unit fayli va qobiq muhitini tezkor taqqoslash odatda qaysi biri terminal berishini ko'rsatadi.
Xizmatga qo'llab-quvvatlanadigan hisob ma'lumotlari manbasini bering
Nazoratsiz ishlash uchun qo'llab-quvvatlanadigan manba argument sifatida beriladigan hisob ma'lumotlari faylidir: auth-user-pass. Fayl oddiy matn sifatida o'qiladi: birinchi qator foydalanuvchi nomi, ikkinchisi parol. Unga mutlaq yo'l bilan ishora qiling, masalan /etc/openvpn/client/creds , shunda xizmat hisobining ish katalogi direktiva ma'nosini o'zgartira olmaydi.
Ruxsatlar yo'l kabi muhim. Fayl mijozni ishga tushiradigan hisob uchun o'qiladigan, boshqalar uchun emas bo'lishi kerak va xizmat hisobiga yoki xizmatni o'z ichiga olgan guruhga ega rootga tegishli bo'lishi kerak. Mazmunni chop etmasdan o'sha hisob sifatida o'qilishini tekshiring.
Nisbiy yo'l jim nosozlik usulidir. Profil bir katalogda bo'lishi mumkin, systemd esa jarayonni boshqa joyda boshlaydi, shuning uchun qobiqingizda hal qilinadigan fayl xizmat uchun hal qilinmaydi. Hisob ma'lumotlarini doimiy joyga ko'chiring va ularga mutlaq murojaat qiling. So'ngra xizmatni bir marta ishga tushiring va profil muharriri ko'rinishiga ishonish o'rniga o'sha yo'l ishlatilishini tasdiqlang.
Agar joylashtirish bir martalik kod yoki boshqa interaktiv sinovni talab qilsa, mijoz ish oqimi buni nazoratsiz haqiqatan qo'llab-quvvatlaydimi, hal qiling. Statik parolga ega fayl aylanadigan kodga javob bera olmaydi va javob berib bo'lmaydigan so'rovni qayta urinish ma'lumot qo'shmaydi.
Nima uchun script-security yordam bermaydi
script-security mijoz skriptlarni ishga tushira oladimi va ularga qancha bera oladi, shu jumladan parolni muhit o'zgaruvchisi orqali skriptga berish mumkinmi, shuni boshqaradi. Foydalanuvchi nomi va parolning boshida qayerdan kelishi haqida hech narsa demaydi.
Uni yuqori darajaga ko'tarish odatiy refleks, chunki xabarda Auth tilga olinadi, lekin u kiritish manbasini emas, skript ruxsatlarini o'zgartiradi va mijoz nimalarni bajarishi mumkinligini kengaytiradi. Agar yordamchi skript dizaynning bir qismi bo'lsa, avval kiritish manbasini tuzating va xavfsizlik darajasini joylashtirish uchun zarur eng past qiymatda saqlang.
Boshqaruv interfeysi qonuniy alternativdir. Frontend unga ulanib, hisob ma'lumotlari so'rovini qabul qilishi va foydalanuvchi nomi hamda parol bilan javob berishi mumkin; ba'zi GUI shunday ishlaydi. Agar undan foydalansangiz, uni mahalliy manzilga bog'lang, boshqaruv parol fayli bilan himoyalang va kim ulanishi mumkinligini cheklang, chunki bu mijoz uchun boshqaruv kanali.
Mijoz faylni o'qigandan keyin keyingi bosqichni tekshiring
Mijoz hisob ma'lumotlarini o'qiy olgach, keyingi nosozlik server bilan haqiqiy almashinuvdir va uning xabari boshqa ma'noga ega. O'sha bosqichdagi autentifikatsiya nosozligi server hisobni rad etganini bildiradi; sinov javobi server boshqa omilni xohlayotganini bildiradi. Ularni o'sha muammoning takrori emas, yangi muammolar deb qarang.
Butun yo'lni xizmat ishga tushiradigan tarzda sinab ko'ring: bir xil hisob, bir xil ish katalogi, bir xil unit muhiti. Faqat qobiqingizdan ishga tushirilganda ishlaydigan ulanish muhit o'zgaruvchisi yoki terminal hali ham oqimning bir qismi ekanligiga ishora.
So'ngra sirlarni joyida saqlang. Buyruq qatori argumentlaridagi parollar jarayon jadvalida ko'rinadi, disk raskadrovka chiqishidagi parollar chiptalarga tushadi. Himoyalangan fayl yoki boshqaruv interfeysidan foydalaning, jurnallarni hisob ma'lumotlarini takrorlamaydigan darajada saqlang va kirish huquqiga ega kimdir ketganda faylni almashtiring.
Tekshiruv ro'yxati: mutlaq hisob ma'lumotlari yo'li, xizmat hisobi sifatida o'qiladi, terminal talab qilinmaydi, script-security o'z minimumida, boshqaruv interfeysi faqat bog'langan va autentifikatsiya qilingan bo'lsa, va natijada server javobi alohida hodisa sifatida qaraladi.