Sunucuya bir kullanıcı eklendi, parola doğru yazıldı ve bağlantı yine de AUTH_FAILED ile bitiyor. Eklenti satırı genellikle nedenini açıklar: eklenti yolundan sonraki sözcük bir PAM hizmet adıdır ve soruyu hangi modül yığınının yanıtlayacağını o belirler. Bu bir kullanıcı adı değildir ve OpenVPN programının kendi okuduğu bir parola dosyasına işaret de değildir.

İkinci sözcük neyi seçer

Yapılandırma satırı bir eklenti yolu ve bir argüman alır:

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

Bu argüman PAM kitaplığına hizmet adı olarak verilir, böylece /etc/pam.d/openvpn altındaki yığın çalışan yığın olur. Oraya login yazarsanız bunun yerine etkileşimli oturum açma ilkesini alırsınız; bu ilke dağıtımınızda hangi modülleri içeriyorsa onlarla birlikte.

Kurulu paketin sağladığı eklenti yolunu kullanın, başka bir ana bilgisayardan kopyalanmış bir yolu değil. Dosya adı ve dizin dağıtımlar arasında farklıdır ve yanlış bir yol kimlik doğrulamada değil, başlangıçta eklenti yükleme hatasıyla başarısız olur.

Yığın hesapları gerçekte nereden okur

PAM bir dağıtıcıdır. Hizmet dosyası modülleri sırayla listeler ve yanıt verebilen ilk modül sonucu belirler. pam_unix çağıran bir yığın yerel hesapları okur; LDAP veya RADIUS modülü çağıran bir yığın ise kimlik bilgilerini tamamen başka bir yere gönderir.

Hizmet adının çözümlendiği dosyayı, içerdiği her şey dahil okuyun:

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

Yığın bir dizine devrediyorsa yerel hesap eklemek hiçbir şeyi değiştirmez. Yerel hesapları okuyorsa dizinde kullanıcı oluşturmak da hiçbir şeyi değiştirmez. Hesap, yığının baktığı yerde var olmalıdır ve bu raporların çoğunda tanının tamamı budur.

Bir deneme, iki günlük

Tek bir başarısız bağlantıyı her iki tarafta da ilişkilendirin. OpenVPN günlüğü eklenti sonucunu ve istemcinin reddini gösterir; sistem kimlik doğrulama günlüğü hangi modülün çalıştığını ve neye karar verdiğini gösterir. İkisini aynı zaman penceresinde okumak, eksik bir hizmet dosyasını arka uç zaman aşımından ayıran şeydir. Kimlik doğrulama günlüğündeki bir boşluk, yığına hiç ulaşılmadığı anlamına gelir.

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

Hizmeti PAM konuşan bir araçla doğrudan test edin, böylece VPN ile yığını aynı anda hata ayıklamazsınız. Aynı hizmet adı ve hesapla başarılı bir doğrudan test, sorunu arka plan programının kimlik bilgilerini nasıl aktardığına daraltır, hesabın kendisine değil.

pamtester openvpn alice authenticate

Doğrudan test, konsolda çalışan aynı kimlik bilgileriyle başarısız oluyorsa yığın varsaydığınız hesap kaynağını okumuyordur. Başarılı olursa eklentinin yürüttüğü konuşmaya ve istemcinin gerçekte gönderdiğine bakın. Bir kez de kasıtlı olarak yanlış bir parolayla çalıştırın ki ret ile modül hatası arasındaki farkı görün. Bu iki sonuç VPN günlüğünde aynı, burada ise tamamen farklı görünür.

Ayrı bir hizmet, oturum açmayı düzenlemekten iyidir

VPN'in gereksinimleri etkileşimli oturum açmadan farklı olduğunda ona kendi hizmet dosyasını verin; genellikle farklıdır. login veya common-auth dosyasını düzenlemek, bunları içeren her program için ilkeyi değiştirir ve ilgisiz bir oturum açma sorununda hata ayıklayacak bir sonraki kişi sizin değişikliğinizi devralır.

İhtiyacınız olan modülleri küçük bir hizmet dosyasına kopyalayın, sıralamayı açık tutun ve kime ait olduğunu not edin. Parola sıfırlaması etkisiz göründüğünde kontrol edilmesi gereken dosya odur.

İstemci ne gönderir ve ne göndermez

İstemci, desteklenen istemi veya dosyası aracılığıyla bir kullanıcı adı ve parola sağlar. Sunucu eklentisi bu değerleri PAM konuşmasına aktarır; bunları sunucu yapılandırmasından okumaz. Sunucu tarafında parola tanımlıyormuş gibi görünen bir satır bunu yapmaz ve hiçbir profil düzenlemesi hesap oluşturmaz.

Kullanıcı adı ve parola istemci sertifikalarıyla birlikte var olabilir, ve PAM'i etkinleştirmek sertifikaları doğrulamayı bırakmak için bir neden değildir. Dağıtımın amaçladığı katmanları koruyun ve yalnızca hesap kaynağını düzeltin.

Kabul iki yönlüdür: amaçlanan hesap başarılı olur ve reddedilmesi gereken hesap hâlâ başarısız olur. Dosya auth-pam eklentisinin README belgesi hizmet argümanını ve önünde durabileceği arka uçları belgeler ve kurmaya çalıştığınız düzeni doğrulayacağınız yer orasıdır.

İlgili makaleler