Serverdə istifadəçi əlavə edildi, parol düzgün yazıldı, amma bağlantı yenə də AUTH_FAILED ilə bitir. Plagin sətri adətən səbəbi izah edir: plagin yolundan sonra gələn söz PAM xidmət adıdır və hansı modul yığınının suala cavab verəcəyini o müəyyən edir. Bu istifadəçi adı deyil və parol faylına göstərici də deyil ki, onu OpenVPN proqramının özü oxusun.

İkinci söz nəyi seçir

Konfiqurasiya sətri plagin yolunu və bir arqumenti götürür:

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

Bu arqument PAM kitabxanasına xidmət adı kimi ötürülür və bununla da /etc/pam.d/openvpn ünvanındakı yığın işə düşür. Ora login yazsanız, əvəzində interaktiv giriş siyasətini alırsınız — distributivinizdə həmin siyasətə hansı modullar daxildirsə, onlarla birlikdə.

Quraşdırılmış paketin təqdim etdiyi plagin yolundan istifadə edin, başqa hostdan kopyalanmış yoldan deyil. Fayl adı və qovluq distributivlər arasında fərqlənir və səhv yol autentifikasiya mərhələsində deyil, başlanğıcda plagin yükləmə xətası ilə uğursuz olur.

Yığın hesabları əslində haradan oxuyur

PAM dispetçerdir. Xidmət faylı modulları sıra ilə sadalayır və cavab verə bilən ilk modul nəticəni müəyyən edir. pam_unix çağıran yığın yerli hesabları oxuyur; LDAP və ya RADIUS modulu çağıran yığın isə etimadnamələri tamamilə başqa yerə göndərir.

Xidmət adının uyğun gəldiyi faylı, o cümlədən onun daxil etdiyi hər şeyi oxuyun:

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

Əgər yığın kataloqa delegasiya edirsə, yerli hesab əlavə etmək heç nəyi dəyişmir. Əgər yerli hesabları oxuyursa, kataloqda istifadəçi yaratmaq da heç nəyi dəyişmir. Hesab yığının baxdığı yerdə mövcud olmalıdır və bu hesabatların çoxunda bütün diaqnoz bundan ibarətdir.

Bir cəhd, iki jurnal

Tək uğursuz bağlantını hər iki tərəfdə korrelyasiya edin. OpenVPN jurnalı plaginin nəticəsini və müştərinin rəddini göstərir; sistem autentifikasiya jurnalı hansı modulun işlədiyini və nə qərar verdiyini göstərir. Onları eyni zaman pəncərəsində oxumaq itkin xidmət faylını backend fasiləsindən ayıran şeydir. Autentifikasiya jurnalındakı boşluq yığına ümumiyyətlə çatılmadığını bildirir.

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

Xidməti PAM ilə danışan bir alətlə birbaşa sınayın ki, VPN-i və yığını eyni vaxtda sazlaya bilməyəsiniz. Eyni xidmət adı və hesabla uğurlu birbaşa sınaq problemi daemonun etimadnamələri necə ötürməsində saxlayır, hesabın özündə deyil.

pamtester openvpn alice authenticate

Birbaşa sınaq konsolda işləyən eyni etimadnamələrlə uğursuz olursa, yığın sizin güman etdiyiniz hesab mənbəyini oxumur. Uğurlu olursa, plaginin apardığı dialoqa və müştərinin həqiqətən göndərdiyinə baxın. Bir dəfə də qəsdən səhv parolla işlədin ki, rədd ilə modul xətası arasındakı fərqi görəsiniz. Bu iki nəticə VPN jurnalında eyni, burada isə tamamilə fərqli görünür.

Ayrı xidmət interaktiv girişi redaktə etməkdən üstündür

VPN-in tələbləri interaktiv girişdən fərqləndikdə — ki bu adətən belədir — ona öz xidmət faylını verin. login və ya common-auth faylını redaktə etmək onları daxil edən hər proqram üçün siyasəti dəyişir və əlaqəsiz bir giriş problemini sazlayan növbəti şəxs sizin dəyişikliyinizi miras alır.

Lazım olan modulları kiçik bir xidmət faylına köçürün, sıranı açıq saxlayın və kimin sahib olduğunu qeyd edin. Parol sıfırlaması heç bir təsir göstərmirmiş kimi göründükdə yoxlanmalı olan fayl məhz budur.

Müştəri nə göndərir və nə göndərmir

Müştəri istifadəçi adını və parolu dəstəklənən sorğu və ya fayl vasitəsilə verir. Server plagini bu dəyərləri PAM dialoquna ötürür; onları serverin konfiqurasiyasından oxumur. Server tərəfində parol təyin etdiyi görünən sətir bunu etmir və heç bir profil redaktəsi hesab yaratmaz.

İstifadəçi adı və parol müştəri sertifikatları ilə birlikdə mövcud ola bilər, və PAM-i aktivləşdirmək sertifikatları yoxlamağı dayandırmaq üçün səbəb deyil. Yerləşdirmənin nəzərdə tutduğu qatları saxlayın və yalnız hesab mənbəyini düzəldin.

Qəbul ikitərəflidir: nəzərdə tutulan hesab uğur qazanır, rədd edilməli olan hesab isə yenə də uğursuz olur. Bu auth-pam plagini README sənədi xidmət arqumentini və onun önünə çıxa biləcəyi backendləri sənədləşdirir; qurmaq istədiyiniz quruluşu təsdiqləmək üçün yer məhz burasıdır.

Əlaqəli məqalələr