Interopérabilité

Authentifier les clients de Linux à Active Directory

Gil Kirkpatrick

 

À une vue d'ensemble :

  • Fonctionne de l'authentification dans Windows et Linux
  • À l'aide Samba et Winbind
  • Stratégies d'implémentation
  • Parcours de la integrationItem Linux à Active Directory

Contenu

L'authentification Windows
Authentification Linux
Samba et Winbind
Trois stratégies d'authentification
Notre plan d'implémentation
Recherche du logiciel droit
Construction Samba
Configuration réseau Linux
Configuration de Linux Heure synchronisation
Configuration de PAM et la fonction NSS
Installation et configuration Samba
Le problème de mappage de code
Joindre le domaine et consignation dans
Que se passe-t-il si elle ne fonctionne ?
Maintenant que son fonctionne, que vous avez ?
Solutions de tiers

Republicans et Democrats. Jus toothpaste et orange. Linux et Windows. Certains éléments simplement don’t mélanger, droite ? Chaque usine IT je jamais été impliqué dans a été divisée en deux camps : l'équipe de Windows et l'équipe de Linux. Ils don’t concurrence réellement les uns avec les autres, mais ils que ne pas collaborer soit. En fait, certains emplacements même atteindre jusqu'en tant que placer une ligne jaune sur le plancher simplement pour vous absolument assurer qu'il n'y a aucune fraternization inappropriée entre les deux groupes.

Je suis un utilisateur Windows et j'ai certainement poked laisser s'amuser sur Internet à mes collègues orientées de Linux, mais nous avons tous sont le même objectif d'offrir haute qualité et rentables des services INFORMATIQUES à l'organisation. Une façon nous pouvons faire qui consiste à partager infrastructure logicielle de base comme Active Directory. Quasiment toutes les organisations INFORMATIQUES ont réglées sur Active Directory pour fournir l'authentification des services à leurs ordinateurs de bureau Windows et les serveurs. Au lieu de gestion d'une infrastructure d'authentification distinct pour l'environnement Linux (ainsi qu'avec un ensemble distinct de noms d'utilisateur et mots de passe), serait-il pas préférable si les ordinateurs Linux utilisés Active Directory ainsi ? Je pense que cela serait le cas, et je vous montrerai comment procéder dans cet article.

L'authentification Windows

Windows a expédiées avec un système d'authentification unique et une authentification réseau intégré pour assez longtemps maintenant. Avant de Windows 2000, contrôleurs de domaine Windows NT (contrôleurs de domaine) fournis services d'authentification pour les clients Windows à l'aide du protocole NT LAN Manager (NTLM). Bien que NTLM n'était pas aussi sécurisée qu'a été initialement pensé, il était très utile car il maintenant résolu le problème de devoir gérer des comptes utilisateur en double sur plusieurs serveurs sur le réseau.

À partir de Windows 2000, Microsoft déplacées de NTLM vers Active Directory et ses services d'authentification Kerberos intégrés. Kerberos était beaucoup plus sécurisé que NTLM et il redimensionné mieux, trop. Et Kerberos était une norme déjà utilisée par les systèmes Linux et UNIX, que vous ouvrir la porte pour intégrer les plates-formes Windows.

Authentification Linux

À l'origine, Linux (et les GNU outils et les bibliothèques qui s'exécutent sur elle) n'a pas créé avec un mécanisme d'authentification unique N'oubliez pas. En raison de cela, les développeurs d'applications Linux a pris généralement créer leur propre schéma d'authentification. Ils gérés accomplir cela en recherchant les noms et les hachages de mot de passe dans etc./mot de passe (les texte traditionnel fichier contenante informations de Linux Identification utilisateur) ou fourniture d'un mécanisme entièrement différent (et distinct).

La multitude résultant mécanismes d'authentification était unmanageable. De 1995, Sun proposé un mécanisme appelé (PLUGGABLE authentication modules). PAM fournit un ensemble commun d'authentification API que tous les développeurs d'applications peuvent utiliser, avec un back configurée par l'administrateur fin qu'autorisé pour plusieurs schémas d'authentification « enfichables. En utilisant les API du module PAM pour l'authentification et le nom Server commutateur (NSS) API pour la recherche des informations utilisateur, les développeurs d'applications Linux peuvent écrire du moins code et les administrateurs de Linux peuvent avoir un emplacement centralisé pour configurer et gérer le processus d'authentification.

La plupart des distributions Linux sont fournis avec plusieurs modules d'authentification du module PAM, y compris les modules qui prennent en charge l'authentification pour un répertoire LDAP et l'authentification à l'aide de Kerberos. Vous pouvez utiliser ces modules pour s'authentifier sur Active Directory, mais il existe certaines limitations significatives, que j'aborderai plus loin dans cet article.

Samba et Winbind

Sambaest un projet open source qui vise à une intégration entre les environnements Windows et Linux. Samba contient des composants qui permettent de Linux ordinateurs accéder aux fichier Windows et services d'impression, ainsi que fournissent des services en fonction de Linux qui émuler les contrôleurs de domaine Windows NT 4.0. Utilisez les composants clients Samba, Linux machines peuvent tirer parti des services d'authentification de Windows fournis par Windows NT et les contrôleurs de domaine Active Directory.

La partie spécifique de Samba est plus intéressante à nous pour ce projet est appelée Winbind. Winbind est un démon (service de vocabulaire de Windows) qui s'exécute sur les clients Samba et agit comme un proxy pour les communications entre PAM et NSS exécution sur la machine Linux et Active Directory s'exécutant sur un contrôleur de domaine. En particulier, Winbind utilise Kerberos pour authentifier avec Active Directory et LDAP pour récupérer utilisateur et les informations de groupe. Winbind fournit également des services supplémentaires telles que la possibilité pour localiser les contrôleurs de domaine à l'aide un algorithme similaire à la DCLOCATOR dans Active Directory et la possibilité pour réinitialiser les mots de passe Active Directory à communiquer avec un contrôleur de domaine en utilisant RPC.

Winbind résout plusieurs problèmes que simplement utilisant Kerberos avec PAM ne. En particulier, au lieu de coder en dur un contrôleur de domaine pour s'authentifier sur la manière que le module PAM Kerberos, Winbind sélectionne un contrôleur de domaine en recherchant les enregistrements de localisateur DNS comme le module du LOCALISATEUR de contrôleurs de domaine Microsoft ne.

Trois stratégies d'authentification

Étant donné la disponibilité de LDAP, Kerberos et Winbind sur les ordinateurs de Linux, il existe trois stratégies d'implémentation différente que nous pouvez employer pour permettre de notre ordinateur Linux pour utiliser Active Directory pour l'authentification.

à l'aide de l'authentification LDAP La plus simple mais moins satisfaisant d'utiliser Active Directory pour l'authentification consiste à configurer PAM à utiliser l'authentification LDAP, comme illustré figure 1 . Même si Active Directory est un service LDAPv3, les clients Windows utilisent Kerberos (avec basculement sur NTLM), pas LDAP, pour des besoins d'authentification.

L'authentification LDAP (appelée liaison LDAP) transmet le nom d'utilisateur et le mot de passe en texte clair sur le réseau. Il s'agit non sécurisé et inacceptable la plupart des fins.

fig01.gif

La figure 1 Authentification à Active Directory à l'aide de LDAP (cliquez sur l'image pour l'agrandir)

Pour réduire ce risque de transmettre des informations d'identification en clair, la seule consiste à chiffrer le canal de communication Directory client actif à l'aide de quelque chose tels que SSL. Bien que ce soit certainement doable, il impose le fardeau supplémentaire de gérer les certificats SSL sur le contrôleur de domaine et sur l'ordinateur de Linux. En outre, à l'aide le LDAP du module PAM module ne prend pas en charge la modification de réinitialiser ou Expiration des mots de passe.

utilisant LDAP et Kerberos Une autre stratégie pour exploiter Active Directory pour l'authentification Linux consiste à configurer PAM pour utiliser l'authentification Kerberos et la fonction NSS utiliser LDAP pour rechercher des utilisateurs et des informations de groupe, comme illustré figure 2 . Ce schéma a l'avantage d'être relativement plus sécurisé, et il exploite les capacités « en la-zone » de Linux. Mais cela n'est pas prendre le parti les enregistrements DNS service emplacement (SRV) que les contrôleurs de domaine Active Directory publier, donc vous devez sélectionner un ensemble spécifique de contrôleurs de domaine pour s'authentifier sur. Il n'est pas aussi offrent un moyen très intuitif de gestion des mots de passe Active Directory arrivant à expiration ou, jusqu'à ce que récemment, pour les recherches de l'appartenance au groupe approprié.

fig02.gif

La figure 2 Authentification à Active Directory à l'aide LDAP et Kerberos (cliquez sur l'image pour l'agrandir)

à l'aide de Winbind Pour utiliser Active Directory pour l'authentification Linux, la troisième consiste à configurer PAM et NSS pour effectuer des appels vers le démon Winbind. Winbind va convertir le PAM différent et NSS demande en les appels de Active Directory correspondants, utilisant LDAP, Kerberos ou RPC, en fonction de l'est plus appropriée. la figure 3 illustre cette stratégie.

fig03.gif

La figure 3 Authentification à Active Directory à l'aide de Winbind (cliquez sur l'image pour l'agrandir)

Notre plan d'implémentation

En raison de l'intégration améliorée avec Active Directory, J'AI choisi d'utiliser Winbind sur Red Hat Enterprise Linux 5 (RHEL5) pour mon projet Intégration Linux à Active Directory. RHEL5 est la version actuelle de la distribution Red Hat Linux commerciale et qu'il est très populaire dans les centres de données entreprise.

Obtention RHEL5 s'authentifier sur Active Directory en fait de requiert cinq étapes distincts, comme suit :

  1. Recherchez et téléchargez le Samba approprié et autres composants dépendants.
  2. Créer Samba.
  3. Installez et configurez Samba.
  4. Configurer Linux, en particulier PAM et NSS.
  5. Configurer Active Directory.

Les sections suivante quelques dans cet article décrivent ces étapes dans plus de détails.

Recherche du logiciel droit

Une des différences plus importants entre Linux et Windows est que Linux se compose d'un noyau de système d'exploitation petit et la collection énorme de composants séparément téléchargeables et installables. Cela rend possible pour créer très spécifique Linux configurations optimisé pour certaines tâches, mais il peut également rendre configuration et la gestion d'un serveur très complexe. Différentes distributions des gérer de différentes manières. Red Hat (et son cousin non commercial Fedora) Utilisez Red Hat Package Manager (000) pour installer et gérer ces composants.

Composants Red Hat Linux se présentent sous deux formes. 000 Fichiers contiennent fichiers binaires qui ont été pre-compiled et intégrées pour une combinaison spécifique de la version du composant, distribution de Linux et architecture de processeur. Pour vous pouvez télécharger et installer, par exemple, la version 1.3.8-5 de la commun UNIX impression système (CUPS) conçue pour Fedora version 10 s'exécutant sur une architecture Intel x 86 du processeur. Étant donné qu'il y ait une douzaine différentes architectures processeur, distributions Linux plus de 100 et des milliers de packages et les versions, vous pouvez voir qu'il existe un certain nombre incroyable de RPMs binaires à partir de laquelle choisir.

Source 000 fichiers contiennent d'autre part, le code source réelle d'un paquet donné. La prévision est que vous télécharger et installer les sources, configurer les options de version et compiler et lier les fichiers binaires vous-même. L'idée de créer vos propres composants du système d'exploitation est complexe pour un utilisateur Windows utilisé pour l'installation de ce que Microsoft fournit sur le CD d'installation de Windows, mais le Gestionnaire de package rend le processus relativement simple et est fiable. Le groupe Samba libère mises à jour et correctifs de sécurité à un rythme furious ; dans juillet et août 2008 seul, il existe quatre versions de Samba 3.2, avec un total de correctifs de bogues et de sécurité plus de 100. Pour ce projet, J'AI téléchargé les sources de la dernière version stable de Samba, version 3.0.31.

Pourquoi télécharger les sources de Samba au lieu d'un ensemble pre-compiled de fichiers binaires ? C'était certainement que J'AI tenté faire en premier. Ce que J'AI découvert après plusieurs heures avec un débogueur a les binaires que J'AI téléchargé pas créés avec les options correctes pour prendre en charge l'authentification Active Directory. En particulier, le code qui prend en charge mappage de code Linux dans Active Directory a été désactivé dans les versions par défaut, donc J'AI dû reconstruire Samba avec les options version appropriée. Je vais décrire plus sur les ID de mappage plus loin dans cet article.

Même si Linux est en mode natif un noyau MINUSCULE, la distribution Red Hat Enterprise est fourni avec plusieurs packages préinstallés. Généralement cela facilite vie car vous démarrez les avec un système d'exploitation de travail, mais les packages qui sont préinstallés parfois en conflit avec logiciel que vous souhaitez installer ultérieurement.

Je n'incluait pas Samba lorsque J'AI installé Red Hat (normalement Samba est installé par défaut), car J'AI voulu utiliser une version plus récente. Toutefois, la version la plus récente de Samba requiert des nouvelles versions de plusieurs autres bibliothèques et les utilitaires qui étaient déjà installés. Ces types de problèmes de dépendance sont assez ennuyeux, mais ils sont facilement résolus à l'aide la 000.

Plusieurs sites Web que packages 000 binaire ordinateur hôte sont. Celui que J'AI utilisé (pour aucune raison que c'était le premier élément que J'AI trouvé) est appelé PBONE, emplacement rpm.pbone. NET. Il a un moyen pratique de recherche des packages et avait tous les fichiers binaires qui je nécessaires pour mon architecture processeur (i386) et de système d'exploitation distribution (Red Hat Enterprise Linux 5/Fedora 7 et 8).

J'AI dû télécharger et mettre à jour les packages indiqués dans la figure 4 pour créer et installer la version 3.0 dernière de Samba (il existe une arborescence version 3.2 même ultérieure qui J'AI n'avez pas essayé). Notez que ces packages ciblent la distribution principaux Fedora (fc). Red Hat est basé sur les sources de mêmes Fedora utilise et est totalement interopérables avec lui. Packages intégrés pour Fedora le 7 et version ultérieure vont s'exécuter sur RHEL5 sans aucune modification. Placer les fichiers 000 téléchargés dans le répertoire USR/src/REDHAT/RPMS.

La figure 4 paquets nécessaires pour la création et en installant Samba 3.0.31

Samba-3.031 0.fc8.src.rpm Source Samba 3.0.31 000
gnutls1.6.3-3.fc7.i386 TLS (Transport Layer Security) GNU bibliothèques
gnutils devel-1.6.3 3.fc7.i386 Fichiers de développement GNU TLS
popt-1.12 3.fc8.i386 Argument de ligne de commande Analyse des bibliothèques
popt devel-1.12 3.fc8.i386 Argument de ligne de commande Analyse des fichiers de développement
cups bibliothèques-1.2.12 11.fc7.i386 Bibliothèques système d'impression UNIX courants
cups devel-1.2.12 11.fc7.i386 Fichiers de développement UNIX imprimante système courants
cups-1.2.12.11.fc7.i386 Fichiers binaires système d'impression UNIX courants

Construction Samba

La première étape dans la construction de Samba consiste à télécharger la source appropriée 000. J'AI téléchargé la source 000 pour Samba 3.0.31 à partir du site PBONE. Ensuite, placez le fichier de 000 source téléchargé dans usr/src/REDHAT/SRPMS ; c'est le répertoire standard pour source RPMs pendant le processus de génération.

Ouvrez une session Terminal Server (fenêtre de ligne de commande dans Windows vocabulaire) et déplacez vers le dossier SRPMS. Que fait, installez le package source utilisant la commande, comme illustré figure 5 .

fig05.gif

La figure 5 l'installation de la source de Samba 000 (cliquez sur l'image pour l'agrandir)

Si vous recevez l'avertissement d'erreur « mockbuild utilisateur n'existe pas, à l'aide de racine, « ne vous inquiétez pas. Cette erreur indique que les utilitaires de génération simulacre ne sont pas installés. Le processus de génération fonctionnera sans eux.

Ensuite, déplacer vers le répertoire USR/src/REDHAT/spécifications et modifier le fichier SAMBA.SPEC, qui contient les options de génération Samba. Recherchez la ligne qui commence par « CFLAGS = » et assurez-vous que l'option "--avec-partagés-modules = idmap_ad, idmap_rid » est présent. Cette option garantit que le processus de génération va inclure le code qui traduit UIDs Linux (identificateurs uniques globaux) correctement à Active Directory. la figure 6 illustre cette option.

fig06.gif

La figure 6 les avec-partagés-modules créer option (cliquez sur l'image pour l'agrandir)

Ensuite, vous devrez peut-être mettre à jour certaines des bibliothèques sur votre ordinateur pour créer correctement et installer Samba ; cela dépend les versions des bibliothèques se vous avez installé. Dans mon cas, J'AI dû installer les packages répertoriées dans la figure 4 à l'aide la rpm-commande d'installation ; dans certains cas je devais utiliser--l'option forcer pour obtenir au-delà de quelques-uns des problèmes de dépendance.

Pour créer Samba, déplacer vers le répertoire/USR / src/redhat et exécutez le –bb rpmbuild commande SPECS/samba.spec, comme illustré figure 7 . Le processus laisse un fichier de 000 samba-3.0.31 0.i386 nouveau dans le répertoire USR/src/REDHAT/RPMS. Nous installera ce fichier 000 plus loin dans le projet.

fig07.gif

La figure 7 Création du fichier 000 binaire Samba (cliquez sur l'image pour l'agrandir)

Configuration réseau Linux

Afin d'authentifier à Active Directory, votre ordinateur Linux doit pouvoir communiquer avec un contrôleur de domaine. Vous devez configurer les trois paramètres de mise en réseau pour que cela se produise.

Tout d'abord, il est important pour vous assurer que l'interface réseau de votre ordinateur Linux est configuré correctement, en utilisant DHCP (Dynamic Host Configuration Protocol) ou en lui affectant une appropriée adresse et IP netmask à l'aide de la commande ifconfig. Sous RHEL5, configurer le réseau en sélectionnant réseau dans le système | menu Administration, comme illustré figure 8 .

fig08.gif

La figure 8 Configuration du réseau (cliquez sur l'image pour l'agrandir)

Ensuite, assurez-vous que la résolution DNS pour l'ordinateur Linux est définie pour utiliser le même nom de serveur DNS qui utilisent vos contrôleurs de domaine ; dans la majorité des cas, il s'agit d'un DC dans le domaine auquel vous souhaitez joindre l'ordinateur Linux, en supposant que vous utilisez DNS Active_Directory-integrated. Vous pouvez configurer la résolution DNS sous l'onglet DNS de l'utilitaire de configuration réseau même que vous permet de configurer le réseau, comme illustré figure 9 .

fig09.gif

La figure 9 de définition de la résolution DNS principale (cliquez sur l'image pour l'agrandir)

Enfin, une fois que vous avez terminé ces étapes, vous devez définir le nom ordinateur hôte de l'ordinateur Linux pour refléter son nom dans le domaine. Même si vous pouvez définir le nom ordinateur hôte à l'aide de l'application de configuration réseau, cela ne semble pas toujours fonctionner correctement.

Au lieu de cela, modifiez le /etc/hôtes fichier directement et ajouter une entrée sous l'entrée de localhost.localdomain a la forme < adresse ip > <fqdn> < nom ordinateur hôte >. (Un exemple serait « 10.7.5.2 rhel5.linuxauth.local linuxauth ».) J'AI doivent noter que cela va provoquer la création d'un objet ordinateur incorrect dans le répertoire une fois que vous joignez l'ordinateur Linux dans le domaine des.

Configuration de Linux Heure synchronisation

Le protocole Kerberos dépend les systèmes d'authentification des horloges sont synchronisées dans une valeur relativement petite. Par défaut, Active Directory autorise un maximum temps biaiser de cinq minutes. Pour garantir que vos systèmes Linux et système de vos contrôleurs de domaine horloges dépasser cette valeur, vous devez configurer vos systèmes Linux pour utiliser le service NTP (Network Time Protocol) d'un contrôleur de domaine.

Ensuite, sur le serveur Linux, exécutez l'utilitaire Date et heure dans le système de | menu Administration, puis cliquez sur l'onglet Network Time Protocol. La case Activer Network Time Protocol, puis ajoutez l'adresse IP du contrôleur de domaine à utiliser comme source de temps réseau. Notez que cela doit généralement être le DC dans le domaine qui détient le rôle principal de domaine contrôleur émulateur FSMO (Flexible Single Master Operations). la figure 10 est un exemple de comment définir la source de temps réseau Linux.

fig10.gif

La figure 10 Configuration du protocole de temps réseau (cliquez sur l'image pour l'agrandir)

Configuration de PAM et la fonction NSS

PAM et NSS fournissent le collage entre une application Linux, telle que le bureau et Winbind. Comme de nombreux services Linux, vous configurez PAM et NSS via des fichiers texte. Nous allons voir Configuration du module PAM tout d'abord.

PAM fournit quatre fonctions liées l'authentification pour les applications qui l'utilisent. La fonctionnalité d'authentification permet une application déterminer qui est l'utilise. La fonction compte offre compte fonctions de gestion qui ne sont pas spécifiquement liées à l'authentification, comme restriction de temps de connexion. La fonctionnalité de mot de passe fournit des mécanismes pour qu'elles demandent et la gestion des mots de passe. La fonctionnalité de session exécute paramétrage ­related l'utilisateur et les tâches vers le bas de coupe pour l'application, telle que la journalisation ou la création de fichiers dans un répertoire spécifique à l'utilisateur.

PAM sous Red Hat stocke ses fichiers de configuration dans le répertoire /etc/pam.d, qui contienne un fichier texte pour chaque application qui utilise du module PAM pour l'authentification. Par exemple, le /etc/pam.d/gdm fichier contient des informations de configuration du module PAM pour Gnome bureau Gestionnaire (GDM), l'environnement de fenêtrage par défaut de Red Hat. Chaque fichier de configuration du module PAM contient plusieurs lignes, avec chaque ligne de définir un aspect du module PAM processus d'authentification. figure 11 illustre le contenu de la PAM fichier de configuration pour GDM.

fig11.gif

La figure 11 fichier de configuration du module PAM pour Gnome le Gestionnaire de Bureau (cliquez sur l'image pour l'agrandir)

Chaque entrée dans un fichier de configuration du module PAM comporte l'écran < groupe de gestion > <control> <module> <parameters>, où < groupe de gestion > correspond à la fonctionnalité de l'entrée de configuration se rapportant à: authentification, compte, mot de passe ou session. Les mots-clés de contrôle, qui décrit dans la figure 12 , indiquent PAM comment traiter l'entrée de configuration. La troisième colonne du fichier contient le nom d'une bibliothèque partagée du module PAM dans le répertoire /lib/security. Bibliothèques partagées contiennent dynamiquement chargeables exécutable code, similaire à la DLL dans Windows. Termes supplémentaires après le nom du module sont des paramètres qui PAM transmet à la bibliothèque partagée.

La figure 12 PAM contrôle mots-clés

Mot clé Description
Requis Si le module réussit, PAM continue d'évaluer les autres entrées pour le groupe de gestion et le résultat sera déterminé par les résultats des autres modules. Si le module échoue, PAM continue d'évaluation mais renvoie Échec à l'application appelante.
Requis Si le module réussit, PAM continue évaluer les entrées de groupe de gestion. Si le module échoue, PAM renvoie à l'application appelante avec aucun traitement ultérieur.
Suffisante Si le module réussit, PAM renvoie succès à l'application appelante. Si le module échoue, PAM continue d'évaluation, mais le résultat sera déterminé par les modules suivants.
Facultatif PAM ignore les résultats du module, sauf s'il s'agit le module uniquement spécifié pour le groupe de gestion.
Inclure PAM inclut le contenu du fichier configuration du module PAM référencé et traite les écritures qu'il contient.

Vous pouvez le voir que chaque groupe de gestion comporte plusieurs écritures. PAM traite les écritures dans l'ordre en appelant le module nommé. Le module renvoie ensuite soit réussite ou l'échec et PAM se poursuit en fonction sur le contrôle de mot clé.

Vous remarquerez que le fichier de configuration du module PAM pour GDM inclut système-authentification de tous ses groupes de gestion. Voici comment PAM établit l'authentification par défaut pour GDM. En modifiant l'authentification par le système, vous pouvez modifier le comportement d'authentification pour toutes les applications qui inclut le fichier système-authentification dans leurs configurations du module PAM. Le fichier système-authentification par défaut est illustré figure 13 .

fig13.gif

La figure 13 fichier système-authentification PAM (cliquez sur l'image pour l'agrandir)

Le module NSS (name service switch) masque les spécificités du système de stockage de données au développeur d'applications, en grande partie de la même façon que PAM masque les détails de l'authentification. NSS permet à l'administrateur spécifiez que bases de données système moyen sont stockés. En particulier, l'administrateur peut spécifier comment le nom d'utilisateur et mot de passe les informations est stockée. Car nous souhaitons applications pour rechercher des informations utilisateur dans Active Directory à l'aide de Winbind, nous devons modifier le fichier de configuration de NSS pour afficher que.

Red Hat inclut une petite applet graphique pour configuration du module PAM et la fonction NSS appelé système-configuration d'authentification. Il s'occupe de plus (mais pas toutes) des modifications que vous souhaitez apporter aux fichiers système-authentification et nss.conf.

Exécutez l'application d'authentification de configuration système et vous voyez une boîte de dialogue telle que celle illustrée à la figure 14 . Cochez l'option Winbind sur l'onglet utilisateur (ce qui configure le fichier nss.conf) et l'onglet Authentification (qui modifie le fichier système-authentification).

fig14_L.gif

La figure 14, la boîte de dialogue systemconfig-authentification

Cliquez sur le bouton Configurer Winbind et vous verrez la boîte de dialogue dans la figure 15 . Entrez le nom de domaine des utilisateurs s'authentifient à dans le champ domaine Winbind et sélectionnez « annonces » comme le modèle de sécurité. Entrez le nom de domaine DNS du domaine Active Directory dans le champ domaine ADS Winbind. Dans le champ Winbind les contrôleurs de domaine, entrez le nom d'un contrôleur de domaine vous souhaitez que ce système Linux s'authentifier auprès d'ou un astérisque, indiquant que Winbind doit sélectionner un contrôleur de domaine en interrogeant les enregistrements SRV DNS.

fig15.gif

La figure 15 boîte de dialogue Configuration Winbind

Sélectionnez l'interface de commande par défaut appropriée vos utilisateurs d'Active Directory doivent possèdent ; dans ce cas, J'AI sélectionné Mirwault à nouveau gros ou fête. N'essayez pas à ce stade du bouton « rejoindre domaine ». Vous joignez l'ordinateur au domaine plus tard.

Une plus modification est apportée à apporter au fichier /etc/pam.d/system-auth une fois que vous avez modifié pour prendre en charge Winbind. Lorsqu'un utilisateur de Linux se connecte, le système nécessite que les utilisateurs disposent un répertoire de base. Le répertoire de base contient de nombreux préférences spécifiques de l'utilisateur et les éléments de configuration, comme le Registre Windows. Le problème est que étant donné que vous créez vos utilisateurs dans Active Directory, Linux n'est pas automatiquement créer le répertoire de l'utilisateur domestique. Heureusement, vous pouvez configurer PAM pour cela dans le cadre de sa configuration de session.

Ouvrez le fichier /etc/pam.d/system-auth, puis faites défiler vers le bas et insérez une ligne avant la dernière ligne dans la section session qui lit " session map_mkhomedir.so facultatif skel = / etc./skel umask = 0644" (voir figure 16 ). Cette ligne configure PAM pour créer un répertoire personnel pour un utilisateur s'il n'existe. Il va utiliser le répertoire/etc/skel qu'un « squelette » ou un modèle et il va affecter le masque d'autorisations 0644 (en lecture et écriture pour propriétaire, en lecture pour le groupe principal et en lecture pour tout le monde) vers le nouveau dossier.

fig16.gif

La figure 16 Création d'un répertoire de base pour les utilisateurs (cliquez sur l'image pour l'agrandir)

Installation et configuration Samba

Pour installer les fichiers binaires Samba que vous venez de créer, accédez au répertoire USR/src/REDHAT/RPMS. Tous les fichiers 000 créés par la commande rpmbuild apparaît dans ce répertoire. N'oubliez pas que Samba inclut binaires qui permet un client Linux accéder à un partage de fichiers Windows (ou Samba), ainsi que de code qui permet un système de Linux comme un serveur de fichiers Windows, un serveur d'impression Windows et un contrôleur de domaine 4.0 style Windows NT.

Il n'est pas nécessaire tout cela pour autoriser Linux pour s'authentifier sur Active Directory ; il nous fait sont les fichiers communs Samba et les fichiers binaires client Samba. Ces fichiers sont facilement en divisées en deux 000 fichiers : samba client-3.0.31 0.i386.rpm et samba commun-3.0.31 0.i386.rpm. Installer les fichiers 000 à l'aide la rpm-commande d'installation. Voici un exemple : rpm--installation samba commun-3.0.31 0.i386.rpm. (Notez que vous devrez peut-être installer tout d'abord le fichier 000 –common.)

Lorsque vous avez installé les fichiers binaires client Samba, vous devez modifier la configuration de Samba par défaut pour vous assurer que Winbind gère l'authentification correctement avec Active Directory. Toutes les informations de configuration Samba (client et serveur) peuvent trouver dans le fichier texte smb.conf, qui se trouve dans le répertoire/etc / samba par défaut. Smb.conf peut contenir un nombre énorme d'options de configuration et une explication complète de son contenu est abordée dans cet article. Le site samba.org et les pages homme Linux abordent smb.conf certains en détail.

La première étape consiste à configurer Winbind pour utiliser Active Directory pour l'authentification. Vous devez définir le modèle de sécurité dans smb.conf aux « annonces ». L'utilitaire de configuration du système-l'authentification doit avoir configuré cette sur vous déjà, mais il est toujours utile de vérifier. Modifier la smb.conf fichier et recherchez la section intitulée options membres de domaine. Recherchez la ligne qui commence par « sécurité » et assurez-vous qu'il lit " sécurité = annonces ». La prochaine étape de configuration détermine comment Winbind mappera entités de sécurité Windows tels que les utilisateurs et groupes aux identificateurs de Linux et qui nécessite quelques explications plus.

Le problème de mappage de code

Il existe un gros problème que n'ont pas mentionné encore avec l'authentification des utilisateurs Linux à Active Directory, et c'est le problème de UIDs pour les utilisateurs et groupes. En interne, ni Linux ni Windows faire référence à utilisateurs par un nom utilisateur ; au lieu de cela qu'ils utilisent un identificateur interne unique. Windows utilise le identificateur de sécurité, ou le SID, qui est une structure de longueur variable qui identifie chaque utilisateur dans un domaine Windows. Le SID contient également un identificateur unique du domaine afin que Windows peut distinguer entre les utilisateurs dans des domaines différents.

Linux est un jeu beaucoup plus simple. Chaque utilisateur sur un ordinateur Linux possède une UID qui est simplement un entier de 32 bits. Mais la portée de l'UID est limitée à l'ordinateur lui-même. Il n'existe aucune garantie que l'utilisateur avec l'UID 436 sur une machine Linux est le même que l'utilisateur avec l'UID 436 sur un autre ordinateur Linux. Par conséquent, un utilisateur aura pour vous connecter chaque ordinateur, il doit accéder, clairement pas une situation souhaitable.

Généralement, les administrateurs réseau Linux résolvent ce problème en fournissant l'authentification réseau à l'aide NIS (Network Information System) ou un répertoire LDAP partagé. Le système d'authentification réseau fournit l'UID de l'utilisateur et tous les ordinateurs Linux qui utilisent ce système d'authentification partagent les même utilisateur et les identificateurs de groupe. Dans ce cas, je vais utiliser Active Directory pour fournir l'utilisateur unique et les identificateurs de groupe.

Il existe deux stratégies que je peux utiliser pour résoudre ce problème. La stratégie de premier et également plus évident consiste à créer un UID pour chaque utilisateur et un groupe et stocker cet identificateur avec l'objet correspondant dans Active Directory. Ainsi, lorsque Winbind authentifie un utilisateur, elle peut chercher l'UID de l'utilisateur et fournir à Linux comme identificateur interne de l'utilisateur. Winbind fait référence à ce schéma que Active Directory ID mappage ou idmap_ad. la figure 17 illustre le processus de mappage de code d'Active Directory.

fig17.gif

La figure 17 mappage des ID de répertoire Active (cliquez sur l'image pour l'agrandir)

L'inconvénient uniquement au mappage de code d'Active Directory est que nous avons fournir un mécanisme pour vérifier que chaque utilisateur et de groupe a un identificateur, et que ces identificateurs sont tous uniques dans la forêt. Pour plus d'informations, consultez l'encadré, « configuration Active Directory pour Active Directory ID de mappage, ».

Heureusement, il est une autre stratégie de mappage code dont beaucoup moins tâches administratives. N'oubliez pas que les SID Windows identifie uniquement l'utilisateur dans un domaine, ainsi que le domaine lui-même. La partie du SID qui identifie l'utilisateur dans le domaine est appelée l'identificateur relatif ou RID et est en fait un entier de 32 bits. Par conséquent, Winbind pouvez tout simplement extraire le RID le SID lorsque l'utilisateur se connecte, puis utiliser le RID en tant que l'UID interne unique. Winbind fait référence à cette stratégie que RID mappage ou idmap_rid. la figure 18 illustre comment RID mappage fonctionne réellement.

fig18.gif

La figure 18 RID mappage (cliquez sur l'image pour l'agrandir)

Mappage RID présente l'avantage de zéro surcharge administrative, mais vous ne pouvez pas l'utiliser dans un environnement multi-domaine en raison de la probabilité d'utilisateurs dans des domaines différents ayant la même valeur RID. Mais si vous disposez d'un seul domaine Active Directory, mappage maître RID est la façon d'accéder.

Pour configurer la stratégie de mappage de code Winbind, modifier le fichier /etc/samba/smb.conf à nouveau et ajoutez la ligne " idmap back-end = annonce » pour utiliser la stratégie de mappage Active Directory, ou " idmap back-end = se débarrasser » si vous souhaitez utiliser la stratégie de mappage de RID. N'assurez-vous qu'aucuns les autres lignes spécifiant la stratégie de mise en correspondance dans le fichier.

Il y a quelques autres options de configuration que nous devons ajouter au fichier smb.conf pour Winbind. Même si nous avons défini PAM puisse le répertoire de base pour chaque utilisateur lors de leur connexion, nous devez indiquer Winbind que le nom du répertoire de base est. Nous ce faire, ajouter la ligne « modèle homedir = /home/%U » à smb.conf (voir figure 19 ). Ceci indique Winbind que le répertoire de base pour chaque utilisateur s'authentifie à l'aide d'Active Directory sera /home/ < nom utilisateur >. Veillez à créer le /home répertoire au préalable.

fig19.gif

La figure 19 spécification le nom de répertoire de base (cliquez sur l'image pour l'agrandir)

Joindre le domaine et consignation dans

Maintenant que le réseau, PAM NSS et Samba Winbind sont tout configuré correctement, il est temps pour joindre l'ordinateur de Linux au domaine. Pour cela, vous en utilisant la commande NET Samba. À l'invite interpréteur de commandes, exécutez « net annonces jointure –U < nom de l'administrateur > ». Remplacez < nom de l'administrateur > par le nom d'un compte qui dispose des privilèges suffisants pour joindre un ordinateur au domaine.

La commande net vous invitera à entrer le mot de passe de l'utilisateur. Si tout fonctionne correctement, la commande net connecter votre ordinateur au domaine. Vous pouvez utiliser utilisateurs et Active Directory ordinateurs pour rechercher le compte d'ordinateur nouvellement créé.

Vous pouvez tester l'état de la jointure avec l'outil de test Winbind appelé wbinfo. En cours d'exécution –t wbinfo va tester la relation d'approbation entre l'ordinateur et le domaine. En cours d'exécution –u wbinfo affiche tous les utilisateurs du domaine et wbinfo –g répertorie tous les groupes.

Si vous joignez correctement l'ordinateur de Linux au domaine, l'étape suivante consiste à essayer pour vous connecter avec un compte d'utilisateur Active Directory et un mot de passe. Session l'ordinateur de Linux et connectez-vous à l'aide un nom d'utilisateur Active Directory. Si tout fonctionne correctement, vous devez pouvoir se connecter.

Configuration d'Active Directory pour Active Directory ID mappage

Ces informations s'appliquent uniquement si vous utilisez mappage de code d'Active Directory. Si vous avez décidé d'utiliser le mappage maître RID, n'hésitez pas à ignorer cet encadré.

Avant de pouvoir démarrer connexion à votre serveur Red Hat en utilisant un compte Active Directory, vous devez apporter des modifications Active Directory lui-même. Tout d'abord, le schéma Active Directory doit prendre en charge les attributs qui Winbind utilise pour stocker les informations utilisateur. Si vous exécutez Windows Server 2003 R2, le schéma est prêt à passer. Si vous possédez une version antérieure du schéma Active Directory, vous devrez prolonger l'aide des services Microsoft pour package UNIX (SFU).

Pour en savoir plus sur Services pour UNIX sur TechNet. SFU inclut également une page de propriétés supplémentaires pour les utilisateurs et Active Directory et MMC (Microsoft Management Console) ordinateurs enfichable qui vous permet de gérer le code utilisateur les informations de code de groupe qui nécessite de Linux.

Une fois que le schéma est correctement configuré, vous devez fournir les identificateurs de Linux pour tous les utilisateurs (et les groupes auxquels ils appartiennent) qui peuvent se connecter à votre ordinateur Linux. Cela signifie que vous avez définir les valeurs des attributs uidNumber et gidNumber des utilisateurs et groupes qui peuvent se connecter à vos ordinateurs Linux. Mais il faut connaître certaines exigences pour ces attributs :

  1. Linux nécessite un UID pour chaque utilisateur qui authentifie. Étant donné que vous souhaitez gérer les informations utilisateur dans Active Directory, chaque compte d'utilisateur qui s'ouvrent une session dans sur un ordinateur Linux doit disposer un attribut uidNumber unique. La valeur spécifique vous utilisez pour un uidNumber n'est pas importante, mais il doit être unique dans tous les utilisateurs peuvent se connecter à l'ordinateur de Linux.
  2. Chaque utilisateur Linux doit également disposer un identificateur de groupe par défaut, pour chaque utilisateur Active Directory qui va se connecter à un ordinateur Linux requiert une valeur de l'attribut gidNumber ainsi. Cette valeur ne doit être unique parmi les utilisateurs, mais il doit identifie le groupe.
  3. Chaque groupe dans Active Directory doit avoir une valeur unique pour son attribut gidNumber. Proprement parler, il est OK pour les groupes pour ne pas qu'une valeur de l'attribut gidNumber, alors Winbind attend, lorsqu'il authentifie un utilisateur, que chaque groupe à laquelle cet utilisateur est membre aura une valeur unique gidNumber. Il est probablement plus facile simplement pour vous assurer que chaque groupe contient une valeur unique gidNumber.
  4. Winbind s'attend à ce que chaque utilisateur qu'il recherche dans Active Directory est membre du groupe Utilisateurs du domaine, donc il attend également que le groupe Utilisateurs du domaine a une valeur pour son attribut gidNumber.

Que se passe-t-il si elle ne fonctionne ?

Configuration d'un ordinateur Linux pour s'authentifier avec Active Directory à l'aide de Winbind n'est pas un trivial projet. Il existe beaucoup d'éléments pour configurer et beaucoup d'éléments qui peuvent se tromper lorsque l'on. Le fait que chaque version de Linux et chaque version de Samba sont quelque peu différents n'est pas aider important. Mais il existe quelques endroits que vous pouvez consulter pour déterminer ce qui se passe.

Tout d'abord, il est le fichier journal de système de Linux, qui se trouve dans le journal/var/messages. Samba placera les messages dans ce fichier pour les événements significatives tels que les fichiers manquants ou la configuration incorrecte. Outre le fichier journal système, il existe également les fichiers journaux de Samba et Winbind. Vous pouvez trouver dans le journal/var/Samba, et il fournira vous avec des informations supplémentaires.

Vous pouvez augmenter le détail (et le volume) des messages journal émis par Winbind en modifiant le script de démarrage pour définir le niveau de débogage. Modifier le script d'environnement /etc/init.d/winbind et ajouter «-d 5 » à la commande winbindd. Cela augmentera le niveau de débogage à 5 (valeurs autorisées sont comprises 1 et 10), qui entraîne winbind générer des messages d'erreur plus détaillés.

Si Winbind devient de loin que la communication avec un contrôleur de domaine, vous pouvez exécuter un utilitaire de capture de paquets réseau tel que NetMon 3.1. Cela vous permet d'analyser exactement ce que Winbind tente à faire. Et vous pouvez également inspecter le journal de sécurité Windows sur le contrôleur de domaine qui s'affichent les tentatives d'authentification.

Maintenant que son fonctionne, que vous avez ?

Si vous avez réussi à obtenir tout pour travailler, vous avez désormais la possibilité pour vous connecter à votre système de Linux avec les informations d'identification que vous tenez à jour dans Active Directory. Cela constitue une amélioration énorme sur gestion des identités localement sur l'ordinateur de Linux ou utilisez un système non sécurisé tels que NIS. Il vous permet de centraliser votre gestion de l'utilisateur sur un stockage d'identité : Active Directory.

Mais il y a plusieurs choses sont manquants pour rendre cette solution réellement utile. Tout d'abord, l'obtention de support technique est un peu d'une opération hit-or-miss. La plupart des organisations de Linux sont légèrement en le foncé lorsqu'il est fourni à Active Directory et le support que vous pouvez obtenir auprès de la communauté Linux dépend entièrement qui se produit à lire votre billet d'et comment ils vous ce jour.

Il existe également sans outils de migration ou de déploiement avec Samba. Si vous avez existants comptes Linux avec leurs noms d'utilisateurs associés et les autorisations, vous devrez manuellement s'assurer qu'ils gèrent leurs UIDs lorsque vous migrez vers Active Directory.

Enfin, une des plus importantes applications Active Directory, stratégie de groupe, n'est pas encore disponible avec Samba, bien qu'il soit en le fonctionne. Bien que vous pouvez joindre un système de Linux à Active Directory avec Samba, vous ne pouvez pas gérer à l'aide de stratégie de groupe.

Solutions de tiers

Authentifier les ordinateurs de Linux à Active Directory est clairement une bonne Thing, mais répercussion votre propre solution utilisant Winbind Samba est fastidieux si pas parfois pénible. Vous semblerait normal, puisque certains fournisseurs de logiciels novateur serait étape haut avec une solution easier-to-use, et vous serait droite.

Il existe quatre fournisseurs de logiciels commerciaux qui ont développé des versions facile à installer-et-utilisation de ce qu'ai j'démontré dans cet article. Ils fournissent les code et les outils de migration pour presque toutes version populaires de Linux, UNIX et Macintoshes Apple, ainsi que prise en charge de gestion des ordinateurs de Linux à l'aide de la stratégie de groupe.

Les sociétés quatre sont Centrify, De même logiciel, Quest Software et Symark. Tous les fournisseurs de quatre fournissent des fonctionnalités similaires, notamment la gestion de stratégie de groupe, sur un large éventail de distributions Linux. Logiciel Likewise a récemment dont la source est en cours son implémentation, appelée même ouvrir, bien que son composant de stratégie de groupe reste un produit commercial. De même ouvrir est disponible avec plusieurs distributions Linux principales. (Complet divulgation : pendant au cours de rédaction cet article, ma société, NetPro, a été acquis par Quest Software.)

Il judicieux de créer votre propre système de l'authentification à l'aide de Samba et Winbind lorsque commerciales options sont disponibles ? Si justesse Intégration logiciel ne figure pas dans le budget, puis passer l'itinéraire open source avec Samba présente l'avantage d'être libre. Vous également obtenir tout le code source, qui peut être un avantage intéressant. Mais migration de Linux existant ordinateurs et leurs UIDs existants est un problème très thorny.

D'autre part, si vous souhaitez gagner du temps d'installation et l'implémentation, vous avez existants machines Linux que nécessaires à la migration, ou vous auriez plutôt une personne à appeler pour obtenir une réponse faisant autoritée à votre question, puis extraction d'une des solutions commerciales sens. Et si vous devez Gestion de stratégie de groupe, L'alternative commercial est votre seul choix.

Mais n'importe quel moyen vous accédez, intégration de l'authentification de Linux à Active Directory réduit l'effort passé à gérer plusieurs comptes d'utilisateur, améliore la sécurité du système et vous offre un stockage d'identité unique pour gérer et d'audit. Et ceux sont toutes raisons très intéressantes pour lui donner un essai.

Gil Kirkpatrick a conçu ou développé des dizaines de produits logiciels commerciaux réussi dans sa carrière 30 ans et il est le fondateur de la conférence experts Directory (désormais appelés les experts Conference). Gil est l'auteur de Active Directory Programming et est une collaboration fréquemment à Windows IT Pro et le TechNet Magazine. Dans son rôle actuel comme expert de résidence à NetPro (désormais partie de Quest Software), Gil consulte de sécurité divers, identité et projets de marketing et parle au séminaires de technologie et les conférences dans le monde entier.