1.
CONTROLADOR PRIMARIO DE DOMINIO (SAMBA+LDAP) EN DEBIAN SQUEEZE
2.
SERVICIOS
2.1.
SAMBA
Samba
es una suite de aplicaciones Unix que habla el protocolo SMB (Server
Message Block). Muchos sistemas operativos, incluidos Windows y OS/2,
usan SMB para operaciones de red cliente-servidor. Mediante el
soporte de este protocolo, Samba permite a los servidores Unix entrar
en acción, comunicando con el mismo protocolo de red que los
productos de Microsoft Windows. De este modo, una máquina Unix con
Samba puede enmascararse como servidor en una red Microsoft y ofrecer
los siguientes servicios:
- Compartir uno o más sistemas de archivos.
- Compartir impresoras, instaladas tanto en el servidor como en los clientes.
- Ayudar a los clientes, con visualizador de Clientes de Red.
- Autentificar clientes logeándose contra un dominio Windows.
Las
funcionalidades de samba no se quedan solo en una simple compartición
de archivos e impresoras sino que permite a un PC con Linux
comportarse como un controlador de dominio de Windows para redes
Microsoft con prestaciones superiores a las que nos ofrecería un
servidor con Windows NT Server 4.0.
Dominio
Windows
Un
Dominio de Windows es una agrupación lógica de PCs en los cuales
existe al menos un servidor especial llamado Controlador del Dominio
en el que se centralizan las tareas de administración de todos los
PCs de la red.
Controlador
de Dominio
El
controlador de dominio es el centro nervioso de un dominio Windows,
tal como un servidor NIS lo es del servicio de información de una
red Unix. Los controladores de dominio tienen una serie de
responsabilidades. Una de las que te va a implicar a ti es la
autentificación. La autentificación es el proceso de garantizar o
denegar a un usuario el acceso a recursos compartidos o a otra
máquina de la red, normalmente a través del uso de una password.
2.2.
LDAP
LDAP
son las siglas de Lightweight Directory Access Protocol (en español
Protocolo Ligero de Acceso a Directorios) que hacen referencia a un
protocolo a nivel de aplicación
que
permite el acceso a un servicio de directorio
ordenado
y distribuido para buscar diversa información en un entorno de red.
LDAP también se considera una base de datos
(aunque
su sistema de almacenamiento puede ser diferente) a la que pueden
realizarse consultas.
Un
directorio es un conjunto de objetos con atributos organizados en una
manera lógica y jerárquica. El ejemplo más común es el directorio
telefónico, que consiste en una serie de nombres (personas u
organizaciones) que están ordenados alfabéticamente, con cada
nombre teniendo una dirección y un número de teléfono adjuntos.
Para entender mejor, es un libro o carpeta, en la cual se escriben
nombres de personas, teléfonos y direcciones, y se ordena
alfabéticamente.
Un
árbol de directorio LDAP a veces refleja varios límites políticos,
geográficos u organizacionales, dependiendo del modelo elegido. Los
despliegues actuales de LDAP tienden a usar nombres de Sistema de
Nombres de Dominio (DNS
por
sus siglas en inglés) para estructurar los niveles más altos de la
jerarquía. Conforme se desciende en el directorio pueden aparecer
entradas que representan personas, unidades organizacionales,
impresoras, documentos, grupos de personas o cualquier cosa que
representa una entrada dada en el árbol (o múltiples entradas).
3.
SISTEMA OPERATIVO
La
presente instalación, se la hará en un Sistema Operativo Linux,
Distribución Debian, Versión 6 (Squeeze).
4.
PAQUETES INSTALADOS
samba
; samba-common ; smbclient ; smbfs ; smbldap-tools ; phpldapadmin ;
open-ldap ; sladp
5.
INSTALACIÓN DE SAMBA+LDAP COMO PDC
Instalación
Paso
1:
Instalar
paquetes para cliente ldap:
#
apt-get install libnss-ldap libpam-ldap ldap-utils
En
el asistente de instalación, seleccionar/ingresar los siguientes
parámetros conforme este vaya pidiendo:
*
LDAP server Uniform Resource Identifier:
ldap://127.0.0.1/
*
Distinguished name of the search base:
dc=mi,dc=dominio,dc=cu
*
LDAP version to use:
3
*
LDAP account for root:
cn=admin,dc=mi,dc=dominio,dc=cu
*
LDAP root account password:
clave
personalizada
*
nsswitch.conf not managed automatically Para que el libnss-ldap
trabaje necesita modificar /etc/nsswitch.conf
para
usar el "ldap" datasource. Hay un ejemplo de configuracion
en /usr/share/doc/libnss-ldap/examples/nsswirch.ldap
el
cual puede ser usado como ejemplo para la config del nsswitch.
Ok
*
Esta opción permitirá utilidades de passwords que usa PAM para
cambiar passwords locales.
La
cuenta de administrador de LDAP se almacenara en un archivo separado,
el cual debera ser solamente legible por el usuario root. Si /etc
está montado por NFS, esta opción debe deshabilitarse. Allow LDAP
admin account to behave like local root?
Yes
*Does
the LDAP database require login?
No
*
LDAP administrative account:
cn=admin,dc=mi,dc=dominio,dc=cu
*
LDAP administrative password:
clave
personalizada
Luego,
modificar el archivo nsswitch.conf
#
cp -pf /etc/nsswitch.conf /etc/nsswitch.conf.orig
#
nano /etc/nsswitch.conf
Agregar/Cambiar
lo que está en negrita:
passwd:
compat
ldap
group:
compat ldap
shadow:
compat ldap
hosts:
files dns
networks:
files
protocols:
db files
services:
db files
ethers:
db files
rpc:
db files
netgroup:
ldap
Seguido,
hacer algunas modificaciones a los archivos relacionados con el
servicio de pam.d
#
cp -pf /etc/pam.d/common-password
/etc/pam.d/common-password.orig
#
nano /etc/pam.d/common-password
Borrar
lo que está en negrita:
password
[success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok
try_first_pass
#
cp -pf /etc/pam.d/common-session /etc/pam.d/common-session.orig
#
nano /etc/pam.d/common-session
Agregar
al final del archivo:
session
optional pam_mkhomedir.so skel=/etc/skel umask=077
#
end of pam-auth-update config
Paso 2:
Instalar
el servidor ldap y sus dependencias
#
apt-get install slapd ldap-utils
Establecer
una clave
Administrator
password: clave personalizada
Confirm
password: clave personalizada
#
ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn
SASL/EXTERNAL
authentication started
SASL
username:
gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=config
dn: cn=module{0},cn=config
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
dn: olcBackend={0}hdb,cn=config
dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcDatabase={1}hdb,cn=config
SASL SSF: 0
dn: cn=config
dn: cn=module{0},cn=config
dn: cn=schema,cn=config
dn: cn={0}core,cn=schema,cn=config
dn: cn={1}cosine,cn=schema,cn=config
dn: cn={2}nis,cn=schema,cn=config
dn: cn={3}inetorgperson,cn=schema,cn=config
dn: olcBackend={0}hdb,cn=config
dn: olcDatabase={-1}frontend,cn=config
dn: olcDatabase={0}config,cn=config
dn: olcDatabase={1}hdb,cn=config
Generar
y copiar la clave que se genera en codificación SSHA
#
slappasswd
New
password: clave personalizada
Re-enter
new password: clave personalizada
{SSHA}N6ZE0PfgwfV9kYlT0zKiI9kpG8sx3rVI
#
ldapmodify -Y EXTERNAL -H ldapi:///
SASL/EXTERNAL
authentication started
SASL
username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL
SSF: 0
dn:
olcDatabase={0}config,cn=config
add:
olcRootPW
olcRootPW:
{SSHA}N6ZE0PfgwfV9kYlT0zKiI9kpG8sx3rVI
Y
presionar "Ctrl+D" para guardar
modifying
entry "olcDatabase={0}config,cn=config"
Crear
el .ldif para luego importarlo:
#
nano config.ldif
dn:
olcDatabase={1}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=mi,dc=dominio,dc=cu
-
replace: olcRootDN
olcRootDN: cn=admin,dc=mi,dc=dominio,dc=cu
-
replace: olcAccess
olcAccess: to attrs=userPassword by dn="cn=admin,dc=mi,dc=dominio,dc=cu" write by anonymous auth by self write by * none
olcAccess: to attrs=shadowLastChange by self write by * read
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=mi,dc=dominio,dc=cu" write by * read
-
changetype: modify
replace: olcSuffix
olcSuffix: dc=mi,dc=dominio,dc=cu
-
replace: olcRootDN
olcRootDN: cn=admin,dc=mi,dc=dominio,dc=cu
-
replace: olcAccess
olcAccess: to attrs=userPassword by dn="cn=admin,dc=mi,dc=dominio,dc=cu" write by anonymous auth by self write by * none
olcAccess: to attrs=shadowLastChange by self write by * read
olcAccess: to dn.base="" by * read
olcAccess: to * by dn="cn=admin,dc=mi,dc=dominio,dc=cu" write by * read
-
Importar
la configuración del ldif creado anteriormente:
#
ldapmodify -Y EXTERNAL -H ldapi:/// -f config.ldif
SASL/EXTERNAL
authentication started
SASL
username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL
SSF: 0
modifying
entry "olcDatabase={1}hdb,cn=config"
#ldapsearch
-xLLL -b cn=config -D cn=admin,cn=config -W olcDatabase={1}hdb
Enter
LDAP Password: tu clave
dn:
olcDatabase={1}hdb,cn=config
objectClass:
olcDatabaseConfig
objectClass:
olcHdbConfig
olcDatabase:
{1}hdb
olcDbDirectory:
/var/lib/ldap
olcLastMod:
TRUE
olcRootPW:
{SSHA}iBRORXu81Urzz26uD3LbPY919jigTO9Q
olcDbCheckpoint:
512 30
olcDbConfig:
{0}set_cachesize 0 2097152 0
olcDbConfig:
{1}set_lk_max_objects 1500
olcDbConfig:
{2}set_lk_max_locks 1500
olcDbConfig:
{3}set_lk_max_lockers 1500
olcDbIndex:
objectClass eq
olcSuffix:
dc=mi,dc=dominio,dc=cu
olcRootDN:
cn=admin,dc=mi,dc=dominio,dc=cu
olcAccess:
{0}to attrs=userPassword by dn="cn=admin,dc=mi,dc=dominio,dc=cu"
writ
e
by anonymous auth by self write by * none
olcAccess:
{1}to attrs=shadowLastChange by self write by * read
olcAccess:
{2}to dn.base="" by * read
olcAccess:
{3}to * by dn="cn=admin,dc=mi,dc=dominio,dc=cu" write by *
read
Seguido,
se instalará el PHPLDAPADMIN que es una aplicación para administrar
de una manera gráfica y sencilla un servidor ldap:
#
apt-get install phpldapadmin
Igualmente,
un asistente de instalación preguntará por ciertos parámetros,
para los que se deben ingresar:
*http://172.16.72.72/phpldapadmin
*Login:
cn=admin,dc=mi,dc=dominio,dc=cu
*Pass:
clave personalizada
*+
dc=mi,dc=dominio,dc=cu
*Default
*Delete
this entry
Luego,
crear otro ldif para el esquema base:
#
nano base.ldif
dn:
dc=mi,dc=dominio,dc=cu
objectClass:
top
objectClass:
dcObject
objectclass:
organization
o:
mi.dominio.cu
dc:
Mi-Dominio
description:
LDAP Server
dn:
ou=people,dc=mi,dc=dominio,dc=cu
objectClass:
organizationalUnit
ou:
people
dn:
ou=groups,dc=mi,dc=dominio,dc=cu
objectClass:
organizationalUnit
ou:
groups
Luego,
importar el archivo base.ldif:
#
ldapadd -x -D cn=admin,dc=mi,dc=dominio,dc=cu -W -f base.ldif
Enter
LDAP Password: clave personalizada
adding
new entry "dc=mi,dc=dominio,dc=cu"
adding
new entry "ou=people,dc=mi,dc=dominio,dc=cu"
adding
new entry "ou=groups,dc=mi,dc=dominio,dc=cu"
Luego,
crear otro ldif para usuarios:
root@pdc:~#
nano ldapuser.ldif
"dn:
uid=echo $line | cut -d:
-f1,ou=people,dc=tu,dc=dominio,dc=cu"
"objectClass: inetOrgPerson"
"objectClass: posixAccount"
"objectClass: shadowAccount"
"uid: echo $line | cut -d: -f1?
"sn: echo $NAME | awk '{print $2}'"
"givenName: echo $NAME | awk '{print $1}'"
"cn: echo $NAME | sed -e "s/%/ /""
"displayName: echo $NAME | sed -e "s/%/ /""
"uidNumber: echo $line | cut -d: -f3?
"gidNumber: echo $line | cut -d: -f4"
"userPassword: {crypt}grep $UID1 /etc/shadow | cut -d: -f2"
"gecos: echo $NAME | sed -e "s/%/ /""
"loginShell: echo $line | cut -d: -f7"
"homeDirectory: echo $line | cut -d: -f6"
"shadowExpire: passwd -S $UID1 | awk '{print $7}'"
"shadowFlag: grep $UID1 /etc/shadow | cut -d: -f9"
"shadowWarning: passwd -S $UID1 | awk '{print $6}'"
"shadowMin: passwd -S $UID1 | awk '{print $4}'"
"shadowMax: passwd -S $UID1 | awk '{print $5}'"
"shadowLastChange: grep $UID1 /etc/shadow | cut -d: -f3"
"objectClass: inetOrgPerson"
"objectClass: posixAccount"
"objectClass: shadowAccount"
"uid: echo $line | cut -d: -f1?
"sn: echo $NAME | awk '{print $2}'"
"givenName: echo $NAME | awk '{print $1}'"
"cn: echo $NAME | sed -e "s/%/ /""
"displayName: echo $NAME | sed -e "s/%/ /""
"uidNumber: echo $line | cut -d: -f3?
"gidNumber: echo $line | cut -d: -f4"
"userPassword: {crypt}grep $UID1 /etc/shadow | cut -d: -f2"
"gecos: echo $NAME | sed -e "s/%/ /""
"loginShell: echo $line | cut -d: -f7"
"homeDirectory: echo $line | cut -d: -f6"
"shadowExpire: passwd -S $UID1 | awk '{print $7}'"
"shadowFlag: grep $UID1 /etc/shadow | cut -d: -f9"
"shadowWarning: passwd -S $UID1 | awk '{print $6}'"
"shadowMin: passwd -S $UID1 | awk '{print $4}'"
"shadowMax: passwd -S $UID1 | awk '{print $5}'"
"shadowLastChange: grep $UID1 /etc/shadow | cut -d: -f3"
Luego,
importar el archivo ldapuser.ldif:
root@pdc:~#
ldapadd -x -D cn=admin,dc=mi,dc=dominio,dc=cu -W -f ldapuser.ldif
Enter
LDAP Password: clave personalizada
Luego,
crear otro ldif para grupos:
root@pdc:~#nano
ldapgroup.ldif
"dn:
cn=echo $line | cut -d:
-f1,ou=groups,dc=tu,dc=dominio,dc=cu'"
"objectClass: posixGroup"
"cn: echo $line | cut -d: -f1"
"gidNumber: echo $line | cut -d: -f3"
"objectClass: posixGroup"
"cn: echo $line | cut -d: -f1"
"gidNumber: echo $line | cut -d: -f3"
root@pdc:~#
ldapadd -x -D cn=admin,dc=mi,dc=dominio,dc=cu -W -f ldapgroup.ldif
Enter
LDAP Password: tu clave
Paso 3:
El
siguiente paso será instalar documentación de samba para integrar
con el servidor LDAP.
root@pdc:~#apt-get
install samba-doc
root@pdc:~#
cp -Rpf /etc/ldap/ /etc/ldap.orig
root@pdc:~#
cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz
/etc/ldap/schema/
root@pdc:~#
gzip -d /etc/ldap/schema/samba.schema.gz
Crear
y poblar el archivo schema_convert.conf
con
los siguientes esquemas:
root@pdc:~#
nano schema_convert.conf
include
/etc/ldap/schema/core.schema
include
/etc/ldap/schema/collective.schema
include
/etc/ldap/schema/corba.schema
include
/etc/ldap/schema/cosine.schema
include
/etc/ldap/schema/duaconf.schema
include
/etc/ldap/schema/dyngroup.schema
include
/etc/ldap/schema/inetorgperson.schema
include
/etc/ldap/schema/java.schema
include
/etc/ldap/schema/misc.schema
include
/etc/ldap/schema/nis.schema
include
/etc/ldap/schema/openldap.schema
include
/etc/ldap/schema/ppolicy.schema
include
/etc/ldap/schema/samba.schema
root@pdc:~#
mkdir -p ./tmp/ldif_output
root@pdc:~#
slapcat -f schema_convert.conf -F ./tmp/ldif_output -n0 -s
"cn={12}samba,cn=schema,cn=config"
> ./tmp/cn=samba.ldif
root@pdc:~#
cp -pf ./tmp/cn=samba.ldif ./tmp/cn=samba.ldif.orig
Luego,
eliminar el {12} de la linea 1 y la linea 3 del archivo
cn=samba.ldif:
root@pdc:~#
nano ./tmp/cn=samba.ldif
dn:
cn={12}samba,cn=schema,cn=config
objectClass:
olcSchemaConfig
cn:
{12}samba
Quedando:
dn:
cn=samba,cn=schema,cn=config
objectClass:
olcSchemaConfig
cn:
samba
Luego,
eliminar estas líneas al final del mismo archivo:
structuralObjectClass:
olcSchemaConfig
entryUUID:
bd8a7a82-3cb8-102f-8d5f-070b4e5d16f8
creatorsName:
cn=config
createTimestamp:
20100815125953Z
entryCSN:
20100815125953.198505Z#000000#000#000000
modifiersName:
cn=config
modifyTimestamp:
20100815125953Z
Seguido,
agregar los esquemas de samba al directorio LDAP:
root@pdc:~#
ldapadd -Y EXTERNAL -H ldapi:/// -f ./tmp/cn=samba.ldif
SASL/EXTERNAL
authentication started
SASL
username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL
SSF: 0
adding
new entry “cn=samba,cn=schema,cn=config”
Luego,
crear el archivo samba_indexes.ldif:
root@pdc:~#
nano samba_indexes.ldif
dn:
olcDatabase={1}hdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: loginShell eq
olcDbIndex: uid eq,pres,sub
olcDbIndex: memberUid eq,pres,sub
olcDbIndex: uniqueMember eq,pres
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaGroupType eq
olcDbIndex: sambaSIDList eq
olcDbIndex: sambaDomainName eq
olcDbIndex: default sub
changetype: modify
add: olcDbIndex
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: loginShell eq
olcDbIndex: uid eq,pres,sub
olcDbIndex: memberUid eq,pres,sub
olcDbIndex: uniqueMember eq,pres
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaGroupType eq
olcDbIndex: sambaSIDList eq
olcDbIndex: sambaDomainName eq
olcDbIndex: default sub
root@pdc:~#
ldapmodify -Y EXTERNAL -H ldapi:/// -f samba_indexes.ldif
SASL/EXTERNAL
authentication started
SASL
username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL
SSF: 0
modifying
entry “olcDatabase={1}hdb,cn=config”
root@pdc:~#
/etc/init.d/slapd restart
root@pdc:~#
apt-get install smbldap-tools samba
Workgroup/Domain
Name: MiDominio
root@pdc:~#
mv /etc/samba/smb.conf /etc/samba/smb.conf.orig
root@pdc:~#
cp /usr/share/doc/smbldap-tools/examples/smb.conf /etc/samba/smb.conf
root@pdc:~#
nano /etc/samba/smb.conf
Linea 3 cambiar el grupo de trabajo (nombre del dominio):
workgroup
= MiDominio
Linea
12 comentarla:
#min
passwd length = 3
Cambiar
línea 22 a yes:
ldap
passwd sync = yes
Cambiar
línea 33 y 34 a:
Dos
charset = CP932
Unix
charset = UTF-8
Cambiar el nombre del dominio en la línea 48:
ldap
admin dn = cn=admin,dc=mi,dc=dominio,dc=cu
Cambiar
50:
ldap
suffix = dc=mi,dc=dominio,dc=cu
ldap
group suffix = ou=groups
ldap
user suffix = ou=people
60
descomentarla:
delete
group script = /usr/sbin/smbldap-groupdel “%g”
64
agregar:
set
primary group script = /usr/sbin/smbldap-usermod -g ‘%g’ ‘%u’
admin
users = master
ldap
ssl = no
Reiniciar
los servicios de Samba, y asignar clave al usuario admin:
root@pdc:~#
mkdir /home/netlogon
root@pdc:~#
/etc/init.d/samba restart
root@pdc:~#
smbpasswd -W
Setting
stored password for “cn=admin,dc=mi,dc=dominio,dc=cu” in
secrets.tdb
New
SMB password: mi clave
Retype
new SMB password: mi clave
Una
vez instalado, SAMBA y phpldapadmin, este último requiere de una
utilidad llamada mkntpwd
para
crear los hashes de Samba. Debido a que esta utilidad no ha sido
incluida en el paquete smbldap-tools de Debian, habrá que descargar
sus archivos fuente de Internet y compilarlos en nuestro sistema para
que nos genere el ejecutable de mkntpwd:
root@pdc:~#cd
/opt/
root@pdc:~#wget
http://www.silcom.com.pe/soft/mkntpwd.tar.gz
pdc:~#tar
-zxf mkntpwd.tar.gz
root@pdc:~#cd
mkntpwd
Ahora,
será necesario compilarlo con make,
pero al parecer el compilador build-essencial
que
contiene los paquetes make
en
la librería gcc
ya
no están disponibles en los repositorios de Debian Squeeze, para lo
cual se hará una maniobra de actualización de lista de paquetes con
los repositorios de Debian Wheezy que aún está en Testing para
instalar dichos paquetes.
root@pdc:~#nano
/etc/apt/sources.list
Buscar
y cambiar todas las palabras que contengan ‘squeeze’
por
‘wheezy’,
grabar y salir, entonces actualizar lista de paquetes:
root@pdc:~#apt-get
update
Una
vez actualizada la lista, instalar el paquete make
y
gcc:
root@pdc:~#apt-get
install make gcc
Y
finalmente compilarlo:
root@pdc:~#make
root@pdc:~#cp
mkntpwd /usr/local/bin
Ahora,
para verificar que el paquete se haya instalado correctamente,
ejecutar:
root@pdc:~#mkntpwd
Entonces
el sistema deberá desplegar algo como esto:
Usage:
mkntpwd [-L lanmgrpwd] [-N ntpasswd]
mkntpwd
password
mkntpwd
-f [-] [filename]
-L
lanmgrpasswd LanManager cleartextpwd ⇐ 14 chars
-N
ntpasswd NT cleartextpwd ⇐128 chars (usually ⇐14)
with
both options present the encrypted LanManager-Pwd is
printed
first, followed by a ‘:’ and the encrypted NT-Pwd.
The
second usage behaves like mkntpwd -L pwd -N pwd
The
third usage reads the password from STDIN or a File. Printout is the
same as second.
anton@genua.de
Ahora
se procederá a configurar smbldap-tools:
root@pdc:~#
gzip -d /usr/share/doc/smbldap-tools/configure.pl.gz
root@pdc:~#
perl /usr/share/doc/smbldap-tools/configure.pl
A
todas las preguntas, dar ENTER (pero no está por demás leerlas),
excepto a “logon home” y “logon path”, a las que se dará
como respuesta un punto “.” y luego ENTER.
El
password es “clave
personalizada”,
como siempre.
Finalmente,
se debe poblar el dominio samba con algunos grupos de dominio similar
a la estructura de un Active Directory de Windows.
root@pdc:~#
smbldap-populate
Populating
LDAP directory for domain MiDominio
(S-1-5-21-3529095435-2300348255-434367669) (using builtin directory
structure)
entry
dc=mi,dc=dominio,dc=cu already exist.
entry ou=people,dc=mi,dc=dominio,dc=cu already exist.
entry ou=groups,dc=mi,dc=dominio,dc=cu already exist.
adding new entry: ou=Computers,dc=mi,dc=dominio,dc=cu
adding new entry: ou=Idmap,dc=mi,dc=dominio,dc=cu
adding new entry: uid=root,ou=people,dc=mi,dc=dominio,dc=cu
adding new entry: uid=nobody,ou=people,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Domain Admins,ou=groups,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Domain Users,ou=groups,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Domain Guests,ou=groups,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Domain Computers,ou=groups,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Administrators,ou=groups,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Account Operators,ou=groups,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Print Operators,ou=groups,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Backup Operators,ou=groups,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Replicators,ou=groups,dc=mi,dc=dominio,dc=cu
entry sambaDomainName=MiDominio,dc=mi,dc=dominio,dc=cu already exist. Updating it…
entry ou=people,dc=mi,dc=dominio,dc=cu already exist.
entry ou=groups,dc=mi,dc=dominio,dc=cu already exist.
adding new entry: ou=Computers,dc=mi,dc=dominio,dc=cu
adding new entry: ou=Idmap,dc=mi,dc=dominio,dc=cu
adding new entry: uid=root,ou=people,dc=mi,dc=dominio,dc=cu
adding new entry: uid=nobody,ou=people,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Domain Admins,ou=groups,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Domain Users,ou=groups,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Domain Guests,ou=groups,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Domain Computers,ou=groups,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Administrators,ou=groups,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Account Operators,ou=groups,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Print Operators,ou=groups,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Backup Operators,ou=groups,dc=mi,dc=dominio,dc=cu
adding new entry: cn=Replicators,ou=groups,dc=mi,dc=dominio,dc=cu
entry sambaDomainName=MiDominio,dc=mi,dc=dominio,dc=cu already exist. Updating it…
Y
todo quedará listo, bastará con crear las cuentas de usuario desde
phpldapadmin dentro del grupo Domain
Users
o
Domain
Admins
sea
el caso que corresponda.
5.1.
CREAR CUENTAS DE EQUIPO EN EL DOMINIO
Samba utiliza un script propio para la creación de cuentas de equipo automáticamente cuando se intente unir al dominio una estación de trabajo.
5.2.
UNIR EQUIPOS CON WINDOWS A DOMINIO SAMBA
5.2.1.
EN WINDOWS XP
Para
Registrar máquinas con Windows XP se debe crear/modificar la
siguiente etiqueta de registro usando regedit:
Situarse
en:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]
Y
agregar/cambiar el siguiente valor
“requiresignorseal”=dword:00000000
Luego
editar el archivo C:\WINDOWS\system32\drivers\etc\hosts
en
un bloc de notas
y
agregar al final del archivo la ip del servidor PDC con el nombre del
dominio
192.168.1.1
MiDominio
Finalmente,
agregamo el cliente al dominio:
Botón
derecho sobre “Mi PC” → Properties
Vamos
a la solapa “Computer Name”
Clickeamos
el botón que dice “Change …”
Seleccionamos
la opción “Domain”
Domain:
MiDominio → Ok
Username:
MiDominio\root
Password:
claveroot
5.2.2.
EN WINDOWS 7
Para unir equipos con Microsoft Windows 7 a un dominio con Samba, primeramente se debe agregar/modificar un par de parámetros al registro del Sistema Operativo Cliente (Windows 7). Para ello, primero ejecutar el Editor de Registros (regedit), seguido de ello se debe ubicar en la siguiente diracción:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl\Setservices\LanmanWorkstation\Parameters]
Una
vez ahí, se debe agregar 2 nuevos valores DWORD, e ingresar los
siguientes nombres, con los siguientes valores:
"DomainCompatibilityMode"
= 1
"DNSNameResolutionRequired"
= 0
Luego
situarse en:
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\Netlogon\Parameters]
Y
agregar/modificar:
“RequireSignOrSeal”=dword:00000000
“RequireStrongKey”=dword:00000001
Luego
crear/modificar los valores DWORD:
[\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]
“LocalProfile”
= 1
“ReadOnlyProfile”
= 1
Ir
al > Panel de Control, en > Herramientas administrativas, >
Configuración de seguridad, > Directivas locales, > Opciones
de seguridad y buscar los siguientes dos renglones pertenecientes a >
Seguridad de red:
seguridad
de sesión mínima para clientes NTLM basados en SSP
seguridad
de sesión mínima para servidores NTLM basados en SSP
En
ambos, quitar la marca en “Requerir
cifrado de 128 bits”,
Reiniciar el sistema y probar la unión al dominio, de la manera
habitual.
5.3.
DAR DE ALTA USUARIOS Y GRUPOS EN EL DOMINIO
Para crear grupos y usuarios de dominio, bastará con ingresar por phpldapadmin y agregar grupo o usuario según sea el caso.
6.
RECOMENDACIONES
Para
agregar usuarios con permisos administrativos en el dominio, será
necesario asignar el gidNumber y uidNumber con 0, de esta manera se
puede conservar la clave de root secreta sólo para el administrador.