Vous êtes sur la page 1sur 43

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/ldap.conf /etc/nsswitch /etc/pam.d/system-auth

Administration : Compte root-ldap /etc/openldap/sldap.conf /etc/openldap/ldap.conf /etc/init.d/ldap

LAM : LDAP Account Manager /var/www/html/lam/config/config.cfg /var/www/html/lam/config/sari.conf Accs Web Configuration Compte :root

Windows

Intgrer au domaine microsoft Compte : admin (ldap) Administration : Compte admin (ldap) Gestionnaire de domaine /etc/samba/smb.conf /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/smb.conf /etc/atalk/afpd.conf, /etc/atalk/applevolume.default,

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/ldap.conf Fichier de configuration permettant de fournir les informations ncessaires au commandes shell de type ldapsearch, ldapmodify, etc. /etc/openldap/slapd.conf 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/samba.schema 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 http://lam.soureforge.net Administration par web http://localhost/lam/ Fichiers de configurations /var/www/html/lam/config/config.cfg /var/www/html/lam/config/sari.cfg 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 http://localhost:901

Pour administrer samba par swat : login / mot de passe root Le fichier /etc/samba/smb.conf 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 secrets.tdb afin que Samba puisse accder en criture au serveur LDAP : smbpasswd -w <motdepasse>.

Configuration de SAMBA
/etc/samba/smb.conf 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/smb.conf Le mot de passe dadministration de lannuaire LDAP est renseign dans samba par la commande Smbpasswd w mot de passe et stock dans secret.tdb [global] passdb backend = ldapsam:ldap://127.0.0.1 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/lamdaemon.pl 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/slapd.conf (login et password) /etc/samba/smb.conf (login) /etc/samba/secret.tdb (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. http://support.microsoft.com/?scid=kb%3Bfr%3B243330&x=12&y=10

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 membres.fait qui contient dj toutes les info dont on a besoin. Upload.csv = awk -F: '{printf"%s,%s,%s,%s,,%s.%s@imag.fr,,,,,,,,\n", $4,$5,$1,$3,$4,$5}' membres.fait ex. (membres.fait) bourrel:3750:1402:Guy:Bourrel:mail-timc (upload.csv) Guy,Bourrel,bourrel,1402,,Guy.Bourrel@imag.fr,,,,,,,,

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/sldap.conf -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/sldap.conf -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. http://www.jxplorer.org/

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/nsswitch.conf passwd: files ldap shadow: files ldap group: files ldap /etc/ldap.conf /etc/openldap/ldap.conf HOST ldap-timc.imag.fr replicat-timc.imag.fr 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 slapd.conf

access to <what> by <who> <access-to-grant> <what> : sous forme de dn, de filtres et|ou d'attributs to dn.children=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 (changepass.cgi)
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/save-ldap.ldif Restauration cd /var/lib/ldap ; rm * slapadd -l /tmp/save-ldap.ldif chown -R ldap:ldap /var/lib/ldap Relancer le service ldap Autre mthode : Arrter le service ldap cd /var/lib tar cf /tmp/ldap.tar 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 slapd.conf : # Replicas of this database replogfile /var/lib/ldap/openldap-master-replog replica uri=ldap://bergson.imag.fr:389 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=152.77.201.26

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 http://www.openldap.org http://www.samba.org
en particulier : http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection

http://samba.idealx.org/smbldap-howto.en.html Normes, RFC http://www.mozilla.org/directory/standards.html Tutoriaux, outils, docs diverses http://www.int-evry.fr/mci/user/procacci/ldap/ http://www.linagora.org http://www.padl.com/ (migration tools) Interfaces d'administration http://sourceforge.net/projects/lam http://phpldapadmin.sourceforge.net http://sourceforge.net/projects/jxplorer/

La suite ...

Liste de diffusion sari-ldap@listes.grenoble.cnrs.fr


Abonnement : mailto:sympa@listes.grenoble.cnrs.fr?subject=subscribe%20sari-ldap> Archives : http://listes.grenoble.cnrs.fr/wws/arc/sari-ldap Organisation dun atelier consacr linstallation de ces outils : le 14 juin, partir de 13h30. Inscription : envoyez un mail ladresse suivante : atelier-sari@grenoble.cnrs.fr http://sari.inpg.fr/ http://sari.grenoble.cnrs.fr

Vous aimerez peut-être aussi