Verwendung von Active Directory zur Authentifizierung von Linux-Benutzern

10

Was sind die Best Practices für die Verwendung von Active Directory zur Authentifizierung von Benutzern unter Linux-Boxen (Debian)?

Ich möchte, dass es funktioniert, indem AD-Benutzer zu einer Gruppe hinzugefügt werden - beispielsweise Linux-Administratoren oder Linux-Webserver - und basierend auf ihrer Gruppenmitgliedschaft wird ihnen kein Zugriff auf einen bestimmten Server gewährt. Im Idealfall ist das Root-Konto das einzige, das auf die übliche Weise verwaltet wird.

Meine Ziele dabei sind:

  • Kennwortänderungen an einem Ort zulassen
  • So gewähren Sie bestimmten Personen automatisch Zugriff auf die Linux-Server mit ihren AD-Anmeldeinformationen
  • Alle unsere Benutzerinformationen in einer Datenbank zusammenfassen

Dinge, die ich vermeiden möchte, sind:

  • Alles, was für unseren Active Directory-Administrator schwierig / nicht intuitiv zu verwalten ist
  • Sperren von Benutzern, wenn die AD-Server aus irgendeinem Grund nicht erreichbar sind (dh die Anmeldeinformationen müssen irgendwie zwischengespeichert werden)
  • Alles, was zu komplex oder nicht dem Standard entspricht und beim nächsten Upgrade des Servers beschädigt wird.
Brent
quelle

Antworten:

4

Die gesuchte Software heißt Ebenso offen.

Von ihrer Seite:

  • Verbindet Nicht-Windows-Systeme in einem einzigen Schritt über die Befehlszeile oder über eine GUI mit Active Directory-Domänen
  • Authentifiziert Benutzer mit einem einzigen Benutzernamen und Kennwort unter Windows und Nicht-Windows
  • Erzwingt dieselben Kennwortrichtlinien für Nicht-Windows-Benutzer und Windows-Benutzer
  • Unterstützt mehrere Gesamtstrukturen mit Einweg- und Zweiweg-Gesamtstrukturvertrauensstellungen
  • Zwischenspeichert Anmeldeinformationen für den Fall, dass Ihr Domänencontroller ausfällt
  • Bietet Single Sign-On für SSH und Putty
  • Authentifizierungsmodul der nächsten Generation, das Kerberos, NTLM und SPNEGO unterstützt
  • Es sind keine Schemaänderungen an Active Directory erforderlich

Wir haben es hier auf einigen Maschinen verwendet und es scheint gut zu funktionieren.

http://www.likewise.com/products/likewise_open/

Dave Drager
quelle
Hat Ebenso Open ein Debian-Repository? Dies ist uns wichtig für die Verwaltung von Sicherheitspatches.
Brent
1
Es hat ein Ubuntu-Paket: Paket: ebenfalls offen Status: nicht installiert Version: 4.1.2982-0ubuntu1 Priorität: optional Abschnitt: net Maintainer: Ubuntu Core Developers <[email protected]>
jay_dubya
3

Ich habe Ebenso-Open verwendet und festgestellt, dass es fehlerhaft und nicht sehr zuverlässig ist. Letztes Jahr bin ich zu Centrify gewechselt, sowohl für Linux als auch für den Mac, und musste mich überhaupt nicht viel damit anlegen. Ich bevorzuge die Konfiguration der Conf-Datei von Centrify bei weitem der Konfiguration der Registrierungsdatei von Ebenso-Open, die eine Manipulation mit externen Tools erfordert.

http://www.centrify.com/express/free-active-directory-tools-for-linux-mac.asp

Jeremy Nelson
quelle
3

Es gibt keinen Grund für Sie, bei den meisten Distributionen externe Software zu verwenden.

Für Debian / Ubuntu können Sie dies mit libnss-ldap und libpam-krb5 tun. Es gibt ein paar Tricks, um es 100% zu bekommen. Dies setzt voraus, dass Sie "unixHomeDirectory" für Linux-Benutzer ausgefüllt haben, Ihre Linux-Boxen NTP verwenden, das mit Ihren Windows-Systemen gemeinsam ist (von Kerberos benötigt), und dass Sie mit NSS-Suchvorgängen im Klartext einverstanden sind (nicht Kennwort, sondern Gruppenmitgliedschaftsinformationen usw.) Verwenden Sie TLS, aber die Einrichtung ist komplizierter. Sie sollten pam_ldap NICHT als Kennwort oder Authentifizierungsquelle in PAM haben, es sei denn, Sie sind für die Verwendung von TLS eingerichtet.

/etc/ldap.conf

# LDAP Configuration for libnss-ldap and libpam-ldap.
# Permit host to continue boot process with out contacting LDAP server
bind_policy soft
# Define LDAP servers to use for queries, these must be Global Catalog servers
uri ldap://ldap.site.company.local
# Define root search location for queries
base dc=company,dc=local
#debug 1
# LDAP version, almost always going to be v3, it is quite mature
ldap_version 3
# Username used to proxy authentication. You can have this in a separate file owned by root for security OR use TLS/SSL (see man page)
# Do NOT use LDAP for authentication if you are using plain text binds, use Kerberos instead (and LDAP for authorization only). See libpam-krb5.
binddn cn=ldap-auth-svc,ou=ldap,ou=services,dc=site,dc=company,dc=local
# Password for proxy acct
bindpw SooperSekeretPazzwerd
#  TCP port to perform queries on, 3268 is a Global Catalog port which will reply for all users in *.company.local
port 3268
# Search range scope (sub = all)
scope sub
# Tell the client to close TCP connctions after 30 seconds, Windows will do this on the server side anyways, this will prevent errors from showing up in the logs.
 idle_timelimit 30
# Expect queries for group membership to return DN for group members instead of usernames (lets you use MSAD group membership seamlessly)
nss_schema rfc2307bis
# Filters - User accounts must have a UID >= 2000 to be recognized in this configuration and must have a unixHomeDirectory defined.
nss_base_group dc=company,dc=local?sub?&(objectClass=group)(gidNumber=*)
nss_base_user dc=company,dc=local?sub?&(objectClass=user)(!(objectClass=localputer))(uidNumber>=2000)(unixHomeDirectory=*)
nss_base_shadow dc=company,dc=local?sub?&(objectClass=user)(!(objectClass=localputer))(uidNumber>=2000)(unixHomeDirectory=*)
# Object Class mappings.  You may want to have the posixAccount to map to "mail" and have users login with their email addresses, i.e.  "nss_map_objectclass posixAccount mail".
nss_map_objectclass posixAccount user
nss_map_objectclass shadowAccount user
nss_map_objectclass posixGroup group
# Attribute mappings.
nss_map_attribute uniqueMember member
nss_map_attribute uid sAMAccountName
nss_map_attribute homeDirectory unixHomeDirectory
nss_map_attribute shadowLastChange pwdLastSet
# Attribute in LDAP to query to match the username used by PAM for authentication
pam_login_attribute sAMAccountName
# Filter for objects which are allowed to login via PAM
pam_filter objectclass=User

Sie sollten /etc/krb5.conf nicht bearbeiten müssen, vorausgesetzt, Ihre Linux-Boxen verwenden DNS-Server, die sich mit AD auskennen (_msdcs-Zonen mit den entsprechenden SRV-Einträgen können aufgelöst werden).

/etc/nsswitch.conf sollte "files ldap" für Benutzer, Gruppen, Schatten haben.

Für Red Hat mit SSSD:

/etc/sssd/sssd.conf

[domain/AD]
id_provider = ldap
auth_provider = krb5
chpass_provider = krb5
access_provider = ldap

ldap_uri = ldap://ldap.company.local:3268/
ldap_search_base = dc=company,dc=com
ldap_default_bind_dn = cn=ldap-auth-svc,ou=ldap,ou=services,dc=site,dc=company,dc=local
ldap_default_authtok = SooperSekeretPazzwerd
ldap_schema = rfc2307bis
ldap_user_object_class = user
ldap_group_object_class = group
ldap_user_name = sAMAccountName
ldap_user_home_directory = unixHomeDirectory
enumerate = true
ldap_tls_reqcert = never
ldap_tls_cacertdir = /etc/openldap/cacerts

ldap_id_use_start_tls = False
cache_credentials = True
krb5_realm = SITE.COMPANY.COM
case_sensitive = false
[sssd]
services = nss, pam
config_file_version = 2

domains = AD
[nss]
filter_users = root,named,avahi,nscd
TheFiddlerWins
quelle