Serverga foydalanuvchi qo‘shildi, parol to‘g‘ri terildi, ammo ulanish baribir AUTH_FAILED bilan tugaydi. Plagin satri odatda sababini tushuntiradi: plagin yo‘lidan keyingi so‘z PAM xizmat nomi bo‘lib, savolga qaysi modullar steki javob berishini u belgilaydi. Bu foydalanuvchi nomi emas va OpenVPN o‘zi o‘qiydigan parol fayliga ko‘rsatkich ham emas.

Ikkinchi so‘z nimani tanlaydi

Konfiguratsiya satri plagin yo‘lini va bitta argumentni oladi:

plugin /usr/lib/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn

Bu argument PAM kutubxonasiga xizmat nomi sifatida beriladi, shu sababli /etc/pam.d/openvpn dagi stek ishga tushadi. U yerga login yozsangiz, uning o‘rniga interaktiv kirish siyosatini olasiz — bu siyosat distributivingizda qaysi modullarni o‘z ichiga olsa, shular bilan.

O‘rnatilgan paket taqdim etadigan plagin yo‘lidan foydalaning, boshqa xostdan ko‘chirilgan yo‘ldan emas. Fayl nomi va katalog distributivlar orasida farq qiladi, noto‘g‘ri yo‘l autentifikatsiyada emas, ishga tushishda plagin yuklash xatosi bilan ishlamay qoladi.

Stek hisoblarni aslida qayerdan o‘qiydi

PAM — taqsimlovchi. Xizmat fayli modullarni tartib bilan sanaydi va javob bera oladigan birinchisi natijani belgilaydi. pam_unix ni chaqiradigan stek mahalliy hisoblarni o‘qiydi; LDAP yoki RADIUS modulini chaqiradigan stek esa hisob ma’lumotlarini butunlay boshqa joyga yuboradi.

Xizmat nomi hal qiladigan faylni, u o‘z ichiga olgan hamma narsa bilan o‘qing:

cat /etc/pam.d/openvpn
grep -H pam_ /etc/pam.d/openvpn /etc/pam.d/common-auth

Agar stek katalogga vakolat bersa, mahalliy hisob qo‘shish hech narsani o‘zgartirmaydi. Agar u mahalliy hisoblarni o‘qisa, katalogda foydalanuvchi yaratish ham hech narsani o‘zgartirmaydi. Hisob stek qaraydigan joyda mavjud bo‘lishi kerak va bu hisobotlarning ko‘pchiligida butun tashxis shundan iborat.

Bitta urinish, ikkita jurnal

Bitta muvaffaqiyatsiz ulanishni ikki tomonda bog‘lang. OpenVPN jurnali plagin natijasini va mijozning rad etishini ko‘rsatadi; tizim autentifikatsiya jurnali qaysi modul ishlaganini va nima qaror qilganini ko‘rsatadi. Ularni bir xil vaqt oynasida o‘qish yetishmayotgan xizmat faylini backend taymautidan ajratadigan narsadir. Autentifikatsiya jurnalida bo‘shliq bo‘lsa, stekka umuman yetib borilmagan.

journalctl -u openvpn-server@server --since "-2 min"
journalctl -t sshd -t sudo --since "-2 min"

Xizmatni PAM bilan gaplashadigan vosita yordamida to‘g‘ridan-to‘g‘ri sinang, shunda VPN va stekni bir vaqtda tuzatishga to‘g‘ri kelmaydi. Xuddi shu xizmat nomi va hisob bilan muvaffaqiyatli to‘g‘ridan-to‘g‘ri sinov muammoni daemon hisob ma’lumotlarini qanday uzatishiga qisqartiradi, hisobning o‘ziga emas.

pamtester openvpn alice authenticate

Agar to‘g‘ridan-to‘g‘ri sinov konsolda ishlaydigan aynan shu hisob ma’lumotlari bilan muvaffaqiyatsiz bo‘lsa, stek siz o‘ylagan hisob manbasini o‘qimayapti. Agar u muvaffaqiyatli bo‘lsa, plagin olib boradigan suhbatga va mijoz aslida nima yuborganiga qarang. Uni bir marta ataylab noto‘g‘ri parol bilan ham ishga tushiring, rad etish bilan modul xatosi orasidagi farqni ko‘rish uchun. Bu ikki natija VPN jurnalida bir xil, bu yerda esa butunlay boshqacha ko‘rinadi.

Alohida xizmat kirishni tahrirlashdan yaxshiroq

VPN talablari interaktiv kirishdan farq qilganda unga o‘z xizmat faylini bering — odatda shunday bo‘ladi. login yoki common-auth ni tahrirlash ularni o‘z ichiga olgan har bir dastur uchun siyosatni o‘zgartiradi va aloqasiz kirish muammosini tuzatadigan keyingi odam sizning o‘zgarishingizni meros qilib oladi.

Kerakli modullarni kichik xizmat fayliga ko‘chiring, tartibni aniq saqlang va kimga tegishli ekanini yozib qo‘ying. Parolni tiklash hech qanday ta’sir ko‘rsatmayotgandek tuyulganda tekshiriladigan fayl aynan shu.

Mijoz nima yuboradi va nima yubormaydi

Mijoz foydalanuvchi nomi va parolni qo‘llab-quvvatlanadigan so‘rovi yoki fayli orqali taqdim etadi. Server plagini bu qiymatlarni PAM suhbatiga uzatadi; ularni server konfiguratsiyasidan o‘qimaydi. Server tomonida parolni belgilayotgandek ko‘ringan satr buni qilmaydi va hech qanday profil tahriri hisob yaratmaydi.

Foydalanuvchi nomi va parol mijoz sertifikatlari bilan birga mavjud bo‘lishi mumkin, va PAM ni yoqish sertifikatlarni tekshirishni to‘xtatish uchun sabab emas. Joylashtirish nazarda tutgan qatlamlarni saqlang va faqat hisob manbasini tuzating.

Qabul ikki tomonlama: mo‘ljallangan hisob muvaffaqiyatli bo‘ladi va rad etilishi kerak bo‘lgan hisob baribir muvaffaqiyatsiz bo‘ladi. Fayl auth-pam plagini README si xizmat argumentini va u xizmat ko‘rsata oladigan backendlarni hujjatlashtiradi; qurmoqchi bo‘lgan tuzilmangizni tasdiqlash joyi ana shu.

O'xshash maqolalar