Pam_krb5'te kerberos üzerinden engelli AD hesaplarına erişimi nasıl reddedebilirim?


10

Çalışan bir AD / Linux / LDAP / KRB5 dizinim ve kimlik doğrulama kurulumum var, küçük bir sorunla. Bir hesap devre dışı bırakıldığında, SSH publickey kimlik doğrulaması yine de kullanıcının oturum açmasına izin verir.

Kerberos istemcilerinin devre dışı bırakılmış bir hesabı tanımlayabileceği açıktır; kinit ve kpasswd, "İstemci kimlik bilgileri iptal edildi" ifadesini döndürür.

PAM, publickey tarafından kimlik doğrulamanın yapıldığı devre dışı bırakılmış hesaplar için oturum açmaya izin vermeyecek şekilde (sshd_config içinde "UsePAM yes" ile) yapılandırılabilir mi? Bu işe yaramaz gibi görünüyor:

account     [default=bad success=ok user_unknown=ignore] pam_krb5.so

Lütfen cevabınızda winbind'i tanıtmayın - kullanmayız.

Yanıtlar:


4

SSH'nin "sabit" olmasını isteyen başka bir yerde okudum, böylece kilitli hesaplar SSH yoluyla oturum açılamıyor. (bkz. Debian bug 219377) Bu istek bir yama olarak reddedildi, çünkü "yalnızca passwd'yi kilitlemek için kullanılan passwd kullanıcılarından bazı beklentileri ihlal ediyor." (bkz. Debian bug 389183) örneğin, bazı kişiler hesapları şifre girişlerinden kilitleyebilmek istiyor, ancak yine de SSH anahtar erişimine izin vermek istiyordu.

PAM, henüz kilitlenmiş olan hesaplar için SSH anahtarı kimlik doğrulamasını reddetmez (ör. Geçersiz şifre girişimleri nedeniyle, SSH anahtarı kimlik doğrulaması, hesapların genellikle kilitlendiği şifre alanına hiç dikkat etmeyecek şekilde tasarlandığından).

Parola karma girdisinin pam_acct_mgmt () zamanında değil, pam_authenicate () zamanında örtülü olarak kontrol edildiğini anlıyorum. pam_unix.so pam_sm_acct_mgmt () şifre karmasını hiç kontrol etmez ve genel anahtar kimlik doğrulaması sırasında pam_authenticate () çağrılmaz.

Amacınız hesapların giriş yapmasını merkezi olarak devre dışı bırakabilmekse aşağıdakiler de dahil olmak üzere başka olası çözümler de vardır:

Giriş kabuğunu değiştirme.

yetkili_anahtarlar dosyasını (yeniden) taşımak.

Erişimi reddetmek için başka bir seçenek de sshd_config içinde DenyGroups veya AllowGroups kullanımı olabilir. (ardından kullanıcıyı bir "sshdeny" grubuna ekleyebilir veya giriş yapmalarını engellemek için bir "sshlogin" grubundan çıkarabilir.) (burayı okuyun: https://help.ubuntu.com/8.04/serverguide/user-management .html )

Gönderen http://web.archiveorange.com/archive/v/67CtqEoe5MhDqkDmUMuL okudum: "Sorun pam_unix çekleri gölge girişinin sadece son kullanma tarihleri, değil şifre karma alan içeriği olduğunu." Bu doğruysa, hesabın kilitlenmesi yerine süresi dolar mı?

Sorunuzun cevabı muhtemelen "evet eğer şifre alanına başka yerlerdeki bunları devre dışı bırakıyoruz"


4

Biraz daha ev ödevi yaptım ve kendi sorumu yanıtlıyorum.

pam_krb5-2.3.14-1/src/acct.cRedHat'ın pam_krb5 ( ) öğesinde, modül kimlik doğrulama aşamasına katılmadıkça, pam_sm_acct_mgmt () işlevi, modül yapılandırmasına bağlı olarak PAM_IGNORE veya PAM_USER_UNKNOWN işlevlerini döndürür. Bu nedenle ne istediğimi yapmak için pam_krb5 kodunda değişiklik gerektirir.

JohnGH'nin cevabı iyi bir çözümdür; kabuğunu kırmak veya "engelli kullanıcılar" grubuna eklemek gibi aynı anlamı iletmek için "proxy" özelliklerini kullanma.

Başka bir geçici çözüm (kısmen test edilmiştir) geçmişte bir hesap son kullanma tarihi ayarlamak ve hesap kontrollerinde başarısız olmak için pam_unix gibi bir modül kullanmaktır. Bu, KRB5 yerine LDAP kullanır, ancak aynı merkezi olarak yönetilen kullanıcı dizinini sorgular.


2

SSH anahtar tabanlı kimlik doğrulaması PAM'den bağımsızdır. Aşağıdaki çözümlere sahipsiniz:

  • sshd_config'de anahtar tabanlı kimlik doğrulamayı devre dışı bırak
  • sshd'yi değiştirin ve yeniden derleyin ve anahtar tabanlı yetkilendirmenin hesabın pam yoluyla geçerli olup olmadığını da kontrol etmesi için bir kanca ekleyin.

Kerberos üzerinden şifresiz oturum açmak istiyorsanız, şunlardan emin olmalısınız:

  • sshd için pam kullanmıyorsunuz
  • kerberos doğru yapılandırılmış. Örneğin yapabilirsinkinit -k host/server1.example.com@DOMAIN
  • sshd sizin gssapi kullanacak şekilde yapılandırılmıştır:

    KerberosAuthentication evet GSSAPIAuthentication evet GSSAPICleanupCredentials evet UsePAM hayır

  • PuTTY v0.61 veya daha yenisi gibi kerberized ssh istemcisini kullanırsınız.


1
SSH ortak anahtar yetkisinin PAM'dan bağımsız olduğunu kabul etmiyorum. account optional pam_echo.so file=/etc/redhat-release/Etc/pam.d/sshd dosyasına eklemek , anahtar tabanlı kimlik doğrulama oturumlarını kullanırken dosya içeriğinin yazdırılmasına neden olur (deneyin).
Phil

Ben pam sadece hesap için kullanılır (örneğin ev klasörü oluşturmak için) ve auth için değil. Şimdi bu vakayı kontrol ediyorum.
Mircea Vutcovici
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.