Instalación y configuración de un Controlador Primario de

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