Gestion des mots de passe
La première étape pour les utilisateurs utilisant le client Windows pour accéder à EMu est de se connecter au serveur. La fenêtre de Connexion classique permet à un utilisateur de spécifier son :
- nom d’utilisateur
- password
- arme à laquelle se connecter
- groupe à utiliser (optionnel)
Les informations saisies dans la boîte de dialogue de connexion sont transmises au serveur EMu pour l'authentification. Le nom d'utilisateur et le mot de passe sont vérifiés dans une base de données contenant des combinaisons de noms d'utilisateur/mots de passe pour toutes les personnes autorisées à accéder au système. EMu lui-même ne stocke pas de combinaisons nom d'utilisateur/mot de passe mais s'appuie sur des bases de données externes pour authentifier les utilisateurs.
Ces bases de données externes sont disponibles à travers un certain nombre de sources :
La base de données d’utilisateurs Unix traditionnelle est constituée d'un fichier contenant une liste de tous les utilisateurs qui peuvent accéder au système. Le fichier se trouve dans /etc/passwd
. Une entrée typique ressemble à :
boris:QB2vbP7yzuNzQ:708:400:Boris Badenov:/home/boris:/bin/bash
Chacun des champs de l'entrée est séparé par deux-points (:). La liste des champs est sans importance pour ce document, si ce n'est que le premier champ contient le nom d'utilisateur et le second le mot de passe. Le mot de passe est stocké dans un format crypté à sens unique, c'est-à-dire que le mot de passe ne peut pas être décrypté (si vous oubliez votre mot de passe, votre administrateur système ne peut pas vous le communiquer et un nouveau mot de passe doit être défini).
Lorsqu'un utilisateur se connecte à EMu, son mot de passe est crypté et comparé à la version cryptée stockée avec son nom d'utilisateur. En cas de correspondance, l'utilisateur peut alors accéder au système.
Le fichier de mots de passe Shadow est une extension du fichier de mots de passe UNIX de base décrit ci-dessus. Le fichier Shadow se trouve dans /etc/shadow
. Si un fichier de mots de passe Shadow est utilisé, le mot de passe de l'utilisateur dans /etc/passwd est remplacé par un x. Le mot de passe crypté est ensuite stocké dans le fichier Shadow. Les autorisations sur le fichier Shadow ne permettent au compte Administrateur système (root) que de lire le contenu, protégeant ainsi le mot de passe crypté d'un accès général. Le fichier Shadow contient des champs supplémentaires utilisés pour appliquer le vieillissement du mot de passe. Une entrée typique ressemble à :
boris:QB2vbP7yzuNzQ:15215:1:30::::
Comme pour le fichier /etc/passwd, les champs sont séparés par deux-points (:) et les deux premiers champs stockent le nom d'utilisateur et le mot de passe crypté associé. Le troisième champ enregistre le nombre de jours entre le 1er janvier 1970 et la dernière fois que l'utilisateur a changé son mot de passe. Les deux champs suivants contiennent respectivement le nombre minimum et le nombre maximum de jours entre les changements de mot de passe. Dans l'exemple ci-dessus, l'utilisateur boris doit changer son mot de passe au moins tous les trente jours. Si le mot de passe n'est pas modifié dans les trente jours, il expirera et un nouveau mot de passe devra être défini la prochaine fois qu'il se connectera à EMu. Le fichier de mots de passe Shadow est disponible avec la plupart des versions d'Unix, y compris Solaris et Linux (mais pas FreeBSD).
Un problème avec les bases de données Unix et Shadow est qu'elles sont stockées localement. Chaque machine a sa propre version de la base de données, donc si un utilisateur souhaite accéder à plus d'une machine, une entrée doit exister sur chaque machine pour laquelle l'accès est nécessaire. Une bonne solution serait d'avoir une version principale de la base de données des mots de passe / Shadow gardé sur une machine, et d’avoir toutes les autres machines contacter la machine principale lors de la vérification des mots de passe. NIS (Network Information name Service), ou YP (Yellow Pages) comme il était auparavant connu, fournit cette fonctionnalité. Une machine stocke le fichier NIS principal mots de passe / Shadow et toutes les autres machines communiquent avec la machine principale lors de la vérification d’une combinaison nom d’utilisateur / mot de passe. NIS peut également être utilisé en conjonction avec les fichiers Unix ou Shadow, fournissant un support à la fois pour les utilisateurs locaux (via Unix et Shadow) et globaux (via NIS).
NIS ne fournit pas seulement des fonctions de mots de passe, mais peut aussi être utilisé pour fournir une version principale d'une large gamme d’autres fichiers de base de données. NIS est disponible pour Solaris, Linux et FreeBSD.
En raison de lacunes dans la conception originale de NIS (le vieillissement des mots de passe par exemple n'est pas possible), une nouvelle version de NIS, appelée NIS +, a été sortie. Son but est le même que NIS sauf qu'elle est plus sûre et fournit des attributs utilisateur étendus (comme le vieillissement des mots de passe).
LDAP (Lightweight Directory Access Protocol) est une extension de NIS. Un des problèmes de NIS, c’est qu'il requiert un serveur Unix. Il ne fournit pas d'interface générique pouvant être utilisée par des systèmes non-Unix. LDAP résout ce problème en implémentant une base de données (répertoire) à usage générique qui peut être utilisée pour stocker tout type d'information (y compris les informations sur les mots de passe Unix). Il définit ensuite un moyen indépendant du système pour rechercher ces informations, permettant ainsi à tout type de système de récupérer (et éventuellement de mettre à jour) les données. Expliquer la structure LDAP dépasse le cadre de ce document. LDAP est disponible via le projet OpenLDAP pour Solaris, Linux et FreeBSD. D'autres implémentations sont également disponibles.
LDAP permet de stocker dans sa base de données les informations relatives aux mots de passe et à Shadow, via les classes d'objets posixAccount
et shadowAccount respectivement. Lorsqu'un utilisateur se connecte à EMu, la base de données LDAP est consultée pour déterminer si l'accès doit être accordé et si le mot de passe a expiré. Comme avec NIS, les fichiers de mots de passe / Shadow locaux peuvent toujours être utilisés pour stocker les comptes locaux, tandis que LDAP est utilisé pour les comptes globaux.
Windows fournit une base de données locale utilisée pour contenir les informations des mots de passe utilisateur (entre autres). L'information est uniquement pour les comptes locaux et fournit une authentification pour les utilisateurs accédant à la machine locale. En ce sens, il est très semblable en fonctionnalités aux bases de données Unix / Shadow (mais mis en œuvre différemment). L'authentification Windows est disponible sur toutes les versions de Windows.
AD (Active Directory) est l'implémentation Windows d'une base de données d'informations à usage générique (répertoire). Il utilise LDAP comme l'un de ses protocoles d'accès. Cela signifie que LDAP peut être utilisé pour consulter la base de données Active Directory. Active Directory permet de stocker et de récupérer les informations relatives aux mots de passe / Shadow via les classes d'objets posixAccount
et shadowAccount respectivement. Comme avec LDAP, les informations stockées concernent les comptes globaux. AD est fourni avec les systèmes Windows Server et peut être interrogé par Solaris, Linux, FreeBSD et Windows. Les comptes Windows locaux peuvent toujours être utilisés pour enregistrer les utilisateurs locaux, tandis que AD est utilisé pour les comptes globaux.
Comme vous pouvez le constater, il existe un certain nombre d'alternatives pour enregistrer les utilisateurs d'EMu et leurs mots de passe. En général, chaque institution aura une politique dictant quelle source utiliser pour l'authentification des utilisateurs.
EMu met en œuvre trois mécanismes pour déterminer si une combinaison nom d'utilisateur / mot de passe est correcte :
Le Pluggable Authentication Module, ou PAM en abrégé, est disponible sur toutes les versions d'Unix, y compris Solaris, Linux et FreeBSD. Il n'est pas disponible sur les serveurs Windows. PAM est un mécanisme flexible qui utilise un fichier de configuration afin de déterminer quelles sources de mots de passe doivent être consultées pour récupérer les informations mots de passe / Shadow. Il fournit un support pour les bases de données sources suivantes :
- Unix
- Shadow
- NIS/NIS+
- LDAP
- AD
PAM est le mécanisme de recherche le plus commun utilisé par EMu où le serveur EMu est installé sur un système Unix.
Services For Unix (SFU), ou Subsystem for UNIX-based Applications (SUA) comme on l'appelle maintenant, offre une authentification par mot de passe sur les serveurs EMu basés sur Windows. SFU / SUA n'est pas configurable. Il s’agit d’une prise en charge des sources suivantes :
- Windows
- AD
SFU / SUA est le mécanisme de recherche utilisé par EMu sur les serveurs EMu basés sur Windows.
Si un système Unix ne fournit pas de support pour PAM, alors le mécanisme de recherche Traditionnel est utilisé. Le système Traditionnel fournit un support pour les sources suivantes :
- Unix
- Shadow
Le support Traditionnel est uniquement fourni lorsque les institutions choisissent de ne pas utiliser le support PAM. En d'autres termes, très rarement!