Linux + Active Directory kimlik doğrulaması + yalnızca belirli grupların oturum açmasına izin verme


14

Sadece iyi çalışır (Samba + Winbind), Windows Active Directory kimlik doğrulamasını kullanan bazı linux kutuları var.

Şimdi ne yapmak istiyorum ama sadece belirli kişilerin veya belirli grupların Active Directory kimlik bilgilerini kullanarak oturum açmasına izin verir. Şu anda geçerli bir AD hesabı olan herkes giriş yapabilir. Bunu sadece birkaç grupla sınırlandırmak istiyorum. Bu yapılabilir mi?

Yanıtlar:


6

Grupların Linux sistemi için kullanılabilir olduğunu varsayarsak, /etc/security/access.confUbuntu, RedHat dağıtımları (ve çatalları) ve muhtemelen bir grup başkaları için düzenleme yapmanızı öneririm . Bu, PAM dosyalarının düzenlenmesini gerektirmez ve bunu yapmak için oldukça standart bir yerdir. Dosyada genellikle yorum yapılmış örnekler vardır.


Teşekkürler, yapmak istediğim şeyi yapmak için kullandığım şey bu, yukarıdaki tüm cevaplar harika nerede ama bu benim için en iyi olanı. Samba'yı kilitlemek için Samba dosyasını kullanıyorum ve şimdi SSH oturumlarını kilitlemek için bu access.conf dosyasını kullanıyorum.
Luma

4

(Burada samba 3'ten bahsediyorum, şimdi samba 4'te deneyim yok.)

Bu /etc/pam.d/xxx dosyalarını düzenlemenize gerek yoktur. pam_winbind.conf istediğiniz dosyadır, genellikle /etc/security/pam_winbind.conf adresinde bulunur .

Pam_winbind modülünün yapılandırma dosyasıdır ve hem CentOS / Redhat hem de Debian / Ubuntu için çalışır. Referans için pam_winbind.conf'un man sayfasını okuyabilirsiniz .

İşte bir örnek dosya.

#
# pam_winbind configuration file
#
# /etc/security/pam_winbind.conf
#

[global]

# turn on debugging
;debug = no

# turn on extended PAM state debugging
;debug_state = no

# request a cached login if possible
# (needs "winbind offline logon = yes" in smb.conf)
cached_login = yes

# authenticate using kerberos
;krb5_auth = no

# when using kerberos, request a "FILE" krb5 credential cache type
# (leave empty to just do krb5 authentication but not have a ticket
# afterwards)
;krb5_ccache_type =

# make successful authentication dependend on membership of one SID
# (can also take a name)
# require_membership_of = SID,SID,SID
require_membership_of = S-1-5-21-4255311587-2195296704-2687208041-1794

# password expiry warning period in days
;warn_pwd_expire = 14

# omit pam conversations
;silent = no

# create homedirectory on the fly
mkhomedir = yes

3

Şu anda AllowGroupsdirektifin /etc/ssh/sshd_configkimlerin giriş yapabileceğini sınırlamak için kullanıyorum. Bu satırda bir veya daha fazla AD grubu belirtin ve bu kişiler giriş yapabilen tek kişi olacak.

Bunun yalnızca kullanıcılarınız sunucuya yalnızca ssh üzerinden uzaktan erişiyorsa işe yaradığını unutmayın . Yerel olarak şarkı söylüyorlarsa, başka bir çözüm bulmanız gerekir.


3

Evet, tam olarak ne yapmaya çalıştığınıza bağlı olarak bunu yapmanın birkaç yolu vardır.

İlk yöntem samba yapılandırma ile yapılabilir. Bu, yalnızca bu kullanıcıların Samba'ya bağlanmasına izin verir, diğer kullanıcılar yine de diğer hizmetler (ssh, yerel terim, vb.) Bununla, smb.conf'daki [global] bölümünüze bir satır eklemek istersiniz:

valid users = @groupA @groupB

Diğer yöntem PAM kurallarını değiştirmektir. Farklı dağıtımların burada küçük farklılıkları vardır, ancak genel olarak hizmet başına PAM kuralları ve ortak kurallar vardır, neyin en iyi olduğuna karar verebilirsiniz. Pam_require modülünü kullanarak bir hesap kısıtlaması eklemek isteyeceksiniz. Dizüstü bilgisayarımdaki bir örnek (Fedora 13) /etc/pam.d/system-auth içindeki hesap bölümünü şu şekilde değiştirmek olabilir:

account     required      pam_unix.so
account     required      pam_require.so @groupA @groupB
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     required      pam_permit.so

Yönetimi basitleştirmek için, bu sunucuya giriş yapabilen kullanıcıları izlemek amacıyla AD'de yeni bir grup oluşturmak isteyebilirsiniz.


1

RHEL 7'de yukarıdakilerden herhangi birinin benim için çalışmasını sağlamak için mücadele ettim.

/etc/sssd/sssd.conf

Değişim access_provider = ad için access_provider = simple +simple_allow_groups = @group1-admins@xxx.xxx.com, @group2@xxx.xxx.com

visudo

  • %group1-admins@xxx.xxx.com ALL=(ALL) ALL

sssd hizmetini yeniden başlatın.


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.