Samba Servidor para redes Microsoft.pdf
-
Upload
cennio-di-gerardo-castro -
Category
Documents
-
view
62 -
download
2
Transcript of Samba Servidor para redes Microsoft.pdf
-
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 mquinas con GNU/
Linux o Unix acten como servidores o clientes en redes
Microsoft, nos permite compartir diferentes tipos de recur-
sos: 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 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-
tracin de cuentas de usuario se puede complicar, la con-
figuracin 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.
Configuracin del servidor SambaLo primero de todo es instalar los paquetes referentes a
Samba, en este artculo hemos utilizado la distribucin
Debian etch. Los paquetes necesarios son: samba, samba-
common 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 configu-
racin 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 adicio-
nales 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
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 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.
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 informacin
sobre otros servidores de WINS (Windows
Internet Name Service) que haya en la red.
Una vez realizada la tarea de instalacin
el servicio arranca automticamente, con los
parmetros por defecto.
Configuracin bsicaAhora vamos a revisar el fichero de configu-
racin que nos genera el programa de insta-
lacin de manera automtica y que reside en
/etc/samba llamado smb.conf. Este fichero
est dividido en una serie de secciones:
global: Configuracin global del servidor.
homes: Configuracin del recurso referen-
te al directorio home de cada usuario
printers: Recurso sobre las colas de im-
presin.
Cuando revisemos el fichero de configuracin
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 parmetro: workgroup de la seccin glo-
bal. Aparte tambin podemos cambiar la des-
cripcin del servidor con server string y el nom-
bre del equipo (de cara a la red Microsoft) con
netbios name. Si queremos contraseas cifradas
activamos encrypt passwords. Todos estos par-
metros son configurados desde la interfaz de
instalacin.
Un parmetro 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 parmetro, el passdb backend.
Hay diferentes niveles de seguridad:
user: En este nivel el cliente enva una
peticin de iniciar la sesin de manera
directa, ste proporciona el usuario y con-
trasea. El servidor recoge el usuario/con-
trasea y acepta o niega el acceso.
share: Cada cliente valida el usuario de
manera separada, el cliente pide y poste-
riormente enva la contrasea 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 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 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 parme-
tro necesita tener habilitado el cifrado de
contraseas con encrypt passwords.
En cuanto a los recursos por defecto, suele traer
tres recursos bsicos: directorio de cada usua-
rio (homes), impresoras (printers) y el recurso
oculto (print$) donde estaran los controla-
dores 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
Figura 2. Seleccin del modo de ejecucin del servicio
Figura 1. Configuracin del grupo de trabajo
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
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 seccin referente a un recurso puede conte-
ner: una descripcin comment, si puede verse en
entorno de red browseable, si puede escribirse
writeable, usuarios vlidos valid users, el direc-
torio donde est ubicado en el servidor path, y
muchos ms parmetros que se pueden encon-
trar 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 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.
Configuracin de nuestros recursosSi se quisiera se podra crear un recurso ge-
neral para que los usuarios puedan pasarse
ficheros a travs de estos recursos como se
puede ver en el Listado 3, si existen 2 gru-
pos: gestin, contabilidad y que cada grupo
solamente pueda leer y escribir dentro de su
recurso. En el parmetro valid users se pueden
poner tambin grupos con el prefijo @, tam-
bin utilizamos un nuevo parmetro 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 tambin tengan asignados
los grupos y permisos pertinentes, en este
caso /usr/local/datos/gestion es del grupo gestin
y puede leer/escribir, de manera anloga se
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 com-
probar que la configuracin no tiene errores,
para ello utilizaremos el comando testparm.
Hay algunos otros parmetros de gran in-
ters 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.
Configuracin 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 contraseas (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 algn grupo
creado: adduser usuario gestion
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 configura-
cin smb.conf, en Debian: /etc/init.d/samba restart.
Figura 3. Configuracin del grupo de trabajo en Windows XP Home Edition
Figura 4. Accediendo al servidor a travs de Entorno de red
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
-
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
Ms adelante vamos a ver otro sistema que
nos permitir una mejor gestin de las cuentas
como puede ser el sistema de directorio
OpenLDAP.
Configuracin 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
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 nom-
bre del servidor (por ejemplo: \\servidor). Si
el nombre de usuario y contrasea 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 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 Como hemos comentado al principio del artcu-
lo aveces la infraestructura es tan compleja que
es necesario que adems de compartir recursos
necesitemos que Samba nos sirva para: auten-
ticar 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
Figura 5. Los recursos compartidos del servidor
Figura 6. Asistente de Windows XP Professional para unir el equipo al dominio
Listado 4. Parmetros que convierten a Samba en PDC
domain master = yes
local master = yes
domain logons = yes
preferred master = yes
os level = 65
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
-
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 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
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 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 informacin 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. 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 con-
trasea y el dominio para que nos cree el usu-
ario referente al equipo dentro del servidor
como podemos ver en la Figura 8.
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 ha-
ce necesario el uso de servicios que faciliten esa
gestin, uno de estos servicios es OpenLDAP
una versin 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 tambin
puede servir como directorio de contactos de
una empresa, porque aparte tambin nos per-
mite organizar en forma de rbol la estructura
de la empresa utilizando unidades organiza-
tivas o OU (Organizational Unit) que actan
Figura 7. Asistente nos pregunta nombre de usuario y dominio
Figura 8. Autenticarse como administrador para unirse al dominio
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 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 seccin nos vamos a centrar en la
puesta en marcha del servicio y la configura-
cin 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 uti-
lidades necesarias, como dijimos al principio
trabajamos con la distribucin Debian etch,
pero estos paquetes tambin estn 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 configuracin de manera
automtica, pero antes nos puede pedir si
queremos omitir hacer la configuracin, le
decimos que no. Seguidamente nos empe-
zar 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, 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
raz del rbol y el nodo referente al usuario
de administracin.
Integracin de Samba con OpenLDAPPara poder integrar Samba con OpenLDAP es
necesario unas utilidades llamadas smbldap-
tools que tambin estn 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. 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"
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. 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"
-
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, parmetros muy simples como por
ejemplo la inclusin del schema de Samba 3.
El fichero de configuracin 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 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
comprimido con gzip. Lo vamos a descomprimir
con gunzip samba.schema.gz para su pos-
terior 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.
Ajustes de SambaAhora 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
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 integracinComo 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 administracin de LDAP para Windows
Listado 8. Configuracin 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 creacin, modificacin y bo-
rrado 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 pa-
quete smbldap-tools vamos a proceder a su con-
figuracin, la cual est ubicada en el directorio
/etc/smbldap-tools, la mayora de veces nos po-
demos encontrar el directorio vaco, 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 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 depen-
diendo de nuestras necesidades. Realmente
basta con cambiar cinco parmetros 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 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 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 configuracin de OpenLDAP
haya ido bien porque si no smbldap-populate nos
va a fallar. En la ejecucin 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-
tracin 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 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 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 instalacin nos va a pedir la di-
reccin 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, cuen-
ta 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 an-
teriormente 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 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 tenamos al principio: gestion y contabili-
dad, usando la herramienta ldapadd de la sigu-
iente forma: crearemos un fichero de texto
como el del Listado 11 y ejecutamos la sigu-
iente lnea 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 para
que no entre en conflicto con ningn otro. El
fichero est compuesto por diferentes cam-
pos que nos determinan la situacin del nue-
vo 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), 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 por
el SID local cogido con net getlocalsid y aa-
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 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 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 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 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 contrasea 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