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

All’interno di /etc/sysconfig/selinux, imposta:

SELINUX=disabled

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

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

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

Imposta il tuo nome host dalla riga di comando:

hostname dc1.DOMAINNAME

Genera una password master e imposta ldap

slappasswd

Nota l’output di slappasswd, lo inserirai in slapd.conf tra un minuto.

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

Inserisci 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 sub

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

Inserisci 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/*  
slapcat

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

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.