web-dev-qa-db-fra.com

Comment utiliser Active Directory pour authentifier les utilisateurs Linux

Quelles sont les meilleures pratiques pour utiliser Active Directory pour authentifier les utilisateurs des cases Linux (Debian)?

La façon dont je voudrais pouvoir travailler serait d'ajouter des utilisateurs publicitaires à un groupe - dites administrateurs Linux ou Linux Webserver et sur la base de leur adhésion de groupe, ils/ne serait pas être accordé accès à un serveur particulier. Idéalement, le compte root serait le seul maintenu de la manière standard.

Mes objectifs en ce faisant cela sont les suivants:

  • Autoriser les changements de mot de passe au même endroit
  • Accorder automatiquement à certaines personnes d'accéder aux serveurs Linux à l'aide de leurs informations d'identification publicitaires
  • Consolider toutes nos informations d'utilisateur dans une base de données

Les choses que je veux éviter sont:

  • quelque chose de difficile/contre-intuitif pour notre administrateur Active Directory de gérer
  • verrouiller les utilisateurs Si les serveurs d'annonces sont inaccessibles pour une raison quelconque (c'est-à-dire - il doit mettre en cache les informations d'identification)
  • tout ce qui est trop complexe ou non standard qui brisera la prochaine fois que je mettrai à niveau le serveur.
10
Brent
7
prestomation

Le logiciel que vous recherchez est appelé également-ouvert.

De leur page:

  • Joint des systèmes non-Windows aux domaines Active Directory en une seule étape de la ligne de commande ou d'une interface graphique
  • Authentifier les utilisateurs avec un seul nom d'utilisateur et un mot de passe sur Windows et non-Windows.
  • Applique les mêmes stratégies de mot de passe pour les utilisateurs non-Windows et les utilisateurs Windows
  • Prend en charge de multiples forêts avec des fiducies à sens unique et à double sens
  • Caches Caches Credentials Si votre contrôleur de domaine diminue
  • Fournit une connexion unique pour SSH et PUTTY
  • Moteur d'authentification de nouvelle génération qui prend en charge Kerberos, NTLM et SPNEGO
  • Aucun changement de schéma d'Active Directory requis

Nous l'avons utilisé sur certaines machines ici et cela semble bien fonctionner.

http://www.iMajustement.com/products/ikewise_open/open/

4
Dave Drager

Vous n'avez aucune raison d'utiliser un logiciel externe sur la plupart des distributions.

Pour Debian/Ubuntu, vous pouvez le faire avec Libnss-LDAP et libpam-KRB5. Il y a quelques astuces pour l'obtenir à 100%. Cela suppose que vous avez "Unixhomedirectory" peuplé pour les utilisateurs de Linux, vos boîtes Linux utilisent NTP courante avec vos systèmes Windows (requis par Kerberos) et que vous allez bien avec les recherches du texte brut NSS (pas de mot de passe Mais les informations sur l'adhésion au groupe, etc. - vous pouvez également utiliser TLS, mais c'est plus compliqué à configurer). Vous ne devez pas avoir PAM_LDAP en tant que mot de passe ou source d'authentification à PAM, sauf si vous êtes configuré pour utiliser TLS.

/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

Vous n'avez pas besoin d'éditer /etc/krb5.conf en supposant que vos cases Linux utilisent des serveurs DNS qui connaissent les zones d'AD (_MSDCS avec les enregistrements SRV appropriés sont résolvables)

/etc/nsswitch.conf doit avoir "fichiers LDAP" pour les utilisateurs, les groupes, les ombres.

Pour le chapeau rouge utilisant 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
3
TheFiddlerWins

J'ai aussi utilisé - ouvert et je l'ai trouvé pour être buggy et pas très fiable. L'année dernière, je suis passée à Centry, à la fois pour Linux et pour le Mac, et je n'ai pas eu à désordre avec beaucoup. Je préfère de loin la configuration de fichier Conf de Centrify pour la configuration du fichier de registre d'écran Open qui nécessite une manipulation avec des outils externes.

http://www.centrify.com/express/free-active-Directory-Tools-for-linux-mac.asp

3
Jeremy Nelson

Vous devriez évaluer le rayon. Configurez les cases Linux pour utiliser PAM-RADIUS et installer le NPS de la plug-in MS Radius. Cela parlera à l'annonce. Vous pouvez obtenir une vue d'ensemble dans le PDF Eguide ici: http://www.wikidsystems.com/learn-more/two-factor-authentication-white-papers (pas de reg). Ignorez simplement les bits d'authentification à deux facteurs.

0
nowen