Mandriva Directory Server

De Wiki de la communauté Mandriva.

Mandriva Directory Server (MDS) est une plateforme d'annuaire d'entreprise s'appuyant sur LDAP. MDS est conçu pour gérer les identités, les informations de contrôle d'accès, les politiques d'entreprise, les paramètres des applications et les profils des utilisateurs. Si vous utilisez Samba, Postfix, Squid ou CUPS, vous pouvez bénéficier de MDS dès aujourd'hui pour gérer votre infrastructure.

Sommaire

Quand Linbox FAS rejoint Mandriva

MDS est la descendance de LDS, produit développé par Linbox FAS, depuis le rachat de cette dernière en juin 2007 par Mandriva. La première version de MDS est la 2.10. Elle est sortie avec une toute nouvelle interface adaptée à la charte graphique de Mandriva, la prise en charge des DNS CNAME et l'intégration de l'authentification Kerberos.

Fonctionnalités

  • Authentification de l'utilisateur via LDAP et Kerberos
  • Interface Web AJAX agréable nommée MMC (Mandriva Management Console/Console de Gestion de Mandriva), contenant 6 modules :
    1. Gestion des utilisateurs et des groupes
    2. Gestion des comptes et des partages SAMBA
    3. Gestion des impressions
    4. Gestion de la distribution du courriel
    5. Web proxy blacklist management
    6. Gestion des utilisateurs Open-Exchange
  • Une API de gestion écrite en Python, pour LDAP, SAMBA, Open-Xchange et SQUID (coeur de MDS et du MMC)
  • Un système de politique d'entreprise, permettant de définir les droits des utilisateurs sur les ressources réseau.
  • Grâce au MMC, MDS peut complètement remplacer un serveur Windows NT4.

Page d'accueil du MMC

Licence

  • GPL, tout simplement.

Site Officiel

Liens

Traductions

MDS est actuellement régionalisé en :

  • Anglais
  • Français
  • Espagnol
  • Norvégien
  • ...

Futur

Plus de développeurs vont désormais travailler sur Mandriva Directory Server, ce qui va faire que plus de fonctionnalités seront disponibles plus rapidement, comme par exemple la prise en charge prochaine du serveur d'authentification Freeradius et du 802.1x. MDS étant un logiciel libre, vous pouvez également contribuer en testant et en rapportant des bogues, en participant au développement, ou en créant des modules.

Paquetages Mandriva, Debian et autres

Mandriva 2008

Les paquetages sont inclus dans la source main. Pour savoir comment configurer vos sources, cliquer ici. L'installation se fait avec cette commande

Image:Konsole.png
[root@ordi ~]# urpmi mmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy mmc-web-samba mmc-agent python-mmc-plugins-tools python-mmc-base python-mmc-mail python-mmc-network python-mmc-proxy python-mmc-samba pylibacl

Mandriva CS4

Il faut ajouter une source.

  • Pour la version 32 bits :
Image:Konsole.png
[root@ordi ~]# urpmi.addmedia mds http://mds.mandriva.org/pub/mds/RPM/i586
  • Pour la version 64 bits :
Image:Konsole.png
[root@ordi ~]# urpmi.addmedia mds http://mds.mandriva.org/pub/mds/RPM/x86_64

Ensuite, l'installation se fait avec cette commande :

Image:Konsole.png
[root@ordi ~]# urpmi mmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy mmc-web-samba mmc-agent python-mmc-plugins-tools python-mmc-base python-mmc-mail python-mmc-network python-mmc-proxy python-mmc-samba

Debian

Ajoutez le dépôt de MDS au ficher /etc/apt/sources.list :

# Pour Sarge
deb http://mds.mandriva.org/pub/mds/debian sarge main
# Pour Etch
deb http://mds.mandriva.org/pub/mds/debian etch main</pre>

Ensuite téléchargez les paquetages :

Image:Konsole.png
[root@ordi ~]# apt-get install mmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy mmc-web-samba mmc-agent python-mmc-plugins-tools python-mmc-base python-mmc-mail python-mmc-network python-mmc-proxy python-mmc-samba

Autres distributions

Les utilisateurs peuvent télécharger les sources depuis ce site afin d'installer Mandriva Directory Server à partir des sources. Des paquetages peuvent aussi être crées à partir de ces sources.

Guide d'installation rapide de MMC sur Mandriva 2008

Ce guide n'a pas pour ambition de remplacer la documentation officielle de MDS mais de fournir un guide d'installation en français sur la version 2008 de Mandriva. Normalement, le guide devrait fonctionner aussi pour les versions 2007 et 2007.1. L'installation se déroule en mode root et ne nécessite pas d'environnement graphique pour fonctionner. Il est donc recommandé, plutôt que d'installer la One, d'utiliser la version Mandriva Free, voire la version Mandriva Mini (qui fonctionne sur architecture 32 et 64 bits, avec IceWM comme unique Gestionnaire de fenêtre). Ceci évitera de gaspiller de la place en installant des produits bureautiques ou multimédia. Toute la procédure sera à faire en mode root, qu'il s'agisse de l'installation ou de la configuration des services.

Installation de tous les paquetages nécessaires

Image:Konsole.png
[root@ordi ~]# urpmi openldap-clients openldap-mandriva-dit
 db46-utils
 libunixODBC1
 openldap-clients
 openldap-servers
 openldap-mandriva-dit

un espace additionnel de 5.1Mo sera utilisé.


Image:Konsole.png
[root@ordi ~]# urpmi samba-client samba-server
 mount-cifs
 samba-client
 samba-common
 samba-server

un espace additionnel de 37Mo sera utilisé.

Image:Konsole.png
[root@ordi ~]# urpmi nss_ldap pam_ldap
 nss_ldap
 pam_ldap

un espace additionnel de 0,4Mo sera utilisé.

Image:Konsole.png
[root@ordi ~]# urpmi smbldap-tools
 perl-Convert-ASN1
 perl-Crypt-SmbHash
 perl-IO-Socket-SSL
 perl-Jcode
 perl-Net_SSLeay.pm
 perl-Unicode-Map
 perl-Unicode-Map8
 perl-Unicode-MapUTF8
 perl-Unicode-String
 perl-XML-NamespaceSupport
 perl-XML-SAX
 perl-ldap
 smbldap-tools

un espace additionnel de 3.8Mo sera utilisé.

Configuration du réseau

Votre serveur MDS va être installé dans votre entreprise, votre association, votre résidence, ou votre salon... Il va falloir réfléchir à nommer votre serveur et votre réseau. En ce qui concerne le nommage du réseau, le choix le plus classique, qui va nous servir pour l'installation ci-après, est de se choisir un nom de domaine en xxxxxxxxxxxx.yyy, comme pour les sites internet. Par exemple dupond.fr, gloubiboulga.com etc. Si vous possédez déjà un nom de domaine, alors n'hésitez pas, sinon n'importe quoi fera l'affaire, étant donné que ce serveur ne sera limité qu'à un Intranet. Par exemple, nous choisirons ici mandriva.com, mais si vous préférez bambou.org, alors remplacez dans les fichiers modèles mandriva par bambou et com par org. Ensuite il vous faut un nom pour votre serveur. Ici, nous l'appelerons serveur. Mais encore une fois rien ne vous empêche de l'appeler par exemple citron.


OpenLDAP

Le suffixe de la base OpenLDAP est ce qui va l'identifier. Nous allons, par souci de cohérence, utiliser le nom DNS de la machine pour l'identifier. Chaque identifiant (du suffixe, d'un utilisateur etc.) est appelé DN (Distinguish Name). Le DN du suffixe la base sera sous la forme dc=mandriva,dc=com (modifiez selon vos paramètres).


Le choix de l'administrateur OpenLDAP et de son mot de passe

Nous allons créer, pour la gestion de la base OpenLDAP, un utilisateur administrateur. Il ne s'agit pas de root, mais d'un super-admin affilié à OpenLDAP. Ici, nous choisirons de l'appeler admin, mais vous pouvez aussi bien l'appeler autrement. Son DN sera donc cn=admin,dc=mandriva,dc=com.
Il nous faut aussi un mot de passe pour cet admin. Nous choisirons PasseAdminLdap. Dans tous les exemples et commandes suivants, remplacez PasseAdminLdap par le mot de passe de votre choix. Par souci de sécurité, nous allons chiffrer ce mot de passe en faisant cette commande :

Image:Konsole.png
[utilisateur@ordi ~]$ slappasswd -h {SSHA} -s PasseAdminLdap>/tmp/passadmin

Le mot de passe sous une forme chiffré est enregistré dans le fichier /tmp/passadmin. Il nous servira à plusieurs occasions par la suite. Pour le lire, il suffira alors de faire :

Image:Konsole.png
[utilisateur@ordi ~]$ less /tmp/passadmin


Configuration d'OpenLDAP avec Mandriva 2008 et Mandriva CS4

La configuration d'OpenLDAP peut facilement être effectuée avec le paquetage openldap-mandriva-dit.

        # /usr/share/openldap/scripts/mandriva-dit-setup.sh
        Please enter your DNS domain name [localdomain]:
        mandriva.com

        Administrator account

        The administrator account for this directory is
        uid=LDAP Admin,ou=System Accounts,dc=mandriva,dc=com

        Please choose a password for this account:
        New password:[type password]
        Re-enter new password:[type password]
        
        
        Summary
        =======

        Domain:        mandriva.com
        LDAP suffix:   dc=mandriva,dc=com
        Administrator: uid=LDAP Admin,ou=System Accounts,dc=mandriva,dc=com

        Confirm? (Y/n)
        Y
        config file testing succeeded
        Stopping ldap service
        Finished, starting ldap service
        Running /usr/bin/db_recover on /var/lib/ldap
        remove /var/lib/ldap/alock
        Starting slapd (ldap + ldaps): [  OK  ]
     

Et c'est fait, le répertoire LDAP a été peuplé et les service démarré.

Il faut cependant faire quelques ajustements pour que la configuration de LDAP fonctionne avec MDS :

Premièrement, copiez le schéma MDS dans le répertoire des schémas LDAP :

        # cd /usr/share/doc/python-mmc-base*/contrib/ldap/
        # cp dhcp.schema dnszone.schema mail.schema mmc.schema /etc/openldap/schema/

Puis ajoutez ces lignes dans le fichier /etc/openldap/schema/local.schema :

include /etc/openldap/schema/mmc.schema
include /etc/openldap/schema/mail.schema
include /etc/openldap/schema/dnszone.schema
include /etc/openldap/schema/dhcp.schema
     

Puis, pour éviter des conflits de schémas LDAP, commentez ou retirez ces lignes au début du ficher /etc/openldap/slapd.conf:

#include /usr/share/openldap/schema/misc.schema
#include /usr/share/openldap/schema/kolab.schema
#include /usr/share/openldap/schema/dnszone.schema
#include /usr/share/openldap/schema/dhcp.schema


Pour finir, commentez ou supprimez ces lignes à la fin du fichier /etc/openldap/mandriva-dit-access.conf :

#access to dn.one="ou=People,dc=mandriva,dc=com"
#        attrs=@inetLocalMailRecipient,mail
#        by group.exact="cn=MTA Admins,ou=System Groups,dc=mandriva,dc=com" write
#        by * read


Pour vérifier que le service de configuration LDAP est correct, lancez slaptest :

        # slaptest
        config file testing succeeded


Maintenant vous pouvez redémarrer le service LDAP :

        # service ldap restart
        Checking config file /etc/openldap/slapd.conf: [  OK  ]
        Stopping slapd:                                [  OK  ]
        Starting slapd (ldap + ldaps):                 [  OK  ]

/etc/openldap/ldap.conf

2 lignes à modifier

# Modifier les paramètres pour qu'ils correspondent
# au nom désiré
HOST serveur.mandriva.com
BASE dc=mandriva,dc=com

/etc/ldap/conf

1 ligne à modifier

# ne pas modifier cette première ligne,
# sauf si vous savez ce que vous faîtes
host 127.0.0.1
# Modifier les paramètres du dn de base
base dc=mandriva,dc=com

créer un fichier /tmp/ldap-init.ldif

5 lignes à changer :

  • remplacez admin, mandriva et com par vos propres paramètres.
  • à la dernière ligne, copiez/collez le mot de passe PasseAdminLdap sous forme chiffrée, mais sans être précédé de {SSHA}).
dn: dc=mandriva,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
dc: mandriva
o: mandriva

dn: cn=admin,dc=mandriva,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP Administrator
userPassword: FOORpayOqDu7nc6eAO25fwIudfPCfQ8B

configuration de /etc/nsswitch.conf

Votre ficher devrait ressembler à ça

        passwd:     files ldap
        shadow:     files ldap
        group:      files ldap
        
        hosts:      files dns
        
        bootparams: files
        ethers:     files
        netmasks:   files
        networks:   files
        protocols:  files
        rpc:        files
        services:   files
        netgroup:   files
        publickey:  files
        automount:  files
        aliases:    files

Peuplement de la base LDAP par injection du fichier LDIF

Image:Konsole.png
[root@ordi ~]# service ldap stop;slapadd -l /tmp/ldap-init.ldif;service ldap start

Pour voir les nouvelles entrées, exécuter slapcat|less

Samba

Choix du nommage du service Samba

Le protocole CIFS utilisé par Samba nécessite deux informations : un nom de domaine Samba (workgroup) et un nom netbios (netbiosname) Par souci de cohérence, le nom de domaine samba sera le nom de domaine DNS de la machine, sans le suffixe .org, .com ou autre .net, mais écrit en majuscule afin de bien le différencier malgré tout : dans notre cas mandriva.com donne MANDRIVA. De même, le nom netbios sera le même que le nom de la machine, en majuscule : dans notre cas serveur donne SERVEUR.

Arrêt du service Samba

Image:Konsole.png
[root@ordi ~]# service smb stop

/etc/samba/smb.conf

2 lignes à modifier

[global]
###################################################
##  MODIFIER CI DESSOUS LE NOM DU DOMAINE SAMBA  ##
##              ET LE NOM NETBIOS                ##
###################################################
workgroup = MANDRIVA
netbiosname = SERVEUR
###################################################
###################################################  
log level = 3
null passwords = yes
name resolve order = bcast host
domain logons = yes
domain master = yes
printing = cups
printcap name = cups
logon path = \\%N\profiles\%u
logon script = logon.bat
map acl inherit = yes
nt acl support = yes
passdb backend = ldapsam:ldap://127.0.0.1/
####################################################
##      MODIFIER CI DESSOUS LE SUFFIXE ET LE      ##
##      DN ADMIN DE VOTRE ARBORESCENCE LDAP       ##
####################################################
ldap admin dn = cn=admin,dc=mandriva,dc=com
ldap suffix = dc=mandriva,dc=com
####################################################
####################################################
ldap group suffix = ou=Group
ldap user suffix = ou=People
ldap machine suffix = ou=Hosts
enable privileges = yes
add machine script = /usr/lib/mmc/add_machine_script '%u'

[homes]
comment = Répertoire personnels
browseable = no
writeable = yes
create mask = 0700
directory mask = 0700
valid users = %U
 
[public]
comment = Partage public
path = /home/samba/partage/public
browseable = yes
public = yes
writeable = yes

[archives]
comment = Partage de sauvegarde
path = /home/archives
browseable = yes
public = no
writeable = no

[printers]
comment = Imprimantes
path = /tmp
browseable = no
public = yes
guest ok = yes
writeable = no
printable = yes

[print$]
comment = Pilotes d'impression
path = /var/lib/samba/printers
browseable = yes
guest ok = yes
read only = yes
write list = root,@lpadmin

[netlogon]
path = /home/samba/netlogon
public = no
writeable = no
browseable = no

[profils]
path = /home/samba/profils
writeable = yes
create mask = 0700
directory mask = 0700
browseable = no
guest ok = yes
profile acls = yes
csc policy = disable
#la ligne suivante est une bonne façon de sécuriser les profils
force user = %U
#la ligne suivante permet à l'admin d'accéder à tous les profils
valid users = %U @"Domain Admins"

[partage]
comment = aucun
path = /home/samba/partage
browseable = yes
public = no
writeable = yes

Créer les répertoires Samba

Image:Konsole.png
[root@ordi ~]# mkdir -p /home/{archives,samba/{partage/public,profils,netlogon}}

Associer le mot de passe au service Samba

Image:Konsole.png
[root@ordi ~]# smbpasswd -w secret

Ce qui devrait afficher quelque chose comme : Setting stored password for "cn=admin,dc=mandriva,dc=com" in secrets.tdb

Obtention du SID pour le domaine

Pour plus d'informations sur le SID, consulter cette page Afin d'obtenir et d'enregistrer dans la base ldap le site du domaine :

Image:Konsole.png
[root@ordi ~]# net getlocalsid MANDRIVA

ce qui devrait afficher quelque chose comme SID for domain MANDRIVA is: S-1-5-21-128599351-419866736-2079179792 Vous pouvez relancer cette commande autant de fois que vous le voulez car les SID restera toujours le même. Pour vérifier que le SID a bien été pris en compte dans LDAP, effectuer slapcat | grep sambaDomainName Ce qui donnera quelque chose comme dn: sambaDomainName=MANDRIVA,dc=mandriva,dc=com

Redémarrer le service Samba

Image:Konsole.png
[root@ordi ~]# service smb start

Les outils smbldap-tools

Le fichier /etc/smbldap-tools/smbldap_bind.conf

4 lignes à modifier

#############################################
## MODIFIER CI DESSOUS LE DN DE L'ADMIN    ##
##   ET LE MOT DE PASSE, AFFICHÉ EN CLAIR  ##
##            (NON CHIFFRÉ)                ##
#############################################
slaveDN="cn=admin,dc=mandriva,dc=com"
slavePw="PasseAdminLdap"
masterDN="cn=admin,dc=mandriva,dc=com"
masterPw="PasseAdminLdap"
#############################################
#############################################

le fichier /etc/smbldap-tools/smbldap.conf

4 lignes à modifier

# 1) on garde la licence par principe ;)

# $Source: /opt/cvs/samba/smbldap-tools/smbldap.conf,v $
# $Id: smbldap.conf,v 1.18 2005/05/27 14:28:47 jtournier Exp $
#
# smbldap-tools.conf : Q & D configuration file for smbldap-tools

#  This code was developped by IDEALX (http://IDEALX.org/) and
#  contributors (their names can be found in the CONTRIBUTORS file).
#
#                 Copyright (C) 2001-2002 IDEALX
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software
#  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
#  USA.

#  Purpose :
#       . be the configuration file for all smbldap-tools scripts

# 2) Configuration Générale

###################################################################
##    MODIFIER CI-DESSOUS LE SID ET LE NOM DU DOMAINE SAMBA      ##
###################################################################
SID="S-1-5-21-2245537205-2538187306-4027542176"
sambaDomain="MANDRIVA"
###################################################################
###################################################################

# 3) Configuration LDAP

slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"
masterPort="389"
ldapTLS="0"
verify="require"
cafile="/etc/ssl/cacert.pem"
clientcert=""
clientkey=""

###################################################################
##     MODIFIER CI-DESSOUS LE DN DU SUFFIXE DE LA BASE LDA       ##
###################################################################
suffix="dc=mandriva,dc=com"
###################################################################
###################################################################

usersdn="ou=People,${suffix}"
computersdn="ou=Hosts,${suffix}"
groupsdn="ou=Group,${suffix}"
idmapdn="ou=Idmap,${suffix}"

###################################################################
##       MODIFIER CI-DESSOUS LE NOM DE DOMAINE SAMBA             ##
###################################################################
sambaUnixIdPooldn="sambaDomainName=MANDRIVA,${suffix}"
###################################################################
###################################################################

scope="sub"
hash_encrypt="SSHA"
crypt_salt_format="%s"

# 4) Configuration des Comptes UNIX

userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="45"

# 5) Configuration de SAMBA

userSmbHome=""
userProfile=""
userHomeDrive=""
userScript=""
mailDomain=""


# 6) Configuration des outils SMBLDAP-TOOLS

with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"
À noter !
Sous Mandriva Linux 2009, la dernière modification n'est pas nécessaire car elle est déjà correctement paramétrée :
sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"

Peupler le répertoire LDAP

Image:Konsole.png
[root@ordi ~]# /usr/sbin/smbldap-populate -m 512 -a administrateur

Un utilisateur appelé « administrateur » va être créé, et un mot de passe va être demandé. Grâce à l'option « -m 512 », cet utilisateur va appartenir au groupe « Domain Admins » (Administrateurs du Domaine).