Samba ldap en Debian

Uno de los servicios que hay que migrar de un servidor es windows es el poder tener un controlador de dominio y a su vez las carpetas compartidas en donde los usuarios de nuestro dominio puedan compartir archivos en proyectos que se trabajan en grupos, o simplemente tener en el servidor los drivers o ejecutables de software que debe ser utilizado por nuestros usuarios, los que ya han usado samba dirán si esto se hace con Samba aunque el propósito de este post es integrar la autentificación de samba con el Ldap, la tener esta necesidad me di a la tarea de buscar un howto para realizar esta tarea entre todos los links que encontré esta este el cual me parece ser muy explicativo y conciso para dicha implementación en base a este howto daré algunos consideraciones adicionales.

Lo primero a verificar es que nuestro servidor tenga un /etc/hostname valido y que el /etc/hosts tenga bien definido nuestro dominio, por ejemplo file.prueba.com:

En /etc/hosname

hostname = file

En el archivo /etc/hosts deberia estar como minimo así

127.0.0.1 localhost file.prueba.com

Con esta verificación podemos proseguir con la instalación es muy importante ejecutar todo paso a paso sin omitir nada y respetando el orden de los pasos, sin pre ambulo les dejo una copia del howto que encontré.

DEPENDENCIAS NECESARIAS

#apt-get install make gcc gcc++ gengetopt libpopt-dev python-crypto

INSTALACION DE LDAP
#apt-get install slapd ldap-utils

Contraseña del admin : 123456
Confirme la contraseña del admin : 123456

RECONFIGURACION
#dpkg-reconfigure slapd

Desea omitir la configuracion de ldap : no
Introdusca el nombre de dominio DNS : silcom.com
Instrodusca el nombre de su organizacion : silcom.com
Contraseña del administrador : 123456
Verificacion de la contraseña : 123456
Motor de base de datos a utilizar : BDB
Desea que se borre la base de datos cuando purge el paquete slapd :NO
Desea mover la base de datos antigua : SI
Permitir el protocolo LDAPV2 : si

COMPROBAR LA INSTALACION
# ldapsearch -x -b “dc=silcom,dc=com”

RESULTADO CORRECTO

# extended LDIF
#
# LDAPv3
# base <“dc=silcom,dc=com”> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# search result
search: 2
result: 34 Invalid DN syntax
text: invalid DN

# numResponses: 1

INSTALACION DE APACHE
# apt-get install apache

INSTALACION DE SMBLDAP-TOOLS
#apt-get install smbldap-tools

INSTALACION DE PHPLDAPADMIN
#apt-get install phpldapadmin

INSTALACION DE MKNTPWD
$ cd /opt/
$ wget http://www.silcom.com.pe/soft/mkntpwd.tar.gz
$ tar -zxf mkntpwd.tar.gz
$ cd mkntpwd
$ make
$ cp mkntpwd /usr/local/bin
VERIFICAR
#mkntpwd
Usage: mkntpwd [-L lanmgrpwd] [-N ntpasswd]
mkntpwd password
mkntpwd -f [-] [filename]

-L lanmgrpasswd LanManager cleartextpwd <= 14 chars -N ntpasswd NT cleartextpwd <=128 chars (usually <=14) with both options present the encrypted LanManager-Pwd is printed first, followed by a ‘:’ and the encrypted NT-Pwd. The second usage behaves like mkntpwd -L pwd -N pwd The third usage reads the password from STDIN or a File. Printout is the same as second. anton@genua.de INSTALACION DE SAMBA #apt-get install samba samba-doc Nombre del domonimio o grupo de trabajo : silcom Modificar smb.conf para que use la configuración WINS proveniente de DHCP : no CREACION DE CARPETAS PARA SAMBA #mkdir /home/samba/ #mkdir /home/samba/netlogon #mkdir /home/samba/profiles CONFIGURACION DE LDAP # cd /usr/share/doc/samba-doc/examples/LDAP # gunzip samba.schema.gz # cp samba.schema /etc/ldap/schema # vi /etc/ldap/slapd.conf AGREGAR EL SCHEMA DE SAMBA include /etc/ldap/schema/samba.schema REINICIAR LDAP #/etc/init.d/slapd restart CREACION DE ARBOL LDAP INGRESAR : http://tuip/phpldapadmin/ Login DN : cn=admin,dc=silcom,dc=com Passwod : 123456 CREAR CONTENEDORES BASES EN LA RAIZ DEL ARBOL CREAR “NEW ORGANISATIONAL UNIT” LO SIGUIENTE: users (para manejar las cuentas de los usuarios). machines (para manejar las cuentas de máquinas) groups (para manejar las cuentas de grupos) DE LA SIGUIENTE FORMA : samba-ldap1 EL ARBOL QUEDARA ASI : samba-ldap2 CONFIGURACIÓN DE SAMBA # cd /etc/samba # cp smb.conf smb.conf.bkp # vi smb.conf EL ARCHIVO DEBERÁ QUEDAR DE LA SIGUIENTE FORMA http://www.silcom.com.pe/soft/samba-ldap-etch/smb.conf NOTA: - EL ARCHIVO ESTA AJUSTADO PARA LA CONFIGURACIÓN DE ESTE CASO - SI COPIAN EL ARCHIVO DIRECTAMENTE HAY QUE DARLE PERMISOS DE LECTURA AL GRUPO Y A OTHERS - MODIFICACIONES :chmod u-x smb.conf chmod g+r smb.conf chmod o+r smb.conf - AJUSTAR EN EL smb.conf : hosts allow = 127.0.0.1 169.254.0.0/255.255.255.0 a su red PROBAR LA CONFIGURACIÓN #testparm Load smb config files from /etc/samba/smb.conf Processing section “[netlogon]“ Processing section “[homes]“ Processing section “[profiles]“ Loaded services file OK. Server role: ROLE_DOMAIN_PDC Press enter to see a dump of your service definitions SI NOS RESPONDE DE ESTA FORMA ENTONCES TODO ESTA CORRECTO HASTA AHORA LE DAMOS A CONTRASEÑA DE LDAP A SAMBA #smbpasswd -w 123456 REINICIAR SAMBA /etc/init.d/samba restart VOLVER A PHPLDAPADMIN Y VERIFICAR LA ENTRADA sambaDomainName=SILCOM IDENTIFICAR EL SID DEL DOMINIO ejem : S-1-5-21-2942057963-2745721404-394493152 CREACIÓN DE GRUPOS DE DOMINIO DENTRO DE PHPLDAPADMIN EN CONTENEDOR “groups” ELEGIR CREAR “New Samba3 Group Mapping” Y CREAR OS SIGUIENTES GRUPOS: Group Windows Name Gid samba sid sambaadmins Domain Admins 20000 512 sambausers Domain Users 20001 513 sambaguests Domain Guests 20002 514 sambamachines Domain Computers 20003 515 DE LA SIGUIENTE FORMA : samba-ldap3 samba-ldap4 EL ÁRBOL DEBERÍA QUEDAR ASI : samba-ldap5 INTEGRACIÓN DE LA AUTENTIFICACION Y LDAP INSTALACIÓN NSS LDAP #apt-get install libnss-ldap #dpkg-reconfigure libnss-ldap Servidor LDAP : 127.0.0.1 Nombre distintivo (DN) : dc=silcom,dc=com Vercion de LDAP a utilizar : 3 Hace falta un usuario para acceder a la base de datos ldap : No Dar privilegios especiales de ldap para root : SI Desea hacer que la configuracion solo pueda leer o escribir el propietario : SI Cuenta ldap para root : cn=admin,dc=silcom,dc=com contraseña ldap para root : 123456 CONFIGURACION #vi /etc/nsswitch.conf COMENTAR ESTAS LINEAS passwd: compat group: compat shadow: compat AGREGAR ESTAS OTRAS passwd: compat ldap group: compat ldap shadow: compat ldap COMPROBAR # getent group DEBE MOSTRAR sambaadmins:*:20000: sambausers:*:20001: sambaguests:*:20002: sambamachines:*:20003: NOTA : SI NO MUESTRA ESTO ALGO ESTA MAL INSTALACION PAM LDAP # apt-get install libpam-ldap # dpkg-reconfigure libpam-ldap Servidor ldap : 127.0.0.1 Nombre distintivo : dc=silcom,dc=com Vercion de ldap : 3 Make local root Database admin : si Hace falta un usuario para la base de datos LDAP : no Ldap account for root : cn=admin,dc=silcom,dc=com contraseña para la cuenta ldap de root : 123456 Local crypt to use when changing passwords : md5 # vi /etc/pam.d/common-account COMENTAR account required pam_unix.so Y AGREGAR account sufficient pam_ldap.so account required pam_unix.so try_first_pass #vi /etc/pam.d/common-auth COMENTAR auth required pam_unix.so nullok_secure Y AGREGAR auth sufficient pam_ldap.so auth required pam_unix.so nullok_secure use_first_pass # vi /etc/pam.d/common-password COMENTAR password required pam_unix.so nullok obscure min=4 max=8 md5 Y AGREGAR AL FINAL password sufficient pam_ldap.so password required pam_unix.so nullok obscure min=4 max=8 md5 use_first_pass INSTALACION DE NSCD # apt-get install nscd REINICIAR SAMBA /etc/init.d/samba restart AGREGAR USUARIOS En la “UO” users crear un nuevo “Samba3 Account” se creara el usuario “administrator” que tendra permisos para ingresar maquinas al dominio y otro usuario “juan” que pertenecera al grupo adminstradores y otro llamado “sebastian” que solo sera un usuario de dominio , esto se hara de la siguiente forma : Fist Name : Administrator Last Name : Global Comon Name : administrator User ID : administrator UID Number : 0 Samba SID : 512 Password : 123456 Verify Password : 123456 Home Directory : /home/administrator Fist Name : Juan Last Name : User Comon Name : juan User ID : juan UID Number : 10000 Samba SID : 512 Password : zaqwsx Verify Password : zaqwsx Home Directory : /home/juan Fist Name : Sebastian Last Name : User Comon Name : sebastian User ID : sebastian UID Number : 10001 Samba SID : 513 Password : 147852 Verify Password : 147852 Gid number : sambausers Primary Group ID : sambausers Home Directory : /home/sebastian La creación es como esta aquí : samba-ldap6 samba-ldap7 VERIFICAR LA CREACIÓN DE USUARIOS EN LINUX # getent passwd administrator:*:0:20000:administrator:/home/administrator: juan:*:10000:20000:juan:/home/juan: sebastian:*:10001:20001:sebastian:/home/sebastian: CREACION DE HOME # mkdir /home/juan # cp /etc/skel/.* /home/juan/ # chown -R juan /home/juan # chgrp -R sambaadmins /home/juan AUTOMATIZANDO INGRESO DE CUENTAS MAQUINA A LDAP # cd /usr/share/doc/smbldap-tools/examples # cp smbldap.conf.gz smbldap_bind.conf /etc/smbldap-tools # cd /etc/smbldap-tools # gunzip smbldap.conf.gz # chown root:root * # chmod 600 * HAY QUE EDITAR 2 ARCHIVOS #vi /etc/smbldap-tools/smbldap_bind.conf slaveDN=”cn=admin,dc=silcom,dc=com” slavePw=”123456″ masterDN=”cn=admin,dc=silcom,dc=com” masterPw=”123456″ smbldap.conf #vi /etc/smbldap-tools/smbldap.conf EL ARCHIVO smbldap.conf DEBERÍA QUEDAR ASÍ: http://www.silcom.com.pe/soft/samba-ldap-etch/smbldap.conf NOTA : CUIDADO SI COPIAN DIRECTAMENTE smbldap.conf LO QUE HAY QUE MODIFICAR EL NRO SID DE SU IMPLEMENTACIÓN ADEMÁS POR SEGURIDAD HAY QUE HACER ESTO : chmod u-x smbldap.conf POR ULTIMO #cp smbldap_bind.conf /etc/ #cp smbldap.conf /etc/ AGREGANDO OBJECTCLASS TENEMOS QUE IR AL PHPLDAPADMIN EL ATRIBUTO SAMBAUNIXIDPOOL PARA EL DOMINIO SAMBA ASÍ QUE LE DAMOS CLICK A LA ENTRADA SAMBADOMAINNAME=SILCOM Y EN EL ESPACIO DE LA DERECHA VAMOS A BUSCAR DONDE ESTÁ EL O LOS ATRIBUTOS TIPO OBJECTCLASS, LE DAMOS CLICK EN DONDE DICE ADD VALUE, ESCOGEMOS SAMBAUNIXIDPOOL Y EN LA SIGUIENTE PÁGINA DIGITAMOS LOS VALORES DE UID Y GID INICIALES CON LOS QUE VAMOS A ARRANCAR PARA NUESTROS EFECTOS. DE LA SIGUIENTE FORMA: EL GID 20003 CORRESPONDE AL GRUPO SAMBAMACHINES EL UID 30000 ES EL NÚMERO INICIAL QUE YO QUISE UTILIZAR PARA LAS CUENTAS DE MÁQUINAS. UNA VEZ ECHO ESTO YA PODEMOS REGISTRAR NUESTRAS MAQUINAS WIN$ AL DOMINIO. ANEXO 1 CREACIÓN DE HOMES POR DEFECTO PARA ESTO HAY QUE INSERTAR UNA LINEA DENTRO DE smb.conf EN LA SECCION [homes] root preexec = /etc/samba/mk_sambadir “/home/%u” “%u” “%g” Y CREAR EL ARCHIVO mk_sambadir CON LAS SIGUIENTES LINEAS #!/bin/bash if [ ! -d $1 ] then mkdir $1 fi chmod 770 $1 -R chown $2 $1 -R chgrp $3 $1 -R ############### chmod u+x mk_samdir Y REINICIAR SAMBA /etc/init.d/samba restart ANEXO2 PRUEBA 1 PODER VALIDAR POR SSH AL PDC, SI BIEN ES CIERTO LOS USUARIOS DEL DOMINIO NO TIENEN SHELL DEBERIA SER POSIBLE HACER UN INICIO VIA SSH #ssh -l administrator 192.168.1.51 #ssh -l juan 192.168.1.51 PRUEBA 2 PODER VALIDAR DESDE UN WIN$ AUN ASI NO SE HALLA UNIDO AL DOMINIO, SIN PERTENECER AL DOMINIO DEBERÍA PODER VALIDAR COMO UN SIMPLE SERVER DE ARCHIVOS \\pdc\juan

Cualquier comentario sugerencia o modificación son bien recibidas.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.