Samba LDAP · 2 min read · Dec 11, 2025
Controlador de Dominio Samba CentOS 5.x Con Backend LDAP
Controlador de Dominio Samba CentOS 5.x Con Backend LDAP
Esto te mostrará cómo configurar un Controlador de Dominio Samba con un backend LDAP local, utilizando CentOS 5.x (probado en 5.3, aún funcionando con éxito en 5.4). Incluye una interfaz web para gestionar usuarios/grupos/etc. de LDAP.
Enero 2010 – Ahora con soporte para inicios de sesión de dominio de Windows 7 (ver el final de la guía).
Desactivar selinux:
Solo causará problemas, no voy a jugar con SELinux en esta guía aparte de desactivarlo.
echo 0 >/selinux/enforceDentro de /etc/sysconfig/selinux, establece:
SELINUX=disabledInstalar algunas herramientas
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-toolsInstalar smbldap-tools de esta manera debería instalar todos los módulos perl dependientes, sin embargo, la versión disponible en yum tiene algunos errores, así que actualizaremos a la última versión después, manteniendo las dependencias, pero sobrescribiendo el paquete smbldap-tools:
rpm -Uvh http://download.gna.org/smbldap-tools/packages/smbldap-tools-0.9.5-1.noarch.rpmConfigurar el nombre del host
Para nuestros propósitos en esta guía, estamos llamando al nombre del host del servidor “dc1” y al dominio “DOMAINNAME”. Nota: Si deseas usar tu fqdn para tu dominio Samba, dondequiera que veas,dc=DOMAINNAME a continuación, reemplázalo con,dc=example,dc=com, asumiendo que tu fqdn es example.com. También ten en cuenta que “root” será el nombre de usuario administrador de samba, si no te gusta eso, cámbialo también. Las líneas relacionadas son: cn=root y cn: root
Dentro de /etc/hosts, agrega o reemplaza tu línea (siguiendo el formato del archivo, asumiendo que 192.168.0.5 es la IP accesible en red de tu servidor):
192.168.0.5 dc1.DOMAINNAME dc1Establece tu nombre de host en la línea de comandos:
hostname dc1.DOMAINNAMEGenerar una contraseña maestra y configurar ldap
slappasswdNota la salida de slappasswd, la insertarás en slapd.conf en un minuto.
mv -f /etc/openldap/slapd.conf /etc/openldap/slapd.conf.distInserta el siguiente texto en /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 línea rootpw en el texto anterior, ahí es donde pegas tu salida 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_CONFIGInserta el siguiente texto en /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 debería producir algo muy similar a la siguiente salida:
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 salida de ldapsearch debería ser muy similar a la siguiente:
# 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
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.