Samba_ Servidor para redes Microsoft

Page 1

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

Samba: Servidor para redes Microsoft Tomeu Capó Capó

linux@software.com.pl

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

34

S

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 máquinas con GNU/ Linux o Unix actúen como servidores o clientes en redes Microsoft, nos permite compartir diferentes tipos de recursos: archivos, directorios, colas de impresión, etc. Aparte de dar servicio a estos recursos la última versión (Samba v.3) también 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 administración de cuentas de usuario se puede complicar, la configuración básica 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 tendríamos que administrar por separado. OpenLDAP es una versión libre de LDAP (Lightweight Directory Access Protocol) que se

Linux+ 10/2007

basa en el estándar ISO X.500 y nos permite organizar de manera jerárquica todo tipo de cuentas, grupos, puntos de montaje, cuentas de equipos, etc. En este artículo vamos a tratar la configuración y puesta en marcha tanto de Samba como de OpenLDAP y la integración de los mismos.

Configuración del servidor Samba

Lo primero de todo es instalar los paquetes referentes a Samba, en este artículo hemos utilizado la distribución Debian etch. Los paquetes necesarios son: samba, sambacommon y samba-doc que también están disponibles en otras distribuciones como Fedora Core en RPM, Ubuntu, etc. Una vez instalados los paquetes procedemos a la configuración básica del servidor, aunque Debian ya preconfigura algunas cosas como por ejemplo el tipo de ejecución del servicio: daemon o bien a través 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 parámetros adicionales de configuración como: utilizar contraseñas cifradas, permitir trabajar con DHCP de manera conjunta con el servidor de nombres WINS. Este último nos permite que el


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

Figura 1. Configuración del grupo de trabajo

share: Cada cliente valida el usuario de manera separada, el cliente pide y posteriormente envía la contraseña 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 parámetro va en conjunción con otro parámetro, el password server, donde especificamos el nombre o IP del servidor de contraseñas (podría 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 parámetro necesita tener habilitado el cifrado de contraseñas con encrypt passwords.

servidor DHCP pueda proveer información como podemos observar en el Listado 1, es el sobre otros servidores de WINS (Windows primer parámetro: workgroup de la sección gloInternet Name Service) que haya en la red. bal. Aparte también podemos cambiar la des- En cuanto a los recursos por defecto, suele traer Una vez realizada la tarea de instalación cripción del servidor con server string y el nomel servicio arranca automáticamente, con los bre del equipo (de cara a la red Microsoft) con parámetros por defecto. netbios name. Si queremos contraseñas cifradas activamos encrypt passwords. Todos estos paráConfiguración básica metros son configurados desde la interfaz de Ahora vamos a revisar el fichero de configu- instalación. ración que nos genera el programa de instaUn parámetro importante es security que lación de manera automática 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: Configuración global del servidor. de la base de datos de usuarios de Samba es• homes: Configuración del recurso referen- pecificada con otro parámetro, el passdb backend. te al directorio home de cada usuario Hay diferentes niveles de seguridad: • printers: Recurso sobre las colas de impresión. • user: En este nivel el cliente envía una petición de iniciar la sesión de manera Cuando revisemos el fichero de configuración directa, éste proporciona el usuario y conlo que tendremos que mirar es si el nombre traseña. El servidor recoge el usuario/condel dominio/grupo de trabajo es el correcto, traseña y acepta o niega el acceso.

tres recursos básicos: directorio de cada usuario (homes), impresoras (printers) y el recurso oculto (print$) donde estarían los controladores para Windows de las impresoras. Los parámetros de un recurso pueden ser variados, desde el nombre (nombre de la sección) hasta usuarios válidos para lectura/escritura. En el caso de los directorios de cada usuario, en lugar de tener un recurso por usuario tenemos una sola sección que tiene la configuración del Listado 1. Fichero de configuración básico: 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

obey pam restrictions = yes 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

Figura 2. Selección del modo de ejecución 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 corresponConfiguración de nuestros recursos diente, en este caso contabilidad. Si se quisiera se podría crear un recurso general para que los usuarios puedan pasarse Configuración de cuentas de usuario ficheros a través 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: gestión, 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 parámetro valid users se pueden que van por separado tanto las cuentas como poner también grupos con el prefijo @, tam- las contraseñas (todo con el super-usuario del bién utilizamos un nuevo parámetro 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. Configuración del grupo de trabajo en recurso. Es muy importante que los directorios group gestion; addgroup contabilidad Windows XP Home Edition reales del sistema también 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 gestión • Agregamos el usuario a algún grupo La sección referente a un recurso puede conte- y puede leer/escribir, de manera análoga se creado: adduser usuario gestion ner: una descripción comment, si puede verse en entorno de red browseable, si puede escribirse writeable, usuarios válidos valid users, el directorio donde está ubicado en el servidor path, y muchos más parámetros que se pueden encontrar en el manual del smb.conf (man smb.conf). Por defecto el recurso homes sólo 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/

haría al directorio de contabilidad. Por defecto cualquier recurso nuevo se puede ver una vez reiniciado el servicio sin necesidad de ponerle el parámetro browseable. Truco: Siempre que se haya cambiado alguno de los parámetros de la configuración del fichero smb.conf sería conveniente comprobar que la configuración no tiene errores, para ello utilizaremos el comando testparm. Hay algunos otros parámetros de gran interés 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 contraseña a la cuenta Samba: smbpasswd -a -U usuario

Podríamos tener algún usuario ya creado dentro del sistema que deseáramos habilitarle como usuario Samba, esto lo podemos hacer utilizando el comando smbpasswd (por ejemplo: smbpasswd tomeu) y añadirlo a un grupo existente como por ejemplo: adduser tomeu contabilidad. Seguidamente debemos reiniciar el servicio de Samba para que coja la configuración smb.conf, en Debian: /etc/init.d/samba restart. Listado 2. Fichero de configuración 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 través 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 además el recurso que pertenece al usuario actual, o sea su home, donde podrá poner sus documentos, imágenes, etc., pero por ejemplo sólo 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 están usando, utilizaremos el comando smbstatus.

Configuración de Samba como PDC Como hemos comentado al principio del artículo aveces la infraestructura es tan compleja que es necesario que además de compartir recursos

Figura 5. Los recursos compartidos del servidor Más adelante vamos a ver otro sistema que nos permitirá una mejor gestión de las cuentas como puede ser el sistema de directorio OpenLDAP.

Configuración 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

en donde pone “Grupo de trabajo:” (Figura 3) vamos a poner el mismo grupo de trabajo (variable workgroup) que tengamos en la configuración del servidor. Después nos va a pedir que reiniciemos el equipo, una vez haya reiniciado ya podremos ir a: o bien a través de Entorno de Red (Figura 4) o bien en Ejecutar poniendo la dirección IP o nombre del servidor (por ejemplo: \\servidor). Si el nombre de usuario y contraseña del equipo coinciden con las que hemos creado dentro del servidor no nos va pedir nada, pero

necesitemos que Samba nos sirva para: autenticar el inicio de sesión de los clientes, gestionar los perfiles de cada usuario y que además nos permita conectar más de un servidor a la red Listado 3. Configuración de recursos extras en smb.conf. [gestion] comment = Documentos compartidos de gestión 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

Listado 4. Parámetros que convierten a Samba en PDC domain master = yes local master = yes domain logons = yes preferred master = yes

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

www.lpmagazine.org

os level = 65

37


linux en la empresa Integrar sistemas GNU/Linux con MS-Windows asegurarnos que en el fichero smb.conf no esté el parámetro invalid users con el valor de root. Como se puede ver en el Listado 5 tenemos dos parámetros adicionales que definen las utilidades que tienen que ejecutar Samba cuando un equipo Windows se añade 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 configurarán 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

Figura 7. Asistente nos pregunta nombre de usuario y dominio

el equipo forma parte de una red organizativa y que la red es con dominio. Seguidamente nos pedirá la información 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. Después 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 administración (root en nuestro caso), la contraseña 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 haría 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 vía UDP en broadcast a los clientes y servidores. Para esto es necesario tener un servidor que actúe 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 añadir unos parámetros al fichero /etc/samba/ smb.conf para activar la funcionalidad de PDC a Samba, estos parámetros se colocarán dentro de la sección global, de la forma especificada en el Listado 4.

38

Como hemos dicho antes es necesario definir un servidor como master browser, para hacerlo vamos a activar el parámetro domain master, también vamos hacer que Samba permita autentificar el inicio de sesión de los usuarios con el parámetro domain logons. Una vez incluidos estos parámetros referentes al PDC, tendremos que añadir un par de parámetros referentes a la creación automática de usuarios y equipos. Para eso es necesario habilitar el uso del usuario root como usuario de administración con el parámetro (admin users) y su correspondiente contraseña con smbpasswd, tendríamos que

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

Listado 5. Parámetros referentes a la creación automática 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"

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 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. 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 disponi-

bles 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

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

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 smbldaptools 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. Listado 7. Configuración del fichero smbldap_ bind.conf

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"

slaveDN="cn=admin,dc=linuxplus,

add machine script = /usr/sbin/smbldap-useradd -w "%u"

dc=com"

add group script = /usr/local/smbldap-groupadd -p "%g"

slavePw="contraseña_

add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"

administrador_ldap"

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"

www.lpmagazine.org

masterDN="cn=admin,dc=linuxplus, dc=com" masterPw="contraseña_ administrador_ldap"

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, 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á comprimidocongzip.Lovamosadescomprimir con gunzip samba.schema.gz para su posterior copia a /etc/ldap/schema. Después vamos a añadir la linea index sambaSID,sambaPrimar yGroupSID,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. Listado 8. Configuración 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" ...

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.

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

Listado 9. Salida del comando smbldap-populate Populating LDAP directory for domain LINUXPLUS (S-1-5-21-2063575342-2847459922-2710907528)

suffix="dc=linuxplus,dc=com"

(using builtin directory structure)

usersdn="ou=People,${suffix}"

entry dc=linuxplus,dc=com already exist.

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" ...

40

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

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

Linux+ 10/2007


linux en la empresa Integrar sistemas GNU/Linux con MS-Windows 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

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. 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

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 texto como 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. Tenemos que tener en cuenta que el gidNumber puede ser mayor o igual a 1000 para que 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 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.

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 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. 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

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 en el Listado 10 del fichero /etc/nsswitch.conf. 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 “LDAP Admin for Windows” (Figura 10) que se puede descargar de manera gratuita de http:// ldapadmin.sourceforge.net/.

El campo sambaSID está compuesto por el 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 nos dará 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 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 contraseña correspondiente.

Listado 10. Cambios en el fichero /etc/ nsswitch.conf

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

passwd: compat ldap

objectclass: sambaGroupMapping

group: compat ldap

sambaGroupType: 2

shadow: compat ldap

sambaSID: S-1-5-21-2063575342-2847459922-2710907528-23653

...

gidNumber: 11326

www.lpmagazine.org

41


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.