Muchas veces y como solucion empresarial gratuita, requerimos otras herramientas que cumplan el perfil de lo ya existente en el mercado. Si requieres un servidor de dominio potente, estable y seguro mas la posibilidad de compartimientos de archivos, tu opcion la tienes clara LDAP + Samba.
Esta manual tiene como objetivo el describir de cómo instalé y configuré un controlador de dominios con samba y ldap en un sistema de Linux Debian Squeeze (Pero igual es valido para cualquier distribucion de Linux), No hay razón por la que no trabajaría en ningún otro sistema de linux, .
*********** INSTALACION DE SLAPD *****************
1.-Instalación de servidor LDAP :
$ apt-get update$ apt-get upgrade
$ apt-get install slapd db4.2-util
Responder las siguientes perguntas:
DNS domain name: silcom.com.pe
Name of organisation: silcom.com.pe
Admin password: password
Confirm password: password
Allow LDAP v2: yes
****** INSTALACION PHPLADADMIN **********
1.- Phpldapadmin requiere un servidor web instalado. En una nueva instalación, nosotros necesitaremos instalar apache. Si usted tiene instalado apache omitir este paso.
$ apt-get install apache
Y responder con lo siguiente:
Enable SuExec: no
2.- instalar phpldapadmin nos provee un frontend para administrar LDAP
$ apt-get install phpldapadmin
use las siguientes respuestas :
Authentication type: session
Configure webserver: apache-ssl
Restart: yes
3.-
Phpldapadmin requiere una utilidad llamada mkntpwd para crear las
contraseñas Samba hashes. esta incluida en smbldap-tools pero esta no
parece estar incluida para Debian así que se requiere descargarla.
$ wget http://www.silcom.com.pe/soft/mkntpwd.tar.gz
$ tar -zxf mkntpwd.tar.gz
$ cd mkntpwd
$ make
$ cp mkntpwd /usr/local/bin
Chequeamos que esta corriendo:
$ mkntpwd
************* INSTALACION DE SAMBA ***********
1.- Ahora instalamos los paquetes samba y samba-doc
$ apt-get install samba samba-doc Y respondemos con lo siguiente:
Domain Name: silcom
Use Password Encryption: Yes
Modify smb.conf to use WINS settings via DHCP: No
How to run Samba: daemons
Create password database: Yes
************* CONFIGURANDO Y POPULANDO LDAP *********
1.- slapd necesita Samba schema para trabajar. Hacemos lo siguiente:
$ cd /usr/share/doc/samba-doc/examples/LDAP/
$ gunzip samba.schema.gz
$ cp samba.schema /etc/ldap/schema/
Ahora incluimos las siguiente linea en /etc/ldap/slapd.conf :
include /etc/ldap/schema/samba.schema
Y reiniciamos slapd:$ /etc/init.d/slapd restart
2.- Se necesita crear unidades organizativas en LDAP para nuestros usuarios, grupos and maquinas.ingresar a phpldapadmin http://debian.silcom.com/phpldapadmin/ (obiamente ingresar su direccion ip o dominio).
Ingresar con la contraseña para el usuario admin en LDAP.
Expandir la raiz del arbol, y hacer click en “Create New Entry Here”
Seleccionar “Organizational Unit” (ou): llamar a la ou “users” y confirmar.
repetir estos pasos, y aderir dos ou’s llamadas groups y machines. El arbol debe quedar de la siguien forma:
************** CONFIGURAR SAMBA ***************
1.- Ahora se configurara samba. abrir el archivo /etc/samba/smb.conf y buscar la linea:
passdb backend = tdbsam guest
Esta linea necesita ser reemplazada por lo siguiente :passdb backend = ldapsam:ldap://127.0.0.1
ldap suffix = dc=silcom,dc=com,dc=pe
ldap machine suffix = ou=machines
ldap user suffix = ou=users
ldap group suffix = ou=groups
ldap admin dn = cn=admin,dc=silcom,dc=com,dc=pe
ldap delete dn = no
# para PDC
domain logons = yes
# permitir privilegios a usuarios
enable privileges = yes
2.- ejecutar testparm para verificar que la configuracion no tiene errores.
$ testparm
3.- le enviamos a samba la contraseña del admin de LDAP del siguiente modo:
$ smbpasswd -w password
4.- Reiniciar samba:
$ /etc/init.d/samba restart
5.- Ahora mire en phpldapadmin, y serciorese que se ha creado una nueva entrada como esta : sambaDomainName=SILCOM
copiar el valor de sambaSID (eg S-1-5-21-2620819820-906013693-4274777306 ), ya que sera necesaria mas adelante.
************* CONFIGURAR PHPLDAPADMIN ********************
1.- Editar el archivo
/usr/share/phpldapadmin/templates/template_config.php . Buscar las siguiente linea :
// uncomment to set the base dn of posix groups
// default is set to the base dn of the server
//$base_posix_groups=”ou=People,dc=example,dc=com”;
$samba3_domains[] =
array( ‘name’ => ‘My Samba domain Name’,
‘sid’ => ‘S-1-5-21-4147564533-719371898-3834029857′ );
// The base dn of samba group. (CUSTOMIZE)
//$samba_base_groups = “ou=Groups,ou=samba,dc=example,dc=org”;
Cambiarla por esta:
// uncomment to set the base dn of posix groups
// default is set to the base dn of the server
$base_posix_groups=”ou=groups,dc=silcom,dc=com,dc=pe”;
$samba3_domains[] =
array( ‘name’ => ‘silcom’,
‘sid’ => ‘S-1-5-21-2620819820-906013693-4274777306′ );
// The base dn of samba group. (CUSTOMIZE)
$samba_base_groups = “ou=groups,dc=silcom,dc=com,dc=pe”;
donde el valos de sid se obtiene de phpldapadmin.
*********** INSGRESAR GRUPOS POR DEFECTO **************
1.- Se necesitara crear algunos grupos por defecto . para crearlos en phpladpadmin use Samba 3 Group Mappings sobre ou=groups:
Unix name Samba Name gid Samba Sid
admins Domain Admins 20000 Built-In -> Domain Admins
users Domain Users 20001 Built-In -> Domain Users
guests Domain Guests 20002 Built-In -> Domain Guests
Configuraremos el servidor de modo que los usuariaros de LDAP aparescan como usuarios del sistema linux.
1.- Instalar libnss-ldap package y configurar:
$ apt-get install libnss-ldap
LDAP Server Host: 127.0.0.1
DN of Search Base: dc=silcom,dc=com,dc=pe
LDAP Version: 3
Database requires login: no
Make config readable by owner only: yes
2.- Editar el archivo /etc/nsswitch.conf de la siguiente forma:
passwd: compat ldap
group: compat ldap
shadow: compat ldap
3.- Ahora use la utilidad getent para confirmar que los grupos han sido correctamente configurados de la siguiente forma:
$ getent group
ssh:x:103:
users:x:20001:
guests:x:20002:
admins:x:20000:
4.- Instalar el paquete libpam-ldap
$ apt-get install libpam-ldap
Make local root db admin: yes
Database requires logging in : no
Root login account : cn=admin,dc=silcom,dc=com,dc=pe
Root password : password
Crypt : MD5
5.- Samba requiere un usuario Administrator (con un uidNumber de 0) para ingresar a las maquinas Windows al dominio.
No recomiendo tener un usuario el usuario root en LDAP ya que puede ser capaz de abrirse una sesión a los sitios de trabajo de Linux, para esto agregamos un filtro en /etc/pam_ldap.conf .
si no les incomoda este aspecto se puede saltar este paso.
Ingresar la siguiente linea en al final del archivo /etc/pam_ldap.conf
pam_filter !(uidNumber=0)
6.-Los siguientes archivos son necesarios para configurar PAM para LDAP:
/etc/pam.d/common-account
# Comentar esta linea
#account required pam_unix.so
# e insertar estas dos
account sufficient pam_ldap.so
account required pam_unix.so try_first_pass
/etc/pam.d/common-auth
# comentar esta linea
#auth required pam_unix.so nullok_secure
# e insertar estas dos
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure use_first_pass
/etc/pam.d/common-password
# comentar
#password required pam_unix.so nullok obscure min=4 max=8 md5
# insertar estas lineas
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5 use_first_pass
7.- Reiniciar ssh y samba
$ /etc/init.d/ssh restart
$ /etc/init.d/samba restart
8.- Instalar el servicio de caching para nombres:
$ apt-get install nscd
************ AGREGAR USUARIOS *****************
1.- Ahora se podra agregar algunos usuario. Se necesesita un Administrator (uid=0) y otro usuario para realizar las pruebas.
crear un nuevo : Samba 3 User(s) sobre ou=users de la siguiente forma:
Uid First Name User Name User Password Encryption Windows Group
0 Admin Administrator password MD5 Domain Admins
10000 Simon simon ******** MD5 Domain Admins
2.- Verificamos con getent que nss esta funcionando correctamente sobre el servidor linux.
$ getent passwd
simon:x:10000:20000:Simon Newton:/home/simon:/bin/bash
Administrator:x:0:20000:admin :/home/administrator:/bin/bash
3.- Creamos los directorios home para los usuarios:
$ mkdir /home/simon
$ cp /etc/skel/.* /home/simon/
$ chown -R simon /home/simon
$ chgrp -R users /home/simon
************ ASIGNANDO PRIVILEGIOS Y AUTOMATIZANDO *************
Ingresar computadoras al dominio automaticamente
1.- INstalar los siguientes modulos de Perl :
$ apt-get install libnet-ldap-perl libcrypt-smbhash-perl
2.- copiar el script smbldap-useradd (y archivos de configuracion) del paquete Samba-doc . en la ubicacion /usr/local/smbldaptools
$ mkdir /usr/local/smbldaptools
$ cd /usr/share/doc/samba-doc/examples/LDAP/smbldap-tools-0.8.7
$ cp smbldap_bind.conf smbldap_tools.pm.gz smbldap.conf.gz smbldap-useradd.gz /usr/local/smbldaptools/
$ gunzip /usr/local/smbldaptools/*.gz
$ cd /usr/local/smbldaptools
$ chmod go-r *
$ chmod u+x smbldap-useradd
Editar el archivo /usr/local/smbldaptools/smbldap.conf para que queden de esta manera:
SID=”S-1-5-21-3131077580-1338128831-1697195685″
suffix=”dc=silcom,dc=com,dc=pe”
usersdn=”ou=users,${suffix}”
computersdn=”ou=machines,${suffix}”
groupsdn=”ou=groups,${suffix}”
sambaUnixIdPooldn=”sambaDomainName=SILCOM,${suffix}”
hash_encrypt=”MD5″
Editar el archivo /usr/local/smbldaptools/smbldap_bind.conf:
slaveDN=”cn=admin,dc=silcom,dc=com,dc=pe”
slavePw=”password”
masterDN=”cn=admin,dc=silcom,dc=com,dc=pe”
masterPw=”password”
Editar /usr/local/smbldaptools/smbldap_tools.pm para enlazar los archivos correctos para la configuracion:
my $smbldap_conf=”/usr/local/smbldaptools/smbldap.conf”;
my $smbldap_bind_conf=”/usr/local/smbldaptools/smbldap_bind.conf”;
3.- Ubicar el objeto sambaDomainName=SILCOM en phpldapadmin.
Hacer click y Agregar un nuevo valor sobre el object class y escoger sambaUnixIdPool luego hacer click
en siguiente e ingresar un numero de uid y gid de inicio para este caso sera el 30000.
4.- Probar la configuracion ingresando una maquina de la siguiente manera:
$./smbldap-useradd -w “quigon”
si no emitio agun error todo esta correcto, se creara un nuevo objeto uid=quigon$ en el ou machines.
Nos daremos cuenta que el uidNumber en el objeto sambaDomainName=SILCOM se habra actualizado a 30001 ahora.
Este objeto solo sirve para verificar que todo esta trabajando bien ,procederemos a eliminarlo del arbol
5.- Finalmente agregar la siguiente linea en el archivo smb.conf :
add machine script = /usr/local/smbldaptools/smbldap-useradd -w “%u”
6.- Si deseamos que un usuario normal agregue las maquinas al dominio. podemos conceder al usuario derechos
para agregar las maquinas al dominio usando lo siguiente:
net rpc -UAdministrator rights grant simon SeMachineAccountPrivilege
************ SCRIPS DE INICIO DE SESION *****************
Vamos a usar KiXtart para escribir los archivos de inicio.
$ cd /opt/
$ wget http://www.kixtart.org/binary/distrib/KiX2010_453.zip
$ apt-get install unzip
$ unzip /opt/KiX2010_453.zip
1.- crear el netlogon, y hacer que el grupo administrador tenga a acceso a escribir
$ mkdir -p /data/samba/netlogon
$ chgrp admins /data/samba/netlogon
Y agregar las siguientes lines en /etc/samba/smb.conf:
# put this in the main section
logon script = logon.bat
# share for the logon scripts
[netlogon]
comment = Network logon service
path = /data/samba/netlogon
write list = “@admins”
guest ok = Yes
2.- Para el inicio de sesion de una maquina windows a un usuario en el grupos Domain Admins.Se tiene que tener aceso a escritura sobre la capeta netlogon
Download KiXstart,
extract, and put the following files into the netlogon share:
KIX32.EXE
KX32.dll
$ cp /opt/KiX2010.453/KIX32.EXE /data/samba/netlogon/
$ cp /opt/KiX2010.453/KX32.dll /data/samba/netlogon/
3.- crear un archivo logon.bat en la carpeta netlogon e ingresar lo siguiente
en el archivo:
\\pdc\netlogon\kix32 \\debian\netlogon\logon.kix /f
4.- crear un archivo logon.kix. eset se ejecutara cuando el usuario se loguee.
se puede montar unidades compartidas, sincronizar la hora etc. como este ejemplo:
; logon script
setconsole(‘hide’)
; delete all mapped drives
USE * /delete
; sync time
$timeserver = “\\pdc”
Settime $timeserver
IF INGROUP(“SILCOM\Domain Admins”)
use n: \\pdc\netlogon
ENDIF
; add more drive mappings here
; map homedirectory
use u: @HOMEDIR
Hasta aqui se debiar poder configurar una estacion de trabajo que se autentifique contral el dominio
***************** HABILITAR PROFILES **********************
mkdir /data/samba/profiles
[profiles]
path = /data/samba/profiles
comment = Profiles
writeable = yes
browseable = no
create mask = 0600
directory mask = 0700
************* CREACION DE HOME POR DEFECTO *************
Por defecto cuando se registra un usuario en ldap no crea el home respectivo
para corregir esto utilizamos lo siguiente:
editar /etc/pam.d/common-session y agregar en la primera linea
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
************ PERMITIR CAMBIO DE CONTRASEÑA ******************
Es bueno permitirle a los usuarios de windows cambiar su contraseña en el servidor ldap
para esto se hara lo siguiente:
cd /usr/share/doc/samba-doc/examples/LDAP/smbldap-tools-0.8.7
cp smbldap-passwd.gz /usr/local/smbldaptools/
cd /usr/local/smbldaptools/
gunzip smbldap-passwd.gz
chmod u+x smbldap-passwd
en el archivo /etc/samba/smb.conf modificar las siguientes lineas :
unix password sync = no
passwd program = /usr/bin/passwd %u
por estas :
unix password sync = yes
passwd program = /usr/local/smbldaptools/smbldap-passwd -o %u
FUENTE DEL ARTICULO : CLICK AQUI
No hay comentarios:
Publicar un comentario