PDC Samba LDAP

Trés largement inspiré de "Un article de L'admin Debian." L'article



Prérequis et Conseils

Ce tutoriel fonctionne sur les distributions suivantes:

  • Debian SID

  • Debian Sarge

  • Debian Etch

  • Ubuntu ( Et ses dérivées )

  • .......

Ce guide a été fait avec une Debian Etch. (personnellement)

Afin que ce guide corresponde totalement à votre environnement, je vous conseille de modifier le niveau de priorité de Debconf. Sur la nouvelle debian Etch et sur Ubuntu le niveau de Debconf est à "Elevé". Ce qui réduit sensiblement le nombre de questions qui vous ai posé lors de l'installation d'un paquet. On va donc changer le niveau à "Intermédiaire".

dpkg-reconfigure debconf

Choisissez "Dialogue" puis "Intermédiaire"


Je vous conseille grandement d'utiliser le même mot de passe que celui de votre utilisateur root à chaque fois q'on vous demande un mot de passe. Cela évitera les erreurs !!

Le contrôleur de domaine doit impérativement avoir une adresse IP statique, si vous changez d'adresse IP en cours de route vous risquez de ne plus pouvoir joindre le domaine.
Une autre astuce étant de faire des réservations DHCP...

Dans notre cas le serveur samba et le serveur OpenLDAP se trouvent sur le méme PC.

Installation du serveur OpenLDAP

Installation

Le paquet slapd contient la partie serveur d'openLDAP :

aptitude install slapd db4.2-util ldap-utils

Debconf nous pose plusieurs questions :

  • Le nom du domaine : c'est celui de LDAP (Totalement diférent du domaine Samba):

Si vous mettez domaine.local vous aurez donc dc=domaine,dc=local (rappelez-vous en !!)

Car au nom FQDN: domaine.local correspondra le Workgroup: domaine.

Un peu comme le préconise Microsoft lors de la configuration d'un Active Directory.

http://e-novatic.fr/blog/index.php/post/2007/09/11/Bien-configurer-son-Active-Directory

http://www.laboratoire-microsoft.org/articles/win/startad/3/Default.asp



  • Nom de votre organisation: peu important.

domaine.local

  • Mot de passe de l'administrateur :

C'est ce mot de passe que vous utiliserez pour vous connecter, rappelez vous en !!

  • Module de base de données à utiliser :

BDB

  • Faut-il supprimer la base de données à la purge du paquet ?

NON

  • Faut-il déplacer l'ancienne base de données ?

NON

  • Faut-il autoriser le protocole LDAPv2 ?

NON

Schéma Samba

LDAP fonctionne avec des schémas, par défaut 4 schémas sont déjé présents, pour utiliser samba avec LDAP il faut le schéma approprié. Celui se trouve dans le paquet SAMBA-DOC (14mo !!)

  • Installation:

aptitude install samba-doc 
  • On copie le schéma que l'on place dans le répertoire dans le répertoire des schémas de LDAP:

gunzip -c /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema

Modification du fichier slapd.conf

Il reste maintenant à éditer le fichier de configuration du serveur OpenLDAP

nano /etc/ldap/slapd.conf
  • On déclare le schéma de samba

include         /etc/ldap/schema/samba.schema

Juste en dessous des autres déclarations;

  • Création d'un mot de passe crypté:

Il faut indiquer le mot de passe de admin dans le fichier de configuration, pour des raisons de sécurité on évitera de le mettre en clair, on va le crypter avec la commande slappasswd

shuttle:/home/damien# slappasswd 
New password:
Re-enter new password:
{SSHA}jso956sZB1+kViJ9z25tmf2M6iqrpMVV

Chercher ces lignes dans le fichier slapd.conf

# The base of your directory in database #1
suffix          "dc=domaine,dc=local"


Rajoutez juste en dessous:

rootdn          "cn=admin,dc=domaine,dc=local"
rootpw          {SSHA}jso956sZiopljlkjlkjkljf2M6iqrpMVV

rootpw correspond au résultat de la commande slappaswd

Enfin on relance le serveur OpenLDAP:

/etc/init.d/slapd restart
Stopping OpenLDAP: slapd.
Starting OpenLDAP: running BDB recovery, slapd.


Voici mon fichier de configuation de slapd.conf

Installation du serveur SAMBA

Installation

On installe le paquet samba (le serveur) et des outils pour le client:

aptitude install samba smbclient smbfs

Répondez à debconf en laissant tout par défaut, de toute façon on fera notre propre fichier de configuration.

Modification du fichier smb.conf

Le fichier de configuration du serveur SAMBA est : /etc/samba/smb.conf


Supprimez tout le contenu et copiez toutes ces lignes:

[global]
        display charset = ISO8859-1
        unix charset = ISO8859-1
        dos charset = 850

        workgroup = DOMAIN
        realm = DOMAIN.LOCAL
        netbios name = debian
        server string = Domain DOMAIN PDC

        security = DOMAIN
        passdb backend = ldapsam:ldap://127.0.0.1/
        passwd program = /usr/bin/smbpasswd %u
        username map = /etc/samba/smbusers
        unix password sync = Yes

        log level = 3
        syslog = 3
        log file = /var/log/samba/log.%m
        max log size = 1000

        announce version = 5.0
        name resolve order = wins lmhosts bcast
        server signing = Yes
        keepalive = 5
        socket options = TCP_NODELAY SO_SNDBUF=819200 SO_RCVBUF=819200

        ldap admin dn = cn=admin,dc=DOMAIN,dc=local
        ldap delete dn = Yes
        ldap group suffix = ou=Groups
        ldap idmap suffix = ou=Idmap
        ldap machine suffix = ou=Computers
        ldap suffix = dc=DOMAIN,dc=local
        ldap ssl = no
        ldap user suffix = ou=Users
        idmap backend = dc=DOMAIN,dc=local
        idmap uid = 500-10000000
        idmap gid = 500-10000000
        add user script = /usr/sbin/smbldap-useradd -a -m -G "Domain Users" "%u"
        add group script = /usr/sbin/smbldap-groupadd -p "%g"
        add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
        delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
        set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
        add machine script = /usr/sbin/smbldap-useradd -i "%u"

        logon script = %u.bat
        logon path = \\%L\profiles\%u
        logon drive = H:
        logon home = \\%L\homes\%u
        domain logons = Yes

        os level = 95
        preferred master = Yes
        domain master = Yes

        eventlog list = Security, Application, Syslog, Apache
        message command = /bin/sh -c '/usr/bin/linpopup
        panic action = /usr/share/samba/panic-action %d

        #winbind separator = \
        winbind cache time = 300
        hide unreadable = Yes
        #interfaces = 192.168. 10.0 127.0.0.1

[homes]
        comment = Home Directories
        path = /home/%u
        read only = No
        locking = No
        share modes = No

[netlogon]
        comment = Network Logon Service
        path = /home/netlogon
        locking = No
        share modes = No

[profiles]
        comment = User Profiles
        path = /home/profiles
        read only = No
        create mask = 0660
        directory mask = 0770
        profile acls = Yes
        browseable = No
        locking = No

[printers]
        comment = All Printers
        path = /var/spool/samba
        printable = Yes
        browseable = No
        locking = No
        share modes = No

[pdf-documents]
        comment = Converted PDF Documents
        path = /home/pdf-documents
        read only = No

[pdf-printer]
        comment = PDF Printer Service
        path = /tmp
        guest ok = Yes
        printable = Yes
        use client driver = Yes


Vous devez changer au moins les lignes:

  • workgroup

C'est le nom de votre domaine, celui que vous allez donner à windows

  • netbios name

C'est le nom votre machine (résultat de la commande 'hostname').

  • ldap suffix

dc=.....,dc=......

  • ldap admin dn

cn=admin,dc=......,dc=.....

Et éventuellement:

  • hosts allow



Voir mon fichier smb.html

Création des dossiers partagés

Comme vous avez pu le voir dans le fichier de configuration de samba, on partage plusieurs répertoires.

  • /home/netlogon

Contient les éventuels scripts qui sont éxécutés à chaque connexion d'un utilisateur (.bat)

  • /home/export/profile

Contient les profils windows de chaque utilisateur, ils sont créés automatiquement pour les nouveaux

  • /home/partage

Partage commun à tous les utilisateurs du domaine

  • /home/lenomdelutilisateur

Les répertoires personnels linux sont aussi partagés

Création des répertoires:

mkdir -p /home/netlogon
mkdir -p /home/export/profile
mkdir -p /home/partage

On donne les droits aux répertoires:

chmod a+w /home/export
chmod a+w /home/export/profile
chmod a+w /home/partage

Les scripts smbldap-tools

Installation

Il y a des problémes avec la version Stable de debian (sarge) concernant le paquet smbldap-tools

Etch et SID

Le paquet smbldap-tools contient plusieurs scripts facilitant l'administration

aptitude install smbldap-tools

Sarge

On télécharge le paquet smbldap-tools de la version Sid

wget http://ftp.fr.debian.org/debian/pool/main/s/smbldap-tools/smbldap-tools_0.9.2-3_all.deb

On installe le paquet à la main

dpkg -i smbldap-tools

Pas de soucis !! c'est normal que l'installation échoue. On installe alors toutes les dépendances (tout ce qui concerne PERL)

apt-get -f install



Modification du fichier smbldap_bind.conf

Editez ou créez le fichier /etc/smbldap-tools/smbldap_bind.conf et copiez ceci:

slaveDN="cn=admin,dc=domaine,dc=local"
slavePw=votremotdepasseenclair
masterDN="cn=admin,dc=domaine,dc=local"
masterPw=votremotdepasseenclair
  • Adaptez le comme d'habitude à votre configuration

  • Il y a ici un probléme de sécurité car votre mot de passe est en clair, changez les droits de ce fichier pour que seul root puisse le lire

chmod 600 /etc/smbldap-tools/smbldap_bind.conf

Modification du fichier smbldap.conf

Editez ou créez le fichier /etc/smbldap-tools/smbldap.conf et copiez ceci:

##############################################################################
#
# General Configuration
#
##############################################################################

# Put your own SID. To obtain this number do: "net getlocalsid".
# If not defined, parameter is taking from "net getlocalsid" return
SID="S-1-5-21-2955114329-942759136-1117618233"

# Domain name the Samba server is in charged.
# If not defined, parameter is taking from smb.conf configuration file
# Ex: sambaDomain="DOMAIN"
sambaDomain="DOMAIN"

##############################################################################
#
# LDAP Configuration
#
##############################################################################

# Notes: to use to dual ldap servers backend for Samba, you must patch
# Samba with the dual-head patch from IDEALX. If not using this patch
# just use the same server for slaveLDAP and masterLDAP.
# Those two servers declarations can also be used when you have 
# . one master LDAP server where all writing operations must be done
# . one slave LDAP server where all reading operations must be done
#   (typically a replication directory)

# Slave LDAP server
# Ex: slaveLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
slaveLDAP="127.0.0.1"

# Slave LDAP port
# If not defined, parameter is set to "389"
slavePort="389"

# Master LDAP server: needed for write operations
# Ex: masterLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
masterLDAP="127.0.0.1"

# Master LDAP port
# If not defined, parameter is set to "389"
masterPort="389"

# Use TLS for LDAP
# If set to 1, this option will use start_tls for connection
# (you should also used the port 389)
# If not defined, parameter is set to "1"
ldapTLS="0"

# How to verify the server's certificate (none, optional or require)
# see "man Net::LDAP" in start_tls section for more details
verify="require"

# CA certificate
# see "man Net::LDAP" in start_tls section for more details
#cafile="/etc/opt/IDEALX/smbldap-tools/ca.pem"

# certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
#clientcert="/etc/opt/IDEALX/smbldap-tools/smbldap-tools.pem"

# key certificate to use to connect to the ldap server
# see "man Net::LDAP" in start_tls section for more details
#clientkey="/etc/opt/IDEALX/smbldap-tools/smbldap-tools.key"

# LDAP Suffix
# Ex: suffix=dc=DOMAIN,dc=local
suffix="dc=DOMAIN,dc=local"

# Where are stored Users
# Ex: usersdn="ou=Users,dc=DOMAIN,dc=local"
# Warning: if 'suffix' is not set here, you must set the full dn for usersdn
usersdn="ou=Users,${suffix}"

# Where are stored Computers
# Ex: computersdn="ou=Computers,dc=DOMAIN,dc=local"
# Warning: if 'suffix' is not set here, you must set the full dn for computersdn
computersdn="ou=Computers,${suffix}"

# Where are stored Groups
# Ex: groupsdn="ou=Groups,dc=DOMAIN,dc=local"
# Warning: if 'suffix' is not set here, you must set the full dn for groupsdn
groupsdn="ou=Groups,${suffix}"

# Where are stored Idmap entries (used if samba is a domain member server)
# Ex: groupsdn="ou=Idmap,dc=DOMAIN,dc=local"
# Warning: if 'suffix' is not set here, you must set the full dn for idmapdn
idmapdn="ou=Idmap,${suffix}"

# Where to store next uidNumber and gidNumber available for new users and groups
# If not defined, entries are stored in sambaDomainName object.
# Ex: sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
# Ex: sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
sambaUnixIdPooldn="sambaDomainName=DOMAIN,${suffix}"

# Default scope Used
scope="sub"

# Unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA, CLEARTEXT)
hash_encrypt="SSHA"

# if hash_encrypt is set to CRYPT, you may set a salt format.
# default is "%s", but many systems will generate MD5 hashed
# passwords if you use "$1$%.8s". This parameter is optional!
crypt_salt_format="%s"

##############################################################################
# 
# Unix Accounts Configuration
# 
##############################################################################

# Login defs
# Default Login Shell
# Ex: userLoginShell="/bin/bash"
userLoginShell="/bin/bash"

# Home directory
# Ex: userHome="/home/%U"
userHome="/home/%U"

# Default mode used for user homeDirectory
userHomeDirectoryMode="700"

# Gecos
userGecos="System User"

# Default User (POSIX and Samba) GID
defaultUserGid="513"

# Default Computer (Samba) GID
defaultComputerGid="515"

# Skel dir
skeletonDir="/etc/skel"

# Default password validation time (time in days) Comment the next line if
# you don't want password to be enable for defaultMaxPasswordAge days (be
# careful to the sambaPwdMustChange attribute's value)
defaultMaxPasswordAge="45"

##############################################################################
#
# SAMBA Configuration
#
##############################################################################

# The UNC path to home drives location (%U username substitution)
# Just set it to a null string if you want to use the smb.conf 'logon home'
# directive and/or disable roaming profiles
# Ex: userSmbHome="\\PDC-SMB3\%U"
userSmbHome="\\debian\%U"

# The UNC path to profiles locations (%U username substitution)
# Just set it to a null string if you want to use the smb.conf 'logon path'
# directive and/or disable roaming profiles
# Ex: userProfile="\\PDC-SMB3\profiles\%U"
userProfile="\\debian\profiles\%U"

# The default Home Drive Letter mapping
# (will be automatically mapped at logon time if home directory exist)
# Ex: userHomeDrive="H:"
userHomeDrive="H:"

# The default user netlogon script name (%U username substitution)
# if not used, will be automatically username.cmd
# make sure script file is edited under dos
# Ex: userScript="startup.cmd" # make sure script file is edited under dos
userScript="%U.bat"

# Domain appended to the users "mail"-attribute
# when smbldap-useradd -M is used
# Ex: mailDomain="DOMAIN.local"
mailDomain="DOMAIN.local"

##############################################################################
#
# SMBLDAP-TOOLS Configuration (default are ok for a RedHat)
#
##############################################################################

# Allows not to use smbpasswd (if with_smbpasswd == 0 in smbldap_conf.pm) but
# prefer Crypt::SmbHash library
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"

# Allows not to use slappasswd (if with_slappasswd == 0 in smbldap_conf.pm)
# but prefer Crypt:: libraries
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"

# comment out the following line to get rid of the default banner
# no_banner="1"

				

Vous devez changer:

  • suffix="dc=.........,dc=......"

Utilisation des scripts

smbpasswd


On commence tout d'abord par stopper samba

/etc/init.d/samba stop

Puis il faut créer le fichier /var/lib/samba/secrets.tdb: On fournit à samba le mot de passe du compte administrateur qui effectue les requétes dans l'annuaire LDAP.

smbpasswd -w votremotdepasseroot


On relance ensuite le serveur samba:

/etc/init.d/samba start

Le démarrage du service doit etre quasi immédia, s'il dure plusiers secondes c'est qu'il y a une erreur

net getlocalsid

Vérifiez que tout c'est bien passé:

shuttle:~# net getlocalsid
SID for domain DOMAINE is: S-1-5-21-344654654654654654654654

La commande net getlocalsid ne doit retourner aucune erreur ni warning !

smbldap-populate

On va pouvoir créer l'archictecture de notre base LDAP:

smbldap-populate

Vous devez saisir deux fois votre mot de passe root si tout se passe bien !

Cette commande créée:

  • Les différentes OU (Organisation Unit) qui contiendront vos Machines, Users et Groups

  • Deux UID : root et nobody qui seront dans OU = Users

  • Plusieurs CN (Common Name): Les groupes qui seront dans OU = Groups

Copiez quelque part la derniére ligne

sambaDomainName=domaine,dc=domaine,dc=local

domaine est le nom workroup que vous avez renseigné dans smb.conf, cette ligne servira à configurer l'interface LAM (si vous le souhaitez), copiez lé quelque part.


Faites un test, ajoutez un utilisateur:

smbldap-useradd -a -c "Pierre Dupont" -m -P pdupont 
  • -a : désigne un utilisateur

  • -c : Information Gecos : Le nom entier

  • -m : Créé le répertoire personnel

  • -P : création du mot de passe

Lisez l'aide:

smbldap-useradd -?


Pour étre certain que l'utilisateur root a été correctement créé:

smbldap-usershow root

Cette commande vous retourne toutes les informations de l'utilisateur root de votre annuaire.

Authentification Unix

Un systéme Linux peut aller chercher dans différents endroits pour authentifier des utilisateurs. Par défaut il s'agit du fichier /etc/passwd Cependant on peut lui en ajouter d'autres sources de données. Or sur la machine elle méme le but n'étant pas d'authentifier les utilisateurs locaux de la machine par LDAP, cette partie n'est pas nécessaire. Si toute fois vous désirez l'implémenter veuillez vous reporter à : http://damstux.free.fr/wiki/index.php?title=PDC_Samba_LDAP#Authentification_Unix : Authentification Unix

Un systéme Linux peut aller chercher dans différents endroits pour authentifier des utilisateurs. Par défaut il s'agit du fichier /etc/passwd Cependant on peut lui en ajouter d'autres sources de données. On va donc lui indiquer notre annuaire LDAP

NSS

On ajoute un module à NSS qui lui permet d'interroger notre annuaire LDAP

aptitude install libnss-ldap

Debconf nous pose plusieurs questions:

  • Adresse du serveur LDAP : 127.0.0.1

  • Nom distinctif (DN) de la base de recherche: dc=.......,dc=.....

  • Version de LDAP: 3

  • La base de données demande-t-elle une identification ? NON

  • Le fichier de configuration doit-il étre lisible et modifiable uniquement par son propriétaire ? NON

Expliquation: sinon seul root pourra interroger l'annuaire. De toute façon, il n'y a pas de mot de passe dans ce fichier

Vérifiez que dans /etc/libnss-ldap.conf vos paramétres sont corrects.

Vous devez avoir:

host 127.0.0.1

base dc=domaine,dc=local

uri ldap://127.0.0.1/

Une nouvelle version de libnss-ldap exige une modification de son fichier de configuration: /etc/libnss-ldap.conf. Il faudra peut-étre aussi modifier une ligne rootbinddn cn=admin,dc=domaine,dc=local en plus de base et uri

Par défaut, si la connexion au serveur LDAP échoue, celle-ci est automatiquement relancée, le temps écoulé avant une nouvelle connexion est augmenté à chaque fois, si bien que votre poste client n'arrive pas à booter (obligation de booter sur un live CD et de monter la partition systéme pour revenir à une configuration correcte).

Il faut donc modifier le mode de connexion: Par défaut il est à HARD, on décommente la ligne #bind_policy hard et l'on remplace hard par soft Ainsi, en cas d'erreur, le poste démarre quand méme.

Vous devez donc avoir dans /etc/libnss-ldap.conf

# Reconnect policy: 
#  hard_open: reconnect to DSA with exponential backoff if 
#             opening connection failed
#  hard_init: reconnect to DSA with exponential backoff if
#             initializing connection failed
#  hard:      alias for hard_open
#  soft:      return immediately on server failure
bind_policy soft

Il est possible d'affiner considérablement la configuration, mais seule la directive base est à changer pour une configuration classique

PAM

De même, on installe le module LDAP pour PAM:

aptitude install libpam-ldap

  • Hôte du serveur LDAP : 127.0.0.1

  • Nom distinctif (« distinguished name») de la base de recherche : dc=........,dc=......

  • Version de LDAP: 3

  • Faut-il créer une base de données locale pour l'administrateur ? NON

  • La base de données requiert-elle une connexion authentifiée ? NON

  • Méthode de chiffrement pour les changements de mots de passe : crypt


Vérifiez que le fichier /etc/pam_ldap.conf contient au moins:

host 127.0.0.1

base dc=domaine,dc=local

uri ldap://127.0.0.1/

Authentification grâce à LDAP

Il suffit d'indiquer maintenant au système d'aller interroger notre annuaire LDAP

nano /etc/nsswitch.conf

Il vous suffit de rajouter après compat la directive ldap pour

  • passwd 
  • group 
  • shadow 
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap


hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis


ATTENTION !! En manipulant ce fichier si vous faites une erreur, vous ne pourrez plus vous connecter avec aucun de vos utilisateurs (même root) !!

On teste

Vous avez créé un utilisateur toto dans votre annuaire LDAP:

La commande:

getent passwd

Doit vous retourner quelque chose comme:

pdupont:x:1507:513:Pierre Dupont:/home/pdupont:/bin/bash

Intégration d'un client Windows

Une fois que vous avez terminé toute l'installation et la configuration de votre serveur Linux, penser à relancer les deux services:

/etc/init.d/samba stop  
/etc/init.d/slapd restart 
/etc/init.d/samba start


Enfin, vous pouvez tester sous Windows.

  • Click droit sur Poste de Travail, Propriétés.

  • Onglet Nom de l'ordinateur

  • Click sur le bouton Modifier...

  • Membre de: Chosissez Domaine : Saisissez le nom de la directive workgroup que vous avez renseigné dans smb.conf

  • OK

  • On vous demande un login: root et votre mot de passe : celui de root

  • Si tout va bien le message " Bienvenue dans le domaine ...." s'affiche.

  • Redémarrez la machine

  • Choisissez le domaine que vous avez créé et connectez vous avec root ou toto


Votre profile Windows est stocké sur le serveur Linux dans /home/export/profile/ chaque utilisateur possède son répertoire. Il contient les éléments de votre bureau, le répertoire "Mes Documents", les fichiers de configuration des applications (Firefox, Thunderbird....).

Si votre utilisateur dispose d'un répertoire personnel sur le serveur Linux (/home/utilisateur) il est automatiquement créé dans le Poste de Travail. C'est bien pratique si vous utilisez un dual boot sur les machines clientes.

Intégration d'un client Linux

Si vous avez des clients Linux avec les quels vous ne désirez pas créer de compte en local suivez la méthode dans 5 Authentification Unix , puis http://www.e-glop.net/main/GDM-LDAP-Ubuntu.

Car GDM ou KDM utilisant /etc/pam.d/ pour chercher les logins il advient qu'à la connexion de session :

  • Login Failed !

La solution se situe dans la modification des pam.d :

Configuration

PAM (authentification)

Pour faire fonctionner GDM/KDM, voici comment paramétrer l'authentification PAM :

$ cat /etc/pam.d/common-account
account sufficient      pam_ldap.so
account required        pam_unix.so

$ cat /etc/pam.d/common-auth
auth    sufficient      pam_ldap.so
auth    required        pam_unix.so     use_first_pass nullok_secure

$ cat /etc/pam.d/common-password
password   sufficient pam_ldap.so       md5
password   required   pam_unix.so       nullok obscure min=4 max=8 md5

$ cat /etc/pam.d/common-session
session sufficient      pam_ldap.so
session required        pam_unix.so

!! Attention !!

Il se peut que vous ayez des problèmes de droit avec certains composants comme kmix accédant aux périphériques sons.
Une solution est d'importer/créer les groupes Unix dans l'annuaire.

Netlogon

Vous pouvez créer des scripts qui s'executeront à chaque ouverture de Windows pour créer d'autres partages dans le poste de travail par exemple:

net use S: \\serveursamba\partage

Ou en encore mettre votre machine à la même heure que celle du serveur Linux:

net time \\serveursamba /SET /YES


Ces scripts sont à placer dans /home/netlogon. Attention, il faut que ce fichier soit au format DOS c'est-à-dire avec les caractères retour à la ligne DOS ! Créez les scripts sous windows ou utilisez le paquet "mtools" qui permet la conversion au format DOS.

On peut utiliser les variables %u (utilisateur) et %g (groupe)



Netlogon en action

Allons-y !



Interfaces d'administration

smbldap-tools

Le paquet smbldap-tools contient plusieurs scripts pour gérer les utilisateurs, groupes et machines dans l'annuaire LDAP.

smbldap-groupadd   smbldap-groupshow  smbldap-useradd    smbldap-usermod
smbldap-groupdel   smbldap-passwd     smbldap-userdel    smbldap-usershow
smbldap-groupmod   smbldap-populate   smbldap-userinfo

Vous pouvez afficher toutes options possibles en faisant:

smbldap-... -?


Vous pouvez spécifier des options dans /etc/smbldap-tools/smbldap.conf



PHPLDAPADMIN

C'est une sorte déquivalent de PHPMYADMIN (Pour gérer son serveur Mysql). PHPLDAPADMIN vous permet de manipuler et de visualiser facilement les éléments de votre annauire LDAP.

Installation

aptitude install phpldapadmin

On ouvre un navigateur internet:

http://adresseipduserveur/phpldapadmin

Login DN

cn=admin,dc=domaine,dc=local

Password

votre mot de passe