Esta instalación está basada en el Debian Lenny y los paquetes instalados son:
slapd 2.4.11-1+1
samba 2:3.2.5-4l
gosa 2.5.16.1-4
gosa-schema 2.5.16.1-4
php5 5.2.6.dfsg
apache2 2.2.9-10+l
1. Instalar OpenLDAP
# aptitude install slapd ldap-utils
Contraseña del administrador: passwd_desea_poner
Verificación de contraseña: passwd_puesto_anterior
Prueba para ver si la configuración que realizamos del OpenLDAP está bien:
# ldapsearch -x -b "dc=dominio,dc=cu"
# extended LDIF
#
# LDAPv3
# base <dc=dominio,dc=cu> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# dominio.cu
dn: dc=dominio,dc=cu
objectClass: top
objectClass: dcObject
objectClass: organization
o: dominio.cu
dc: dominio
# admin, dominio.cu
dn: cn=admin,dc=dominio,dc=cu
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
Ahora se instalará los paquetes del GOsa para el manejo de cuentas y equipos en bases de datos
OpenLDAP. El uso del GOsa permitirá un manejo más simple de usuarios, grupos, etc.
Ya instalados estos paquetes se configurará el OpenLDAP para incluirlos los distintos schema que
serán necesario para el Gosa.
# cp /usr/share/doc/gosa/contrib/openldap/samba3.schema.gz /etc/ldap/schema
# gunzip /etc/ldap/schema/samba3.schema.gz
# nano /etc/ldap/slapd.conf (la configuración del archivo es mas grande, solo pongo lo que
debe ser añadido o modificado)
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/samba3.schema
include /etc/ldap/schema/gosystem.schema
include /etc/ldap/schema/gofon.schema
include /etc/ldap/schema/goto.schema
include /etc/ldap/schema/gofax.schema
include /etc/ldap/schema/goserver.schema
include /etc/ldap/schema/gosa+samba3.schema
password-hash {MD5}
El orden de estos includes es importante y la opción “password-hash {MD5}” hace que LDAP
siempre almacene las contraseñas encriptadas usando MD5.
Ahora se debe de reiniciar el OpenLDAP.
Una vez realizado todo esto ya se puede empezar con la configuración del GOsa. Para que el
GOsa funcione necesita un usuario admin, para crear este usuario se usarán varios LDIF's que se
irán explicando poco a poco.
ldif: (LDAP Data Interchange Format) es un formato que se utiliza para la importación y
exportación de datos independientemente del servidor LDAP que esté utilizando. El ldif es
simplemente un formato de texto ASCII para entradas LDAP.
Primero se creará un ldif para crear el directorio people, groups, machines. Para mejor
organización recomiendo que dentro el directorio /etc/ldap/ creen una carpeta llamada /ldif/ para
que ponga adentro todos los archivos ldif creados. Luego se crearán los otros dos archivos ldif
para que ya el usuario administrador del GOsa se pueda usar. Para editar estos archivos usen el
editor de testo preferido de ustedes.
# mkdir /etc/ldap/ldif
# touch /etc/ldap/ldif/crear_dir.ldif
# nano /etc/ldap/ldif/crear_dir.ldif
dn: ou=people,dc=dominio,dc=cu
objectClass: organizationalUnit
objectClass: gosaObject
gosaSubtreeACL: :all
ou: people
dn: ou=groups,dc=dominio,dc=cu
objectClass: organizationalUnit
objectClass: gosaObject
gosaSubtreeACL: :all
ou: groups
dn: ou=machines,dc=dominio,dc=cu
objectClass: organizationalUnit
objectClass: gosaObject
gosaSubtreeACL: :all
ou: machines
# touch /etc/ldap/ldif/systemgosa.ldif
# nano /etc/ldap/ldif/systemgosa.ldif
dn: ou=systems,dc=dominio, dc=cu
objectClass: organizationalUnit
ou: systems
dn: ou=configs,ou=systems,dc=dominio,dc=cu
objectClass: organizationalUnit
ou: configs
dn: ou=gosa,ou=configs,ou=systems,dc=dominio,dc=cu
objectClass: organizationalUnit
ou: gosa
# touch /etc/ldap/ldif/admingosa.ldif
# nano /etc/ldap/ldif/admingosa.ldif
dn: cn=admin,ou=people,dc=dominio,dc=cu
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: gosaAccount
uid: admin
cn: admin
givenName: admin
sn: Administrador de GOSA
sambaLMPassword: 10974C6EFC0AEE1917306D272A9441BB
sambaNTPassword: 38F3951141D0F71A039CFA9D1EC06378
userPassword:: dGVzdGVy
dn: cn=administrators,ou=groups,dc=dominio,dc=cu
objectClass: gosaObject
objectClass: posixGroup
gosaSubtreeACL: :all
cn: administrators
gidNumber: 999
memberUid: admin
Ahora llego la hora de añadir los archivos ldif creado a nuestro directorio OpenLDAP.
Luego de haber realizado todo esto pueden poner en el navegador http://ip_servidor/gosa. Una
vez cargada la página realizará una serie de pasos, les explicaré solo los mas importantes, en los
demás será a gusto de usted.
# nano /etc/nsswitch.conf
passwd: compat ldap
group: compat ldap
shadow: compat ldap
# getent group
Después que salgan todos los grupos del sistema debe salir algo así
administrators:*:999:admin
4. En este paso ya se puede pasar a la instalación y configuración de Samba3 para que sea
usada como PDC y tome los usuarios del servidor OpenLDAP.
Con esto ya el Samba queda completamente instalado, ahora se configurará para que quede
como un PDC master. En esta sección solo se explicará lo modificado o lo añadido nuevo (lo
nuevo tendra delante el signo (+)). Para la configuración completa mirar Anexo 1.
# nano /etc/samba/smb.conf
[global]
# Este es el nombre del grupo en la red.
workgroup = DOMINIO
(+)realm = DOMINIO.CU
# Nombre que se mostrará en la red
(+)netbios name = NombPC
# Establece un literal descriptivo para el servidor Samba. Con esto pondrá versión del samba y pc donde
# está instalado.
server string = Samba PDC %v en (%h)
# Controla si Samba actúa como servidor WINS.
wins support = no
# Define si se utiliza el servidor Samba como un proxy DNS.
dns proxy = no
# Su principal función es controlar como se realiza la resolución NetBIOS.
name resolve order = wins lmhosts host bcast
# Configuración para que la pc sea PDC master
# Determina si el Samba va hacer PDC master o no.
(+)os level = 65
# Controla si Samba es un examinador principal para nuestro dominio o grupo de trabajo
(+)preferred master = yes
# Le permite al nmbd intentar y constituirse en examinador principal en una subred
(+)local master = yes
# Este parámetro indica a nmbd que solicite un nombre NetBIOS de dominio especial que lo identifica como
# examinador principal del dominio para el grupo de trabajo dado.
(+)domain master = yes
# Si se pone como yes, el servidor Samba como controlador primario de dominio (PDC). Este parámetro
# se debe usar conjuntamete con domain master
(+)domain logons = yes
# Esta opción afecta el como los clientes responden a Samba. Con el nivel de seguridad user un cliente
# tiene que conectarse con un nombre de usuario y clave válidos.
security = user
# Esto es para negociar las claves cifradas con el cliente
encrypt passwords = yes
# Activa o desactiva el acceso a cuentas que tienen claves nulas.
(+) null passwords = no
# Aquí se pone los hosts o segmento de red a los que se le permite acceso a los servicio de Samba
(+)hosts allow = 192.168.10.0/24
# Permite redefinir la lista de interfaces de red predeterminada que usa Samba para examinar, registro de
# nombres, y otro tráfico NBT. Los valores pueden ser nombre_interfaz (ej: eth0), pareja IP/masc (ej:
# 192.168.10.0/24).
intefaces = eth0 lo
# El nombre de un programa que se puede usar para asignar claves de usuarios.
passwd program = /usr/bin/smbldap-passwd %u
# Parámetros para soporte LDAP
(+)passdb backend = ldapsam:ldap://ip_server_ldap
(+)ldap suffix = dc=dominio,dc=cu
(+)ldap machine suffix = ou=machines
(+)ldap user suffix = ou=people
(+)ldap group suffix = ou=groups
(+)ldap admin dn = cn=admin,dc=dominio,dc=cu
(+)ldap delete dn = no
enable privileges = yes
# para permitir a los usuarios cambiar su clave desde Windows
(+)ldap password sync = yes
add user script = /usr/sbin/smbldap-useradd -m “%u”
add group script = /usr/sbin/smbldap-groupadd -p “%g”
(+)delete user from group script = /usr/sbin/smbldap-groupmod -x “%u”
(+)set primary group script = /usr/sbin/smbldap-usermod -g “%g” “%u”
(+)add user to group script = /usr/sbin/smbldap-groupmod -m “%u” “%g”
add machine script = /usr/sbin/user/add -d /dev/null -s /bin/false -d /var/lib/nobody %u
(+)ldapsam:editposix = yes
# Especifica el rango de uid de usuario que se reservan para asociar usuarios UNIX con SID de usarios NT.
idmap uid = 10000-20000
# Especifica el rango de id de grupo que se reservan para asociar grupos UNIX con SID de grupos NT.
idmap gid = 20000-30000
(+)case sensitive = yes
[homes]
# Especifica la ejecución de un comando como root cuando alguien se conecta al servicio.
(+)root preexec = /bin/user.sh %U %S %I
# Texto que se ve junto al recurso.
comment = Directorio Usuario
# Directorio al cual tendrán acceso los usuarios del servicio
path = /home/%U/datos
valid users = %S
read only = no
browseable = no
directory mask = 0700
# Los nuevos directorios heredan los permisos del directorio padre
inherit permissions = yes
Para chequear q el samba está ya configurado como un PDC master se ejecutará el comando
testparam y se deberá mostrar lo siguiente:
# touch /bin/user.sh
# nano /bin/user.sh
#! /bin/bash
cd /home/
if [ ! -d $1 ]
then
mkdir $1
mkdir $1/datos
mkdir $1/profiles
fi
chown -R $1 /home/$1
chown -R $1 /home/$1/datos
chown -R $1 /home/$1/profiles
Luego se le pasa a Samba la contraseña del usuario administrador se Servidor OpenLDAP ya que
este necesita escribir algunos datos en el OpenLDAP, se hace de la siguiente forma:
# smbpasswd -W
Ya realizado todo esto, hay que configurar los ficheros smbldap-tools y smbldap_bind, que se
encuentra en /etc/smbldap-tools/ en caso que el sistema no lo haya creado en la instalación se
hace lo siguiente:
# cp /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz /etc/smbldap-tools/
# cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/
# gunzip /etc/smbldap-tools/smbldap.conf.gz
# nano /etc/smbldap-tools/smbldap-tools
Este otro fichero solo contiene la información sobre el usuario y la contraseña con el que se debe
conectar al servidor OpenLDAP.
# nano /etc/smbldap-tools/smbldap_bind.conf
masterDN="cn=admin,dc=dominio,dc=cu"
masterPw="passwd_admin_OpenLDAP"
# smbldap-populate
Ya solo queda crear un usuario para añadir las pc al dominio el mismo debe pertenecer al grupo
de Domain Admins, y listo, crear usuarios que ya se tiene un PDC con SAMBA-GOsa-
OpenLDAP.
CREACIÓN DE UN USUARIO EN SAMBA
luego saldrá el listado de todos los usuarios cuando los hallas creado, de ahí se le vuelve a dar
click al botón Crear nuevo usuario
De ahí te saldrá para poner los datos de tus usuarios, de ahí vas a la pestaña Unix le das click al
botón Crear cuenta posix y saldrá esto:
IMPORTANTE: La opción Domain Admins es solo para el administrador, para los usuarios es
Domain Users.
Anexo 1:
Configuración completa del archivo /etc/smb.comf
[global]
workgroup = DOMINIO
realm = DOMINIO.CU
netbios name = pdcmaster
os level = 65
preferred master = yes
local master = yes
domain master = yes
domain logons = yes
server string = %h server
bind interfaces only = true
hosts allow = 192.168.10.0/24
interfaces = eth0 lo
wins support = no
name resolve order = host lmhosts wins bcast
encrypt passwords = true
pam password change = no
unix password sync = no
passwd program = /usr/bin/smbldap-passwd %u
dns proxy = no
ldapsam:editposix=Yes
idmap uid = 10000-20000
idmap gid = 10000-20000
case sensitive = Yes
[homes]
root preexec = /bin/user.sh %U %S %I
comment = Carpetas Datos %U
path = /home/%U/
read only = no
browseable = no
writable = yes
guest ok = no
valid users = %S
inherit permissions = yes
[profiles]
comment = Perfil Usuario %U
path = /home/%U/profiles
writeable = yes
browseable = no
public = no
default case = lower
preserve case = no
short preserve case = no
case sensitive = no
hide files = /desktop.ini/ntuser.ini/NTUSER.*/
create mask = 0600
directory mask = 0700
csc policy = disable
[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
Anexo 2:
Configuración completa del archivo /etc/smbldap-tools/smbldap-tools
SID="S-1-5-21-3101857334-3864452276-4195041869"
sambaDomain="DOMINIO"
masterLDAP="127.0.0.1"
masterPort="389"
ldapTLS="0"
suffix="dc=dominio,dc=cu"
usersdn="ou=people,${suffix}"
computersdn="ou=machines,${suffix}"
groupsdn="ou=groups,${suffix}"
idmapdn="ou=idmap,${suffix}"
scope="sub"
hash_encrypt="MD5"
crypt_salt_format="$1$%.8s"
userLoginShell="/bin/false"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="45"
userSmbHome="\\ONI\%U"
userProfile="\\ONI\%U\profiles"
userHomeDrive="Z:"
userScript="logon.bat"
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"
Fuentes
http://www.arrakis.es/~pfabrega/t1.html
http://dns.bdat.net/documentos/cursos/ar01s88.html
http://jroliva.wordpress.com/samba-ldap-debian-40-etch/
http://wiki.canaima.softwarelibre.gob.ve/wiki/index.php/GOsa2
http://docs.google.com/viewer?
a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxlbGRlYmlhbml0b3xneDo2MDBiMGEyOGI2MDI4
NDUy