Instalación de OpenLDAP+Samba3 en Debian 7 Wheezy

Instalación de OpenLDAP

     #dpkg-reconfigure debconf

En las opciones que nos mostrara seleccionamos lo siguiente:
     diálogo, medio

     #apt-get install slapd ldap-utils
 Las siguientes respuestas:
     Omit OpenLDAP server configuration? No
     DNS domain name? home.local
     Organization name? home
     Administrador password? tu contraseña
     Confirm password? repetir la misma contraseña
     Allow LDAPv2 protocol? No

Administración de OpenLDAP
     #apt-get install phpldapadmin

Seleccionamos las siguientes opciones
     LDAP server host address: 192.168.10.2
    
Enable support for ldaps protocol? No
    
Distinguished name of the search base: dc=home,dc=local
    
Type of authentication: session
    
Login dn for the LDAP server: cn=admin,dc=home,dc=local  

     Web server(s) which will be reconfigured automatically: apache2 
     Should your webserver(s) be restarted? Yes

Conectar a phpldapadmin    
     Para conectar a nuestro servidor de LDAP mediante web, solo tendremos que abrir el navegador 
     web en una máquina que esté dentro de nuestra red y escribimos la siguiente dirección
     http://192.168.10.2/phpldadamin
     cn=admin,dc=home,dc=local
     Tu password



Añadir los esquemas de OpenLDAP para Samba 
#apt-get install samba-doc
#cp  /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/
#gunzip /etc/ldap/schema/samba.schema.gz
Buscamos el fichero ldap.conf y añadimos las siguientes lineas
#nano ldap.conf
include     /etc/ldap/schema/core.schema
include     /etc/ldap/schema/cosine.schema
include     /etc/ldap/schema/nis.schema
include     /etc/ldap/schema/inetorgperson.schema
include     /etc/ldap/schema/samba.schema

Guardar el fichero



Comprobamos que funcione
#slaptest -f ldap.conf -F /etc/ldap/slap.d/

Cambiamos los propietarios de los directorios de antes 


#chown -R openldap:openldap /etc/ldap/schema/
#chown -R openldap:openldap /etc/ldap/slapd.d/

Iniciar el servicio
#service slapd restart

Comprobamos que el archivo samba.ldif está en su sitio


#ls -l /etc/ldap/slapd.d/cn\=config/cn=\schema
-rw------- 1 openldap openldap 15545 May 16 16:40 cn={0}core.ldif
-rw------- 1 openldap openldap 11379 May 16 16:40 cn={1}cosine.ldif
-rw------- 1 openldap openldap  6509 May 16 16:40 cn={2}nis.ldif
-rw------- 1 openldap openldap  2873 May 16 16:40 cn={3}inetorgperson.ldif
-rw------- 1 openldap openldap 14752 May 16 16:50 cn={4}samba.ldif  

Instalación de Samba   

Paquete principal y sus dependencias

#apt-get install samba

Instalaremos smbldap-tools, que es un conjunto de scripts perl diseñados para la adminitrar usuarios y grupos almacenados en un directorio LDAP
#apt-get install make perl libnet-ldap-perl libcrypt-smbhash-perl
tar xvf smbldap-tools-0.9.10.tar.gz
cd smbldap-tools-0.9.10
./configure
make
make install
cp ~/smbldap-tools-0.9.10/doc/smb.conf.example /etc/samba/smb.conf

Ahora tenemos que configurar el samba, mediante el archivo smb.conf 
     #nano /etc/samba/smb.conf
       Introducimos las siguientes lineas
[global]
workgroup = HOME
server string = PDC
netbios name = samba
domain master = yes
local master = yes
domain logons = yes
client lanman auth = yes
client ntlmv2 auth = yes
lanman auth = yes
ntlm auth = yes
security = user
os level = 40
ldap ssl = off
ldap passwd sync = yes
passdb backend = ldapsam:"ldap://l192.168.10.2"
ldap admin dn = cn=admin,dc=home,dc=local
ldap suffix = dc=home,dc=local
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Machines
ldap delete dn = yes
add user script = /usr/local/sbin/smbldap-useradd -m '%u' -t 1
rename user script = /usr/local/sbin/smbldap-usermod -r '%unew' '%uold'
delete user script = /usr/local/sbin/smbldap-userdel '%u'
set primary group script = /usr/local/sbin/smbldap-usermod -g '%g' '%u'
add group script = /usr/local/sbin/smbldap-groupadd -p '%g'
delete group script = /usr/local/sbin/smbldap-groupdel '%g'
add user to group script = /usr/local/sbin/smbldap-groupmod -m '%u' '%g'
delete user from group script = /usr/local/sbin/smbldap-groupmod -x '%u' '%g'
add machine script = /usr/local/sbin/smbldap-useradd -w '%u' -t 1
logon path = \\%L\profiles\%U
logon drive = P:
logon home = \\%L\%U
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
case sensitive = No
default case = lower
preserve case = yes
short preserve case = Yes
dns proxy = No
wins support = Yes
winbind use default domain = Yes
nt acl support = Yes
msdfs root = Yes
hide files = /desktop.ini/ntuser.ini/NTUSER.*/
unix charset = iso-8859-15
display charset = iso-8859-15
dos charset = 850


[netlogon]

path = /home/netlogon

writable = No

browseable = No

write list = Administrator

[profiles]

path = /home/profiles

browseable = No

writeable = Yes

profile acls = yes

create mask = 0700

directory mask = 0700

[homes]
comment = Home directory
browseable = No
writeable = Yes

[share]
comment = Commun Directory
browseable = Yes
writeable = Yes
public = No
path = /home/share

[printers]
comment = All Printers
path = /var/spool/samba
create mask = 0700
printable = Yes
browseable = No

[print$]
comment = Printer Drivers
path = /var/lib/samba/printers

[group1]
comment = group1 share
path = /home/group1
valid users = @group1
force group = group1
read only = No
create mask = 0660
force create mode = 0660
directory mask = 0770
force directory mode = 0770

Ahora creamos los directorios que hemos establecido en el archivo smb.conf y les daremos los permisos necesarios

mkdir /home
mkdir /home/group1
chmod 770 /home/group1
mkdir /home/group2
chmod 770 /home/group2
mkdir /home/homes
mkdir /home/netlogon
mkdir /home/profiles
chmod 777 /home/profiles
mkdir /home/share
chmod 770 /home/share

Comprobamos que la configuración funcione correctamente
#testparm

Reiniciamos samba para que aplique todos los datos
#service samba restart 

Hacer que samba use la contraseña de OpenLDAP
#smbpasswd -W

Poblar OpenLDAP


Primero necesitaremos conocer nuestro SID. Para ello usaremos el siguiente comando
#net getlocalsid
La respuesta será un número de serie similar a éste
SID for domain SAMBATEST is: S-1-5-21-3015975622-2278597513-1543651915
Es importante guardarlo porque lo necesitaremos más tarde

Ahora crearemos los siguientes directorios
#mkdir -p /usr/local/etc/smbldap-tools
#nano /usr/local/etc/smbldap-tools/smbldap.conf

Añadimos las siguientes lineas

SID="S-1-5-21-3015975622-2278597513-1543651915" #SID que guardastes antes

masterLDAP="192.168.10.2"

masterPort="389"

slaveLDAP="192.168.10.2"

slavePort="389"

ldapTLS="0"

verify="require"

suffix="dc=home,dc=local"

usersdn="ou=Users,${suffix}"

computersdn="ou=Machines,${suffix}"

groupsdn="ou=Groups,${suffix}"

idmapdn="ou=Idmap,${suffix}"
scope="sub"
hash_encrypt="SSHA"
crypt_salt_format="%s"
userLoginShell="/bin/bash"
userHome="/home/homes/%U"
userHomeDirectoryMode="700"
userGecos="User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="3650"
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"

Ahora modificamos el siguiente archivo de configuración
#nano /usr/local/etc/smbldap-tools/smbldap_bind.conf

  Le añadimos lo siguiente

masterDN="cn=admin,dc=home,dc=local"

masterPw="P@ssw0rd"

slaveDN="cn=admin,dc=home,dc=local"

slavePw="P@ssw0rd"

Le damos los permisos necesarios
     #chmod 600 /usr/local/etc/smbldap-tools/smbldap_bind.conf
Probar ldap
     #smbldap-populate
     Pedira la contraseña de root

Autorizar Unix en OpenLDAP

Instalamos los siguientes paquetes
     #apt-get install libnss-ldap libpam-ldap
Preguntas a contestar
LDAP server Uniform Resource Identifier: ldap://192.168.10.2:389/

Distinguished name of the search base: dc=home,dc=local

LDAP version to use: 3

Does the LDAP database require login? No

Special LDAP privileges for root? Yes

Make the configuration file readable/writeable by its owner only? Yes

LDAP account for root: cn=admin,dc=home,dc=local

LDAP root account password: P@ssw0rd

Allow LDAP admin account to behave like local root? Yes

Does the LDAP database require login? No

LDAP administrative account: cn=admin,dc=home,dc=local
LDAP administrative password: P@ssw0rd
Local encryption algorithm to use for passwords: crypt

Ahora modificamos el siguiente archivo
     #nano /etc/nsswitch.conf
     Modificar las siguientes líneas
        passwrd:    compat ldap
        group:        compat ldap
        shadow:     compat ldap
Reiniciar el servidor

Crear usuarios 

Se utiliza el siguiente comando 
     #smbldap-useradd -a -c "Pepito Palotes" -m -P pepitolote -M pepilote@home.local


Para comprobar si el usuario se ha creado en LDAP instalaremos lo siguiente
#apt-get install ldap-utils

Ejecutar el siguiente comando
#ldapsearch -h samba -d dc=home,dc=local -x uid=pepilote

Para eliminar el usuario y su directorio
#smbldap-userdel -r pepilote

Para cambiar la contraseña del usuario
#smbldap-passwd -a pepilote

Creación de grupos y asignación de usuarios
 

Crear grupos
#smbldap-groupadd -a group1

Añadir usuarios a los grupos
#smbldap-groupmod -m pepilote group1

Comprobar los usuarios que componen un grupo
#smbldap-groupshow group1
 

No hay comentarios:

Publicar un comentario