=== Aún en revisión ===
Software: Fedora 11 Leonidas, openldap 2.4.15-3
Nombre del Sistema: mypdc.mydom.mynet
INSTALAR Y CONFIGURAR OPENLDAP
1.- Instalar los paquetes requeridos
openldap.i586 : LDAP support libraries
openldap-clients.i586 : LDAP client utilities
openldap-devel.i586 : LDAP development libraries and header files
openldap-servers.i586 : LDAP server
openldap-servers-sql.i586 : SQL support module for OpenLDAP server
nss_ldap.i586 : NSS library and PAM module for LDAP
migrationtools.noarch : Migration scripts for LDAP
phpldapadmin.noarch : Web-based tool for managing LDAP servers
smbldap-tools.noarch : User and group administration tools for Samba/OpenLDAP
yum install openldap openldap-clients openldap-devel openldap-servers openldap-servers-sql nss_ldap migrationtools phpldapadmin smbldap-tools
2.- Arrancar el servicio
[root@mypdc ~]# chkconfig --levels 235 ldap on
[root@mypdc ~]# service ldap start
3.- Crear el password para el usuario root de LDAP
[root@mypdc ~]# slappasswd
New password:
Re-enter new password:
{SSHA}BXpSV5tAvjtQ/ZtsbTsS0Q2b4YenI88R
4.- Actualizar el password de root en el archivo de configuración de LDAP
[root@mypdc ~]# vi /etc/openldap/slapd.conf
88 database bdb
89 suffix "dc=mydom,dc=mynet"
90 checkpoint 1024 15
91 rootdn "cn=Manager,dc=mydom,dc=mynet"
92 rootpw {SSHA}BXpSV5tAvjtQ/ZtsbTsS0Q2b4YenI88R
5.- Aplicar los cambios
[root@mypdc ~]# service ldap restart
6.- Crear usuarios de prueba
[root@mypdc ~]# useradd test1
[root@mypdc ~]# passwd test1
Changing password for user test1.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@mypdc ~]# useradd test2
[root@mypdc ~]# passwd test2
Changing password for user test2.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
7.- Migrar los usuarios locales a LDAP
[root@mypdc ~]# grep root /etc/passwd > /etc/openldap/passwd.root
[root@mypdc ~]# grep test1 /etc/passwd > /etc/openldap/passwd.test1
[root@mypdc ~]# grep test2 /etc/passwd > /etc/openldap/passwd.test2
8.- Actualizar la configuración en el script de migración
[root@mypdc ~]# vi /usr/share/migrationtools/migrate_common.ph
70 # Default DNS domain
71 $DEFAULT_MAIL_DOMAIN = "mydom.mynet";
72
73 # Default base
74 $DEFAULT_BASE = "dc=mydom,dc=mynet";
9.- Convertir el passwd.file a un archivo de formato intercambiable de datos de LDAP (LDAP data interchange file -ldif)
[root@mypdc ~]# /usr/share/migrationtools/migrate_passwd.pl /etc/openldap/passwd.root /etc/openldap/root.ldif
[root@mypdc ~]# /usr/share/migrationtools/migrate_passwd.pl /etc/openldap/passwd.test1 /etc/openldap/test1.ldif
[root@mypdc ~]# /usr/share/migrationtools/migrate_passwd.pl /etc/openldap/passwd.test2 /etc/openldap/test2.ldif
10.- Actualizar el archivo root.ldif para el administrador del servidor LDAP
[root@mypdc ~]# vi /etc/openldap/root.ldif
1 dn: uid=root,ou=People,dc=mydom,dc=mynet
2 uid: root
3 cn: Manager
4 objectClass: account
============== UTILIZAR SAMBA COMO BACKEND =======================
Importar el esquema de samba al árbol de LDAP
11.- Copiar el esquema de Samba al directorio de LDAP
[root@mypdc ~]# cp /usr/share/doc/samba-3.3.2/LDAP/samba.schema /etc/openldap/schema/
12.- Creamos un archivo con la entrada para la configuracion
[root@mypdc ~]# vi /etc/openldap/schema_convert.conf
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/collective.schema
include /etc/openldap/schema/corba.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/duaconf.schema
include /etc/openldap/schema/dyngroup.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/java.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/ppolicy.schema
include /etc/openldap/schema/samba.schema
13.- Creamos un directorio para la salida
[root@mypdc ~]# mkdir /tmp/ldif_output
14.- Usamos slaptest para convertir los archivos de esquema
[root@mypdc ~]# slaptest -f /etc/openldap/schema_convert.conf -F /tmp/ldif_output
config file testing succeeded
15.- Editar el archivo /tmp/ldif_output/cn=config/cn=schema/cn={12}samba.ldif y cambiar los siguientes atributos
root@mypdc ~]# vi /tmp/ldif_output/cn=config/cn=schema/cn={12}samba.ldif
1 dn: cn=samba,cn=schema,cn=config
2 objectClass: olcSchemaConfig
3 cn: samba
** remover las siguientes líneas del final del archivo
186 structuralObjectClass: olcSchemaConfig
187 entryUUID: 1db6cc9e-0259-426c-a4d1-4a746afc99e2
188 creatorsName: cn=config
189 createTimestamp: 20090626183612Z
190 entryCSN: 20090626183612.991751Z#000000#000#000000
191 modifiersName: cn=config
192 modifyTimestamp: 20090626183612Z
los valores pueden variar, solo hay que asegurarse que se borren las líneas completas
16.- Utilizamos la utileria ldapadd para agregar el nuevo esquema al directorio
root@mypdc ~]# ldapadd -x -D "cn=admin,cn=config" -f /tmp/ldif_output/cn\=config/cn\=schema/cn\=\{12\}samba.ldif
17.- Crear un archivo samba_indexes.ldif con las siguientes lineas
root@mypdc ~]# vi /etc/opeldap/samba_indexes.ldif
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: loginShell eq
olcDbIndex: uid eq,pres,sub
olcDbIndex: memberUid eq,pres,sub
olcDbIndex: uniqueMember eq,pres
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaGroupType eq
olcDbIndex: sambaSIDList eq
olcDbIndex: sambaDomainName eq
olcDbIndex: default sub
18.- Utilizar la utileria ldapmodify para cargar los nuevos indices
root@mypdc ~]# ldapmodify -x -D cn=admin,cn=config -W -f /etc/openldap/samba_indexes.ldif
19.- Si todo salió bien se pueden ver los nuevos indices con ldapsearch
root@mypdc ~]# ldapsearch -xLLL -D cn=admin,cn=config -x -b cn=config -W olcDatabase={1}hdb
20.- Configurar phpldapadmin
root@mypdc ~]# vi /usr/share/phpldapadmin/config/conf.php
167 $ldapservers->SetValue($i,'server','base',array('dc=mydom,dc=mynet'));
21.- Editar nsswitch.conf
[root@mypdc ~]# vi /etc/nsswitch.conf
33 passwd: compat ldap
34 shadow: compat ldap
35 group: compat ldap
************************** SAMBA ******************
22.- Modificar /etc/openldap/slapd.conf para indicarle que soporte el esquema de samba
[root@mypdc ~]# vi /etc/openldap/slapd.conf
6 include /etc/openldap/schema/corba.schema
7 include /etc/openldap/schema/core.schema
8 include /etc/openldap/schema/cosine.schema
9 include /etc/openldap/schema/duaconf.schema
10 include /etc/openldap/schema/dyngroup.schema
11 include /etc/openldap/schema/inetorgperson.schema
12 include /etc/openldap/schema/java.schema
13 include /etc/openldap/schema/misc.schema
14 include /etc/openldap/schema/nis.schema
15 include /etc/openldap/schema/openldap.schema
16 include /etc/openldap/schema/ppolicy.schema
17 include /etc/openldap/schema/collective.schema
18 include /etc/openldap/schema/samba.schema
23.- Agregar los parámetros requeridos
22 allow bind_anon_dn
91 database bdb
92 suffix "dc=mydom,dc=mynet"
93 checkpoint 1024 15
94 rootdn "cn=Manager,dc=mydom,dc=mynet"
95 rootpw {SSHA}qBASkIcIKLWSl/GGKCLGlRRXSp8Mu+Cg
108 # Indices to maintain for this database
109 index objectClass eq,pres
110 index ou,cn,mail,surname,givenname eq,pres,sub
111 index uidNumber,gidNumber,loginShell eq,pres
112 index uid,memberUid eq,pres,sub
113 index nisMapName,nisMapEntry eq,pres,sub
114 index displayName eq,pres,sub
115 index sambaSID eq
116 index sambaPrimaryGroupSID eq
117 index sambaDomainName eq
118 index default sub
24.- Configurar /etc/openldap/ldap.conf
[root@mypdc ~]# vi /etc/openldap/ldap.conf
14 URI ldap://127.0.0.1/
15 BASE dc=mydom,dc=mynet
25.- Arrancar nuevamente ldap
[root@mypdc ~]# service ldap restart
26.- Configurar smb.conf con wizard de SWAT
Si no quieres meterte en lios con el kilométrico conf de samba, utiliza el wizard para configurarlo como Controlador de Dominio y posteriormente personaliza el archivo resultante
27.- Personalizar samba en /etc/samba/smb.conf
[root@mypdc ~]# vi /etc/samba/smb.conf
1 # Samba config file created using SWAT
2 # from UNKNOWN (¬)
3 # Date: 2009/06/29 14:56:49
4
5 [global]
6 workgroup = MYGROUP
7 server string = Samba Server Version %v
8 passdb backend = ldapsam:ldap://localhost
9 log file = /var/log/samba/log.%m
10 max log size = 50
11 cups options = raw
14 # ----- Parametros LDAP -----
15
16 #Quien va a ser el usuario administrador del dominio
17 admin users = Administrator @"Domain Admins"
18 passdb backend = ldapsam:ldap://localhost
19 #Sufijo ldap para todas las entradas siguientes
20 ldap suffix = dc=mydom,dc=mynet
21 # OU de usuarios netbios
22 ldap user suffix = ou=People
23 # OU de Grupos netbios
24 ldap group suffix = ou=Group
25 # Cuentas maquinas netbios
26 ldap machine suffix = ou=Computers
27 # La cuenta administrador openLDAP
28 ldap admin dn = cn=Manager,dc=mydom,dc=mynet
29 # Sincronizacion de cuentas LDAP, NT y LM
30 ldap passwd sync = yes
31 # Agregado de cuentas maquina automáticamente
32 add machine script = /usr/local/sbin/smbldap-useradd.pl -w %u
33
34 # Aqui dejo comentado por si es necesario o a tu criterio usarlo
35 #ldap ssl = start tls
36 add user script = /usr/local/sbin/smbldap-useradd.pl -m "%u"
37 ldap delete dn = Yes
38 delete user script = /usr/local/sbin/smbldap-userdel.pl "%u"
39 add group script = /usr/local/sbin/smbldap-groupadd.pl -p "%g"
40 delete group script = /usr/local/sbin/smbldap-groupdel.pl "%g"
41 add user to group script = /usr/local/sbin/smbldap-groupmod.pl -m "%u" "%g"
42 delete user from group script = /usr/local/sbin/smbldap-groupmod.pl -x "%u" "%g"
43 set primary group script = /usr/local/sbin/smbldap-usermod.pl -g "%g" "%u"
44 #ldap replication sleep = 1000 # Tiempo de replicacion entre servidores
45
46 # ----- FIN DE PARAMETROS LDAP
49 security = user
50
51 encrypt passwords = yes
52 os level = 65
53 domain master = yes
54 preferred master = yes
55 domain logons = yes
28.- Le decimos a samba que el usuario administrador de openldap para que pueda conectarse a su directorio
[root@mypdc ~]# smbpasswd -w password
29.- Probamos nuestra configuración y reiniciamos samba
[root@mypdc ~]# testparm
[root@mypdc ~]# service smb restart
30.- Averiguamos el SID de nuestro servidor de samba
[root@mypdc ~]# net getlocalsid
SID for domain MYGROUP is: S-1-5-21-XXXXXXXXXX-XXXXXXXXXX
* Anotalo o copialo
31.- Configuramos el script de configuración de smbldap
[root@mypdc ~]# vim /etc/smbldap-tools/smbldap.conf
35 # Put your own SID. To obtain this number do: "net getlocalsid".
36 # If not defined, parameter is taking from "net getlocalsid" return
37 SID="S-1-5-21-757083707-1314198870-71231094"
58 # Slave LDAP server
59 # Ex: slaveLDAP=127.0.0.1
60 # If not defined, parameter is set to "127.0.0.1"
61 slaveLDAP="127.0.0.1"
62
63 # Slave LDAP port
64 # If not defined, parameter is set to "389"
65 slavePort="389"
66
67 # Master LDAP server: needed for write operations
68 # Ex: masterLDAP=127.0.0.1
69 # If not defined, parameter is set to "127.0.0.1"
70 masterLDAP="127.0.0.1"
71
72 # Master LDAP port
73 # If not defined, parameter is set to "389"
74 masterPort="389"
75
76 # Use TLS for LDAP
77 # If set to 1, this option will use start_tls for connection
78 # (you should also used the port 389)
79 # If not defined, parameter is set to "0"
80 #ldapTLS="1"
Esta última línea (80) debe comentarse o ponerse en 0
104 # LDAP Suffix
105 # Ex: suffix=dc=IDEALX,dc=ORG
106 suffix="dc=mydom,dc=mynet"
108 # Where are stored Users
109 # Ex: usersdn="ou=Users,dc=IDEALX,dc=ORG"
110 # Warning: if 'suffix' is not set here, you must set the full dn for usersdn
111
112
113 # linea original usersdn="ou=People,${suffix}"
114
115 usersou=q(People)
116 usersdn="ou=People,${suffix}
119 # Where are stored Computers
120 # Ex: computersdn="ou=Computers,dc=IDEALX,dc=ORG"
121 # Warning: if 'suffix' is not set here, you must set the full dn for computersdn
122 # linea original computersdn="ou=Computers,${suffix}"
123
124 computersou=q(Computers)
125 computersdn="ou=Computers,${suffix}"
128 # Where are stored Groups
129 # Ex: groupsdn="ou=Groups,dc=IDEALX,dc=ORG"
130 # Warning: if 'suffix' is not set here, you must set the full dn for groupsdn
131 # linea original groupsdn="ou=Group,${suffix}"
132
133 groupsou=q(Group)
134 groupsdn="ou=Group,${suffix}"
137 binddn="cn=Administrator,${suffix}"
138 bindpasswd="master"
En esta línea incluir el passwd del administrador de ldap sin cifrar
183 # Default User (POSIX and Samba) GID
184 defaultUserGid="513"
185
186 # Default Computer (Samba) GID
187 defaultComputerGid="515"
32.- Llenar el directorio
[root@mypdc ~]# smbldap-populate
Me gusta esto:
Me gusta Cargando...
Hola. He seguido tu tutorial y no logro iniciar session phpldapadmin como manager, podrias ayudarme. gracias.
Hola José, disculpa la tardanza en la respuesta pero tuve unas semanas bastantes complicadas y tenía bastante descuidado mi blog. El post que hice sobre Samba lo dejé en revisión porque era un proyecto que traía trabajando y de repente se enfrió (por parte del cliente) y ya no lo concluí.
El detalle de la validación de phpldapadmin no lo traigo aqui fresco pero debes modificar el archivo de configuración de phpldapadmin con el usuario Manager o al que le des acceso a la herramienta.
Espero que aún te sirva y si ya lo resolviste compartenoslo por favor
Saludos
Cuando se corren las herramientas de ldap, se hace necesaria una contraseña que no tiene nada que ver con la de Manager, que contraseña debería ir cuando se usan los comandos ldapadd, ldapmodify o la búsqueda?
hola he seguido el manual al pie de la letra pero no he podido configurar samba como controlador de dominio primario con autenticacion por OPENLDAP, si tienes un manual mas completo en PDF me lo puedes enviar a este email jnoriega.lbp@gmail.com
Gracias
Buenas…. me puedes enviar el manual pdf de lo mismo a mi correo forgiveness911@gmail.com. Gracias.
Hola,
No tengo un manual propiamente de SAmba en pdf, el post que tengo en el blog es un borrador acerca de los pasos que seguí para levantar un controlador PDC en Fedora y es una compilación de varias fuentes. Lamentablemente no he tenido tiempo de seguir la investigación y se quedó solamente como borrador
En el sitiode Samba se encuentran excelentes artículos y libros completos de referencia, lamento no haber podido ser de mas utilidad
Saludos