Instalación y configuración de un Controlador Primario de Dominio (PDC), con soporte OpenLDAP, para clientes Windows (2000/XP), sobre Mandrake 10 Official. Autor: Miguel Ángel Fernández Chacón. mad_gcc en escomposlinux.org y freenode.net Changelog: 30/07/2004: Versión 0.90. 01/08/2004: Versión 0.91. Aplicado formato al texto de CLI, para mayor legibilidad. Añadidos enlaces a documentos usados para elaborar este How-To- Introducción. De todos es conocido el monopolio de facto que Microsoft mantiene ( y mantendrá durante algún tiempo) sobre los sistemas operativos de escritorio. Microsoft Windows, en cualquiera de sus sabores, es el sistema operativo más usado en todo el mundo. Lógicamente, cuando se plantea utilizar Windows en red, lo natural sería hacerlo usando los productos y protocolos que Microsoft ha desarrollado a tal efecto, haciendo más "cómoda" la vida a los ya de por si sufridos administradores de sistemas, que han de lidiar a diario con software no todo lo acabado y estable que pudiera desearse. Sin embargo y a lo largo del tiempo, las licencias de uso, la complejidad y el coste de la documentación de Windows 2000 y 2003 Server, se han ido incrementando paulatinamente, llegando a costar auténticas fortunas el mantener algo que, en un principio, se vendía como un sistema más económico que los sistemas Unix propietarios. Es aquí donde entra en juego el proyecto Samba (http://www.samba.org). Samba es un proyecto de Software Libre mantenido por una comunidad internacional de desarrolladores, y una amplia base de usuarios, que implementa una alternativa libre a los servidores de ficheros e impresión mediante protocolo CIFS (Common Internet File System) nativos de Microsoft. El protocolo CIFS no es más que el protocolo SMB (Server Message Block) renombrado para incluir la mágica palabra "Internet", tan de moda y tan comercial en estos últimos tiempos. Samba es la solución perfecta para todos aquellos que necesitan usar clientes Windows en red, atacando a un servidor de ficheros o impresión, utilizando una solución estable, probada, documentada y libre. Lo que viene a continuación es el proceso a seguir para Mandrake 10 Samba PDC+OpenLDAP 1 conseguir que Samba pueda hacerse con el control de un dominio Windows como PDC, usando como base de datos de usuarios y autentificación OpenLDAP. Se asume en este documento un conocimiento previo de Samba como servidor de ficheros, y de GNU/Linux como plataforma servidora, y del manejo de los parámetros de configuración como servidor básico de ficheros. Se sale del ámbito de este documento el explicar cómo se configura un servidor Samba desde 0. Se asume también conocimiento previo del funcionamiento de las redes Windows (concepto de Dominio, Master Browsers, usuarios y grupos de dominio, etc.), ya que este tema, de por si, es lo suficientemente extenso. Para todos aquellos que deseen iniciarse en el conocimiento de Samba, y lo que puede ofrecer, les invito a revisar dos libros, que bajo mi punto de vista, son imprescindibles: Samba-HOWTO-Collection: http://us1.samba.org/samba/docs/Samba-HOWTO-Collection.pdf Samba-Guide: http://us1.samba.org/samba/docs/Samba-Guide.pdf Ambos documentos forman parte de la documentación oficial del Proyecto Samba, y es regularmente actualizada. Cualquier rectificación, adición, comentario o crítica constructiva será bien recibida en la dirección electrónica [email protected] Mandrake 10 Samba PDC+OpenLDAP 2 Plataforma elegida, y software necesario Evidentemente, no podía ser de otra forma, la plataforma elegida es Mandrake 10 Official, con núcleo 2.6.3, actualizado a la última versión disponible en los mirrors de Mandrake. Son necesarios también los siguientes paquetes, que vienen de forma estándar con la distribución: • • • • • • • samba-server-3.0.2a-3mdk samba-common-3.0.2a-3mdk (este paquete se instala como dependencia del anterior) openldap-2.1.25-6mdk openldap-servers-2.1.25-6mdk openldap-clients-2.1.25-6mdk pam_ldap-167-3mdk nss_ldap-212-3mdk Usaremos para la instalación el fantástico gestor de paquetes de Mandrake, urpmi, tal que así: • • • • • urpmi samba-server urpmi openldap-servers (el paquete openldap se instala por defecto) urpmi openldap-clients urpmi pam_ldap urpmi nss_ldap Una vez instalado correctamente estos paquetes, iniciamos la configuración. Configuración de OpenLDAP OpenLDAP es un servidor de directorios, pensado para mantener información que no se cambia frecuentemente. Es muy rápido en operaciones de lectura, y su arquitectura abierta permite la adaptación a cualquier esquema de almacenamiento de datos. En particular, vamos a tratar uno de los más usados: la autentificación de usuarios, y más concretamente la de usuarios de Dominios Windows. 1. Fichero /etc/openldap/slapd.conf Este fichero contiene las definiciones de la base de datos donde se almacenará toda la información relativa al directorio. Su contenido, comentado, es como sigue: ***Esta es la definición de ACL por defecto que viene en el fichero original. La he comentado y habilitado una propia más adelante, para poder configurar el directorio sin problemas de permisos de acceso.** Mandrake 10 Samba PDC+OpenLDAP 3 # database definitions database bdb suffix "dc=sbcdomain,dc=com" rootdn "cn=Manager,dc=sbcdomain,dc=com" *** En este apartado, indicamos el tipo de base de datos a utilizar (Berkeley DataBase) , el sufijo raíz (suffix)para nuestro directorio, así como el usuario (rootdn) con permisos para administrarlo*** # Cleartext passwords, especially for the rootdn, should # be avoided. See slappasswd(8) and slapd.conf(5) for details. # Use of strong authentication encouraged. # rootpw secret rootpw {MD5}mfRp+5ofawkh1UKovdnLMA== *** Aquí se define la contraseña del rootdn. Observamos que lo que se almacena no es la contraseña en texto plano, sino el hash obtenido al usar la herramienta “slappasswd” en línea de comandos, utilizando el sistema de cifrado MD5. Por ejemplo: [root@svr-2 etc]# slappasswd -h {MD5} -s contraseña La salida de este comando la pegaremos en la entrada “rootpw”. *** # The database directory MUST exist prior to running slapd AND # should only be accessable by the slapd/tools. Mode 700 recommended. directory /var/lib/ldap *** Aquí definimos la ubicación física de los ficheros de la base de datos del directorio. *** # Indices to maintain # Indices to maintain index objectClass eq index cn pres,sub,eq index sn pres,sub,eq index uid pres,sub,eq index displayName pres,sub,eq index uidNumber eq index gidNumber eq index memberUID eq index sambaSID eq index sambaPrimaryGroupSID eq index sambaDomainName eq index default sub Mandrake 10 Samba PDC+OpenLDAP 4 *** Como en toda base de datos, se crean índices para que las consultas sean más rápidas. En OpenLDAP, se crean usando “index nombre_de_atributo tipo_de_búsqueda”. El parámetro tipo_de_búsqueda puede tomar los valores “pres” (verifica la presencia), “sub” (busca por subcadena), eq (busca una cadena igual) y “approx” (busca una cadena aproximada). OpenLDAP mantiene estos índices sobre bases de datos Berkeley DB, lo que agiliza de una manera considerable las búsquedas. *** # ACL #access #by #by to dn=".*dc=sbcdomain,dc=com" self write * read *** Como comenté más arriba, he añadido este ACL para configurar fácilmente el directorio. En el apartado ACL, se detallan las listas de control de acceso, es decir, quién tiene acceso a qué. Para nuestros propósitos, vamos a utilizar un ACL bastante relajado (deshabilitado, más bien) , para que no tengamos ningún problema a la hora de configurar el directorio. Posteriormente las endureceremos para asegurar que sólo accede a la información del directorio quien tenga que hacerlo, y nadie más. *** 2. Arranque de openldap Una vez configurado OpenLDAP, hemos de asegurarnos que el fichero / etc/openldap/slapd.conf tiene como propietario y grupo al usuario ldap, y permisos 640: [root@svr-2 openldap]# ls –la slapd.conf total 1 -rw-r----1 ldap ldap 3698 jul 21 17:18 slapd.conf Con todo esto, ya podemos arrancar openldap con el comando “service ldap start”: [root@svr-2 openldap]# service ldap start Running /usr/bin/slapd_db_recover on /var/lib/ldap Iniciando slapd (ldap + ldaps): [ OK ] Si todo ha ido bien, nuestro servidor de directorios está configurado y funcionando. 3. Configuración de nss_ldap El módulo nss_ldap, permite que el sistema pueda buscar información relativa a usuarios y grupos en el directorio LDAP recién creado. Vamos a necesitar este servicio porque los grupos Windows del dominio estarán almacenados en el directorio LDAP. Por defecto, los sistemas Unix buscan esta información en ficheros locales (/etc/passwd y /etc/group, fundamentalmente) Mandrake 10 Samba PDC+OpenLDAP 5 Hay que modificar 3 ficheros: • Fichero /etc/ldap.conf : SIZELIMIT TIMELIMIT DEREF 200 15 never host 127.0.0.1 base dc=sbcdomain,dc=com rootbinddn cn=Manager,dc=sbcdomain,dc=com nss_base_passwd nss_base_shadow nss_base_group ou=People,dc=sbcdomain,dc=com?one ou=People,dc=sbcdomain,dc=com?one ou=Groups,dc=sbcdomain,dc=com?one Este fichero es el que hemos de configurar para que el sistema pueda conectarse al servidor LDAP para hacer las búsquedas. Hemos de definir la máquina donde está el servidor LDAP (host 127.0.0.1), la raíz de búsqueda (base dc=sbcdomain,dc=com), el nombre de usuario del administrador del directorio LDAP (ver fichero / etc/openldap/slapd.conf). Los apartados nss_base_ determinan en qué contenedores del directorio LDAP tiene que buscar el sistema, dependiendo de si lo que busca, es un usuario o un grupo. Este fichero ha de ser propiedad de root, y permisos 600 • Fichero /etc/ldap.secret Este fichero almacena la contraseña del administrador del directorio ldap, debe contener la contraseña en texto plano y acabado por un carácter LF (vamos, un enter de toda la vida). De igual forma que el fichero anterior, propietario y grupo root y permisos 600. • Fichero /etc/nsswitch.conf Este fichero determina los lugares en los que busca el sistema cuando un usuario pretende autentificar. Es un sistema heredado de Solaris. En este fichero hemos de buscar las siguientes entradas: passwd: shadow: group: db files nisplus nis db files nisplus nis db files nisplus nis Y sustituirlas por: passwd: shadow: group: files ldap files ldap files ldap De esta forma, al intentar el sistema buscar un nombre de usuario o grupo, primero mirará en los ficheros locales (/etc/passwd, /etc/shadow, /etc/group), si no encuentra lo que Mandrake 10 Samba PDC+OpenLDAP 6 busca, entonces hará una consulta al servidor LDAP que hemos definido en el fichero / etc/ldap.conf (ver punto anterior). Configuración de Samba. Samba es un servidor CIFS Open Source, que en múltiples ocasiones ha ganado por goleada a las implementaciones nativas de Microsoft, en lo que a velocidad y escalabilidad en el servicio de ficheros se refiere. Se encuentra en producción en multitud de sitios, y su robustez y estabilidad permiten que pueda utilizarse de forma transparente para los usuarios, que, generalmente, no saben que están interactuando con un servidor Samba, y no con un servidor Windows. Para que Samba pueda controlar un dominio Windows, y convertirse en el PDC (Primary Domain Controller, o lo que es lo mismo, Controlador Primario de Dominio) del mismo, usando como base de datos de autentificación de máquinas y usuarios el servidor OpenLDAP que hemos configurado previamente, es necesario configurar los siguientes ficheros: 1. Fichero /etc/samba/smb.conf Este fichero es el 80% de una exitosa configuración de Samba como PDC usando OpenLDAP. La mayoría de los errores que nos pueden causar las estaciones Windows vienen propiciadas por configuraciones incorrectas de este fichero. Una forma de saber si, al menos, la sintaxis del fichero es correcta, antes de aplicar los cambios al servidor, es usar el comando “testparm”, que verifica que el fichero smb.conf contiene órdenes correctas sintácticamente hablando. Por ejemplo: [root@svr-2 etc]# testparm Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[netlogon]" Processing section "[printers]" Processing section "[print$]" Processing section "[pdf-generator]" Loaded services file OK. Server role: ROLE_DOMAIN_PDC Press enter to see a dump of your service definitions Aquí podemos ver que no hay errores, y que podemos aplicar los cambios al servidor. Voy a detallar los parámetros que hay que tocar en el fichero original de la distribución, y de qué manera: [global] # 1. Server Naming Options: # workgroup = NT-Domain-Name or Workgroup-Name workgroup = SBCDOMAIN Mandrake 10 Samba PDC+OpenLDAP 7 # Security mode. Most people will want user level security. See # security_level.txt for details. security = user encrypt passwords = yes local master = yes os level = 255 domain master = yes preferred master = yes domain logons = yes logon path = \\%L\Profiles\%U *** Si queremos utilizar los perfiles móviles (Roaming Profiles) de Windows (no muy recomendable, si no se usa con cuidado), buscar información acerca de la redirección de carpetas (Folder Redirection) add user script = /usr/share/samba/scripts/smbldap-useradd.pl -a -m '%u' delete user script = /usr/share/samba/scripts/smbldap-userdel.pl -r '%u' add user to group script = /usr/share/samba/scripts/smbldapgroupmod.pl -m '%u' '%g' delete user from group script = /usr/share/samba/scripts/smbldapgroupmod.pl -x '%u' '%g' set primary group script = /usr/share/samba/scripts/smbldapusermod.pl -g '%g' '%u' add group script = /usr/share/samba/scripts/smbldap-groupadd.pl '%g' && /usr/share/samba/scripts/smbldap-groupshow.pl %g|awk '/^gidNumber:/ {print $2}' delete group script = /usr/share/samba/scripts/smbldap-userdel.pl '% g' *** ESTE es el corazón del uso de samba con openldap. En este conjunto de scripts, que forman parte de la distribución estándar de Samba, habilitan la interacción de Samba y OpenLDAP, para la gestión de usuarios y máquinas.*** add machine script = /usr/share/samba/scripts/smbldap-useradd.pl -w -d /dev/null -s /bin/false %u *** Este apartado, define el script necesario para unir una máquina Windows 2000/XP a un dominio.*** passdb backend = ldapsam:ldap://localhost idmap backend = ldap:ldap://localhost *** Este script configura a Samba para utilizar OpenLDAP como backend para la base de datos de contraseñas.*** idmap uid = 10000-20000 Mandrake 10 Samba PDC+OpenLDAP 8 idmap gid = 10000-20000 *** Este apartado, reserva números de usuario y grupo a posibles conexiones provenientes de otras máquinas del dominio, tales como otros servidores Samba*** ldap ldap ldap ldap ldap ldap admin dn = cn=Manager,dc=sbcdomain,dc=com suffix = dc=sbcdomain,dc=com machine suffix = ou=People user suffix = ou=People group suffix = ou=Groups idmap suffix = ou=Idmap *** Aquí tenemos la configuración básica para que Samba pueda comunicarse con el servidor LDAP, tales como el dn del administrador (ldap admin dn), el sufijo (ldap suffix), y los contenedores a utilizar para almacenar las máquinas (host suffix), usuarios (user suffix) y grupos (group suffix). Es importante hacer notar que, debido a un bug de Samba 3, las máquinas (machine suffix) deben insertarse en el contenedor de los usuarios (user suffix). Este bug no permite usar el contenedor apropiado. (hosts, en este caso). Hay que ejecutar smbpasswd –w contraseña_de_openldap para que samba tenga acceso a OpenLDAP*** dos charset = 850 unix charset = ISO8859-1 *** Esto puede parecer supérfluo, pero en mi caso no lo es, ya que manejo ficheros tanto desde Linux, como desde Windows, y necesito que los nombres de fichero sean los mismos en ambos entornos.*** [netlogon] comment = Network Logon Service path = /var/lib/samba/netlogon guest ok = yes writable = no [Profiles] path = /var/lib/samba/profiles browseable = no guest ok = yes root preexec = PROFILE=/var/lib/samba/profiles/%u; if [ ! -e $PROFILE ]; \ then mkdir -pm700 $PROFILE; chown %u.%g $PROFILE;fi Mandrake 10 Samba PDC+OpenLDAP 9 Esto es todo, de momento, en lo que se refiere a smb.conf. El resto de opciones, tales como los directorios a compartir, quedan al libre albedrio del osado lector que ha sido capaz de llegar hasta aquí. Como he comentado más arriba, una vez salvado el fichero, es necesario ejecutar el comando “smbpasswd –w contraseña_de_openldap”, para que samba pueda acceder a OpenLDAP. Ahora, verificaremos que la sintaxis del fichero smb.conf es correcta, ejecutando: root@svr-2 samba]# testparm Load smb config files from /etc/samba/smb.conf Processing section "[homes]" Processing section "[netlogon]" Processing section "[printers]" Processing section "[print$]" Processing section "[pdf-generator]" Loaded services file OK. Server role: ROLE_DOMAIN_PDC Parece que todo ha ido bien. Es hora de arrancar Samba: [root@svr-2 samba]# service smb start Iniciando servicios SMB: [ OK ] Reiniciando los servicios NMB: [ OK ] [root@svr-2 samba]# Perfecto. Ahora tenemos que obtener el SID del dominio. Un SID (Security IDentifier), es un número único que cada máquina windows en red posee. Este número es imprescindible para usar Samba con OpenLDAP. Según la documentación de Samba, para obtener este número se ejecuta en línea de comandos: [root@svr-2 samba]# net getlocalsid que da una salida como esta: SID for domain SVR-2 is: S-1-5-21-1657500908-2513123876-741102653 Nota: se supone que esta es la forma de obtener este identificador, sin embargo, yo no he podido obtenerlo siempre. Según la documentación de Samba, hay que esperar unos minutos para que este número se genere, pero yo no he podido conseguirlo en muchas ocasiones. La solución a este problema la he encontrado ejecutando otro comando, en lugar del que he descrito más arriba: [root@svr-2 samba]# net rpc getsid Mandrake 10 Samba PDC+OpenLDAP 10 que da una salida como esta: Storing SID S-1-5-21-1657500908-2513123876-741102653 for Domain SBCDOMAIN in secrets.tdb Bien, sea de una forma, o de la otra, hay que anotar este número y detener Samba con “service smb stop” 2. Fichero /etc/samba/smbldap_conf.pm En este fichero se define el comportamiento por defecto que van a tener las herramientas ldap de samba (smbldap tools), para la gestión y mantenimiento de los usuarios y grupos. Las smbldap tools son un conjunto de scripts Perl desarrollados por Idealx (http://www.idealx.org/prj/samba/smbldap-tools.en.html). A continuación detallo los cambios a realizar en el fichero para adaptarlo a nuestro entorno: # General Configuration # UID and GID starting at... $UID_START = 1000; $GID_START = 1000; # Put your own SID # to obtain this number do: "net getlocalsid" $SID='S-1-5-21-1657500908-2513123876-741102653'; *** Aquí es donde tenemos que introducir el SID obtenido anteriormente *** # LDAP Configuration # Ex: $slaveLDAP = "127.0.0.1"; $slaveLDAP = "127.0.0.1"; $slavePort = "389"; # Master LDAP : needed for write operations # Ex: $masterLDAP = "127.0.0.1"; $masterLDAP = "127.0.0.1"; $masterPort = "389"; *** Dirección IP del servidor LDAP. En nuestro caso, localhost *** # Use SSL for LDAP # If set to "1", this option will use start_tls for connection # (you should also used the port 389) $ldapSSL = "0"; *** Ya que no usamos SSL, lo desactivamos *** $suffix = "dc=sbcdomain,dc=com"; Mandrake 10 Samba PDC+OpenLDAP 11 *** Sufijo para la conexión al servidor LDAP *** ou=Users,dc=IDEALX,dc=ORG $usersou = q(People); $usersdn = "ou=$usersou,$suffix"; ou=Computers,dc=IDEALX,dc=ORG $computersou = q(People); $computersdn = "ou=$computersou,$suffix"; ou=Groups,dc=IDEALX,dc=ORG $groupsou = q(Groups); $groupsdn = "ou=$groupsou,$suffix"; *** Definición de los contenedores LDAP donde se almacenarán las máquinas, usuarios y grupos de nuestro PDC *** $scope = "sub"; *** Ámbito de las búsquedas *** $hash_encrypt="SSHA"; *** Encriptación por defecto de las contraseñas Unix *** $binddn = "cn=Manager,$suffix"; $bindpasswd = "contraseña_adminstrador_servidor_ldap"; *** Credenciales necesarias para la conexión a OpenLDAP *** # SAMBA Configuration $_userSmbHome = q(\\\\SVR-2\\); *** Directorio home por defecto *** $_userProfile = q(\\\\SVR-2\\Profiles\\); *** Directorio donde se almacena el perfil de usuario por defecto de windows *** $_userHomeDrive = q(K:); *** Letra de unidad a asignar por defecto *** # The default user netlogon script name # if not used, will be automatically username.cmd $_userScript = q(startup.bat); # make sure script file is edited under dos Mandrake 10 Samba PDC+OpenLDAP 12 *** Logon script a asignar por defecto *** --------------------------------------------------------------------------------Bien, hasta aquí la configuración de las herramientas smbldap. Ahora, debemos arrancar el servidor Samba, y llenar el directorio OpenLDAP con los grupos y usuarios mínimos para poder empezar a trabajar con un PDC Windows. Este paso se lleva a cabo usando el script de las herramientas smbldap-tools “smbldap-populate”. Este script se encuentra en el directorio /usr/bin/, pero en realidad, es un enlace simbólico que, en Mandrake 10, apunta a /usr/share/samba/scripts/smbldappopulate.pl. El motivo de esta aclaración, es que todos los grupos y usuarios predefinidos a introducir en el PDC, están en perfecto inglés, y en lugar de la cuenta “Administrador” de Windows, vamos a tener su correspondiente en inglés, “Administrator”. Esto no es relevante desde el punto de vista de funcionamiento, ya que cada cuenta bien conocida de Windows (Well Known Accounts) tiene un número único que se obtiene a partir del SID del dominio, y añadiendo un identificador de usuario, se forma lo que se denomina RID. En el caso de estas cuentas ese identificador es fijo, sea cual sea la lengua del sistema operativo Windows que estemos usando. Nada nos impediría, pues, modificar smbldap-populate.pl, y traducir las entradas de los grupos y usuarios al idioma de nuestra elección. Sin embargo, yo no lo he traducido, y muestro aquí los nombres por defecto que trae, para no confundir (aún más ) al lector. 3. Inserción de los grupos y usuarios Windows en el servidor LDAP. Ejecutamos el comando: [root@svr-2 samba]# smbldap-populate Using builtin directory structure adding new entry: dc=sbcdomain,dc=com adding new entry: ou=People,dc=sbcdomain,dc=com adding new entry: ou=Groups,dc=sbcdomain,dc=com adding new entry: ou=People,dc=sbcdomain,dc=com failed to add entry: Already exists at /usr/bin/smbldap-populate line 323, <GEN1> line 5. adding new entry: uid=Administrator,ou=People,dc=sbcdomain,dc=com adding new entry: uid=nobody,ou=People,dc=sbcdomain,dc=com adding new entry: cn=Domain Admins,ou=Groups,dc=sbcdomain,dc=com adding new entry: cn=Domain Users,ou=Groups,dc=sbcdomain,dc=com adding new entry: cn=Domain Guests,ou=Groups,dc=sbcdomain,dc=com adding new entry: cn=Administrators,ou=Groups,dc=sbcdomain,dc=com adding new entry: cn=Users,ou=Groups,dc=sbcdomain,dc=com adding new entry: cn=Guests,ou=Groups,dc=sbcdomain,dc=com adding new entry: cn=Power Users,ou=Groups,dc=sbcdomain,dc=com adding new entry: cn=Account Operators,ou=Groups,dc=sbcdomain,dc=com adding new entry: cn=Server Operators,ou=Groups,dc=sbcdomain,dc=com Mandrake 10 Samba PDC+OpenLDAP 13 adding adding adding adding new new new new entry: entry: entry: entry: cn=Print Operators,ou=Groups,dc=sbcdomain,dc=com cn=Backup Operators,ou=Groups,dc=sbcdomain,dc=com cn=Replicator,ou=Groups,dc=sbcdomain,dc=com cn=Domain Computers,ou=Groups,dc=sbcdomain,dc=com Observamos que existe un error en una línea. Es debido a que, en el fichero / etc/smbldap_conf.pm, hemos definido que el grupo de usuarios y máquinas vaya en el mismo contenedor (People), y al intentar crear un segundo “People”, nos avisa de que ya existe. Es seguro ignorarlo. Ahora necesitamos realizar algunas comprobaciones, para verificar que el sistema es capaz de encontrar tanto los usuarios almacenados en el servidor LDAP, como los grupos de Windows mapeados: [root@svr-2 backup ldap]# net groupmap list |more Domain Admins (S-1-5-21-1657500908-2513123876-741102653-512) -> Domain Admins Domain Users (S-1-5-21-1657500908-2513123876-741102653-513) -> Domain Users Domain Guests (S-1-5-21-1657500908-2513123876-741102653-514) -> Domain Guests Administrators (S-1-5-21-1657500908-2513123876-741102653-544) -> Administrators users (S-1-5-21-1657500908-2513123876-741102653-545) -> Users Guests (S-1-5-21-1657500908-2513123876-741102653-546) -> Guests Power Users (S-1-5-21-1657500908-2513123876-741102653-547) -> Power Users Account Operators (S-1-5-21-1657500908-2513123876-741102653-548) -> Account Operators Server Operators (S-1-5-21-1657500908-2513123876-741102653-549) -> Server Operators Print Operators (S-1-5-21-1657500908-2513123876-741102653-550) -> Print Operators Backup Operators (S-1-5-21-1657500908-2513123876-741102653-551) -> Backup Operators Replicator (S-1-5-21-1657500908-2513123876-741102653-552) -> Replicator Domain Computers (S-1-5-21-1657500908-2513123876-741102653-553) -> Domain Computers Maravilloso. El módulo nss_ldap, está haciendo su trabajo. 4. Modificación del usuario “Administrator” En los dominios Windows, existe la figura del “Administrador del Dominio”, que es el que tiene potestad para añadir máquinas y usuarios al mismo. Cuando se desea unir una máquina Windows a un dominio, debe existir en la base de datos de usuarios del dominio (OpenLDAP, en este caso) un usuario con “uid=0”, ya que la máquina Windows así lo requiere, si no, falla la autentificación y da un error de acceso denegado. Este aspecto me tuvo cavilando un poco de tiempo, ya que NO tenía forma de saber cómo hacerlo. Revisando documentación en Internet, me encontre un How-To en italiano muy majo, (un poco corto, pero muy majo), que me resolvió la duda en un abrir y cerrar de ojos. Es tan simple como ejecutar: Mandrake 10 Samba PDC+OpenLDAP 14 [root@svr-2 samba]# smbldap-usermod -u 0 Administrator Y ya está. Evidentemente, hemos de asignar también la contraseña al Administrador del dominio: [root@svr-2 samba]# smbldap-passwd Administrator Changing password for Administrator New password : Introducimos la contraseña, y la repetimos para verificar. Con esto, estamos listos para añadir máquinas y usuarios al dominio. 5. Adición de una máquina al dominio, y creación de un usuario del dominio. Desde una máquina Windows 2000 o Windows XP Professional (ojo, NO se puede añadir una máquina Windows XP Home a un dominio Windows. Esto es así por diseño del sistema de Microsoft.) o Inicio->Configuración->Panel de Control->Sistema->Nombre de Equipo o Hacer click sobre el botón “Cambiar” o En “Miembro de” seleccionar “Dominio” e introducir el nombre del dominio seleccionado. (campo “workgroup” del fichero /etc/samba/smb.conf) o Click en “Aceptar” o Aparecerá una ventana pidiendo nombre de usuario y contraseña del administrador con permisos para añadir la maquina al dominio. Es “Administrator” y la contraseña introducida. Hacemos click en “Aceptar” y esperamos un momento. Tras este momento, un mensaje nos dará la bienvenida al dominio. o Desde el servidor, añadimos un usuario desde la línea de comandos: Smbldap-useradd –a –m usuario Smbldap-passwd usuario Reiniciamos la estación de trabajo windows, y en el login, aparecerá el nuevo dominio. Lo seleccionamos, e introducimos el nombre de usuario y contraseña que dimos de alta en el paso anterior. Si todo ha ido bien, nos encontraremos una estación de trabajo windows, con login en red, autentificado contra un PDC Samba con backend OpenLDAP. Hemos conseguido nuestro objetivo. Felicidades. Mandrake 10 Samba PDC+OpenLDAP 15 Bibliografía. http://www.unav.es/cti/ldap-smb/smb-ldap-3-howto.html http://www.idealx.org/prj/samba/smbldap-howto.en.html Mandrake 10 Samba PDC+OpenLDAP 16