Página principal
  | Errores | Ayuda | Página de Inicio Versión Imprimible

 :: SECCIONES
 Actualidad
 Noticias
 Cursos
 Programas gratis
 Hardware
 Linux
 Windows
 Glosario Informat.
 Glosario Extens.
 Humor PC
 Ocio y Juegos
 Webmasters
 Guía buscadores
:: ENCUESTAS
Si usas Windows ¿qué versión?
Windows 95
Windows 98
Windows Me
Windows NT
Windows 2000
Windows XP
Windows 2003
Windows Vista
Otra version...



Ver resultados

Ver encuestas anteriores y comentarios

Version 2.02


Estás en: 

Página principal » linux » samba


Google
 
Web MundoPC.NET
Samba - Servidor para redes Microsoft
(Página 3)

Configuración del servicio de directorio OpenLDAP

Cuando las infraestructuras son muy grandes y se hace muy pesada la gestión de múltiples cuentas de usuario, grupos, equipos, etc., se hace necesario el uso de servicios que faciliten esa gestión, uno de estos servicios es OpenLDAP una versión libre de LDAP (Lightweight Directory Access Protocol) que nos permite unificar todo tipo de cuentas de usuario en una sola base datos de acceso ligero. LDAP también puede servir como directorio de contactos de una empresa, porque aparte también nos permite organizar en forma de árbol la estructura de la empresa utilizando unidades organizativas o OU (Organizational Unit) que actúan como carpetas organizando usuarios, grupos, equipos, etc., como podemos ver en la Figura 9. En esta sección nos vamos a centrar en la puesta en marcha del servicio y la configuración de Samba para que utilice el OpenLDAP para la gestión de usuarios y demás.

Figura 9. Estructura de la base de datos OpenLDAP
Figura 9. Estructura de la base de datos OpenLDAP. Click para ampliar.

Lo primero será instalar el servidor de OpenLDAP si no tenemos ninguno y las utilidades necesarias, como dijimos al principio trabajamos con la distribución Debian etch, pero estos paquetes también están disponibles con otras distribuciones de Linux como por ejemplo: Ubuntu, Red Hat, etc. Los paquetes en Debian son: slapd, ldap-utils. Una vez descargados los paquetes vamos a proceder a su configuración de manera automática, pero antes nos puede pedir si queremos omitir hacer la configuración, le decimos que no. Seguidamente nos empezará pidiendo parámetros sobre el nombre del dominio (linuxplus.com en nuestro caso) y nombre de la organización, finalmente la contraseña del administrador del directorio LDAP. Una vez instalado y configurado ya tendríamos que tener la base de datos LDAP creada y el servicio slapd en marcha, podemos probar de listar el contenido de la base de datos con el comando slapcat que nos va a devolver en principio dos elementos: la raíz del árbol y el nodo referente al usuario de administración.

Integración de Samba con OpenLDAP

Para poder integrar Samba con OpenLDAP es necesario unas utilidades llamadas smbldap-tools que también están disponibles como paquete de Debian, aparte de configurar Samba para que trabaje con OpenLDAP como base de datos de cuentas de usuario, grupos, etc.

Ajustes de OpenLDAP

Al servidor de LDAP es necesario hacerle una serie de ajustes para poder ubicar los usuarios de Samba, parámetros muy simples como por ejemplo la inclusión del schema de Samba 3. El fichero de configuración que vamos a modificar es /etc/ldap/slapd.conf, si nos fijamos en el fichero, al principio de todo tiene unos includes. Al final del último include añadimos esta línea:

include /etc/ldap/schema/samba.schema

Si no tenemos el samba.schema en /etc/ldap/schema lo podemos copiar del directorio /usr/share/doc/samba-doc/examples/LDAP/ que está comprimido con gzip. Lo vamos a descomprimir con gunzip samba.schema.gz para su posterior copia a etc/ldap/schema. Después vamos a añadir la linea index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq después de la línea que contiene index objectClass eq. Este último parámetro configura los índices por los que indexar la base de datos para poder realizar búsquedas con estos campos.

Finalmente vamos a reiniciar el daemon del servidor LDAP con /etc/init.d/slapd restart en nuestro caso con Debian.

Ajustes de Samba

Ahora vamos a añadir los parámetros necesarios para que Samba trabaje con OpenLDAP para la validación de usuarios, gestión de grupos, equipos, etc. A partir del fichero /etc/samba/smb.conf vamos hacer una serie de cambios, el primero es el de cambiar el backend de la base de datos de usuarios/contraseñas con el parámetro passdb backend, seguidamente configuraremos todos los parámetros referentes a la estructura de cómo están organizados los datos dentro del OpenLDAP (usuarios, grupos, equipos, etc.) como está en el Listado 6. Cuidado con duplicar parámetros como los de add user script y add machine script que hemos puesto anteriormente, es mejor sustituirlos por los nuevos.

Listado 6. Configuración de los parámetros del OpenLDAP en Samba
passdb backend = ldapsam:ldap://127.0.0.1
ldap passwd sync = Yes
ldap suffix = dc=linuxplus,dc=com
ldap user suffix = ou=People
ldap group suffix = ou=Groups
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Idmap
ldap admin dn = cn=admin,dc=linuxplus,dc=com
add user script = /usr/sbin/smbldap-useradd -m "%u"
add machine script = /usr/sbin/smbldap-useradd -w "%u"
add group script = /usr/local/smbldap-groupadd -p "%g"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
delete user script = /usr/sbin/smbldap-userdel "%u"
delete group script = /usr/sbin/smbldap-groupdel "%g"

Utilidades para la integración

Como hemos comentado al principio de este apartado, para integrar Samba y OpenLDAP necesitamos las utilidades smbldap-tools. Estas herramientas son utilizadas por Samba para realizar tareas de creación, modificación y borrado de cuentas en la base de datos LDAP, por tanto vamos a proceder a su configuración para su posterior manejo.

Después de realizar la instalación del paquete smbldap-tools vamos a proceder a su configuración, la cual está ubicada en el directorio /etc/smbldap-tools, la mayoría de veces nos podemos encontrar el directorio vacío, para ello vamos a copiar dos ficheros que se encuentran en /usr/share/doc/smbldap-tools/examples llamados smbldap_bind.conf y smbldap.conf.gz este último comprimido (mejor descomprimirlo antes de su copia). Los vamos a copiar al directorio /etc/smbldap-tools y vamos a realizar unas modificaciones, primero al fichero smbldap_bind.conf como se puede ver en el Listado 7. Este fichero contiene el usuario y contraseña en texto plano del administrador del LDAP que hemos configurado en la instalación del mismo. Una vez editado vamos a cambiarle los permisos para que solamente root pueda acceder a él, con

chmod 600 smbldap_bind.conf

Listado 7. Configuración del fichero smbldap_bind.conf
slaveDN="cn=admin,dc=linuxplus,dc=com"
slavePw="contraseña_administrador_ldap"
masterDN="cn=admin,dc=linuxplus,dc=com"
masterPw="contraseña_administrador_ldap"

Seguidamente realizaremos una serie de cambios al fichero smbldap.conf, este fichero ya viene preconfigurado con unos valores por defecto y que nosotros ajustaremos dependiendo de nuestras necesidades. Realmente basta con cambiar cinco parámetros referentes al nombre de dominio y el nombre de las estructuras que contienen las cuentas de usuario dentro del LDAP. Vamos a cambiar los parámetros especificados por el Listado 8, el fichero tiene más parámetros pero nosotros solamente vamos a cambiar éstos.

Listado 8. Configuración del fichero smbldap.conf
SID="S-1-5-21-2063575342-2847459922-2710907528"
sambaDomain="LINUXPLUS"
slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"
masterPort="389"
...
suffix="dc=linuxplus,dc=com"
usersdn="ou=People,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=LINUXPLUS,${suffix}"
...
hash_encrypt="CRYPT"
...
userSmbHome="\\SERVIDOR\%U"
userProfile="\\SERVIDOR\%U\profile"
userHomeDrive="Z:"
userScript="logon.bat"
mailDomain="linuxplus.com"
...

El parámetro SID determina el identificador del servidor que se obtiene de ejecutar el comando net getlocalsid en la consola como root, los otros parámetros son referentes al nombre del dominio Samba, IP del servidor LDAP (la misma máquina en nuestro caso) y la configuración de los contenedores de los usuarios (People), grupos de usuarios (Groups) y cuentas de equipos (Computers). Una vez realizada la configuración vamos a proceder a la posterior ejecución del comando smbldap-populate -a administrador el cual nos va a crear toda la estructura de grupos por defecto y contenedores de cuentas como se puede observar en el Listado 9, es muy importante que la fase de configuración de OpenLDAP haya ido bien porque si no smbldap-populate nos va a fallar. En la ejecución del smbldap-populate va a realizar operaciones dentro de la base de datos OpenLDAP, creando los grupos requeridos por Samba para la administración del dominio y el usuario administrador del dominio. Así como cuando hemos configurado Samba como PDC pero con las cuentas del sistema utilizamos el usuario root para unirnos al dominio, esta vez vamos a utilizar el usuario administrador y contraseña que nos pedirá al final de la ejecución. Esto también quiere decir que el usuario que habíamos creado al principio de pruebas tampoco nos va a servir porque ahora Samba utiliza LDAP como base de datos para las cuentas de usuario.

Listado 9. Salida del comando smbldap-populate
Populating LDAP directory for domain LINUXPLUS
(S-1-5-21-2063575342-2847459922-2710907528)
(using builtin directory structure)
entry dc=linuxplus,dc=com already exist.
adding new entry: ou=People,dc=linuxplus,dc=com
adding new entry: ou=Groups,dc=linuxplus,dc=com
adding new entry: ou=Computers,dc=linuxplus,dc=com
adding new entry: ou=Idmap,dc=linuxplus,dc=com
adding new entry: uid=administrador,ou=People,dc=linuxplus,dc=com
adding new entry: uid=nobody,ou=People,dc=linuxplus,dc=com
adding new entry: cn=Domain Admins,ou=Groups,dc=linuxplus,dc=com
adding new entry: cn=Domain Users,ou=Groups,dc=linuxplus,dc=com
adding new entry: cn=Domain Guests,ou=Groups,dc=linuxplus,dc=com
adding new entry: cn=Domain Computers,ou=Groups,dc=linuxplus,dc=com
adding new entry: cn=Administrators,ou=Groups,dc=linuxplus,dc=com
adding new entry: cn=Account Operators,ou=Groups,dc=linuxplus,dc=com
adding new entry: cn=Print Operators,ou=Groups,dc=linuxplus,dc=com
adding new entry: cn=Backup Operators,ou=Groups,dc=linuxplus,dc=com
adding new entry: cn=Replicators,ou=Groups,dc=linuxplus,dc=com
adding new entry: sambaDomainName=LINUXPLUS,dc=linuxplus,dc=com

Lo último que nos queda hacer es que el sistema también utilice el OpenLDAP para leer los grupos y usuarios en lugar de las bases de datos /etc/passwd y /etc/shadow. Esto lo vamos hacer instalando el paquete nss_ldap en nuestro caso el paquete libnss-ldap para Debian, en la instalación nos va a pedir la dirección del servidor LDAP (ldap://127.0.0.1/ en nuestro caso), el base DN (dc=linuxplus,dc=com en nuestro caso la raíz de LDAP), la versión que utilizamos (versión 3), no necesitamos usuario para acceder a la base de datos, damos privilegios especiales de LDAP para root, cuenta
de administración de la base de datos LDAP (cn=admin, dc=linuxplus, dc=com en nuestro caso) y su contraseña. Una vez configurado cambiaremos los parámetros especificados enel Listado 10 del fichero /etc/nsswitch.conf.

Listado 10. Cambios en el fichero /etc/nsswitch.conf
...
passwd: compat ldap
group: compat ldap
shadow: compat ldap
...

Es muy importante recordar que a partir de esta operación los usuarios y grupos creados anteriormente con adduser (resp. addgroup) ya no están operativos y es mejor eliminarlos con userdel y groupdel para volverlos a crear dentro del OpenLDAP. La gestión de cuentas se puede o bien hacer manualmente con las herramientas de consola o bien visuales, del estilo “LD-AP Admin for Windows” (Figura 10) que se puede descargar de manera gratuita de http://ldapadmin.sourceforge.net/

Figura 10. Herramienta de administración de LDAP para Windows
Figura 10. Herramienta de administración de LDAP para Windows

Por ejemplo queremos crear los grupos que teníamos al principio: gestion y contabilidad, usando la herramienta ldapadd de la siguiente forma: crearemos un fichero de textocomo el del Listado 11 y ejecutamos la siguiente línea como root:

ldapadd -x -D 'cn=admin,dc=linuxplus,dc=com' -W -f contabilidad.ldif

Listado 11. Fichero para crear un grupo dentro de OpenLDAP
dn: cn=contabilidad,ou=Groups,dc=linuxplus,dc=com
cn: contabilidad
objectclass: posixGroup
objectclass: top
objectclass: sambaGroupMapping
sambaGroupType: 2
sambaSID: S-1-5-21-2063575342-2847459922-2710907528-23653
gidNumber: 11326

Tenemos que tener en cuenta que el gid-Number puede ser mayor o igual a 1000 paraque no entre en conflicto con ningún otro. El fichero está compuesto por diferentes campos que nos determinan la situación del nuevo objeto dentro de la base de datos con dn, el nombre del objeto con cn y después el tipoo tipos de objeto, en nuestro caso es un objeto tipo posixGroup (grupo de sistema), sambaGroupMapping (grupo de Samba). Cada tipo de objeto tiene su conjunto de campos propios, como por ejemplo el posixGroup nos proporciona el campo gidNumber y el sambaGroupMapping los campos sambaGroupType y sambaSID.
El campo sambaSID está compuesto porel SID local cogido con net getlocalsid y añadiendo el RID que es igual a 2*gidNumber+1001. Pero es mejor utilizar las herramientas smbldap-tools que ya llevan utilidades para crear y borrar todo tipo de usuarios y grupos además ya se encarga de darle un GID correlativo y un RID automáticamente. Por ejemplo smbldap-groupadd -a contabilidad nosdará el mismo resultado que con ldapadd pero sin tener que especificar todos los parámetros que son necesarios, basta con el nombre del grupo. De la misma forma podemos crear un usuario nuevo con smbldap-useradd -a -G contabilidad tomeu y asignarle una contraseña con smbldap-passwd tomeu.
Es necesario que una vez hecho el cambioa OpenLDAP volver a unir el equipo que hemos utilizado anteriormente al dominio de la misma manera que hemos hecho anteriormente, con la diferencia de que cuando nos pregunte por la cuenta que tenga privilegios para unirse al dominio usaremos la cuenta que ha creado la utilidad smbldap-populate, la de administrador con su contraseña correspondiente.

Artículo original de: Linux+DVD
Autor: Tomeu Capó Capó.

Publicado con autorización
MundoPC.NET
http://www.mundopc.net
02/12/07

Inicio

Páginas: 1 2 3



 :: SERVICIOS
 Directorio
 Libro Visitas
 Foro


| Logo MundoPC.NET | Publicidad | Quienes Somos | Aviso Legal | Contactar | GMC Contables | Translate |
  Hay 40 visitantes. Record on-line: 553 © MundoPC.NET C.B. 2000 - 2008