Sunteți pe pagina 1din 8

linux en la empresa Integrar sistemas GNU/Linux con MS-Windows

Samba: Servidor para redes Microsoft


Tomeu Cap Cap

Cuando se trata de integrar sistemas GNU/Linux con MS-Windows, hay muchos puntos a tener en cuenta, tanto en servicios como en administracin de los mismos. Como por ejemplo es la utilizacin de Samba como servidor principal de dominio o PDC (Prinicipal Domain Controller) para dar servicios de: validacin de usuarios, ficheros, directorios, colas de impresin, etc., a estaciones de trabajo con MS-Windows.

amba es un servidor/cliente de software libre que implementa el protocolo de red para compartir recursos conocido como SMB (Server Message Block), actualmente como CIFS (Common Internet Filesystem). Esto permite que mquinas con GNU/ Linux o Unix acten como servidores o clientes en redes Microsoft, nos permite compartir diferentes tipos de recursos: archivos, directorios, colas de impresin, etc. Aparte de dar servicio a estos recursos la ltima versin (Samba v.3) tambin tiene la posibilidad de validar usuarios actuando como PDC Controlador Principal de Dominio siendo miembro de un dominio existente en la red o bien siendo el servidor maestro del dominio. En infraestructuras complejas en donde la administracin de cuentas de usuario se puede complicar, la configuracin bsica de Samba no nos alcanza y es necesario tener un buen servicio de directorio que unifique todo tipo de cuentas de usuario en una sola base de datos de acceso ligero, con el objetivo de no tener diferentes bases de datos (usuarios Linux, usuarios Windows, ...) que tendramos que administrar por separado. OpenLDAP es una versin libre de LDAP (Lightweight Directory Access Protocol) que se

basa en el estndar ISO X.500 y nos permite organizar de manera jerrquica todo tipo de cuentas, grupos, puntos de montaje, cuentas de equipos, etc. En este artculo vamos a tratar la configuracin y puesta en marcha tanto de Samba como de OpenLDAP y la integracin de los mismos.

linux@software.com.pl

Configuracin del servidor Samba

Lo primero de todo es instalar los paquetes referentes a Samba, en este artculo hemos utilizado la distribucin Debian etch. Los paquetes necesarios son: samba, sambacommon y samba-doc que tambin estn disponibles en otras distribuciones como Fedora Core en RPM, Ubuntu, etc. Una vez instalados los paquetes procedemos a la configuracin bsica del servidor, aunque Debian ya preconfigura algunas cosas como por ejemplo el tipo de ejecucin del servicio: daemon o bien a travs del servicio inetd Figura 2, seleccionar si queremos crear una base de datos de usuarios, el nombre del grupo de trabajo/dominio Figura 1. Aparte nos va a pedir una serie de parmetros adicionales de configuracin como: utilizar contraseas cifradas, permitir trabajar con DHCP de manera conjunta con el servidor de nombres WINS. Este ltimo nos permite que el

34

Linux+ 10/2007

linux en la empresa Integrar sistemas GNU/Linux con MS-Windows


share: Cada cliente valida el usuario de manera separada, el cliente pide y posteriormente enva la contrasea cada vez que se solicita un recurso compartido del servidor sin necesidad de mandar el usuario. server: Los usuarios se validan utilizando un servidor externo, este parmetro va en conjuncin con otro parmetro, el password server, donde especificamos el nombre o IP del servidor de contraseas (podra ser un servidor de Microsoft) . domain: Utilizado normalmente en servidores que son secundarios, nos da la posibilidad de usar una base de datos central de cuentas de usuario del controlador principal de dominio. Este parmetro necesita tener habilitado el cifrado de contraseas con encrypt passwords.

Figura 1. Configuracin del grupo de trabajo

servidor DHCP pueda proveer informacin como podemos observar en el Listado 1, es el sobre otros servidores de WINS (Windows primer parmetro: workgroup de la seccin gloInternet Name Service) que haya en la red. bal. Aparte tambin podemos cambiar la des- En cuanto a los recursos por defecto, suele traer Una vez realizada la tarea de instalacin cripcin del servidor con server string y el nomel servicio arranca automticamente, con los bre del equipo (de cara a la red Microsoft) con parmetros por defecto. netbios name. Si queremos contraseas cifradas activamos encrypt passwords. Todos estos parConfiguracin bsica metros son configurados desde la interfaz de Ahora vamos a revisar el fichero de configu- instalacin. racin que nos genera el programa de instaUn parmetro importante es security que lacin de manera automtica y que reside en establece el nivel de seguridad de nuestro servi/etc/samba llamado smb.conf. Este fichero dor Samba, por defecto el nivel es user, esto sigest dividido en una serie de secciones: nifica que para acceder al servidor es necesario validarse usando un usuario existente dentro global: Configuracin global del servidor. de la base de datos de usuarios de Samba es homes: Configuracin del recurso referen- pecificada con otro parmetro, el passdb backend. te al directorio home de cada usuario Hay diferentes niveles de seguridad: printers: Recurso sobre las colas de impresin. user: En este nivel el cliente enva una peticin de iniciar la sesin de manera Cuando revisemos el fichero de configuracin directa, ste proporciona el usuario y conlo que tendremos que mirar es si el nombre trasea. El servidor recoge el usuario/condel dominio/grupo de trabajo es el correcto, trasea y acepta o niega el acceso.

tres recursos bsicos: directorio de cada usuario (homes), impresoras (printers) y el recurso oculto (print$) donde estaran los controladores para Windows de las impresoras. Los parmetros de un recurso pueden ser variados, desde el nombre (nombre de la seccin) hasta usuarios vlidos para lectura/escritura. En el caso de los directorios de cada usuario, en lugar de tener un recurso por usuario tenemos una sola seccin que tiene la configuracin del
Listado 1. Fichero de configuracin bsico: smb.conf
[global] workgroup = LINUXPLUS netbios name = servidor security = user server string = Servidor de red %h log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/ panic-action %d encrypt passwords = true passdb backend = tdbsam invalid users = root passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\sUNIX\ spassword:* %n\n *Retype\snew\ sUNIX\ spassword:* %n\n *password\supdated \ssuccessfully* . socket options = TCP_NODELAY ... # Recursos compartidos obey pam restrictions = yes

Figura 2. Seleccin del modo de ejecucin del servicio

www.lpmagazine.org

35

linux en la empresa Integrar sistemas GNU/Linux con MS-Windows


lib/samba/printers. Donde podemos colocar Linux. En el ejemplo hemos configurado que todos los drivers para Windows de nuestras los ficheros que se creen dentro de contabilidad impresoras. tengan los permisos de lectura/escritura para el usuario propietario y el grupo corresponConfiguracin de nuestros recursos diente, en este caso contabilidad. Si se quisiera se podra crear un recurso general para que los usuarios puedan pasarse Configuracin de cuentas de usuario ficheros a travs de estos recursos como se Una vez configurados los recursos, ser nepuede ver en el Listado 3, si existen 2 gru- cesario crear los grupos y usuarios que van pos: gestin, contabilidad y que cada grupo a usar el servidor Samba. Primero en el sistesolamente pueda leer y escribir dentro de su ma y luego activar las cuentas de Samba, ya recurso. En el parmetro valid users se pueden que van por separado tanto las cuentas como poner tambin grupos con el prefijo @, tam- las contraseas (todo con el super-usuario del bin utilizamos un nuevo parmetro llamado sistema root): write list que nos permite definir una lista de usuarios que pueden escribir dentro de este Creamos los grupos en el sistema: addFigura 3. Configuracin del grupo de trabajo en recurso. Es muy importante que los directorios group gestion; addgroup contabilidad Windows XP Home Edition reales del sistema tambin tengan asignados Creamos el/los usuarios en el sistema: recurso referente al directorio de un usuario los grupos y permisos pertinentes, en este adduser usuario dado como se puede observar en el Listado 2. caso /usr/local/datos/gestion es del grupo gestin Agregamos el usuario a algn grupo La seccin referente a un recurso puede conte- y puede leer/escribir, de manera anloga se creado: adduser usuario gestion ner: una descripcin comment, si puede verse en entorno de red browseable, si puede escribirse writeable, usuarios vlidos valid users, el directorio donde est ubicado en el servidor path, y muchos ms parmetros que se pueden encontrar en el manual del smb.conf (man smb.conf). Por defecto el recurso homes slo se comparte en modo lectura, si se necesita trabajar con l es mejor cambiar la propiedad writeable a yes como est en el ejemplo del Listado 2. En el tema de los recursos como impresoras, Samba comparte todas las impresoras que tiene configurado el servidor. Lo que puede suceder es que cuando queramos utilizar alguna impresora el cliente Windows se ponga a buscar los drivers, para ello Samba dispone de un recurso oculto el print$ que apunta a un directorio del servidor el /var/ hara al directorio de contabilidad. Por defecto cualquier recurso nuevo se puede ver una vez reiniciado el servicio sin necesidad de ponerle el parmetro browseable. Truco: Siempre que se haya cambiado alguno de los parmetros de la configuracin del fichero smb.conf sera conveniente comprobar que la configuracin no tiene errores, para ello utilizaremos el comando testparm. Hay algunos otros parmetros de gran inters como pueden ser: force group, create mode y directory mode que suelen ser necesarios en el momento que queramos forzar que los archivos que se creen dentro de estos directorios sean de un grupo determinado con force group o bien forzar los permisos de los archivos con un valor octal con create mode de la misma forma que lo hacemos con chmod en la terminal de Activamos y asignamos contrasea a la cuenta Samba: smbpasswd -a -U usuario

Podramos tener algn usuario ya creado dentro del sistema que deseramos habilitarle como usuario Samba, esto lo podemos hacer utilizando el comando smbpasswd (por ejemplo: smbpasswd tomeu) y aadirlo a un grupo existente como por ejemplo: adduser tomeu contabilidad. Seguidamente debemos reiniciar el servicio de Samba para que coja la configuracin smb.conf, en Debian: /etc/init.d/samba restart.
Listado 2. Fichero de configuracin smb.conf (Recursos)
[homes] comment = Home Directories browseable = no writable = yes create mask = 0700 directory mask = 0700 valid users = %S [printers] comment = All Printers browseable = no path = /var/spool/samba printable = yes public = no writable = no create mode = 0700 [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no

Figura 4. Accediendo al servidor a travs de Entorno de red

36

Linux+ 10/2007

linux en la empresa Integrar sistemas GNU/Linux con MS-Windows


si no, pasar lo que podemos observar en la Figura 4. Una vez accedido al servidor nos vamos a encontrar casi todos los recursos que hemos definido dentro del smb.conf como se puede ver en la Figura 5, los dos recursos contabilidad, gestion y adems el recurso que pertenece al usuario actual, o sea su home, donde podr poner sus documentos, imgenes, etc., pero por ejemplo slo podr acceder y escribir dentro del recurso compartido de gestion ya que as se ha configurado. Truco: Para listar los usuarios conectados al servidor Samba y ver los recursos y ficheros que estn usando, utilizaremos el comando smbstatus.

Configuracin de Samba como PDC


Figura 5. Los recursos compartidos del servidor Ms adelante vamos a ver otro sistema que nos permitir una mejor gestin de las cuentas como puede ser el sistema de directorio OpenLDAP. en donde pone Grupo de trabajo: (Figura 3) vamos a poner el mismo grupo de trabajo (variable workgroup) que tengamos en la configuracin del servidor. Despus nos va a pedir que reiniciemos el equipo, una vez haya reiniciado ya podremos ir a: o bien a travs de Entorno de Red (Figura 4) o bien en Ejecutar poniendo la direccin IP o nombre del servidor (por ejemplo: \\servidor). Si el nombre de usuario y contrasea del equipo coinciden con las que hemos creado dentro del servidor no nos va pedir nada, pero Como hemos comentado al principio del artculo aveces la infraestructura es tan compleja que es necesario que adems de compartir recursos necesitemos que Samba nos sirva para: autenticar el inicio de sesin de los clientes, gestionar los perfiles de cada usuario y que adems nos permita conectar ms de un servidor a la red
Listado 3. Configuracin de recursos extras en smb.conf.
[gestion] comment = Documentos compartidos de gestin path = /usr/local/datos/gestion valid users = @gestion write list = @gestion force group = gestion create mode = 770 directory mode = 770 [contabilidad] comment = Documentos compartidos de contabilidad path = /usr/local/datos/ contabilidad valid users = @contabilidad write list = @contabilidad force group = contabilidad create mode = 770 directory mode = 770

Configuracin de los clientes MS-Windows


A partir de aqu ya se puede acceder al servidor Samba con un cliente MS-Windows, pero antes vamos a configurar el cliente. Primero ser necesario asignar el grupo de trabajo del equipo, por eso vamos a: Mi PC > Propiedades > Nombre de equipo > Cambiar ... y

Listado 4. Parmetros que convierten a Samba en PDC


domain master = yes local master = yes domain logons = yes preferred master = yes os level = 65

Figura 6. Asistente de Windows XP Professional para unir el equipo al dominio

www.lpmagazine.org

37

linux en la empresa Integrar sistemas GNU/Linux con MS-Windows


asegurarnos que en el fichero smb.conf no est el parmetro invalid users con el valor de root. Como se puede ver en el Listado 5 tenemos dos parmetros adicionales que definen las utilidades que tienen que ejecutar Samba cuando un equipo Windows se aade al dominio, esto es debido a que cada equipo del dominio tiene una cuenta del sistema asociada (del estilo pc-pruebas$). Una vez configurado Samba como PDC ser necesario reiniciar el daemon para que los cambios tengan efecto. Ahora lo nico que hace falta es ver como se configurarn los clientes Windows, en este caso vamos a unir al dominio un equipo con Windows XP Professional. Para hacerlo vamos a repetir los mismos primeros pasos: Mi PC > Propiedades > Nombre de equipo > Id. de Red, esto nos va sacar un asistente como el de la Figura 6 que nos va a hacer un par de preguntas referentes al equipo y a la red, en principio vamos a decirle que el equipo forma parte de una red organizativa y que la red es con dominio. Seguidamente nos pedir la informacin de usuario y del dominio, como vemos en la Figura 7, vamos a ponerle el nombre de nuestro dominio y un usuario existente en el servidor Samba. Despus nos pedir el nombre del equipo y el nombre del dominio (LINUXPLUS en nuestro caso), a partir de aqu nos va a pedir el usuario de administracin (root en nuestro caso), la contrasea y el dominio para que nos cree el usuario referente al equipo dentro del servidor como podemos ver en la Figura 8. Figura 8. Autenticarse como administrador para unirse al dominio y que sean secundarios de ste. En resumen lo mismo que hara un servidor de Microsoft (por ejemplo: Windows 2003 Server). En una red Microsoft est el concepto llamado Network Browsing, el cual permite a Windows y a Samba aparecer en el Entorno de Red de los clientes Windows. El Network Browsing es el que permite a los clientes generar la lista de servidores Windows y Samba que hay en la red, esto es gracias a unos mensajes que se transmiten va UDP en broadcast a los clientes y servidores. Para esto es necesario tener un servidor que acte de master browser, el cual coteja las listas de los masters locales de todas las sub-redes as es posible ir al Entorno de Red y poder ver cualquier grupo de trabajo y sus servidores. Para ello tendremos que aadir unos parmetros al fichero /etc/samba/ smb.conf para activar la funcionalidad de PDC a Samba, estos parmetros se colocarn dentro de la seccin global, de la forma especificada en el Listado 4. Como hemos dicho antes es necesario definir un servidor como master browser, para hacerlo vamos a activar el parmetro domain master, tambin vamos hacer que Samba permita autentificar el inicio de sesin de los usuarios con el parmetro domain logons. Una vez incluidos estos parmetros referentes al PDC, tendremos que aadir un par de parmetros referentes a la creacin automtica de usuarios y equipos. Para eso es necesario habilitar el uso del usuario root como usuario de administracin con el parmetro (admin users) y su correspondiente contrasea con smbpasswd, tendramos que

Figura 7. Asistente nos pregunta nombre de usuario y dominio

Configuracin del servicio de directorio OpenLDAP

Cuando las infraestructuras son muy grandes y se hace muy pesada la gestin de mltiples cuentas de usuario, grupos, equipos, etc., se hace necesario el uso de servicios que faciliten esa gestin, uno de estos servicios es OpenLDAP una versin 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 tambin puede servir como directorio de contactos de una empresa, porque aparte tambin nos permite organizar en forma de rbol la estructura de la empresa utilizando unidades organizativas o OU (Organizational Unit) que actan

Listado 5. Parmetros referentes a la creacin automtica de cuentas de equipos


admin users = root

add user script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false "%u" add machine script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false "%u"

38

Linux+ 10/2007

linux en la empresa Integrar sistemas GNU/Linux con MS-Windows

Figura 9. Estructura de la base de datos OpenLDAP como carpetas organizando usuarios, grupos, equipos, etc., como podemos ver en la Figura 9. En esta seccin nos vamos a centrar en la puesta en marcha del servicio y la configuracin de Samba para que utilice el OpenLDAP para la gestin de usuarios y dems. Lo primero ser instalar el servidor de OpenLDAP si no tenemos ninguno y las utilidades necesarias, como dijimos al principio trabajamos con la distribucin Debian etch, pero estos paquetes tambin estn 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 configuracin de manera automtica, pero antes nos puede pedir si queremos omitir hacer la configuracin, le decimos que no. Seguidamente nos empezar pidiendo parmetros sobre el nombre del dominio (linuxplus.com en nuestro caso) y nombre de la organizacin, finalmente la contrasea del administrador del directorio LDAP. Una vez instalado y configurado ya tendramos 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 raz del rbol y el nodo referente al usuario de administracin.

Listado 6. Configuracin de los parmetros 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" 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" delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"

Integracin de Samba con OpenLDAP

Para poder integrar Samba con OpenLDAP es necesario unas utilidades llamadas smbldaptools que tambin estn disponibles como paquete de Debian, aparte de configurar Samba para que trabaje con OpenLDAP como base de datos de cuentas de usuario, grupos, etc. Listado 7. Configuracin del fichero smbldap_ bind.conf
slaveDN="cn=admin,dc=linuxplus, dc=com" slavePw="contrasea_ administrador_ldap" masterDN="cn=admin,dc=linuxplus, dc=com" masterPw="contrasea_ administrador_ldap"

www.lpmagazine.org

39

linux en la empresa Integrar sistemas GNU/Linux con MS-Windows Ajustes de OpenLDAP


Al servidor de LDAP es necesario hacerle una serie de ajustes para poder ubicar los usuarios de Samba, parmetros muy simples como por ejemplo la inclusin del schema de Samba 3. El fichero de configuracin 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 aadimos esta lnea:
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 comprimidocongzip.Lovamosadescomprimir con gunzip samba.schema.gz para su posterior copia a /etc/ldap/schema. Despus vamos a aadir la linea index sambaSID,sambaPrimar yGroupSID,sambaDomainName eq despus de la lnea que contiene index objectClass eq. Este ltimo parmetro configura los ndices por los que indexar la base de datos para poder realizar bsquedas con estos campos. Finalmente vamos a reiniciar el daemon del servidor LDAP con /etc/init.d/slapd restart en nuestro caso con Debian.
Listado 8. Configuracin del fichero smbldap.conf
SID="S-1-5-21-20635753422847459922-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,${suffi x}" 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" ...

Figura 10. Herramienta de administracin de LDAP para Windows

Ajustes de Samba
Ahora vamos a aadir los parmetros necesarios para que Samba trabaje con OpenLDAP para la validacin de usuarios, gestin 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/contraseas con el parmetro passdb backend, seguidamente configuraremos todos los parmetros referentes a la estructura de cmo estn organizados los datos dentro del
Listado 9. Salida del comando smbldap-populate

OpenLDAP (usuarios, grupos, equipos, etc.) como est en el Listado 6. Cuidado con duplicar parmetros como los de add user script y add machine script que hemos puesto anteriormente, es mejor sustituirlos por los nuevos.

Utilidades para la integracin


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

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=Idmap,dc=linuxplus,dc=com adding new entry: ou=Computers,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=Replicators,ou=Groups,dc=linuxplus,dc=com adding new entry: cn=Backup Operators,ou=Groups,dc=linuxplus,dc=com adding new entry: sambaDomainName=LINUXPLUS,dc=linuxplus,dc=com

40

Linux+ 10/2007

linux en la empresa Integrar sistemas GNU/Linux con MS-Windows


realizar tareas de creacin, modificacin y borrado de cuentas en la base de datos LDAP, por tanto vamos a proceder a su configuracin para su posterior manejo. Despus de realizar la instalacin del paquete smbldap-tools vamos a proceder a su configuracin, la cual est ubicada en el directorio /etc/smbldap-tools, la mayora de veces nos podemos encontrar el directorio vaco, 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 contrasea en texto plano del administrador del LDAP que hemos configurado en la instalacin del mismo. Una vez editado vamos a cambiarle los permisos para que solamente root pueda acceder a l, con chmod 600 smbldap_bind.conf. 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 parmetros referentes al nombre de dominio y el nombre de las estructuras que contienen las cuentas de usuario dentro del LDAP. Vamos a cambiar los parmetros especificados por el Listado 8, el fichero tiene ms parmetros pero nosotros solamente vamos a cambiar stos. El parmetro SID determina el identificador del servidor que se obtiene de ejecutar el comando net getlocalsid en la consola como root, los otros parmetros son referentes al nombre del dominio Samba, IP del servidor LDAP (la misma mquina en nuestro caso) y la configuracin de los contenedores de los usuarios (People), grupos de usuarios (Groups) y cuentas de equipos (Computers). Una vez realizada la configuracin vamos a proceder a la posterior ejecucin 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 Listado 10. Cambios en el fichero /etc/ nsswitch.conf
... passwd: compat ldap group: compat ldap shadow: compat ldap ...

que la fase de configuracin de OpenLDAP haya ido bien porque si no smbldap-populate nos va a fallar. En la ejecucin del smbldap-populate va a realizar operaciones dentro de la base de datos OpenLDAP, creando los grupos requeridos por Samba para la administracin 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 contrasea que nos pedir al final de la ejecucin. Esto tambin quiere decir que el usuario que habamos creado al principio de pruebas tampoco nos va a servir porque ahora Samba utiliza LDAP como base de datos para las cuentas de usuario. Lo ltimo que nos queda hacer es que el sistema tambin 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 instalacin nos va a pedir la direccin del servidor LDAP (ldap://127.0.0.1/ en nuestro caso), el base DN (dc=linuxplus,dc=com en nuestro caso la raz de LDAP), la versin que utilizamos (versin 3), no necesitamos usuario para acceder a la base de datos, damos privilegios especiales de LDAP para root, cuenta de administracin de la base de datos LDAP (cn=admin, dc=linuxplus, dc=com en nuestro caso) y su contrasea. Una vez configurado cambiaremos los parmetros especificados en el Listado 10 del fichero /etc/nsswitch.conf. Es muy importante recordar que a partir de esta operacin los usuarios y grupos creados anteriormente con adduser (resp. addgroup) ya no estn operativos y es mejor eliminarlos con userdel y groupdel para volverlos a crear dentro del OpenLDAP. La gestin de cuentas se puede o bien hacer manualmente con las herramientas de consola o bien visuales, del estilo LDAP Admin for Windows (Figura 10) que se puede descargar de manera gratuita de http:// ldapadmin.sourceforge.net/.

Por ejemplo queremos crear los grupos que tenamos al principio: gestion y contabilidad, usando la herramienta ldapadd de la siguiente forma: crearemos un fichero de texto como el del Listado 11 y ejecutamos la siguiente lnea como root: ldapadd -x -D 'cn=admin, dc=linuxplus,dc=com' -W -f contabilidad.ldif. Tenemos que tener en cuenta que el gidNumber puede ser mayor o igual a 1000 para que no entre en conflicto con ningn otro. El fichero est compuesto por diferentes campos que nos determinan la situacin del nuevo objeto dentro de la base de datos con dn, el nombre del objeto con cn y despus el tipo o 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 por el SID local cogido con net getlocalsid y aadiendo 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 adems ya se encarga de darle un GID correlativo y un RID automticamente. Por ejemplo smbldap-groupadd -a contabilidad nos dar el mismo resultado que con ldapadd pero sin tener que especificar todos los parmetros 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 contrasea con smbldap-passwd tomeu. Es necesario que una vez hecho el cambio a 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 contrasea correspondiente.

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

www.lpmagazine.org

41

S-ar putea să vă placă și