Upload
siscot-elearning-evolution
View
217
Download
1
Embed Size (px)
DESCRIPTION
amba es un servidor/cliente de software libre como de OpenLDAP y la integración de los mismos. Linux+ 10/2007 siendo miembro de un dominio existente en la red o bien (usuarios Linux, usuarios Windows, ...) que tendríamos usuarios, el nombre del grupo de trabajo/dominio Figura Lo primero de todo es instalar los paquetes referentes a Una vez instalados los paquetes procedemos a la configu- algunas cosas como por ejemplo el tipo de ejecución del siendo el servidor maestro del dominio.
Citation preview
linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows
34 Linux+ 10/2007
linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows
35www.lpmagazine.org
linux
@so
ftwar
e.co
m.p
l
Samba es un servidor/cliente de software libre que implementa el protocolo de red para com-partir 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 recur-sos: 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 ac-tuando 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 adminis-tración de cuentas de usuario se puede complicar, la con-figuració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
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 SambaLo 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, samba-common 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 configu-ració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 adicio-nales 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
Samba: Servidor para redes Microsoft
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.
Tomeu Capó Capó
linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows
34 Linux+ 10/2007
linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows
35www.lpmagazine.org
servidor DHCP pueda proveer información sobre otros servidores de WINS (Windows Internet Name Service) que haya en la red.
Una vez realizada la tarea de instalación el servicio arranca automáticamente, con los parámetros por defecto.
Configuración básicaAhora vamos a revisar el fichero de configu-ración que nos genera el programa de insta-lación de manera automática y que reside en /etc/samba llamado smb.conf. Este fichero está dividido en una serie de secciones:
• global: Configuración global del servidor.• homes: Configuración del recurso referen-
te al directorio home de cada usuario• printers: Recurso sobre las colas de im-
presión.
Cuando revisemos el fichero de configuración lo que tendremos que mirar es si el nombre del dominio/grupo de trabajo es el correcto,
como podemos observar en el Listado 1, es el primer parámetro: workgroup de la sección glo-bal. Aparte también podemos cambiar la des-cripción del servidor con server string y el nom-bre del equipo (de cara a la red Microsoft) con netbios name. Si queremos contraseñas cifradas activamos encrypt passwords. Todos estos pará-metros son configurados desde la interfaz de instalación.
Un parámetro importante es security que establece el nivel de seguridad de nuestro servi-dor Samba, por defecto el nivel es user, esto sig-nifica que para acceder al servidor es necesario validarse usando un usuario existente dentro de la base de datos de usuarios de Samba es-pecificada con otro parámetro, el passdb backend. Hay diferentes niveles de seguridad:
• user: En este nivel el cliente envía una petición de iniciar la sesión de manera directa, éste proporciona el usuario y con-traseña. El servidor recoge el usuario/con-traseña y acepta o niega el acceso.
• share: Cada cliente valida el usuario de manera separada, el cliente pide y poste-riormente envía la contraseña cada vez que se solicita un recurso compartido del servidor sin necesidad de mandar el usua-rio.
• 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 ser-vidores que son secundarios, nos da la posibilidad de usar una base de datos central de cuentas de usuario del contro-lador principal de dominio. Este paráme-tro necesita tener habilitado el cifrado de contraseñas con encrypt passwords.
En cuanto a los recursos por defecto, suele traer tres recursos básicos: directorio de cada usua-rio (homes), impresoras (printers) y el recurso oculto (print$) donde estarían los controla-dores 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
Figura 2. Selección del modo de ejecución del servicio
Figura 1. Configuración del grupo de trabajo
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
36 Linux+ 10/2007
linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows
37www.lpmagazine.org
linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows
recurso referente al directorio de un usuario dado como se puede observar en el Listado 2. La sección referente a un recurso puede conte-ner: una descripción comment, si puede verse en entorno de red browseable, si puede escribirse writeable, usuarios válidos valid users, el direc-torio donde está ubicado en el servidor path, y muchos más parámetros que se pueden encon-trar 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 impre-soras, Samba comparte todas las impresoras que tiene configurado el servidor. Lo que puede suceder es que cuando queramos uti-lizar 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/
lib/samba/printers. Donde podemos colocar todos los drivers para Windows de nuestras impresoras.
Configuración de nuestros recursosSi se quisiera se podría crear un recurso ge-neral para que los usuarios puedan pasarse ficheros a través de estos recursos como se puede ver en el Listado 3, si existen 2 gru-pos: gestión, contabilidad y que cada grupo solamente pueda leer y escribir dentro de su recurso. En el parámetro valid users se pueden poner también grupos con el prefijo @, tam-bién utilizamos un nuevo parámetro llamado write list que nos permite definir una lista de usuarios que pueden escribir dentro de este recurso. Es muy importante que los directorios reales del sistema también tengan asignados los grupos y permisos pertinentes, en este caso /usr/local/datos/gestion es del grupo gestióny puede leer/escribir, de manera análoga se 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 com-probar que la configuración no tiene errores, para ello utilizaremos el comando testparm.
Hay algunos otros parámetros de gran in-terés como pueden ser: force group, create mode y directory mode que suelen ser necesarios en el momento que queramos forzar que los archi-vos 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 for-ma que lo hacemos con chmod en la terminal de
Linux. En el ejemplo hemos configurado que los ficheros que se creen dentro de contabilidad tengan los permisos de lectura/escritura para el usuario propietario y el grupo correspon-diente, en este caso contabilidad.
Configuración de cuentas de usuarioUna vez configurados los recursos, será ne-cesario crear los grupos y usuarios que van a usar el servidor Samba. Primero en el siste-ma y luego activar las cuentas de Samba, ya que van por separado tanto las cuentas como las contraseñas (todo con el super-usuario del sistema root):
• Creamos los grupos en el sistema: add-group gestion; addgroup contabilidad
• Creamos el/los usuarios en el sistema: adduser usuario
• Agregamos el usuario a algún grupo creado: adduser usuario gestion
• 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 hacerutilizando el comando smbpasswd (por ejemplo: smbpasswd tomeu) y añadirlo a un grupoexistente como por ejemplo: adduser tomeu contabilidad. Seguidamente debemos reiniciar el servicio de Samba para que coja la configura-ción smb.conf, en Debian: /etc/init.d/samba restart.
Figura 3. Configuración del grupo de trabajo en Windows XP Home Edition
Figura 4. Accediendo al servidor a través de Entorno de red
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
36 Linux+ 10/2007
linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows
37www.lpmagazine.org
linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows
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-WindowsA partir de aquí ya se puede acceder al ser-vidor 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 nom-bre del servidor (por ejemplo: \\servidor). Si el nombre de usuario y contraseña del equi-po coinciden con las que hemos creado den-tro del servidor no nos va pedir nada, pero
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 contabili-dad, 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ícu-lo aveces la infraestructura es tan compleja que es necesario que además de compartir recursos necesitemos que Samba nos sirva para: auten-ticar 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
Figura 5. Los recursos compartidos del servidor
Figura 6. Asistente de Windows XP Professional para unir el equipo al dominio
Listado 4. Parámetros que convierten a Samba en PDC
domain master = yes
local master = yes
domain logons = yes
preferred master = yes
os level = 65
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
38 Linux+ 10/2007
linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows
39www.lpmagazine.org
linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows
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.
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
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 equi-po 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 información de usuario y del domi-nio, como vemos en la Figura 7, vamos a po-nerle el nombre de nuestro dominio y un usu-ario 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 con-traseña y el dominio para que nos cree el usu-ario referente al equipo dentro del servidor como podemos ver en la Figura 8.
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 ha-ce necesario el uso de servicios que faciliten esa gestión, uno de estos servicios es OpenLDAP una versión libre de LDAP (Lightweight Direc-tory 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 per-mite organizar en forma de árbol la estructura de la empresa utilizando unidades organiza-tivas o OU (Organizational Unit) que actúan
Figura 7. Asistente nos pregunta nombre de usuario y dominio
Figura 8. Autenticarse como administrador para unirse al dominio
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"
38 Linux+ 10/2007
linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows
39www.lpmagazine.org
linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows
como carpetas organizando usuarios, grupos, equipos, etc., como podemos ver en la Figu-ra 9. En esta sección nos vamos a centrar en la puesta en marcha del servicio y la configura-ció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 uti-lidades 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 empe-zará 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, pode-mos 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 OpenLDAPPara poder integrar Samba con OpenLDAP es necesario unas utilidades llamadas smbldap-tools que también están disponibles como pa-quete de Debian, aparte de configurar Samba para que trabaje con OpenLDAP como base de datos de cuentas de usuario, grupos, etc.
Figura 9. Estructura de la base de datos OpenLDAP
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"
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"
40 Linux+ 10/2007
linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows
41www.lpmagazine.org
linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows
Ajustes de OpenLDAPAl 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 mo-dificar 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 pos-terior 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 SambaAhora 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ónComo hemos comentado al principio de este apartado, para integrar Samba y OpenLDAP necesitamos las utilidades smbldap-tools. Estas herramientas son utilizadas por Samba para
Figura 10. Herramienta de administración de LDAP para Windows
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,${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"
...
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
40 Linux+ 10/2007
linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows
41www.lpmagazine.org
linux en la empresaIntegrar sistemas GNU/Linux con MS-Windows
realizar tareas de creación, modificación y bo-rrado 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 pa-quete smbldap-tools vamos a proceder a su con-figuración, la cual está ubicada en el directorio /etc/smbldap-tools, la mayoría de veces nos po-demos encontrar el directorio vacío, para ello vamos a copiar dos ficheros que se encuentran en /usr/share/doc/smbldap-tools/examples llama-dos smbldap_bind.conf y smbldap.conf.gz este úl-timo comprimido (mejor descomprimirlo antes de su copia). Los vamos a copiar al directorio /etc/smbldap-tools y vamos a realizar unas modi-ficaciones, primero al fichero smbldap_bind.conf como se puede ver en el Listado 7. Este fiche-ro 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.
Seguidamente realizaremos una serie de cambios al fichero smbldap.conf, este fichero ya viene preconfigurado con unos valores por defecto y que nosotros ajustaremos depen-diendo de nuestras necesidades. Realmente basta con cambiar cinco parámetros referentes al nombre de dominio y el nombre de las es-tructuras 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 coman-do smbldap-populate -a administrador el cual nos va a crear toda la estructura de grupos por de-fecto 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-po-pulate va a realizar operaciones dentro de la base de datos OpenLDAP, creando los gru-pos requeridos por Samba para la adminis-tración del dominio y el usuario administra-dor 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 pa-ra 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 di-recció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, cuen-ta 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. Es muy importante recordar que a partir de esta operación los usuarios y grupos creados an-teriormente 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 herramien-tas 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/.
Por ejemplo queremos crear los grupos que teníamos al principio: gestion y contabili-dad, usando la herramienta ldapadd de la sigu-iente forma: crearemos un fichero de textocomo el del Listado 11 y ejecutamos la sigu-iente línea como root: ldapadd -x -D 'cn=admin,dc=linuxplus,dc=com' -W -f contabilidad.ldif.
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 cam-pos que nos determinan la situación del nue-vo 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), samba-GroupMapping (grupo de Samba). Cada tipo de objeto tiene su conjunto de campos propios, como por ejemplo el posixGroup nos propor-ciona el campo gidNumber y el sambaGroupMa-pping los campos sambaGroupType y sambaSID.
El campo sambaSID está compuesto porel SID local cogido con net getlocalsid y aña-diendo el RID que es igual a 2*gidNumber+1001. Pero es mejor utilizar las herramien-tas smbldap-tools que ya llevan utilidades pa-ra crear y borrar todo tipo de usuarios y gru-pos 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 nom-bre 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 anterior-mente, 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 corres-pondiente.
Listado 10. Cambios en el fichero /etc/nsswitch.conf
...
passwd: compat ldap
group: compat ldap
shadow: compat ldap
...
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