18
Red basada en PDC ldap+samba Notas anteriores a la instalación Para crear la red yo he usado VirtualBox como herramienta. La máquina servidora es un lucidAmd64server, y las clientes, pueden ser varias distros de Ubuntu (lucid86desktop, lucid64desktop, maverick86desktop, maverick64desktop), la configuración en distros como OpenSuse v.14 es diferente ya que se hace desde el entorno Xwindows. Al crear las máquinas es importante darle como usuario inicial el nombre de “administrador” si seguimos los parámetros que usaremos en el manual. Al servidor le asigno la dirección ip 192.168.2.2, y a los clientes las direcciones 192.168.2.1XX. La configuración de la red de las máquinas ha de ser “red interna” en VirtualBox, como si sólo tenemos un adaptador como red interna no podrá salir a la “nube” para cargar los paquetes, lo más lógico es poner dos adaptadores el primero como “red interna” y el segundo como “NAT”, una vez instalados los paquetes podemos deshabilitar el segundo adaptador. Al instalar ubuntu server no instala el escritorio gnome, sino simplemente el modo terminal, para instalar el escritorio gnome, que después usaremos cuando tengamos que hacer de uso del navegador tecleamos: (pondo $ para distinguir de # que será el modo administrador, no se ha de teclear, es lo que aparecerá en el prompt). 1.- $sudo apt-get update 2.- $sudo apt-get upgrade 3.- $sudo apt-get install ubuntu-desktop (paciencia con el último que dependiendo de nuestro canal tardará bastante). El fichero de configuración de los dispositvos de red esta en la ruta /etc/network/interfaces y la configuración de la red ha de ser: 1.- abrimos un terminal y tecleamos: $ifconfig -nos dará los dispositivos de red que la máquina tenga configurados en ese momento, de acuerdo con ello tenemos que configurar como ip estática el más bajo dentro del rango (eth0,eth1,eth2,etc..) que nos ha dado al ejecutar ifconfig. (voy a hacerlo en el caso del servidor, en caso de las máquinas clientes es análogo) 2.- Editamos el fichero interfaces con $sudo gedit /etc/network/interfaces y añadiremos: auto ethX iface ethX inet static address 192.168.2.2 netmask 255.255.255.0 network 192.168.2.0 broadcast 192.168.2.255 Despues de cerrar /etc/network/interfaces, reiniciaremos la red, teclearemos: $sudo /etc/init.d/networking restart Ahora editamos /etc/hostname (con vi o gedit según preferencias) y le damos el nombre lucidsrv a la máquina, recordar que tenemos que ser administradores (comando sudo).

Red Basada en PDC Ldap+Samba

Embed Size (px)

Citation preview

Page 1: Red Basada en PDC Ldap+Samba

Red basada en PDC ldap+samba

Notas anteriores a la instalaciónPara crear la red yo he usado VirtualBox como herramienta. La 

máquina servidora es un lucidAmd64server, y las clientes, pueden ser varias distros de Ubuntu (lucid86desktop, lucid64desktop, maverick86desktop, maverick64desktop), la configuración en distros como OpenSuse v.14 es diferente ya que se hace desde el entorno Xwindows.

Al crear las máquinas es importante darle como usuario inicial el nombre de “administrador” si seguimos los parámetros que usaremos en el manual.

Al servidor le asigno la dirección ip 192.168.2.2, y a los clientes las direcciones 192.168.2.1XX.

La configuración de la red de las máquinas ha de ser “red interna” en VirtualBox, como si sólo tenemos un adaptador como red interna no podrá salir a la “nube” para cargar los paquetes, lo más lógico es poner dos adaptadores el primero como “red interna” y el segundo como “NAT”, una vez instalados los paquetes podemos deshabilitar el segundo adaptador.

Al instalar ubuntu server no instala el escritorio gnome, sino simplemente el modo terminal, para instalar el escritorio gnome, que después usaremos cuando tengamos que hacer de uso del navegador tecleamos:(pondo $ para distinguir de # que será el modo administrador, no se ha de teclear, es lo que aparecerá en el prompt).1.­ $sudo apt­get update2.­ $sudo apt­get upgrade3.­ $sudo apt­get install ubuntu­desktop(paciencia con el último que dependiendo de nuestro canal tardará bastante).

El fichero de configuración de los dispositvos de red esta en la ruta /etc/network/interfaces y la configuración de la red ha de ser:1.­ abrimos un terminal y tecleamos:$ifconfig­nos dará los dispositivos de red que la máquina tenga configurados en ese momento, de acuerdo con ello tenemos que configurar como ip estática el más bajo dentro del rango (eth0,eth1,eth2,etc..) que nos ha dado al ejecutar ifconfig.(voy a hacerlo en el caso del servidor, en caso de las máquinas clientes es análogo)2.­ Editamos el fichero interfaces con $sudo gedit /etc/network/interfacesy añadiremos:

auto ethXiface ethX inet static

address 192.168.2.2netmask 255.255.255.0network 192.168.2.0broadcast 192.168.2.255

Despues de cerrar /etc/network/interfaces, reiniciaremos la red, teclearemos:$sudo /etc/init.d/networking restart

Ahora editamos /etc/hostname (con vi o gedit según preferencias) y le damos el nombre lucidsrv a la máquina, recordar que tenemos que ser administradores (comando sudo).

Page 2: Red Basada en PDC Ldap+Samba

Si queremos comprovar que los cambios han surtido efecto lo podemos hacer tecleando de nuevo $ifconfig. Nos saldrá una pantalla parecida a:

Servidor

Instalaremos los paquetes:Nota: Antes de instalarlos hacer un $sudo apt­get update$sudo apt­get install slapd ldap­utils

Prodeceremos a crear el arbol ldap, en primer lugar tendremos que crear el fichero backend.ldif. Hemos de poner nuestra contraseña.

# Load dynamic backend modulesdn: cn=module,cn=configobjectClass: olcModuleListcn: moduleolcModulepath: /usr/lib/ldapolcModuleload: back_hdb

# Database settingsdn: olcDatabase=hdb,cn=configobjectClass: olcDatabaseConfigobjectClass: olcHdbConfigolcDatabase: {1}hdbolcSuffix: dc=micasa,dc=comolcDbDirectory: /var/lib/ldapolcRootDN: cn=administrador,dc=micasa,dc=comolcRootPW: “contraseña”olcDbConfig: set_cachesize 0 2097152 0olcDbConfig: set_lk_max_objects 1500olcDbConfig: set_lk_max_locks 1500olcDbConfig: set_lk_max_lockers 1500olcDbIndex: objectClass eqolcLastMod: TRUEolcDbCheckpoint: 512 30

olcAccess: to attrs=userPassword by dn="cn=administrador,dc=micasa,dc=com" write by anonymous auth by self write by * noneolcAccess: to attrs=shadowLastChange by self write by * readolcAccess: to dn.base="" by * readolcAccess: to * by dn="cn=administrador,dc=micasa,dc=com" write by * read

Una vez hecho esto copiamos el fichero en /etc/ldap/schema y nos situamos en dicho directorio.

$cd /etc/ldap/schema

Page 3: Red Basada en PDC Ldap+Samba

Ahora añadiremos los ldif que necesitamos para construir el arbol ldap con el comando ldapadd de la forma:

$sudo ldapad ­Y EXTERNAL ­H ldapi:/// ­f cosine.ldif$sudo ldapad ­Y EXTERNAL ­H ldapi:/// ­f nis.ldif$sudo ldapad ­Y EXTERNAL ­H ldapi:/// ­f inetorgperson.ldif$sudo ldapad ­Y EXTERNAL ­H ldapi:/// ­f backend.ldif

En esta última nos ha de salir por pantalla lo siguiente:

Ahora instalaremos Samba, con el comando

$sudo apt­get install samba samba­doc smbclient smbldap­tools

Crearemos el smb.conf tal y como aparece y lo copiamos en /etc/samba

[global]

        # Domain name ..        workgroup = micasa        # Server name ­ as seen by Windows PCs ..        netbios name = lucidsrv        # Be a PDC ..         domain logons = Yes        domain master = Yes        # Be a WINS server ..        wins support = true        obey pam restrictions = Yes        dns proxy = No        os level = 35        log file = /var/log/samba/log.%m        max log size = 1000        syslog = 0        panic action = /usr/share/samba/panic­action %d        pam password change = Yes

        # Allows users on WinXP PCs to change their password when they press Ctrl­Alt­Del        unix password sync = no        ldap passwd sync = yes

        # Printing from PCs will go via CUPS ..        load printers = yes        printing = cups        printcap name = cups

        # Use LDAP for Samba user accounts and groups ..        passdb backend = ldapsam:ldap://localhost

        # This must match init.ldif ..        ldap suffix = dc=micasa,dc=com        # The password for cn=administrador MUST be stored in /etc/samba/secrets.tdb        # This is done by running 'sudo smbpasswd ­w'.        ldap admin dn = cn=administrador,dc=micasa,dc=com

        # 4 OUs that Samba uses when creating user accounts, computer accounts, etc.        # (Because we are using smbldap­tools, call them 'Users', 'Computers', etc.)        ldap machine suffix = ou=computers

Page 4: Red Basada en PDC Ldap+Samba

        ldap user suffix = ou=users        ldap group suffix = ou=groups        ldap idmap suffix = ou=idmap

        # Samba and LDAP server are on the same server in this example.        ldap ssl = no

        # Scripts for Samba to use if it creates users, groups, etc.        add user script = /usr/sbin/smbldap­useradd ­m '%u'        delete user script = /usr/sbin/smbldap­userdel %u        add group script = /usr/sbin/smbldap­groupadd ­p '%g'        delete group script = /usr/sbin/smbldap­groupdel '%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'

        # Script that Samba users when a PC joins the domain ..        # (when changing 'Computer Properties' on the PC)        add machine script = /usr/sbin/smbldap­useradd ­w '%u'

        # Values used when a new user is created ..        # (Note: '%L' does not work properly with smbldap­tools 0.9.4­1)        logon drive =        logon home =        logon path =        logon script = allusers.bat

        # This is required for Windows XP client ..        server signing = auto        server schannel = Auto

[homes]        comment = Home Directories        valid users = %S        read only = No        browseable = No

[netlogon]        comment = Network Logon Service        path = /var/lib/samba/netlogon        admin users = root        guest ok = Yes       browseable = No       logon script = allusers.bat

[Profiles]        comment = Roaming Profile Share        # would probably change this to elsewhere in a production system ..        path = /var/lib/samba/profiles        read only = No        profile acls = Yes        browsable = No

[printers]        comment = All Printers        path = /var/spool/samba        use client driver = Yes        create mask = 0600        guest ok = Yes        printable = Yes        browseable = No        public = yes        writable = yes        admin users = root        write list = root

[print$]        comment = Printer Drivers Share        path = /var/lib/samba/printers        write list = isaac        create mask = 0664        directory mask = 0775        admin users = root

Page 5: Red Basada en PDC Ldap+Samba

[shared]       writeable = yes       path = /var/lib/samba/shared

public = yesbrowseable = yes

[archive]        path = /exports/archive        browseable = yes        create mask = 755        directory mask = 755        read only = no

Seguidamente le daremos la contraseña del administrador de ldap a samba:

$sudo smbpasswd ­Wpassword: “contraseña de backend.ldif”Nos pedirá que repitamos la entrada, a de aparecer algo como esto:

Reiniciamos Samba

$sudo service smbd restart

Ahora para comprobar si funciona probaremos con smbclient y contraseña en blanco.

$sudo smbclient ­L localhost

Nos tiene que aparecer lo siguiente, en caso contrario algo ha ido mal, podemos probar a reinicializar la máquina ($sudo reboot), por si el servicio de smbd no se ha reinicializado (que ocurre con frecuencia), y probar el último paso con smbclient, si aún así no aparece esto, algo con anterioridad hemos hecho mal.

Creamos las carpetas:

$sudo mkdir ­v ­m 777 /var/lib/samba/profiles$sudo mkdir ­v ­p ­m 777 /var/lib/samba/netlogon

Ahora añadiremos el esquema samba a nuestro árbol ldap, primero copiaremos un fichero a /etc/ldap/schema

Page 6: Red Basada en PDC Ldap+Samba

$sudo cp /usr/share/doc/samba­doc/examples/LDAP/samba.schema.gz /etc/ldap/schema

Lo descomprimimos:

$sudo gzip ­d /etc/ldap/schema/samba.schema.gz

Ahora lo convertiremos al formato .ldif para ello vamos a crear un directorio en raiz llamado /temp y vamos a crear un archivo con el nombre schema_convert.conf con el contenido que hay a continuación y que copiaremos en /etc/ldap/schema.

include /etc/ldap/schema/core.schemainclude /etc/ldap/schema/collective.schemainclude /etc/ldap/schema/corba.schemainclude /etc/ldap/schema/cosine.schemainclude /etc/ldap/schema/duaconf.schemainclude /etc/ldap/schema/dyngroup.schemainclude /etc/ldap/schema/inetorgperson.schemainclude /etc/ldap/schema/java.schemainclude /etc/ldap/schema/misc.schemainclude /etc/ldap/schema/nis.schemainclude /etc/ldap/schema/openldap.schemainclude /etc/ldap/schema/ppolicy.schemainclude /etc/ldap/schema/samba.schema

$sudo mkdir /temp

  Posteriormente nos situamos en el directorio /etc/ldap/schema y usamos la herramienta slapcat de la manera siguiente:

Primero nos situamos como superusuario con $sudo su. Posteriormente tecleamos:#slapcat ­f shema_convert.conf ­F /temp ­n0 ­s “cn={12}samba,cn=schema,cn=config” > /temp/cn=samba.ldif

Nota: La cn{12} puede cambiar según la configuración, para encontrar el #slapcat ­f schema_convert.conf ­F /temp ­n 0 | grep samba y nos dará el número adecuado que tenemos que poner, aunque por defecto es {12} para el árbol que hemos creado.

Ahora tendremos que copiar del directorio /temp el archivo cn=samba.ldif a /etc/ldap/schema

$sudo cp ­v /temp/cn=samba.ldif /etc/ldap/schema

Modificaremos el archivo cn=samba.ldif las líneas 1 y 3 borrando el {12} que hay, también eliminaremos las 7 últimas líneas de dicho archivo.

Por último añadimos el esquema al árbol ldap, nos situamos de nuevo en el directorio /etc/ldap/schema y con el comando ldapadd.

$sudo ldapadd  ­Y EXTERNAL ­H ldapi:/// ­f cn=samba.ldif

Nos dará como resultado esto:

Page 7: Red Basada en PDC Ldap+Samba

Si hacemos una consulta al árbol desde cualquier directorio.

$sudo ldapsearch ­Y EXTERNAL ­H ldapi:/// ­D cn=administrador,cn=config ­b cn=config ­W olcDatabase={1}hdbNos pedirá el password de backend.ldif, lo introducimos.

Nos dará al final lo siguiente: (no esta toda la salida, sólo el final).

Si llegamos aquí, parece ser que el árbol ldap esta bien construido.

Configuración de Samba.

Lo haremos a través de un script en perl, para ello hemos de descomprimirlo.

$sudo gzip ­d /usr/share/doc/smbldap­tools/configure.pl.gz

Seguidamente lo ejecutamos 

$sudo perl /usr/share/doc/smbldap­tools/configure.pl

Aquí pulsamos enter en todas las líneas menos en 4

logon home y logon path; dónde teclearemos un punto “.” y en ldap master bin password y ldap slave bin password dónde pondremos la contraseña que hemos dado en bakend.ldif

Este archivo escribirá los archivos siguientes/etc/smbldap­tools/smbldap_bind.conf/etc/smbldap­tools/smbldap.conf

Creamos la extructura del directorio

$sudo smbldap­populate(nos pedirá un password, lo dejamos en blanco y pulsamos enter)

Page 8: Red Basada en PDC Ldap+Samba

Nos dará una salida como esta:

Retoques finales

$sudo /etc/init.d/slapd stopParamos el servico ldap

$sudo slapindex(aquí nos saldrá un measaje al que no haremos ni caso)

$sudo chown openldap:openldap /var/lib/ldap/*.*(si nos da un error ir hasta el directorio en cuestión lo tenemos que hacer como root (#), listar los archivos para ver los dueños con #ls ­la y si no pertenecen a openldap hacer el chown desde allí, de la manera #chown openldap:openldap *.*, )

seguimos...., reiniciamos el servico ldap.

$sudo /etc/init.d/slapd start

Con esto habremos terminado con la construcción del servidor ldap+samba, ahora nos quedará darle los parámetros de autenticación para los clientes.

Page 9: Red Basada en PDC Ldap+Samba

Autenticación de clientes en el Servidor.

Instalaremos los paquetes siguientes:

$sudo apt­get install ldap­auth­client libnss­ldapNos instalará además de estos paquetes otros que son dependencias de éstos.Abrirá una aplicación dónde le tendremos que dar los parámetros, cambiando lo que hay por defecto:

ldap://192.168.2.2dc=micasa,dc=comVersión 3 de ldap.Si a “Make local root Database admin”.No a “Does the LDAP database require login”dn=administrador,dc=micasa,dc=comTeclearemos el password de backend.ldif

En la primera ejecución no nos pedirá el modo de encriptar las contraseñas, así que volvermos a ajecutar la aplicación y le diremos al final de la misma que el modo de encriptación que será crypt. Esto hay que tenerlo en cuenta más adelante en la configuración de LAM y en la autenticación de los clientes.

$sudo dpkg­reconfigure ldap­auth­config

volveremos a hacer lo mismo que el paso anterior, en la mayoría sólo tenemos que confirmar. (el password lo hemos de poner de nuevo).Los resultados los escribirá en /etc/ldap.conf

Ahora que libnss­ldap esta configurado, activamos los perfiles auth­client­config introduciendo:

$sudo auth­client­config ­t nss ­p lac_ldap

dónde ­p lac_ldap escribirá en /etc/nsswitch.conf y el ­t nss le dirá el tipo de autenticación.

Usando la utilidad pam­auth­update configurar el sistema para la atenticación.

$sudo pam­auth­update ldap

Aquí señalaremos los tipos de autenticación del servidor, lo usual es señalar únicamente LDAP, pero si ha habido un error en la configuración del servidor no podremos autenticarnos de nuevo en la máquina, yo incluiría la autenticación unix también hasta que estemos seguros, el resto no los quitamos (usando barra espaciadora y tab).

Incluimos nuestros usuario “administrador” dentro del grupo administradores:

$sudo smbldap­groupmod ­m 'administrador' 'Administrators'

Page 10: Red Basada en PDC Ldap+Samba

Nos tiene que dar un mensaje afirmativo como el que sigue:

Ahora ya podremos añadir un usuario nuevo a nuestro árbol ldap.

$sudo smbldap­useradd ­a ­m ­P juan

Nos pedirá la contraseña para el nuevo usuario.Podemos comprovar que el usuario ha estado incluido tecleando:

$sudo ldapsearch ­xLLL ­b “dc=micasa,dc=com” uid=juanAparecerá algo así:

Después yo he dejado los archivos que cito a continuación como están:(Podeis crear el fichero y copiar­pegar el texto.)

/etc/ldap.conf

###DEBCONF####### Configuration of this file will be managed by debconf as long as the## first line of the file says '###DEBCONF###'#### You should use dpkg­reconfigure to configure this file via debconf#### @(#)$Id: ldap.conf,v 1.38 2006/05/15 08:13:31 lukeh Exp $## This is the configuration file for the LDAP nameservice# switch library and the LDAP PAM module.## Your LDAP server. Must be resolvable without using LDAP.# Multiple hosts may be specified, each separated by a # space. How long nss_ldap takes to failover depends on# whether your LDAP client library supports configurable# network or connect timeouts (see bind_timelimit).host 192.168.2.2# The distinguished name of the search base.base dc=micasa,dc=com

Page 11: Red Basada en PDC Ldap+Samba

# Another way to specify your LDAP server is to provide anuri ldap://192.168.2.2

# The LDAP version to use (defaults to 3# if supported by client library)ldap_version 3

# The distinguished name to bind to the server with# if the effective user ID is root. Password is# stored in /etc/ldap.secret (mode 600)rootbinddn cn=administrador,dc=micasa,dc=com

# The port.# Optional: default is 389.port 389

# Reconnect policy: hard (default) will retry connecting to# the software with exponential backoff, soft will fail# immediately.bind_policy soft

# Do not hash the password at all; presume# the directory server will do it, if# necessary. This is the default.pam_password crypt

#Mis bassesnss_base_passwd ou=users,dc=micasa,dc=comnss_base_shadow ou=users,dc=micasa,dc=com nss_base_group  ou=groups,dc=micasa,dc=comnss_base_hosts ou=computers,dc=micasa,dc=com

nss_initgroups_ignoreusers avahi,avahi­autoipd,backup,bin,couchdb,daemon,games,gdm,gnats,hplip,irc,kernoops,libuuid,list,lp,mail,man,messagebus,news,proxy,pulse,root,rtkit,saned,speech­dispatcher,statd,sync,sys,syslog,usbmux,uucp,www­data

en /etc/ldap/ldap.conf

## LDAP Defaults## See ldap.conf(5) for details# This file should be world readable but not world writable.BASE dc=micasa,dc=comURI ldap://192.168.2.2:389

SIZELIMIT 0TIMELIMIT 0

DEREF never

en /etc/nsswitch.conf

# /etc/nsswitch.conf## Example configuration of GNU Name Service Switch functionality.# If you have the `glibc­doc­reference' and `info' packages installed, try:# `info libc "Name Service Switch"' for information about this file.

passwd: files ldapgroup: files ldapshadow:  files ldap

hosts:          files dns networks:       files

protocols:      db filesservices:       db filesethers:         db filesrpc:            db files

netgroup:  files ldap

Page 12: Red Basada en PDC Ldap+Samba

Gestión del Directorio.

Para hacer la gestión del directorio ldap, se puede hacer a través de la herramiento LAM (ldap­account­manager) que podemos instalar tecleando:

$sudo apt­get install ldap­account­maneger

Para acceder a dicha herramienta nos iremos a cualquier navegador y pondremos la dirección http://localhost/lam

Lo primero que tenemos que hacer es configurar la herramienta en “Edit general setting”, el password por defecto es “lam”. Eligiremos la opción “Edit server profiles” y cambiaremos los datos que vienen por defecto en todas las pestañas, de acuerdo con especificiado en el archivo bakend.ldif y smb.conf. A contiuación añado las capturas más interesantes:

aquí tecleamos el password que tenemos en backend.ldif para poder loguearnos como administrador.

Page 13: Red Basada en PDC Ldap+Samba

!ojo! Si os fijais he cambiado el UID mínimo, que será el que corresponderá al usuario creado (juan=1001)+1, osea 1002.También cambio el UID de los Host y el tipo de encriptación CRIPT.

Por último pulsaremos la pestaña SAVE y salvaremos los cambios realizados.

Si nos volvemos a logear aparecerá algo así:

 y al loguearnos ya podemos añadir usuarios, máquinas y crear grupos.

Page 14: Red Basada en PDC Ldap+Samba

Solamente tendremos en principio tres usuarios nobody el que hemos creado, y root que será el administrador, esto tres los dejamos tal y como estan. No me extiendo en el uso de la aplicación, es muy intuitivo, si ya habeis administrado sitema tipo Active Directory no tendreis ningún tipo de problema. Si no es así el la web y en su página hay mucha información de LAM.

Autenticar clientes linux.

En el Servidor:

En LAM crearemos la cuenta del host, si éste se llama lucidone, en cuenta descripción pondremos lucidone, en la pestaña Unix, nombre usuario y nombre común pondremos lucidone$ en el grupo primario Domain computers. Guardaremos cambios.

En la máquina cliente:

Instalaremos los paquetes:

$sudo apt­get install auth­client­config libpam­ldap libnss­ldap ldap­utils

Nos hará las mismas preguntas que con el servidor que contestaremos de manera semejante, también lo ejecutamos una segunda vez para darle el modo de encriptación que será crypt.Después de ésto copiamos el mismo archivo  /etc/ldap.conf que copiamos para el servidor, de hecho la autenticación es la misma en ambas máquinas.

Page 15: Red Basada en PDC Ldap+Samba

###DEBCONF####### Configuration of this file will be managed by debconf as long as the## first line of the file says '###DEBCONF###'#### You should use dpkg­reconfigure to configure this file via debconf#### @(#)$Id: ldap.conf,v 1.38 2006/05/15 08:13:31 lukeh Exp $## This is the configuration file for the LDAP nameservice# switch library and the LDAP PAM module.## Your LDAP server. Must be resolvable without using LDAP.# Multiple hosts may be specified, each separated by a # space. How long nss_ldap takes to failover depends on# whether your LDAP client library supports configurable# network or connect timeouts (see bind_timelimit).host 192.168.2.2# The distinguished name of the search base.base dc=micasa,dc=com

# Another way to specify your LDAP server is to provide anuri ldap://192.168.2.2

# The LDAP version to use (defaults to 3# if supported by client library)ldap_version 3

# The distinguished name to bind to the server with# if the effective user ID is root. Password is# stored in /etc/ldap.secret (mode 600)rootbinddn cn=administrador,dc=micasa,dc=com

# The port.# Optional: default is 389.port 389

# Reconnect policy: hard (default) will retry connecting to# the software with exponential backoff, soft will fail# immediately.bind_policy soft

# Do not hash the password at all; presume# the directory server will do it, if# necessary. This is the default.pam_password crypt

#Mis bassesnss_base_passwd ou=users,dc=micasa,dc=comnss_base_shadow ou=users,dc=micasa,dc=com nss_base_group  ou=groups,dc=micasa,dc=comnss_base_hosts ou=computers,dc=micasa,dc=com

nss_initgroups_ignoreusers avahi,avahi­autoipd,backup,bin,couchdb,daemon,games,gdm,gnats,hplip,irc,kernoops,libuuid,list,lp,mail,man,messagebus,news,proxy,pulse,root,rtkit,saned,speech­dispatcher,statd,sync,sys,syslog,usbmux,uucp,www­data

Este archivo es más extenso que lo que aquí se muestra, nosotros lo dejamos así, borrando las demás líneas, ya que hay distros que no cambian el modo de autentication de /etc/passwd y /etc/group por las bases de ldap si no es así.

Editamos el fichero /etc/resolv.conf y añadirmos:

domain micasa.comsearch micasa.comnameserver 192.168.2.2

Page 16: Red Basada en PDC Ldap+Samba

Editamos el archivo /etc/nsswitch.conf y lo configuramos de la siguiente manera:# /etc/nsswitch.conf## Example configuration of GNU Name Service Switch functionality.# If you have the `glibc­doc­reference' and `info' packages installed, try:# `info libc "Name Service Switch"' for information about this file.

passwd: compat ldapgroup: compat ldapshadow:  compat ldap

hosts:          files dns networks:       files

protocols:      db filesservices:       db filesethers:         db filesrpc:            db files

netgroup:  compat ldap

Editamos el archivo /etc/ldap/ldap.conf y lo confiramos de la siguiente manera, que será la misma que en el servidor.## LDAP Defaults## See ldap.conf(5) for details# This file should be world readable but not world writable.BASE dc=micasa,dc=comURI ldap://192.168.2.2:389

SIZELIMIT 0TIMELIMIT 0

DEREF never

Ahora sólo tenemos que cambiar los parámetros de acceso que hay en la carpeta /etc/pam.d# /etc/pam.d/common­auth ­ authentication settings common to all services## This file is included from other service­specific PAM config files,# and should contain a list of the authentication modules that define# the central authentication scheme for use on the system# (e.g., /etc/shadow, LDAP, Kerberos, etc.).  The default is to use the# traditional Unix authentication mechanisms.## As of pam 1.0.1­6, this file is managed by pam­auth­update by default.# To take advantage of this, it is recommended that you configure any# local modules either before or after the default block, and use# pam­auth­update to manage selection of other modules.  See# pam­auth­update(8) for details.

auth    sufficient  pam_ldap_so use_first_passauth    sufficient  pam_unix.so likeauth nullokauth    required    pam_deny.soauth required   pam_env.so## /etc/pam.d/common­account ­ authorization settings common to all services## This file is included from other service­specific PAM config files,# and should contain a list of the authorization modules that define# the central access policy for use on the system.  The default is to# only deny service to users whose accounts are expired in /etc/shadow.## As of pam 1.0.1­6, this file is managed by pam­auth­update by default.# To take advantage of this, it is recommended that you configure any# local modules either before or after the default block, and use# pam­auth­update to manage selection of other modules.  See# pam­auth­update(8) for details.#account   sufficient   pam_ldap.soaccount  sufficient  pam_unix.soaccount   required   pam_deny.so

Page 17: Red Basada en PDC Ldap+Samba

## /etc/pam.d/common­session ­ session­related modules common to all services## This file is included from other service­specific PAM config files,# and should contain a list of modules that define tasks to be performed# at the start and end of sessions of *any* kind (both interactive and# non­interactive).## As of pam 1.0.1­6, this file is managed by pam­auth­update by default.# To take advantage of this, it is recommended that you configure any# local modules either before or after the default block, and use# pam­auth­update to manage selection of other modules.  See# pam­auth­update(8) for details.#session  required  pam_limits.sosession   required   pam_mkhomedir.so skel=/etc/skel/session   optional   pam_ldap.sosession   required   pam_unix.so## /etc/pam.d/common­password ­ password­related modules common to all services## This file is included from other service­specific PAM config files,# and should contain a list of modules that define the services to be# used to change user passwords.  The default is pam_unix.# Explanation of pam_unix options:## The "sha512" option enables salted SHA512 passwords.  Without this option,# the default is Unix crypt.  Prior releases used the option "md5".## The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in# login.defs.## See the pam_unix manpage for other options.# As of pam 1.0.1­6, this file is managed by pam­auth­update by default.# To take advantage of this, it is recommended that you configure any# local modules either before or after the default block, and use# pam­auth­update to manage selection of other modules.  See# pam­auth­update(8) for details.#password   sufficient  pam_ldap.do use_first_passpassword  sufficient  pam_unix.so nullok md5 shadow use_authtokpassword   required   pam_deny.so

Con esto deberiamos loguearnos nos un cliente del árbol ldap en la máquina cliente después de rebotar la máquina.Podemos hacer una prueba para comprobar que “vemos” el directorio ldap desde la máquina cliente con:

$ldapsearch ­x

Tienes que tener en cuenta que los dipositivos de red deben estar configurados correctamente, en el mismo rango de ips.

Page 18: Red Basada en PDC Ldap+Samba

Autenticar clientes Windows.

En el Servidor:

Primero y ante todo crearemos un host en LAM, si la máquina windows se llama XP, en la pestaña cuenta Descripción ponemos XP, en la pestaña Unix Nombre de usuario y nombre común pondremos XP$, grupo primario Domain Computers y en la pestaña Samba 3 Nombre a Mostrar pondremos XP.

Segundo tendremos que crear la cuenta root, con $sudo passwd root,e introduciendo la contraseña de backend.

En la máquina cliente:

Tercero, iremos a Propiedades de Mi Pc ­Nombre del equipo­ y cambiaremos grupo de trabajo por dominio micasa, nos pedirá la constraseña del administrador de dominio y la contraseña (en este caso el usuario será root y la contraseña la de backend), el rango de la red ha de estar en el mismo rango que el del servidor y ser estática, incluiremos también la dirección ip del servidor ldap, dónde nos pide la dirección DNS. LA puerta de enlace le podemos poner 192.168.2.1. A continuación teneís una captura:

Este manual a estado confeccionado por Emilio C. Araujo.(para cualquier pregunta o rectificación mi direccion de correo es [email protected])

L'Hospitalet de Llobregat (Barcelona) a 20 de Febrero de 2012.