Samba LDAP · 3 min read · Dec 11, 2025

Contrôleur de domaine Samba CentOS 5.x avec backend LDAP

Contrôleur de domaine Samba CentOS 5.x avec backend LDAP

Cela vous montrera comment configurer un contrôleur de domaine Samba avec un backend LDAP local, en utilisant CentOS 5.x (testé sur 5.3, toujours en fonctionnement avec succès sur 5.4). Inclut une interface web pour gérer les utilisateurs/groupes/etc. LDAP.

Janvier 2010 – Maintenant avec support pour les connexions de domaine Windows 7 (voir la fin du guide).

Désactiver selinux :

Cela ne causera que des problèmes, je ne vais pas m’occuper de SELinux dans ce guide autre que de le désactiver.

echo 0 >/selinux/enforce

Dans /etc/sysconfig/selinux, définissez :

SELINUX=disabled

Installer quelques outils

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm  
yum update  
yum install openldap-servers nss_ldap samba httpd openssl mod_ssl mysql mysql-server php php-xml php-ldap php-mysql php-pdo php-cli php-common smbldap-tools

L’installation de smbldap-tools de cette manière devrait installer tous les modules perl dépendants, cependant la version disponible sur yum a quelques bugs, donc nous allons mettre à jour vers la dernière version par la suite, en gardant les dépendances, mais en écrasant le paquet smbldap-tools :

rpm -Uvh http://download.gna.org/smbldap-tools/packages/smbldap-tools-0.9.5-1.noarch.rpm

Configurer le nom d’hôte

Pour nos besoins dans ce guide, nous appelons le nom d’hôte du serveur “dc1” et le domaine “DOMAINNAME”. Remarque : Si vous souhaitez utiliser votre fqdn pour votre domaine Samba, partout où vous voyez,dc=DOMAINNAME ci-dessous, remplacez-le par,dc=example,dc=com, en supposant que votre fqdn est example.com. Notez également que “root” sera le nom d’utilisateur administrateur samba, si cela ne vous plaît pas, changez-le également. Les lignes associées sont : cn=root et cn: root

Dans /etc/hosts, ajoutez ou remplacez votre ligne (en suivant le format du fichier, en supposant que 192.168.0.5 est l’IP accessible sur le réseau de votre serveur) :

192.168.0.5 dc1.DOMAINNAME dc1

Définissez votre nom d’hôte en ligne de commande :

hostname dc1.DOMAINNAME

Générer un mot de passe maître et configurer ldap

slappasswd

Notez la sortie de slappasswd, vous l’insérerez dans slapd.conf dans une minute.

mv -f /etc/openldap/slapd.conf /etc/openldap/slapd.conf.dist

Insérez le texte suivant dans /etc/openldap/slapd.conf :

include /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  
  
allow bind_v2  
pidfile /var/run/openldap/slapd.pid  
argsfile /var/run/openldap/slapd.args  
  
database bdb  
suffix "dc=DOMAINNAME"  
rootdn "cn=root,dc=DOMAINNAME"  
rootpw {SSHA}TTzshhAbmZPPb8F2s7sgf9B+IrZt+nUD  
password-hash {SSHA}  
directory /var/lib/ldap  
  
index cn,sn,uid,displayName pres,sub,eq  
index uidNumber,gidNumber eq  
index sambaSID eq  
index sambaPrimaryGroupSID eq  
index sambaDomainName eq  
index objectClass pres,eq  
index default sub

Notez la ligne rootpw dans le texte ci-dessus, c’est là que vous collez votre sortie de slappasswd.

cp /usr/share/doc/samba-3.*/LDAP/samba.schema /etc/openldap/schema/  
cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG  
chown ldap:ldap /var/lib/ldap/DB_CONFIG  
chmod 600 /var/lib/ldap/DB_CONFIG

Insérez le texte suivant dans /etc/openldap/init.ldif :

dn: dc=DOMAINNAME
objectclass: dcObject
objectclass: organization
o: CentOS Directory Server
dc: DOMAINNAME
dn: cn=root,dc=DOMAINNAME
objectclass: organizationalRole
cn: root
slapadd -l /etc/openldap/init.ldif  
chown -R ldap:ldap /var/lib/ldap  
chmod 600 /var/lib/ldap/*  
slapcat

slapcat devrait produire quelque chose de très similaire à la sortie suivante :

dn: dc=DOMAINNAME
objectClass: dcObject
objectClass: organization
o: CentOS Directory Server
dc: DOMAINNAME
structuralObjectClass: organization
entryUUID: 717d1b1e-ce90-102d-88c3-df22563ebfee
creatorsName: cn=root,dc=DOMAINNAME
modifiersName: cn=root,dc=DOMAINNAME
createTimestamp: 20090506134920Z
modifyTimestamp: 20090506134920Z
entryCSN: 20090506134920Z#000000#00#000000
dn: cn=root,dc=DOMAINNAME
objectClass: organizationalRole
cn: root
structuralObjectClass: organizationalRole
entryUUID: 71858556-ce90-102d-88c4-df22563ebfee
creatorsName: cn=root,dc=DOMAINNAME
modifiersName: cn=root,dc=DOMAINNAME
createTimestamp: 20090506134920Z
modifyTimestamp: 20090506134920Z
entryCSN: 20090506134920Z#000001#00#000000
service ldap start  
chkconfig ldap on  
ldapsearch -x -b "dc=DOMAINNAME"

La sortie de ldapsearch devrait être très similaire à ce qui suit :

# extended LDIF
#
# LDAPv3
# base  with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# DOMAINNAME
dn: dc=DOMAINNAME
objectClass: dcObject
objectClass: organization
o: CentOS Directory Server
dc: DOMAINNAME
# root, DOMAINNAME
dn: cn=root,dc=DOMAINNAME
objectClass: organizationalRole
cn: root
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.