Samba LDAP · 2 min read · Dec 11, 2025
CentOS 5.x Samba Domain Controller Con Backend LDAP
CentOS 5.x Samba Domain Controller Con Backend LDAP
Questo ti mostrerà come impostare un Samba Domain Controller con un backend LDAP locale, utilizzando CentOS 5.x (testato su 5.3, ancora in esecuzione con successo su 5.4). Include un’interfaccia web per gestire utenti/gruppi LDAP/ecc.
Gennaio 2010 – Ora con supporto per accessi al dominio Windows 7 (vedi fine della guida).
Disabilita selinux:
Causerebbe solo problemi, non intendo occuparmi di SELinux in questa guida se non per disabilitarlo.
echo 0 >/selinux/enforceAll’interno di /etc/sysconfig/selinux, imposta:
SELINUX=disabledInstalla alcuni strumenti
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-toolsInstallando smbldap-tools in questo modo dovrebbe installare tutti i moduli perl dipendenti, tuttavia la versione disponibile su yum ha alcuni bug, quindi aggiorneremo alla versione più recente successivamente, mantenendo le dipendenze, ma sovrascrivendo il pacchetto smbldap-tools:
rpm -Uvh http://download.gna.org/smbldap-tools/packages/smbldap-tools-0.9.5-1.noarch.rpmImposta il nome host
Per i nostri scopi in questa guida, chiamiamo il nome host del server “dc1” e il dominio “DOMAINNAME”. Nota: Se desideri utilizzare il tuo fqdn per il tuo dominio Samba, ovunque vedi,dc=DOMAINNAME qui sotto, sostituiscilo con,dc=example,dc=com, assumendo che il tuo fqdn sia example.com. Nota anche che “root” sarà il nome utente dell’amministratore samba, se non ti piace, cambialo anche. Le righe correlate sono: cn=root e cn: root
All’interno di /etc/hosts, aggiungi o sostituisci la tua riga (seguendo il formato del file, assumendo che 192.168.0.5 sia l’IP accessibile in rete del tuo server):
192.168.0.5 dc1.DOMAINNAME dc1Imposta il tuo nome host dalla riga di comando:
hostname dc1.DOMAINNAMEGenera una password master e imposta ldap
slappasswdNota l’output di slappasswd, lo inserirai in slapd.conf tra un minuto.
mv -f /etc/openldap/slapd.conf /etc/openldap/slapd.conf.distInserisci il seguente testo in /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 subNota la riga rootpw nel testo sopra, è lì che incolli il tuo output da 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_CONFIGInserisci il seguente testo in /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 dovrebbe produrre qualcosa di molto simile al seguente output:
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"L’output di ldapsearch dovrebbe essere molto simile al seguente:
# 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
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.