Couplage openldap-samba
Groupe de travail SARI Animateur du groupe : Bernard MAIRE-AMIOT (CRTBT)
Participants Franoise BERTHOUD (LPMMC) Franois BOUHET (MSH-ALPES) Guy BOURREL (TIMC) Xavier CHAUD (CRETA) Ghislain ESCORNE (LGIT) Regis GRAS (LEDSS) Chantal MULLER (TIMC) Jean-Luc PAROUTY (IBS) Christophe TROPHIME (LCMI) Martial TUR (LGIT)
Sommaire
Introduction / contexte / choix Mise en place des services et outils (serveurs) Configuration des clients Quelques mots sur les aspects scurit Conclusion / rfrences
Contexte dun laboratoire
Service de qualit Systme dinformation (qui le renseigne ?) Besoins daccder ce systme dinformation diffrents niveaux parc informatique htrogne (serveurs / clients, Unix, Windows, MacOSX) authentification, partage de ressources ? Interfaage avec les CRIs Comment fait on aujourdhui ?
Et demain ? Solutions libres pour
Grer le systme dinformation du laboratoire (essentiellement personnel) Utiliser ce SI pour authentifier les personnels (postes client libre service, serveurs (ssh, ftp, mail, vpn(radius), https, sauvegardes, etc.), utiliser ce SI pour rechercher les coodonnes du personnel Offrir une visibilit de lespace de travail lutilisateur dans un primtre dfini du rseau du laboratoire
Couplage openldap-samba
Groupe de travail, choix technologiques Systme : linux (fedora) Authentification : annuaire ldap (openldap) Gestionnaire de PDC (windows) : samba Partage de ressources : samba Couplage et administration : lam
Rappel : LDAP
(Lightweight Directory Acces Protocol) LDAP c est : Un protocole standard TCP/IP pour l accs au contenu qui impose une structuration hirarchique des donnes Un modle dinformation organises Un modle de diffusion de donnes Un modele de nommage permettant une unicit d appellation des entres un niveau mondial, ce qui permet une rpartition cohrente des informations sur plusieurs serveurs Ce protocole est particulirement adapt : Pour la diffusion grande chelle de donnes simples Pour les mises jour dynamiques Pour la scurisation et la personnalisation des donnes
Rappel : LDAP
(Lightweight Directory Acces Protocol)
LDAP organise les entres dans une structure logique hirarchique. ou D.I.T. Directory Information Tree
L identification d une entre se fait l aide du Distinguished Name (DN) uid=pdupont,ou=people,dc=labo,dc=cnrs,dc=fr Il n y a pas de distinction entre noeuds et feuilles de l arbre Toutes les intersections sont des entres
Rappel : LDAP
(Lightweight Directory Acces Protocol)
LDAP est un modle d information sur la base d un schma c est dire la collection des types d entres ou classes dobjets que lon peut rencontrer. Chaque entre fait rfrence une classe dobjets, dfinie par un nom et une liste dattributs (obligatoires ou optionnels) les attributs sont dfinis par un nom dattribut, une syntaxe et des rgles de comparaison.
openldap = daemon + fichiers de conf + schmas + commandes + donnes
Authentification et partage de ressources : couplage LDAP SAMBA Architecture Fonctionnelle
Authentification Compte : clients (ldap)
Accs Web Administration Compte :root-ldap
Macintosh Auth. ldap v3
Linux /etc/[Link] /etc/nsswitch /etc/pam.d/system-auth
Administration : Compte root-ldap /etc/openldap/[Link] /etc/openldap/[Link] /etc/init.d/ldap
LAM : LDAP Account Manager /var/www/html/lam/config/[Link] /var/www/html/lam/config/[Link] Accs Web Configuration Compte :root
Windows
Intgrer au domaine microsoft Compte : admin (ldap) Administration : Compte admin (ldap) Gestionnaire de domaine /etc/samba/[Link] /etc/init.d/smb SWAT: Samba Web Admin Tool /etc/xinetd.d/swat
Macintosh
Linux
Windows
Accs aux ressources Compte : clients (ldap)
Serveur de ressources : Samba, Netatalk, NFS, CUPS, Radius, /etc/samba/[Link] /etc/atalk/[Link], /etc/atalk/[Link],
Configuration
Configuration annuaire LDAP Configuration de LAM (LDAP Account Manager) Configuration de SAMBA par SWAT Configuration de SAMBA Couplage samba-ldap Cration des comptes
Configuration annuaire LDAP
/etc/openldap/[Link] Fichier de configuration permettant de fournir les informations ncessaires au commandes shell de type ldapsearch, ldapmodify, etc. /etc/openldap/[Link] Fichier de configuration du dmon /etc/init.d/ldap (slapd et slurpd) include database suffix rootdn rootpw directory /usr/share/doc/samba-3.0.10/LDAP/[Link] bdb "dc=cnrs,dc=fr" "uid=root-ldap,ou=people,dc=cnrs,dc=fr" {SSHA}FnF0YonpkbjyeVgoKtMOYYTsrpKvISjG /var/lib/ldap
Le mot de passe crypt est fabriqu par la commande : slappasswd s sari
Configuration de LAM (LDAP Account Manager)
Package sur le site [Link] Administration par web [Link] Fichiers de configurations /var/www/html/lam/config/[Link] /var/www/html/lam/config/[Link] ServerURL: ldap://localhost:389 Admins: uid=root-ldap,ou=people,dc=cnrs,dc=fr # password to change these preferences via webfrontend Passwd: sari usersuffix: ou=people,dc=cnrs,dc=fr groupsuffix: ou=groups,dc=cnrs,dc=fr hostsuffix: ou=machines,dc=cnrs,dc=fr domainsuffix: ou=domains,dc=cnrs,dc=fr
Configuration de LAM (LDAP Account Manager)
Configuration de SAMBA par SWAT
Administration par serveur Web [Link]
Pour administrer samba par swat : login / mot de passe root Le fichier /etc/samba/[Link] est modifier en consquence Lancement du dmon /etc/xinetd.d/swat au dmarrage de la machine Il ne faut pas oublier de sauvegarder le mot de passe de l'admin dn (root-ldap) dans le fichier [Link] afin que Samba puisse accder en criture au serveur LDAP : smbpasswd -w <motdepasse>.
Configuration de SAMBA
/etc/samba/[Link] workgroup = SARI-LDAP netbios name = SERVEUR-LDAP server string = Samba Server SARI logon path = domain logons = Yes os level = 99 domain master = Yes ldap admin dn = uid=root-ldap,ou=people,dc=cnrs,dc=fr ldap group suffix = ou=groups ldap machine suffix = ou=machines ldap passwd sync = Yes ldap suffix = dc=cnrs,dc=fr ldap user suffix = ou=people admin users = admin
Couplage samba-ldap
Le couplage samba-ldap pour ladministration des donnes (utilisateurs et machines) se fait grce linterface LAM Le couplage samba-ldap au niveau authentification, et interfaage des processus se trouve directement dans le fichier de configuration /etc/samba/[Link] Le mot de passe dadministration de lannuaire LDAP est renseign dans samba par la commande Smbpasswd w mot de passe et stock dans [Link] [global] passdb backend = ldapsam:ldap://[Link] ldap passwd sync = Yes Le SID du domaine est renseigne dans lannuaire LDAP Tous les utilisateurs, groupes et machines enregistres dans lannuaire LDAP intgre le SID du domaine (ex : S-1-5-21-2430906375-2510035027-2760884646 )
Cration des comptes
Cration du rpertoire home et gestion des quotas par script lam Un script est dj prt, il permet aussi de grer les quotas partir de LAM. Le fichier sappelle /usr/share/ldap-account-manager/lib/[Link] Cration du rpertoire home par skel (skeleton) Squelette des scripts de configuration 'users': .inputrc, .bash_profile ..., recopis dans le homedir d'un 'new user' la premire authentification. ( module pam_mkhomedir) Cration du rpertoire home et gestion des quotas par script externe Script unix avec des commandes tels que Mkdir, chown, chgrp, setquota,
Utilisation de lannuaire LDAP
Lancement les processus Les diffrents groupes et utilisateurs Importation de comptes existants Sauvegarde base au format ldif ou dump Accs lannuaire ldap Outils : jxplorer, phpldapadmin, smbldap-tools
Lancement des processus
Processus openldap Processus samba (microsoft) Processus netatalk (appletalk) Processus swat Processus httpd (swat et lam) /etc/init.d/ldap (slapd, slurpd) /etc/init.d/smb (nmbd, smbd /etc/init.d/atalk (afpd, papd) /etc/xientd.d/swat /etc/init.d/httpd
Les diffrents groupes et utilisateurs
Administrateur du serveur root, Il se trouve dans /etc/passwd Administrateur de lannuaire ldap root-ldap, Il se trouve dans : /etc/openldap/[Link] (login et password) /etc/samba/[Link] (login) /etc/samba/[Link] (password) Super administrateur super-root dans la base LDAP Administrateur rseau UNIX et domaine Microsoft Groupe admin du domaine Domain-Admins Groupe utilisateur du domaine Domain-Users Groupe invit du domaine Domain-Guests Groupe Machines (uid=0 et gid=0) (gid=512, uid>10000) (gid=513, uid>10000) (gid=514, uid>10000) (gid=553, uid>25000)
Ces numros sont des Identificateurs de scurit (SID)connus dans les systmes d'exploitation Windows. [Link]
Importation de comptes existants
Importation directement partir du menu de LAM (LDAP Account Manger) On utilise un script utilisant la commande AWK pour gnrer un fichier au format CSV Ce fichier peut alors tre importer directement dans LAM sauf le mot de passe et le SSID du domaine, mais ceci peut tre modifier Directement par une commande ldapmodify. l'IMAG et l'UJF on gre les comptes partir du fichier nomm [Link] qui contient dj toutes les info dont on a besoin. [Link] = awk -F: '{printf"%s,%s,%s,%s,,%s.%s@[Link],,,,,,,,\n", $4,$5,$1,$3,$4,$5}' [Link] ex. ([Link]) bourrel:3750:1402:Guy:Bourrel:mail-timc ([Link]) Guy,Bourrel,bourrel,1402,,[Link]@[Link],,,,,,,,
Sauvegarde base au format ldif (dump)
Dump de la base ldap au format ldif : Arret de ldap (/etc/init.d/ldap stop) Copie des donnes de ldap dans le fichier /tmp/dump_ldap.ldif /usr/sbin/slapcat -l /tmp/dump_ldap.ldif -f /etc/openldap/[Link] -b "dc=cnrs, dc=fr" Restoration de la base ldap : Arret de ldap (/etc/init.d/ldap stop) cd /var/lib/ldap rm -f * Ajout des donnees dans la base /usr/sbin/slapadd -l /tmp/dump_ldap.ldif -f /etc/openldap/[Link] -b "dc=cnrs, dc=fr"=
Accs lannuaire ldap
Vous allez utiliser les commandes ldapsearch, ldapadd, ldapmodify ldapsearch -x 'objectclass=*' # On veut tous les objets ldapsearch -x 'uid=mlx' mail # On veut le mail de la personnes d'uid mlx Ajout d'un objet (mode interactif) avec ldapadd. Il faut crer un fichier au format LDIF pour chaque objet que l'on souhaite ajouter. $ ldapadd -x -D "uid=root,ou=people, dc=cnrs,dc=fr" -W -f le_FICHIER_ldiff utilisation de la commande ldappasswd : Pour rinitialiser le mot de passe de l'utilisateur user ldappasswd -x -D "uid=root,ou=people,dc=cnrs,dc=fr" -W "uid=user,ou=people,dc=cnrs,dc=fr " Pour rinitialiser le mot de passe de user a un mot de passe dtermin : ajouter l'option -S (prompt) ou -s motdepasse
Outils : jxplorer, phpldapadmin
On peut dsormais utiliser un browser LDAP pour avoir un affichage de la structure de lannuaire et des entres de celui-ci. [Link]
Serveur WEB LDAP browser pour administrer un annuaire LDAP
LDAP
Client machine Windows Linux Client logiciel de messagerie Client utilisateur Authentification Changement de mot de passe Scurit access control sauvegarde cryptage Conclusions
Client Windows 1/3
Entrer le PC dans ldap avec lam Hosts : New Host Entrer le nom NetBIOS suivi du signe $
L'UID est affect automatiquement partir de 25000
Client Windows 2/3
Sur le PC : Ouvrir une session administrateur
Panneau de Configuration, Systme, onglet Nom de l'Ordinateur
Client Windows 3/3
Aprs redmarrage l'utilisateur a le choix d'ouvrir une session sur le PC local (compte local Windows) ou dans le domaine TIMC-LDAP (compte ldap)
Client Linux
Lancer
authconfig
Cocher Use LDAP Use LDAP
Authentication
Entrer le nom et la Base DN
du (ou des) serveurs
Client Linux
Fichiers
modifis :
(On peut les modifier la main mais ils seront crass si on r-excute authconfig)
/etc/[Link] passwd: files ldap shadow: files ldap group: files ldap /etc/[Link] /etc/openldap/[Link] HOST [Link] [Link] BASE dc=timc,dc=fr /etc/pam.d/system-auth
Client Mac OS X 1/2
Client Mac OS X 2/2
Clients de Messagerie Thunderbird
Address Book Menu File : New
ldap directory
Clients Messagerie EUDORA
Client Messagerie Windows Carnet d'adresse (Accessoires Windows)
ACCESS CONTROL 1/2
Restrictions d'accs fichier [Link]
access to <what> by <who> <access-to-grant> <what> : sous forme de dn, de filtres et|ou d'attributs to [Link]=ou=people,o=suffix to filter=(objectClass=person) to attrs=userPassword <who> : * anonymous users self ou dn <access-to-grant> : none auth compare search read write Les directives sont interprtes dans l'ordre d'apparition et slapd s'arrte la premire qui est satisfaite.
ACCESS CONTROL 2/2
En l'absence de directives la base est en readonly Pour que les utilisateurs puissent changer eux-mme leur mot de passe voici les lignes ajouter: access to attr=userPassword by anonymous auth by self write by * none access to attr=sambaLMPassword by anonymous auth by self write by * none access to attr=sambaNTPassword by anonymous auth by self write by * none access to * by * read
Authentification LDAP Changement de mot de passe par l'utilisateur
Sous Windows (sur un PC appartenant au domaine) - Soit dans la bote de dialogue de connexion - Soit en cours de session en ouvrant la bote de dialogue Control/Alt/Suppr Sous Linux : Ne PAS utiliser la commande passwd car la synchronisation des mots de passe samba et ldap ne se fait que dans le sens samba->ldap ! Solution - Soit se servir d'un PC sous Windows pour changer son mot de passe samba - Soit utiliser une interface web en https sur le serveur ldap qui utilise un script cgi lanant la commande smbpasswd ([Link])
L'administrateur, lui, peut changer le mot de passe de l'utilisateur soit par l'interface lam soit par la commande smbpasswd <login> sur le serveur.
LDAP Sauvegarde de la base Backup Arrter le service ldap slapcat -l /tmp/[Link] Restauration cd /var/lib/ldap ; rm * slapadd -l /tmp/[Link] chown -R ldap:ldap /var/lib/ldap Relancer le service ldap Autre mthode : Arrter le service ldap cd /var/lib tar cf /tmp/[Link] ldap
REPLICATION (slurp) Standalone LDAP Update Replication Daemon
Sur le serveur principal (matre)
Arrter le service ldap. Faire une copie conforme de la base du serveur dans le serveur esclave (cf backup au format tar) ainsi que des fichiers de configuation
ajouter ces lignes au fichier [Link] : # Replicas of this database replogfile /var/lib/ldap/openldap-master-replog replica uri=ldap://[Link] binddn="cn=replica,dc=timc,dc=fr" bindmethod=simple credentials=Sx6Zw!9?
Sur le serveur secondaire (esclave)
updatedn "cn=replicator dc=timc,dc=fr" updateref=[Link]
Relancer le service ldap sur le serveur matre puis sur le serveur secondaire service ldap start Checking configuration files for : config file testing succeeded Starting slapd: [ OK ] Starting slurpd: [ OK ]
Aspects scurit Cryptage
SASL : TLS :
Simple Authentication and Scurity Layer Transport Layer Security
A faire
Rfrences
Rfrences [Link] [Link]
en particulier : [Link]
[Link] Normes, RFC [Link] Tutoriaux, outils, docs diverses [Link] [Link] [Link] (migration tools) Interfaces d'administration [Link] [Link] [Link]
La suite ...
Liste de diffusion sari-ldap@[Link]
Abonnement : [Link] Archives : [Link] Organisation dun atelier consacr linstallation de ces outils : le 14 juin, partir de 13h30. Inscription : envoyez un mail ladresse suivante : atelier-sari@[Link] [Link] [Link]