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?

Luma
quelle

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.

Slartibartfast
quelle
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
Yanqian
quelle
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.

EEAA
quelle
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.

Ryan Bair
quelle
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 = @[email protected], @[email protected]

visudo

Starten Sie den sssd-Dienst neu.

Adam S
quelle
-3

Ich habe es geschafft, nur einen AD_USER oder AD_GROUP zur SSH-Anmeldung der Linux-Box per AD-Authentifizierung zuzulassen.

Die Details sind hier aufgelistet: (achten Sie auf Schritt 7 und 8)

https://gist.githubusercontent.com/xianlin/8c09d916994dac7630b9/raw/ee07817a03bc5904a5404a7e7c94e08ea0c7560a/CentOS_AD_Integration

Xianlin
quelle
Informationen fehlen
Geoffrey
Link ist tot, nutzloser Beitrag.
FreeSoftwareServers
Ich sehe nur Schritt 404. Nr. 7 und 8.
Todd Walton