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/enforceDans /etc/sysconfig/selinux, définissez :
SELINUX=disabledInstaller 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-toolsL’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.rpmConfigurer 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 dc1Définissez votre nom d’hôte en ligne de commande :
hostname dc1.DOMAINNAMEGénérer un mot de passe maître et configurer ldap
slappasswdNotez la sortie de slappasswd, vous l’insérerez dans slapd.conf dans une minute.
mv -f /etc/openldap/slapd.conf /etc/openldap/slapd.conf.distInsé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 subNotez 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_CONFIGInsé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/*
slapcatslapcat 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
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.