Linux + Active Directory-Authentifizierung + nur bestimmte Gruppen anmelden lassen


14

Ich habe einige Linux-Boxen, die Windows Active Directory-Authentifizierung verwenden, das funktioniert gut (Samba + Winbind).

Jetzt möchte ich jedoch nur bestimmten Personen oder bestimmten Gruppen erlauben, sich mit Active Directory-Anmeldeinformationen anzumelden. Derzeit kann sich jeder mit einem gültigen AD-Konto anmelden. Ich möchte dies auf einige wenige Gruppen beschränken. Ist das machbar?

Antworten:


6

Unter der Annahme, dass die Gruppen für das Linux-System verfügbar sind, empfehle ich die Bearbeitung /etc/security/access.conffür Ubuntu, RedHat-Distributionen (und ihre Forks) und wahrscheinlich eine Reihe anderer. Dies erfordert keine Bearbeitung von PAM-Dateien und ist ein guter Standard, um dies zu tun. In der Regel sind Beispiele in der Datei auskommentiert.


Danke, das ist es, was ich letztendlich verwendet habe, um das zu tun, was ich tun wollte. Alle Antworten oben waren großartig, aber dies ist die, die am besten für mich funktioniert hat. Ich benutze die Samba-Datei, um Samba zu sperren, und jetzt benutze ich diese access.conf-Datei, um SSH-Anmeldungen zu sperren.
Luma

4

(Ich spreche hier von Samba 3, keine Erfahrung mit Samba 4.)

Diese /etc/pam.d/xxx -Dateien müssen nicht bearbeitet werden. pam_winbind.conf ist die gewünschte Datei und befindet sich normalerweise unter /etc/security/pam_winbind.conf .

Es ist die Konfigurationsdatei des Moduls pam_winbind und funktioniert sowohl für CentOS / Redhat als auch für Debian / Ubuntu. Sie können die Manpage von pam_winbind.conf als Referenz lesen .

Hier ist eine Beispieldatei.

#
# 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

Ich verwende derzeit die AllowGroupsDirektive in /etc/ssh/sshd_config, um zu begrenzen, wer sich anmelden kann. Geben Sie eine oder mehrere AD-Gruppen in dieser Zeile an, und nur diese Personen können sich anmelden.

Beachten Sie, dass dies nur funktioniert, wenn Ihre Benutzer nur remote über ssh auf den Server zugreifen. Wenn sie lokal einspielen, müssen Sie eine andere Lösung finden.


3

Ja, es gibt einige Möglichkeiten, dies zu tun, je nachdem, was Sie genau erreichen möchten.

Die erste Methode kann über die Samba-Konfiguration durchgeführt werden. Auf diese Weise können diese Benutzer nur eine Verbindung zu Samba herstellen. Andere Benutzer können sich weiterhin über andere Dienste (ssh, lokaler Begriff usw.) anmelden. Damit möchten Sie Ihrem Abschnitt [global] in smb.conf eine Zeile hinzufügen:

valid users = @groupA @groupB

Die andere Methode besteht darin, die PAM-Regeln zu ändern. Unterschiedliche Distributionen haben hier geringfügige Unterschiede, aber im Allgemeinen gibt es PAM-Regeln pro Dienst sowie gemeinsame Regeln. Sie können entscheiden, was am besten ist. Sie möchten eine Kontoeinschränkung mit dem Modul pam_require hinzufügen. Ein Beispiel für meinen Laptop (Fedora 13) wäre, den Kontoabschnitt in /etc/pam.d/system-auth zu ändern, um:

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

Zur Vereinfachung der Verwaltung möchten Sie möglicherweise eine neue Gruppe in AD erstellen, um Benutzer zu verfolgen, die sich bei diesem Server anmelden können.


1

In RHEL 7 hatte ich Mühe, die oben genannten Funktionen für mich zu aktivieren. Nachstehend ist das aufgeführt, was ich zur Arbeit bringen konnte.

/etc/sssd/sssd.conf

Wechseln Sie access_provider = ad zu access_provider = simple +simple_allow_groups = @group1-admins@xxx.xxx.com, @group2@xxx.xxx.com

visudo

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

Starten Sie den sssd-Dienst neu.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.