Samba y OpenLDAP

Tu ya tienes trabajando el directorio OpenLDAP y el servidor configurado para usarlo para autenticación. Se necesitan tres paquetes para integrar Samba con LDAP: samba, samba-doc y smbldap-tools.

sudo apt-get install samba samba-doc smbldap-tools

Configuracion OpenLDAP

Los objetos de usuario en el directorio necesitaran atributos adicionales.
Los atributos samba estan definidos en el archivo samba.schema, el cual forma parte del paquete samba-doc. Y debe ser descomprimido y copiado a /etc/ldap/schema:

sudo cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/
sudo gzip -d /etc/ldap/schema/samba.schema.gz

El esquema samba necesita ser añadido al arbol cn=config.
Primero crea un archivo de configuracion nombrado shema_convert.conf [añadir aquí como].
Luego crea un directorio temporal para mantener la salida:

mkdir /tmp/ldif_output

Ahora usa slapcat para convertir los archivos de esquema:

slapcat -f schema_convert.conf -F /tmp/ldif_output -n0 -s "cn={12}samba,cn=schema,cn=config"

Ojo, cambia archivo y path por los tuyos propios si son diferentes.
Luego edita el archivo generado /tmp/cn\=samba.ldif cambiando los siguientes atributos:

dn: cn=samba,cn=schema,cn=config
...
cn: samba

[añadir aquí resultado final del archivo]

Finalmente, usando la utilidad ldapadd, añade el nuevo esquema al directorio:

ldapadd -x -D cn=admin,cn=config -W -f /tmp/cn\=samba.ldif

Ahora copia y pega [añadir aquí el código] a un archivo nombrado samba_indexes.ldif

Usando ldapmodify carga los nuevos indices:

ldapmodify -x -D cn=admin,cn=config -W -f samba_indexes.ldif

Si todo fue bien debes ver los nuevos indices usando ldapsearch:

ldapsearch -xLLL -D cn=admin,cn=config -x -b cn=config -W olcDatabase={1}hdb

Luego, configura el paquete smbldap-tools para ajustar a tu entorno. El paquete viene con un script de configuración que preguntará sobre las opciones necesitadas. Para ejecutarlo:

sudo gzip -d /usr/share/doc/smbldap-tools/configure.pl.gz
sudo perl /usr/share/doc/smbldap-tools/configure.pl

El script genera dos archivos /etc/smbldap-tools/smbldap.conf y /etc/smbldap-tools/smbldap_bind.conf, los cuales se pueden editar si hacemos algun error al responder las preguntas del script.

El script smbldap-populate añadirá los usuarios, grupos y objetos LDAP requeridos para Samba. Es una buena idea hacer un backup del archivo LDIF con slapcat antes de ejecutar el script:

sudo slapcat -l backup.ldif

Una vez hecho el backup ejecuta el script:

sudo smbldap-populate

Se puede crear un LDIF conteniendo los nuevos objetos Samba con:

sudo smbldap-populate -e samba.ldif

Esto permite verificar que los cambios son correctos.

Tu directorio LDAP ahora tiene la información de dominio necesaria para autenticar usuarios Samba.

Configuración SAMBA

El archivo principal de configuración es /etc/samba/smb.conf.
Comenta las opciones passbd backend y añade lo que dice la guia.

Reinicia Samba:

sudo smbpasswd -w secret

donde secret es la contraseña de administrador de LDAP.

Si tienes usuarios LDAP y les quieres autenticar usando Samba, ellos necesitaran algunos atributos definidos en el archivo samba.schema, para ello:

sudo smbpasswd -a username

donde username es un usuario actual.

Para añadir nuevos usuarios, grupo y maquinas usa las utilidades del paquete smbldap-tools.
  • Añadir un nuevo usuario LDAP con atributos Samba:
sudo smbldap-useradd -a -P username

El -a añade los atributos Samba y el -P llama a la utilidad smbldap-passwd despues el usuario es creado permitiendote entrar una password para el usuario.
  • Quitar un usuario:
sudo smbldap-userdel username

Tiene la opcion -r para quitar tambien el home del usuario.
  • Añadir grupo:
sudo smbldap-groupadd -a groupname