Академический Документы
Профессиональный Документы
Культура Документы
avec OpenLDAP
(Redirig depuis Controleur de domaine Samba avec OpenLDAP)
Il y a de a dj quelques annes j'avais cris une doc sur le wiki de fedora-fr.org sur l'installation
d'un systme OpenLDAP + Samba ...
Bon cette doc a pris un bon coup de vieux avec le temps et j'ai mis au point des mthodes bien
plus prcises, mais elle vallait le coup d'tre cite et je mettrais quelques annotations quand
j'aurais refais le tour.
Ecrit Par : Adadov
Ce type de serveur permet de grer l'authentification centralise pour des clients Windows et
Linux.
Sommaire
[masquer]
2 Configuration de samba
3.2.1 Configuration
3.2.2 Utilisation
/etc/openldap/schema/core.schema
include
/etc/openldap/schema/cosine.schema
include
/etc/openldap/schema/inetorgperson.schema
include
/etc/openldap/schema/nis.schema
include
/etc/openldap/schema/samba.schema
On intgre les schmas samba et automount en plus des schmas par dfaut.
# Allow LDAPv2 client connections.
allow bind_v2
pidfile
/var/run/openldap/slapd.pid
argsfile
/var/run/openldap/slapd.args
TLSCACertificateFile
/etc/pki/tls/certs/ca-bundle.crt
TLSCertificateFile
/etc/pki/tls/certs/slapd.pem
TLSCertificateKeyFile /etc/pki/tls/certs/slapd.pem
access to dn.children="ou=Admins,dc=exemple,dc=com" \
attrs=userPassword,shadowLastChange,sambaLMPassword,sambaNTPassword,sambaPw
dLastSet
by anonymous auth
by * none
access to dn.children="ou=Computers,dc=exemple,dc=com" \
attrs=userPassword,shadowLastChange,sambaLMPassword,sambaNTPassword,sambaPw
dLastSet
by anonymous auth
by * none
access to *
by self write
by * read
On met en place des restrictions d'accs sur certains attributs de manire ce que seuls les
administrateurs LDAP et le titulaire de la fiche puissent crire les attributs sensibles, et on bloque
l'accs aux autres utilisateurs sur ces champs. L'accs toutes les autres donnes de l'annuaire
peut donc se faire de manire anonyme.(On peut scuriser a en venant forcer l'authentification
des utilisateurs pour lire il suffit pour cela de remplacer :
by * read
par
by users read
by anonymous auth
#######################################################################
# ldbm and/or bdb database definitions
#######################################################################
database
bdb
suffix "dc=exemple,dc=com"
rootdn "cn=Manager,dc=exemple,dc=com"
rootpw secret
rootdn et rootpw sont les informations de connexion du superutilisateur LDAP, rootpw peut (et
doit) tre chiffr dans le fichier, pour ce faire utiliser le programme slappasswd qui vous
demandera le mot de passe et vous l'affichera dans le shell chiffr en SSHA il vous suffira ensuite
de venir le coller comme valeur pour rootpw
/var/lib/ldap
eq,pres
index ou,cn,mail,surname,givenname
eq,pres,sub
index uidNumber,gidNumber,loginShell
eq,pres
index uid,memberUid
eq,pres,sub
Il faut ensuite venir crer la racine de l'annuaire, a peut tre fait simplement l'aide de la
commande smbldap-populate contenue dans les smbldap-tools. Il est aussi possible de le faire
la main avec un fichier ldif de ce type :
dn: dc=exemple,dc=com
objectclass: top
objectclass: dcObject
objectclass: organization
o: exemple
dc: exemple
description: Racine de l'annuaire
Configuration de samba
La configuration de Samba se fait dans le fichier <path>/etc/samba/smb.conf</path>
[global]
workgroup = EXEMPLE
netbios name = SRV
hosts allow = 192.168. 127.0.0
log file = /var/log/samba/access.log
log level = 1
max log size = 10
security = user
encrypt passwords = true
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
dns proxy = no
domain logons = Yes
domain master = Yes
preferred master = Yes
os level = 66
;option LDAP
passdb backend = ldapsam:ldap://127.0.0.1
ldap suffix = dc=exemple,dc=com
ldap machine suffix = ou=Machines
ldap user suffix = ou=Users
ldap group suffix = ou=Group
ldap admin dn = "cn=Manager,dc=exemple,dc=com"
ldap passwd sync = Yes
enable privileges = Yes
logon path = \\%L\profiles\%U
# Table d'encodage des caractres (je fixe sur celui-l pour avoir le mme
que sous windows)
Unix Charset = ISO8859-15
#SMBLDAP-TOOLS
add user script = /usr/sbin/smbldap-useradd -m "%u"
add machine script = /usr/sbin/smbldap-useradd -w "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
delete user script = /usr/sbin/smbldap-userdel "%u"
delete group script = /usr/sbin/smbldap-groupdel "%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
passwd program = /usr/sbin/smbldap-passwd -u %u
[profiles]
path = /srv/profiles
browseable = no
guest ok = yes
Je ne vais pas dtailler toutes les lignes de la configuration de Samba ce serait bien trop long, je
vais donc seulement donner l'explication des lignes spcifiques notre projet :
domain logons = Yes
domain master = Yes
;option LDAP
passdb backend = ldapsam:ldap://127.0.0.1
Adresse du serveur LDAP, on peut facilement en mettre plusieurs sur cette ligne pour faire une
tolrance de panne
ldap suffix = dc=exemple,dc=com
ldap machine suffix = ou=Machines
ldap user suffix = ou=Users
ldap group suffix = ou=Group
Ce sont les chemins de recherche dans la base LDAP pour les diffrents lments.
ldap admin dn = "cn=Manager,dc=exemple,dc=com"
Le DN du Manager, l'utilisateur qui aura les pleins pouvoirs sur la base LDAP
ldap passwd sync = Yes
ldap passwd sync fait en sorte que les mots de passe Windows et Linux soient toujours
identiques.
logon path = \\%L\profiles\%U
Chemin pour les profiles itinrants Windows %L est le LogonServer et %U le nom de l'utilisateur.
Il vous faudra ensuite venir donner Samba le mot de passe du manager de l'annuaire afin qu'il
puisse accder librement aux donnes, ceci se fait l'aide de la commande :
smbpasswd -W
Pour le userPassword vous pouvez le rentrer en clair ou crypt avec les protocoles CRYPT,
SSHA ou MD5.
Un fois que vous avez entr ces quelques lignes dans un fichier quelquechose.ldif il ne vous
reste plus qu' introduire ces donnes dans l'annuaire, pour cela nous allons utiliser la
commande :
ldapadd -x -D cn=Manager,dc=exemple,dc=com -W -f quelquechose.ldif
L'utilitaire devrait vous demander un mot de passe entrez celui que vous avez mis comme rootpw
dans votre fichier slapd.conf (ben oui on a mis le rootdn dans la commande).
Et voil vous venez de rajouter un utilisateur dans votre annuaire vous devriez pouvoir faire su
user1 maintenant sur n'importe quel client bien configur.
Les smbldap-tools
Ce sont de petits utilitaires qui permettent une gestion simplifie des donnes de l'annuaire.
Ils peuvent tre utiliss pour grer aussi bien les comptes Windows que les comptes Linux.
Configuration
Le fichier smbldap_bind.conf contient les informations de connexion qu'utiliseront les smbldaptools donc de toute vidence il faut mettre ici un compte utilisateur qui a le droit de crer des
entres diverses dans la base LDAP, pour le moment nous mettrons le Manager, celui qui a tous
les droits.
<path>/etc/smbldap/smbldap_bind.conf</path> :
slaveDN="cn=Manager,dc=exemple,dc=com"
slavePw="secret"
masterDN="cn=Manager,dc=exemple,dc=com"
masterPw="secret"
Le fichier smbldap.conf, contient toute la configuration des tools proprement parler, spar en
trois grandes parties : La configuration du domaine et l'accs au LDAP :
# Le nom du domaine, s'il est non dfini la valeur sera celle de samba
sambaDomain="EXEMPLE"
# Adresse du serveur LDAP esclave
slaveLDAP="127.0.0.1"
# Adresse du serveur LDAP maitre
masterLDAP="127.0.0.1"
# Ne pas utiliser TLS pour scuriser la connexion avec LDAP
ldapTLS="0"
# Suffixe LDAP (la racine de votre base LDAP)
# Ex: suffix=dc=IDEALX,dc=ORG
suffix="dc=exemple,dc=com"
# OU contenant les utilisateurs
usersdn="ou=Users,${suffix}"
# OU contenant les comptes ordinateurs (clients windows)
computersdn="ou=Computers,${suffix}"
# OU contenant les groupes
groupsdn="ou=Group,${suffix}"
Utilisation
smbldap-useradd : le premier utilitaire et surement un des plus utilis qui permet de venir ajouter
des utilisateurs simplement dans la base LDAP avec les attributs POSIX et/ou SAMBA.
Cet utilitaire permet de mettre en place de nouveaux utilisateurs avec le parametrage de tous les
attributs utiles de manire assez intuitive car la plupart des options de la ligne de commande sont
similaires celles de smbpasswd ou passwd.
Usage: /usr/sbin/smbldap-useradd [-awmugdsckABCDEFGHMNPST?] username
-o
-a
-b
-w
-i
-u
uid
-g
gid
-G
-n
-d
home
-s
shell
-c
commentaires
-m
-k
-t
-P
-A
-B
-C
sambaHomePath
-D
sambaHomeDrive
-E
-F
-H
-N
surnom
-S
nom de famille
-M
-T
-?
-u
-R
gecos
-d
home directory
-r
-u
uid
-o
-g
gid
-G
-s
shell
-N
canonical name
-S
surname
-P
-e
-A
-B
-C
-D
-E
-F
SRV\profiles\foo')
-H
-I
-J
-M
-T
smbldap-group* : on retrouve les mmes commandes que pour les utilisateurs mais qui eux
agissent comme leur nom l'indique sur les groupes.
smbldap-populate : cette commande n'est utilise qu'une seule fois normalement au moment o
vous venez de finir la configuration de votre serveur LDAP pour crer la base le l'architecture.
Une fois que le serveur LDAP et les smbldap-tools sont configurs excutez cette commande
pour que les OU et la base de l'annuaire soient crs automatiquement en fonction des
paramtres dfinis dans la configuration des smbldap-tools.
Configuration PAM
La configuration de PAM se fait sous Fedora ,pour les options appliquer sur tout le systme,
dans le fichier <path>/etc/pam.d/system-auth</path> :
auth
sufficient
pam_ldap.so use_first_pass
account
password
sufficient
pam_ldap.so use_authtok
session
optional
pam_ldap.so
Vous pouvez constater que l'on retrouve le module pam_ldap.so dans les 4 sections.
Client LDAP
Il est prfrable de modifier ce fichier la main pour vraiment savoir ce que l'on met dedans de
plus certaines distributions intgrent des outils pour faciliter la configuration de ces fichiers mais
pas toutes.
Voil un fichier /etc/ldap.conf en exemple :
host ldap1.example.com
base dc=example,dc=com
ldap_version 3
port 389
scope one
pam_filter objectclass=posixaccount
pam_login_attribute uid
pam_member_attribute gid
pam_password crypt
nss_base_passwd ou=Users,dc=example,dc=com
nss_base_shadow ou=Users,dc=example,dc=com
nss_base_group ou=Group,dc=example,dc=com
bind_policy soft
Dans ce fichier il faudra modifier la ligne scope one par scope sub si l'on utilise des sous-OU.
Mais il vous faudra aussi modifier le fichier <path>/etc/openldap/ldap.conf</path> pour que tous
les utilitaires fonctionnent
Voil un fichier <path>/etc/openldap/ldap.conf</path> en exemple :
BASE dc=example,dc=com
URI ldap://ldap1.example.com/
Configuration NSS
La configuration de NSS est vraiment simple comprendre et arranger comme on le souhaite,
il suffit de chercher dans le fichier <path>/etc/nsswitch.conf</path> les lignes pour les bases de
donnes que l'on souhaite voir utiliser LDAP et de venir rajouter la fin de la ligne ldap tout
simplement. Ce qui nous donnera dans le cas de l'authentification des utilisateurs les lignes
suivantes :
passwd:
files ldap
shadow:
files ldap
group:
files ldap
L'attribut files en dbut de ligne spcifie qu'il doit d'abord chercher dans les fichiers en local et
venir complter ses informations avec LDAP. Nous pouvons aussi voir les autres lignes et ajouter
LDAP certaines suivant les informations que nous voulons dans notre annuaire.
Pour viter les requtes trop nombreuses
Pour viter les requtes trop nombreuses sur le serveur LDAP vous pouvez activer le service nscd
sur vos clients linux qui mettra en cache les rsultats de requtes et viter ainsi de surcharger le
serveur LDAP.
Le nom du compte
Vous pouvez crire le nom du compte avec ou sans le $ la fin mais je vous conseille de prendre
l'habitude de le mettre afin de bien garder en tte que tout ce qui finit par $ est un ordinateur
Windows. Si vous ne le mettez pas smbldap-useradd le fera pour vous.
Panneau de configuration
Systme
Modifier
Une fois dans cette petite bote de dialogue tout est relativement facile, en haut vous trouverez
une case contenant le nom actuel de l'ordinateur et en bas deux cases avec un bouton radio pour
activer l'une ou l'autre. Il faut activer la case Domaine et dedans vous viendrez saisir le nom
que vous avec donn votre domaine dans la configuration de Samba ( ici EXEMPLE ).
Windows vous demandera alors de saisir des informations d'identification veillez bien saisir un
nom d'utilisateur et un mot de passe ayant les droits administrateurs sur le domaine.
Une fois que Windows vous aura confirm l'entre dans le domaine il vous restera seulement
redmarrer, une fois arriv sur la boite d'ouverture de session Windows vous pourrez constater la
prsence d'une liste de choix en bas, slectionnez le nom du domaine et entrez les informations
d'identification d'un utilisateur du domaine.
Vous voil maintenant avec une station qui peux utiliser les diffrents comptes utilisateurs de
votre base LDAP.
loginShell: /bin/bash
N'oubliez pas de changer le mot de passe avant l'insertion dans l'annuaire. Cela ne fonctionne
bien videmment que s'il n'a pas t spcifi d'uid minimal dfinissable par LDAP. Sinon, un
reboot en single-user voire un CD de secours s'impose...
Dans ces cas-l, toujours conserver un terminal root dans un coin pour pouvoir modifier la
configuration entre deux tests qui font chouer un su - root ou un ssh root@localhost .
Documentation que vous pourrez retrouver l : Configuration d'un serveur d'authentification
Openldap Samba
Catgories :
SysAdmin
LDAP
Menu de navigation
Se connecter
Page
Discussion
Lire
Voir le texte source
Historique
Lire
Accueil
Catgories serveur
Networking
SysAdmin
Gestion
Catgories workstation
Linux
OSX
Windows
Autres catgories
Multimdia
Dveloppement
Rdaction en cours
Pages lies
Pages spciales
Modifications rcentes
Imprimer / exporter
Crer un livre
Version imprimable
Le contenu est disponible sous licence Creative Commons Attribution sauf mention
contraire.
Politique de confidentialit
Avertissements