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/enforce

Innerhalb von /etc/sysconfig/selinux, setzen Sie:

SELINUX=disabled

Installieren 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-tools

Die 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.rpm

Richten 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 dc1

Setzen Sie Ihren Hostnamen in der Befehlszeile:

hostname dc1.DOMAINNAME

Generieren Sie ein Master-Passwort und richten Sie LDAP ein

slappasswd

Notieren 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.dist

Fü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 sub

Beachten 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_CONFIG

Fü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/*  
slapcat

slapcat 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
Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.