Samba LDAP · 2 min read · Dec 11, 2025
CentOS 5.x Samba-Domain-Controller mit LDAP-Backend
CentOS 5.x Samba-Domain-Controller mit LDAP-Backend
Dies zeigt Ihnen, wie Sie einen Samba-Domain-Controller mit einem lokalen LDAP-Backend einrichten, unter Verwendung von CentOS 5.x (getestet auf 5.3, läuft weiterhin erfolgreich auf 5.4). Beinhaltet eine Web-Oberfläche zur Verwaltung von LDAP-Benutzern/Gruppen/etc.
Januar 2010 – Jetzt mit Unterstützung für Windows 7-Domain-Anmeldungen (siehe Ende des Leitfadens).
Deaktivieren Sie SELinux:
Es wird nur Probleme verursachen, ich werde in diesem Leitfaden nicht mit SELinux herumspielen, außer es zu deaktivieren.
echo 0 >/selinux/enforceInnerhalb von /etc/sysconfig/selinux, setzen Sie:
SELINUX=disabledInstallieren Sie einige Werkzeuge
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-toolsDie Installation von smbldap-tools auf diese Weise sollte alle abhängigen Perl-Module installieren, jedoch hat die Version, die auf yum verfügbar ist, einige Fehler, also werden wir danach auf die neueste Version aktualisieren, die Abhängigkeiten beibehalten, aber das smbldap-tools-Paket überschreiben:
rpm -Uvh http://download.gna.org/smbldap-tools/packages/smbldap-tools-0.9.5-1.noarch.rpmRichten Sie den Hostnamen ein
Für unsere Zwecke in diesem Leitfaden nennen wir den Hostnamen des Servers “dc1” und die Domain “DOMAINNAME”. Hinweis: Wenn Sie Ihren fqdn für Ihre Samba-Domain verwenden möchten, ersetzen Sie überall dort, wo Sie dc=DOMAINNAME sehen, es durch dc=example,dc=com, vorausgesetzt, Ihr fqdn ist example.com. Beachten Sie auch, dass “root” der Benutzername des Samba-Administrators sein wird; wenn Ihnen das nicht gefällt, ändern Sie es ebenfalls. Verwandte Zeilen sind: cn=root und cn: root
Innerhalb von /etc/hosts, fügen Sie Ihre Zeile hinzu oder ersetzen Sie sie (unter der Annahme, dass 192.168.0.5 die netzwerkzugängliche IP Ihres Servers ist):
192.168.0.5 dc1.DOMAINNAME dc1Setzen Sie Ihren Hostnamen in der Befehlszeile:
hostname dc1.DOMAINNAMEGenerieren Sie ein Master-Passwort und richten Sie LDAP ein
slappasswdNotieren Sie sich die Ausgabe von slappasswd, Sie werden sie gleich in slapd.conf einfügen.
mv -f /etc/openldap/slapd.conf /etc/openldap/slapd.conf.distFügen Sie den folgenden Text in /etc/openldap/slapd.conf ein:
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 subBeachten Sie die Zeile rootpw im obigen Text, dort fügen Sie Ihre Ausgabe von slappasswd ein.
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_CONFIGFügen Sie den folgenden Text in /etc/openldap/init.ldif ein:
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 sollte etwas sehr Ähnliches wie die folgende Ausgabe produzieren:
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"Die Ausgabe von ldapsearch sollte sehr ähnlich zu folgender sein:
# 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
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.