Instalar paquetes

sudo apt-get install samba samba-doc winbind

sudo apt-get install libnss-ldap
# poner ldapuri: ldap://ldap.mydomain/
# poner searchbase: o=myorganization
# use ldap version 3
# Make local root Database admin: Yes
# Does ldap database require login: Yes
# LDAP account for root: cn=admin,cn=config
# LDAP root account password: *****
# Unprivileged database user: uid=samba,ou=daemons,o=myorganization
# Password for database login account:*****

sudo apt-get install nscd nss_updatedb

sudo apt-get install smbldap-tools

Reconstruir el .deb de winbind (recompilar samba)

¡¡¡¡AAARRRGHH!!!!

La versión actual de samba en ubuntu jaunty (3.3.2-1ubuntu3.1) no tiene el módulo idmap_ldap que necesitamos para poder administrar los uid/gid desde samba1, así que tenemos que /RecompilarSamba y reinstalar el winbind. :-(

Configurar autenticación ldap en linux

sudo pam-auth-update

Poner en /etc/auth-client-config/profile.d/ldap-auth-config lo siguiente:

[lac_ldap]
nss_passwd=passwd: files ldap [NOTFOUND=return] db
nss_group=group: files ldap [NOTFOUND=return] db
nss_shadow=shadow: files ldap
nss_netgroup=netgroup: nis
pam_auth=auth sufficient pam_ldap.so
        auth required pam_unix.so nullok_secure use_first_pass
pam_account=account sufficient pam_ldap.so
        account required pam_unix.so
pam_password=password sufficient pam_ldap.so
        password required pam_unix.so nullok obscure min=4 max=8 md5
pam_session=session required pam_unix.so
        session required pam_mkhomedir.so skel=/etc/skel/
        session optional pam_ldap.so
        session optional pam_foreground.so

Y ejecutar el comando:

sudo auth-client-config -a -p lac_ldap

Preparando el PDC

Preparar un directorio para usar como NETLOGON

sudo mkdir -pv /var/lib/samba/netlogon

Editar /etc/samba/smb.conf.

Ejemplo para el PDC (Primary Domain Controller): /smb.conf-PDC

Password del administrador LDAP secrets.tdb

La password del administrador ldap (ldap admin dn) y de idmap config:ldap_user_dn se cargan por línea de comandos:

sudo smbpasswd -w <clave_de_ldap_admin_dn>
sudo net idmap secret MIDOMINIO <clave_de_idmap_config_MIDOMINIO:ldap_user_dn>
sudo net idmap secret alloc <clave_de_idmap_alloc_config:ldap_user_dn>

y se guarda en /var/lib/samba/secrets.tdb

Si bien a smbpasswd se le puede dar la opción -W (mayúscula) para que pida la clave por línea de comandos, net idmap secret no tiene esa opción, así que tenemos que poner la clave en la línea de comandos :-(

Crear usuarios y dominios "built-in" de samba

Asegurarse de que winbind esté corriendo pero samba no y hacer un net sam provision:

sudo invoke-rc.d samba stop
sudo invoke-rc.d winbind restart

sudo net sam provision

Ponerle una clave al usuario "Administrator"

sudo invoke-rc.d samba start

sudo smbpasswd Administrator

Obtener el SID del dominio

sudo net getdomainsid
DOMAINSID=`sudo net getdomainsid | grep domain | cut -d ' ' -f 6`
LOCALSID=`sudo net getlocalsid | cut -d ' ' -f 6`

# VERIFICAR que hayan quedado bien los SIDs en las variables de entorno
echo DOMAIN SID: ${DOMAINSID}
echo LOCAL SID: ${LOCALSID}

En el PDC el SID local y el del dominio deben ser iguales.

Preparando un BDC

Un BDC (Backup Domain Controller) debe compartir la base de datos de usuarios con el PDC. La única forma de hacer esto en samba (al menos hasta la versión 3.3) es que la base de datos esté en LDAP. Además, tanto el PDC como todos los BDC deben ser samba (no se pueden poner Windows NT4 Domain Controllers mezclados con samba).

Diferencias en el smb.conf

El armado de un BDC es prácticamente igual al del PDC. Al armar el archivo de configuración de /etc/samba/smb.conf sin embargo, hay que prestar atención a lo siguiente:

secrets.tdb

En el BDC también hay que guardar las claves en secrets.tdb del mismo modo que en el PDC

unirse al dominio (join)

Asegurarse de que el servicio samba está corriendo tanto en el PDC como el nuevo BDC y hacer (suponiendo que el PDC se llama miserver:

sudo net rpc join -S miserver -UAdministrator

Esto debería pedir la clave de Administrator y luego mostrar:

Joined domain MIDOMINIO.

SID del dominio

Ahora (una vez que se unió al dominio) es necesario guardar el SID de dominio (con formato S-1-5-21-XXXXXXXXX-YYYYYYYYYY-ZZZZZZZZZZ) en secrets.tdb:

sudo net rpc getsid

que debería mostrar:

Storing SID S-1-5-21-XXXXXXXXX-YYYYYYYYYY-ZZZZZZZZZZ for Domain MIDOMINO in secrets.tdb

con el mismo número que hay en el PDC.


SambaLdap (última edición 2009-10-14 18:04:49 efectuada por MarianoAbsatz)