Вы находитесь на странице: 1из 32

ÍNDEX

1- Introducció
2- Software a utilizar
3- Configuració de SLAPD
3.1- Agregar el Schema Samba al Directori
3.2- El fitxer /etc/ldap/slapd.conf
3.3- Proves Preliminars de servidor ldap
3.4- Preparar apache i PHP per PhpLDAPadmin
3.5- L’eina phpldapadmin
4- Configuració de Samba
4.1- El fitxer /etc/samba/smb.conf
4.2- L’eina SWAT (Samba Web Administration Tool)
4.3- Crear els directoris netlogon i profiles
4.4- Comprovant la configuració i iniciant el servei
5- Configuració de smbldap-tools
5.1- Obtenint els fitxers de configuració
5.2- Obtenint el SID
5.3- El fitxer /etc/smbldap-tools/smbldap.conf
5.4- El fitxer /etc/smbldap-tools/smbldap_bind.conf
5.5- Poblant el directori LDAP amb el Schema Samba – L’eina
smbldap-populate
5.6- Testejant la configuració de Samba i ldap
6- Configuració de PAM/NSS
6.1- Configuració de libnss-ldap
6.1.1- El fitxer /etc/ldap/ldap.conf
6.1.2- El fitxer /etc/libnss-ldap.conf
6.1.3- El fitxer /etc/libnss-ldap.secret
6.2- Configurant el paquet libpam-ldap
6.2.1- El fitxer /etc/pam_ldap.conf
6.2.2- El fitxer /etc/pam_ldap.secret
6.3- El fitxer /etc/nsswitch.conf
6.4- Configuran PAM
6.4.1- El fitxer /etc/pam.d/common-auth
6.4.2- El fitxer /etc/pam.d/common-account
6.4.3- El fitxer /etc/pam.d/common-password
6.4.4- El fitxer /etc/pam.d/common-session
7- Creació d’usuaris i grups en el directori LDAP amb smbldap-tools
7.1- Crear usuaris del domini
7.2- Crear un usuari administrador del domini
7.3- Crear un Grup en el domini
7.4- Eliminar usuaris i grups del domini
8- Agregar els usuaris Linux/Unix locals al directori LDAP
9- Agregar equips Windows al Domini
9.1- Requisits del sistema Windows
9.2- Unir l’equipo amb Windows XP Professional al domini Samba
10- Bibliografia
INTRODUCCIÓ

1. Què és LDAP?

LDAP (“Lightweight Directory Access Protocol'', Protocol Lleuger d’Accés a


Directoris) és un protocol de tipus client-servidor per accedir a un servei de
directori.

1.1 Què és un servei de directori?

Un directori és com una base de dades, però en general conté informació més
descriptiva i més basada en atributs. La informació que conté en un directorio
normalment es llegeix molt més del que s’escriu. Com conseqüència els directoris
no implementen normalment els complicats esquemes per transaccions o esquemes
de reducció (rollback) que les bases de dades utilitzen per portar a terme
actualitzacions complexes de grans volums de dades. Per contra, les actualitzacions
en un directori són usualment canvis senzills de tot o res, si es que es permeten en
algu.

Els directoris estan afinats per proporcionar una resposta ràpida a operacions de
búsqueda o consulta. Poden tenir la capacitat de replicar informació de forma
amplia, amb el fi d’augmentar la disponibilitat i la fiabilitat, i al mateix temps reduiïr
el temps de resposta. Quan es duplica (o es replica) la informació del directori,
poden admetre inconsisténcies temporals entre la informació que hi ha en les
répliques, sempre que finalment existeixi una sincronizació.

Existeixen moltes maneres diferents de proporcionar un servei de directori. Els


diferents métodes permeteixen emmagatzemar en el directori diferents tipus de
informació, establir requisits diferents per fer referències a la informació, consultar-
la i actualitzar-la, la forma en que protegeix al directori d’accessos no autoritzats,
etc. Alguns serveis de directori són locals, proporcionant serveis a un context
restringit (per exemple, el servei de finger en una única màquina). Altres serveis
són globals, proporcionan servei en un context molt més ampli.

1.2 Com funciona LDAP?

El servei de directori LDAP es basa en un model client-servidor. Un o més servidors


LDAP contenen les dades que conformen l’arbre del directori LDAP o base de dades
troncal. El cliente ldap es connecta amb el servidor LDAP i li fa una consulta. El
servidor contesta amb la resposta corresponent, o bé amb una indicació amb on pot
el client trobar més informació (normalment un altre servidor LDAP). No importa
amb quin servidor LDAP es connecti el client: sempre observarà la mateixa vista del
directori; el nom que se li presenta a un servidor LDAP fa referència a la mateixa
entrada a la que faría referència en l’altre servidor LDAP. Es aquesta una
característica important d’un servei de directoris universal com LDAP.
2. Sowtware a utilitzar:

Paquets necessaris:

Abans d’instal·lar els paquets necessaris per LDAP necessitem fer el següent:

apt-get update

apt-get install bind9

Anar a /etc/bind/ i configurar el named.conf i afegir una nova zona:

zone “aso.local” {

type master;

file “ /etc/bind/aso.local.zone”;

};

Creem aso.local.zone i posem el següent:

; BIND data file for local loopback interface

$TTL 604800

@ IN SOA aso.local. root.aso.local. (

1 ; Serial

604800 ; Refresh

86400 ; Retry

2419200 ; Expire

604800 ) ; Negative Cache TTL

@ IN NS aso.local.

@ IN A 192.50.61.22

aso.local IN A 192.50.61.22

Reiniciem el servei amb /etc/init.d/bind restart.


I comprovem que funciona amb un nslookup aso.local.

Ara si, ja podem instal·lar els paquets per fer funcionar LDAP:
apt-get install apache2-suexec libapache2-mod-php5 php5 php5-cli php5-curl php5-gd
php5-imap php5-ldap php5-mcrypt php5-mhash php5-sqlite php5-tidy php5-xmlrpc php-
pear slapd mcrypt ldap-utils libgd-tools apache2-doc libpam-ldap libnss-ldap
resolvconf samba swat smbclient smbfs smbldap-tools libpam-cracklib libpam-dotfile

Durant la instal·lació ens saltará les finestres de configuració dels corresponents


paquets, on podem configurar-los directament o saltar-los, ja que després els
tornarem a configurar.

La linea /dev/sda1 del fitxer /etc/fstab, ha de quedar aixi:

/dev/sda1 / ext3 relatime,user_xattr,acl,errors=remount-ro 0 1

Fitexers que es modificaran( no estaria malament fer una copia de


seguretat d’aquests fitxers):

• Fitxer /etc/ldap/slapd.confEs el archivo principal de configuración del


servidor slapd
• Fitxer /etc/samba/smb.conf
• Fitxer /etc/smbldap-tools/smbldap.conf (SID obtingut amb net
getlocalsid)
• Fitxer /etc/smbldap-tools/smbldap_bind.conf és el fitxer de
credencials, en ell s’emmagatzemarà en clar la clau del administrador del
servidor ldap.
• Fitxer /etc/libnss-ldap.conf  fitxer de configuración de libnns-ldap. Allà
es podràn emmagatzemar en clar alguna clau.
• Fitxer /etc/libnss-ldap.secret  fitxer de credencials. Allà
s’emmagatzemará en clar la clau de root del servidor ldap.
• Fitxer /etc/pam_ldap.conf
• Fitxer /etc/pam_ldap.secret
• Fitxer /etc/nsswitch.conf
• Fitxer /etc/pam.d/common-auth
• Fitxer /etc/pam.d/common-account
• Fitxer /etc/pam.d/common-password
• Fitxer /etc/pam.d/common-session

3. Configuració de SLAPD

# dpkg-reconfigure slapd

• ¿Omitir la configuración del servidor OpenLDAP?: No


• DNS Domain Name: aso.local
• Organization Name: aso.local
• Contraseña de Administrador: admin
• Verificar Contraseña: admin
• Database backend to use: HDB
• ¿Desea que se borre la base de datos cuando se puergue el paquete slapd?: No
• ¿Desea mover la base de datos antigua?: Si
• Allow LDAPv2 protocol?: No
Per a que ldap sigui el soport per samba haurem d’incorporar-li l’estructura de
grups i usuaris que samba necessita, aquesta estructura ha de comptar amb certs
atributs i aquests atributs es defineixen en un schema,però abans d’incorporar-los
haurem de fer una copia de seguretat de la nostra base de dades.

L’eina slapcat ens permet volcar el contingut d’una base de dades ldap a un arxiu
de text ldif(LDAP Directory Interchange Format).

# slapcat > ~/slapd.ldif

3.1 Agregar el Schema Samba al Directori

Un schema (esquema) defineix el tipus d’objectess que podems utilitzar en el


nostre arbre de directori, els seus atributs i les seves regles de sintaxis.Slapd inclou
per defecte els esquemes necesaris per emmagatzemar informació de comptes
Unix/Posix però no incorpora suport per l‘esquema de samba, afortunadament el
paquet samba-doc si.

# zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz >


/etc/ldap/schema/samba.schema

3.2 El fitxer /etc/ldap/slapd.conf

Fitxer principal de configuració del servidor slapd.

Per generar el password utilitzarem l’eina slappasswd, la clau que utilitzarems és la


mateixa que la que es va ingresar quan es va configurar slapd:admin.
No cal que sigui la mateixa,però per evitar problemas va bé.

:~# slappasswd -h {md5}


New password: admin
Re-enter new password: admin
{MD5}ISMvKXpXpadDiUoOSoAfww==

A continuació reemplacem el contingut del fitxer /etc/ldap/slapd.conf amb el


següent:

# This is the main slapd configuration file. See slapd.conf(5) for


more
# info on the configuration options.

######################################################################
#
# Global Directives:

# Features to permit
#allow bind_v2

# Schema and objectClass definitions


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

# Where the pid file is put. The init.d script


# will not stop the server if you change this.
pidfile /var/run/slapd/slapd.pid

# List of arguments that were passed to the server


argsfile /var/run/slapd/slapd.args

# Read slapd.conf(5) for possible values


loglevel none

# Where the dynamically loaded modules are stored


modulepath /usr/lib/ldap
moduleload back_hdb

# The maximum number of entries that is returned for a search


operation
sizelimit 500

# The tool-threads parameter sets the actual amount of cpu's that is


used
# for indexing.
tool-threads 1

######################################################################
#
# Specific Backend Directives for hdb:
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
backend hdb

######################################################################
#
# Specific Backend Directives for 'other':
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
#backend <other>

######################################################################
#
# Specific Directives for database #1, of type hdb:
# Database specific directives apply to this databasse until another
# 'database' directive occurs
database hdb

# The base of your directory in database #1


suffix "dc=aso,dc=local"

# rootdn directive for specifying a superuser on the database. This is


needed
# for syncrepl.
rootdn "cn=admin,dc=aso,dc=local"
rootpw {MD5}ISMvKXpXpadDiUoOSoAfww==

# Where the database file are physically stored for database #1


directory "/var/lib/ldap"

# The dbconfig settings are used to generate a DB_CONFIG file the


first
# time slapd starts. They do NOT override existing an existing
DB_CONFIG
# file. You should therefore change these settings in DB_CONFIG
directly
# or remove DB_CONFIG and restart slapd for changes to take effect.

# For the Debian package we use 2MB as default but be sure to update
this
# value if you have plenty of RAM
dbconfig set_cachesize 0 2097152 0

# Sven Hartge reported that he had to set this value incredibly high
# to get slapd running at all. See http://bugs.debian.org/303057 for
more
# information.

# Number of objects that can be locked at the same time.


dbconfig set_lk_max_objects 1500
# Number of locks (both requested and granted)
dbconfig set_lk_max_locks 1500
# Number of lockers
dbconfig set_lk_max_lockers 1500

# Indices to maintain for this database


index objectClass eq,pres
index ou,cn,sn,mail,givenname eq,pres,sub
index uidNumber,gidNumber,memberUid eq,pres
index loginShell eq,pres
## required to support pdb_getsampwnam
index uid pres,sub,eq
## required to support pdb_getsambapwrid()
index displayName pres,sub,eq
index nisMapName,nisMapEntry eq,pres,sub
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq
index default sub
index uniqueMember eq
index sambaGroupType eq
index sambaSIDList eq

# Save the time that the entry gets modified, for database #1
lastmod on

# Checkpoint the BerkeleyDB database periodically in case of system


# failure and to speed slapd shutdown.
checkpoint 512 30

# Where to store the replica logs for database #1


# replogfile /var/lib/ldap/replog

# users can authenticate and change their password


access to
attrs=userPassword,sambaNTPassword,sambaLMPassword,sambaPwdMustChange,
sambaPwdLastSet
by self write
by anonymous auth
by * none

# those 2 parameters must be world readable for password aging to work


correctly
# (or use a priviledge account in /etc/ldap.conf to bind to the
directory)
access to attrs=shadowLastChange,shadowMax
by self write
by * read

# all others attributes are readable to everybody


access to *
by * read

# For Netscape Roaming support, each user gets a roaming


# profile for which they have write access to
#access to dn=".*,ou=Roaming,o=morsnet"
# by dn="cn=admin,dc=aso,dc=local" write
# by dnattr=owner write
######################################################################
#
# Specific Directives for database #2, of type 'other' (can be hdb
too):
# Database specific directives apply to this databasse until another
# 'database' directive occurs
#database <other>
# The base of your directory for database #2
#suffix "dc=debian,dc=org"

Per verificar que estigui bé el contingut del fitxer executem l’eina slaptest:

# slaptest -v -u
config file testing succeeded

Sempre per debugar LDAP hem de parar el servei nsc:

/etc/init.d/nscd stop

Renovem la nostra base de dades LDAP:

/etc/init.d/slapd stop
rm -rf /var/lib/ldap/*
slapadd -l ~/slapd.ldif
slapindex
chown -Rf openldap:openldap /var/lib/ldap
/etc/init.d/slapd start

Quan fem slapindex, ens sortirá un warning, però no afecta a res.Verifiquem amb
slapcat.

3.3 Proves Preliminars del servidor ldap

Fem una consulta al servidor LDAP per veure si respon correctament. Amb el
comandament ldapsearch consultarems el namingContexts.

:~ # ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts

# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: namingContexts
#

#
dn:
namingContexts: dc=aso,dc=local

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Ara farem una recerca en el directori LDAP autenticat com l’usuari admin del LDAP i
farem la recerca fent servir com base dc=aso,dc=local, això és per comprovar que
la autenticació i les nostres ACLs funcionen correctament, a més de comprovar que
el directori es troba incialitzat amb la estrucutra bàsica.

:~# ldapsearch -x -D "cn=admin,dc=aso,dc=local" -b "dc=aso,dc=local" -


W
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <dc=aso,dc=local> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# aso.local
dn: dc=aso,dc=local
objectClass: top
objectClass: dcObject
objectClass: organization
o: aso.local
dc: aso

# admin, aso.local
dn: cn=admin,dc=aso,dc=local
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e2NyeXB0fWRuZ2QvVWtZMEdzbGc=

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries: 2

3.4 Preparar apache i PHP per PhpLDAPadmin

Abans d’instal·lar phpLDAPadmin hem de fer algunes configuracions bàsiques per


Apache i PHP.
Editar /etc/php5/apache2/php.ini i modificar les següents linies:

memory_limit = 128M;
post_max_size = 32M
upload_max_filesize = 32M
date.timezone = "Asia/Hong_Kong"
display_errors = Off

Editar /etc/apache2/sites-enabled/000-default, i modificar AllowOverride


none per AllowOverride all:

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>

Ja podem reiniciar Apache:

/etc/init.d/apache2 restart

3.5 Instal·lar phpLDAPadmin

Primer ens descarguem el paquet de la següent direcció:


http://phpldapadmin.sourceforge.net/wiki/index.php/Download

Preparar phpLDAPadmin:

mv zxvf phpldapadmin-1.1.0.6.tar.gz /var/www/


cd /var/www
tar zxvf phpldapadmin-1.1.0.6.tar.gz
ln -s phpldapadmin-1.1.0.6 phpldapadmin
cd /var/www/phpldapadmin/config/
cp config.php.example config.php

Editem /var/www/phpldapadmin/config/config.php i descomentem la següent linia:

$ldapservers->SetValue($i,'server','host','127.0.0.1');

NOTA: Aquesta linea no está en la seva versió més recent. Descargar la versió
1.1.0.6.

Ara ja podem iniciar phpldapadmi des del navegador amb


http://localhost/phpldapadmin , i loguejar-nos amb rootdn
(cn=admin,dc=aso,dc=local).

4. Configuració de Samba

4.1 El fitxer /etc/samba/smb.conf


Obrir el fitxer i modificar/Agregar els següents paràmetres:
# Samba config file created using SWAT
# from UNKNOWN ()
# Date: 2009/06/22 21:47:29

[global]
dos charset = UTF-8
display charset = UTF-8
workgroup = aso.local
realm = aso.local
server string = %h server
map to guest = Bad User
username map = /etc/samba/smbusers
passdb backend = ldapsam:ldap://127.0.0.1/
pam password change = Yes
passwd program = /usr/sbin/smbldap-passwd -u %u
passwd chat = *New*password* %n\n *Retype*new*password* %n\n
*all*authentication*tokens*updated*
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
time server = Yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
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
add machine script = /usr/sbin/smbldap-useradd -w %u
logon script = logon.bat
logon path = \\%N\profiles\%U
logon drive = U:
domain logons = Yes
os level = 65
preferred master = Yes
domain master = Yes
dns proxy = No
wins support = Yes
ldap admin dn = cn=admin,dc=aso,dc=local
ldap delete dn = Yes
ldap group suffix = ou=group
ldap idmap suffix = ou=idmap
ldap machine suffix = ou=computer
ldap suffix = dc=aso,dc=local
ldap ssl = no
ldap user suffix = ou=people
panic action = /usr/share/samba/panic-action %d
map acl inherit = Yes
case sensitive = No
hide unreadable = Yes
map hidden = Yes
map system = Yes

[homes]
comment = Home Directories
valid users = %S
read only = No
create mask = 0600
directory mask = 0700
browseable = No

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

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

[netlogon]
path = /var/lib/samba/netlogon
browseable = No

[profiles]
path = /var/lib/samba/profiles
force user = %U
read only = No
create mask = 0600
directory mask = 0700
guest ok = Yes
profile acls = Yes
browseable = No
csc policy = disable

[public]
path = /tmp
read only = No
guest ok = Yes

El fitxer /etc/samba/smbusers

El paràmetre username map = /etc/samba/smbusers, indica el fitxer de


mapeig de noms d’usuaris.

Aquest fitxer no existeix per el que l’haurem de crear,el contingut és de la


forma usuari = alias i és útil per mapejar per exemple la compta de root amb
Administrator, la compta de administrador en sistemas Windows.
El contingut de /etc/samba/smbusers podria ser:

# Archivo de mapeo de usuarios


# Formato: Unix_ID = Windows_ID
#
# Ejemplo:
# root = Administrator
# pepe = "Pepe Parada"
#
root = Administrator
root = Administrador

4.2 L’eina SWAT (Samba Web Administration Tool)


Aquesta eina resulta molt útil per configurar un servidor samba,compta amb una
interficie a la qual s’accedeix mitjantçant el navegador web i permet modificar tots
els paràmetres de smb.conf al mateix temps que comtpa amb tota la informació de
les pàgines man per cadascun dels parámetres de configuració.
Per posar en marxa el servei Swat necessitem el xinetd o com corra sota el
superserver inetd fer:
# update-inetd --enable 'swat'

O:

Apt-get install xinetd i posteriorment /etc/init.d/xinetd restart

Ara ja podem accedir desde qualsevol navegador posant:


http://ip_del_servidor:901

I ara li indiquem a samba la clau del nostre usuari admin especificat en smb.conf
per a que pugui així accedir i modificar el nostre directori ldap, en aquest cas, la
clau és: admin
# smbpasswd -W
Setting stored password for "cn=admin,dc=aso,dc=local" in secrets.tdb
New SMB password: admin
Retype new SMB password: admin

La clau s’emmagatzemará en /var/lib/samba/secrets.tdb, ens asegurem que


els permissos d’aquest fitxer siguin els correctes.
# ls -l /var/lib/samba/secrets.tdb
-rw------- 1 root root 8192 2008-06-18 23:29
/var/lib/samba/secrets.tdb

4.3 Crear els directoris netlogon y profiles


Creems els directoris especials netlogon i profile, i li assignem els permissos
adequats
# mkdir -p /var/lib/samba/netlogon /var/lib/samba/profiles
# chown -Rf root:root /var/lib/samba/netlogon /var/lib/samba/profiles
# chmod 1777 /var/lib/samba/profiles

4.4 Comprovant la configuració i iniciant el servvei:


Per comprovar la configuració de samba :
# testparm

Si tot és correcte ja podem reiniciar el servei:


# /etc/init.d/samba restart

5. Configuració de smbldap-tools
El fitxer de configuració de smbldap-tools és /etc/smbldap-tools/smbldap.conf, en
el qual es defineixen els paràmetres bàsics com servidor ldap, servidor samba,
tipus de comunicació (xifrada o en clar), domini, SID, etc.
A més necessita comptar amb el fitxer smbldap_bind.conf, en el qual
s’emmagatzemará en clar la informació necessaria per la connexió amb el servidor
ldap.

5.1 Obtenint els fitxers de configuració.


# zcat /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz >
/etc/smbldap-tools/smbldap.conf
# cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf
/etc/smbldap-tools/smbldap_bind.conf
5.2 Obtenint el SID
El SID (security identifiers) és un identificador únic assignat desde la seva creació
a cada objecte dins d’un domini. Tot objecte en el domini té un SID i, és clar, el
controlador de domini tambè té un.

Per a obtenir el nostre SID fem:


# net getlocalsid
SID for domain DEBIAN is: S-1-5-21-3991131808-1853181808-1058153799

El guardem, ja que el necessitarem quan configurem /etc/smbldap-


tools/smbldap.conf

NOTA: Probablement ens trobem amb algun missatge d’error al executar net
getlocalsid, aixó és degut a que el paquet smbldap-tools encara no està configurat.De
totes maneres el SID es mostará correctament.

5.3 El fitxer /etc/smbldap-tools/smbldap.conf


Modifiquem els següents paràmetres, no oblidar el SID aconseguit anteriorment:

# $Source: $
# $Id: smbldap.conf,v 1.18 2005/05/27 14:28:47 jtournier Exp $
#
# smbldap-tools.conf : Q & D configuration file for smbldap-tools

# This code was developped by IDEALX (http://IDEALX.org/) and


# contributors (their names can be found in the CONTRIBUTORS file).
#
# Copyright (C) 2001-2002 IDEALX
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-
1307,
# USA.

# Purpose :
# . be the configuration file for all smbldap-tools scripts

######################################################################
########
#
# General Configuration
#
######################################################################
########

# Put your own SID. To obtain this number do: "net getlocalsid".
# If not defined, parameter is taking from "net getlocalsid" return
SID="S-1-5-21-2886131689-1916166610-3206518675"

# Domain name the Samba server is in charged.


# If not defined, parameter is taking from smb.conf configuration file
# Ex: sambaDomain="IDEALX-NT"
sambaDomain="aso.local"

######################################################################
########
#
# LDAP Configuration
#
######################################################################
########

# Notes: to use to dual ldap servers backend for Samba, you must patch
# Samba with the dual-head patch from IDEALX. If not using this patch
# just use the same server for slaveLDAP and masterLDAP.
# Those two servers declarations can also be used when you have
# . one master LDAP server where all writing operations must be done
# . one slave LDAP server where all reading operations must be done
# (typically a replication directory)

# Slave LDAP server


# Ex: slaveLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
slaveLDAP="127.0.0.1"

# Slave LDAP port


# If not defined, parameter is set to "389"
slavePort="389"

# Master LDAP server: needed for write operations


# Ex: masterLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
masterLDAP="127.0.0.1"

# Master LDAP port


# If not defined, parameter is set to "389"
masterPort="389"

# Use TLS for LDAP


# If set to 1, this option will use start_tls for connection
# (you should also used the port 389)
# If not defined, parameter is set to "1"
ldapTLS="0"

# How to verify the server's certificate (none, optional or require)


# see "man Net::LDAP" in start_tls section for more details
verify="require"

# CA certificate
# see "man Net::LDAP" in start_tls section for more details
cafile="/etc/smbldap-tools/ca.pem"

# certificate to use to connect to the ldap server


# see "man Net::LDAP" in start_tls section for more details
clientcert="/etc/smbldap-tools/smbldap-tools.pem"

# key certificate to use to connect to the ldap server


# see "man Net::LDAP" in start_tls section for more details
clientkey="/etc/smbldap-tools/smbldap-tools.key"

# LDAP Suffix
# Ex: suffix=dc=IDEALX,dc=ORG
suffix="dc=aso,dc=local"

# Where are stored Users


# Ex: usersdn="ou=Users,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for
usersdn
usersdn="ou=people,${suffix}"

# Where are stored Computers


# Ex: computersdn="ou=Computers,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for
computersdn
computersdn="ou=computer,${suffix}"

# Where are stored Groups


# Ex: groupsdn="ou=Groups,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for
groupsdn
groupsdn="ou=group,${suffix}"

# Where are stored Idmap entries (used if samba is a domain member


server)
# Ex: groupsdn="ou=Idmap,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for
idmapdn
idmapdn="ou=idmap,${suffix}"

# Where to store next uidNumber and gidNumber available for new users
and groups
# If not defined, entries are stored in sambaDomainName object.
# Ex: sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
# Ex: sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"

# Default scope Used


scope="sub"

# Unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA, CLEARTEXT)


hash_encrypt="CRYPT"

# if hash_encrypt is set to CRYPT, you may set a salt format.


# default is "%s", but many systems will generate MD5 hashed
# passwords if you use "$1$%.8s". This parameter is optional!
crypt_salt_format="%s"

######################################################################
########
#
# Unix Accounts Configuration
#
######################################################################
########

# Login defs
# Default Login Shell
# Ex: userLoginShell="/bin/bash"
userLoginShell="/bin/bash"

# Home directory
# Ex: userHome="/home/%U"
userHome="/home/%U"

# Default mode used for user homeDirectory


userHomeDirectoryMode="700"

# Gecos
userGecos="System User"

# Default User (POSIX and Samba) GID


defaultUserGid="513"

# Default Computer (Samba) GID


defaultComputerGid="515"

# Skel dir
skeletonDir="/etc/skel"

# Default password validation time (time in days) Comment the next


line if
# you don't want password to be enable for defaultMaxPasswordAge days
(be
# careful to the sambaPwdMustChange attribute's value)
defaultMaxPasswordAge="365"

######################################################################
########
#
# SAMBA Configuration
#
######################################################################
########

# The UNC path to home drives location (%U username substitution)


# Just set it to a null string if you want to use the smb.conf 'logon
home'
# directive and/or disable roaming profiles
# Ex: userSmbHome="\\PDC-SMB3\%U"
userSmbHome=""

# The UNC path to profiles locations (%U username substitution)


# Just set it to a null string if you want to use the smb.conf 'logon
path'
# directive and/or disable roaming profiles
# Ex: userProfile="\\PDC-SMB3\profiles\%U"
userProfile=""

# The default Home Drive Letter mapping


# (will be automatically mapped at logon time if home directory exist)
# Ex: userHomeDrive="H:"
userHomeDrive="U:"

# The default user netlogon script name (%U username substitution)


# if not used, will be automatically username.cmd
# make sure script file is edited under dos
# Ex: userScript="startup.cmd" # make sure script file is edited under
dos
userScript="logon.bat"
# Domain appended to the users "mail"-attribute
# when smbldap-useradd -M is used
# Ex: mailDomain="idealx.com"
mailDomain="aso.local"

######################################################################
########
#
# SMBLDAP-TOOLS Configuration (default are ok for a RedHat)
#
######################################################################
########

# Allows not to use smbpasswd (if with_smbpasswd == 0 in


smbldap_conf.pm) but
# prefer Crypt::SmbHash library
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"

# Allows not to use slappasswd (if with_slappasswd == 0 in


smbldap_conf.pm)
# but prefer Crypt:: libraries
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"

# comment out the following line to get rid of the default banner
# no_banner="1"

5.4 El archivo /etc/smbldap-tools/smbldap_bind.conf


/etc/smbldap-tools/smbldap_bind.conf és el fitxer de credencials, en el qual
s’emmagatzemará en clar la calu de l’administrador del servidor ldap.
slaveDN="cn=admin,dc=aso,dc=local"
slavePw="admin"
masterDN="cn=admin,dc=aso,dc=local"
masterPw="admin"

Cambiar la configuració amb els permissos correctes:


# chmod 0644 /etc/smbldap-tools/smbldap.conf
# chmod 0600 /etc/smbldap-tools/smbldap_bind.conf

5.5 Poblant el directori LDAP amb el Schema Samba – L’eina


smbldap-populate
Un cop configurades les eines smbldap-tools, podem inicialitzar el nostre domini
aso.local.

L’eina smbldap-populate poblarà el nostre directori LDAP amb:

• Base DN: dc=aso,dc=local


• Unitat Organizativa people(ou=people) per les comptes Unix/Samba: es crearan
per defecte els usuaris root i nobody els quals seran mapejats als usuaris
Administrador i Guest Samba respectivament.
• Unitat Organizativa Groups (ou=Groups) per els Grups Unix/Samba: es crearan
per defecte els Grups Predeterminats d’un domini Samba: Domain Admins,
Domain Users, Domain Guests, Domain Computers.
• Unitat Organizativa Computers (ou=Computers) per les comptes de
Computadores Windows
• Unitat Organizativa Idmap (ou=Idmap) per els mapeigs de comptes Unix a
comptes Samba/Windows (Relaciones UID <-> SID)

Ens demanarà que li assignem una contrasenya al usuari root del domini, li
pondrem la clau admin. Fem còrrer el comandament smbldap-populate.

# smblap-populate

Aquesta clau és del nostre Adminstrador del domini mapejat a la compta root. És la
clau que haurem d’utilitzar per ,per exemple, afegir un equip al domini.

No oblidar de fer una copia de l’última base de dades de LDAP.

# slapcat > ~/slapd.ldif

5.6 Testejant la configuració de Samba y ldap


Amb l’eina pdbedit podrem testejar que el servidor ldap es comporta com nosaltres
esperem, liestem els usuaris del directori:
# pdbedit -L
root:0:root
nobody:65534:nobody

Informació del nostre root:


# pdbedit -Lv root
Unix username: root
NT username: root
Account Flags: [U ]
User SID: S-1-5-21-669132894-2586221759-3914214969-500
Primary Group SID: S-1-5-21-669132894-2586221759-3914214969-513
Full Name: root
Home Directory: \\debian \root
HomeDir Drive: U:
Logon Script: 'logon.bat root'
Profile Path: \\debian \profiles\root
Domain: ASO.LOCAL
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: never
Kickoff time: never
Password last set: lun, 18 ene 2010 09:07:47 ART
Password can change: lun, 18 ene 2010 09:07:47 ART
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

La compta root que es va crear en el directori LDAP, és la que s’utilitzarà com


usuari root local i com administrador de domini, li assignem un home i un shell:
# smbldap-usermod -d /root -s /bin/bash root
Provem ara de connectar-nos amb smbclient:
# smbclient //localhost/netlogon -U root
Enter root's password: admin
Domain=[DEBIAN] OS=[Unix] Server=[Samba 3.2.5]
smb: \>

Podem testejar el funcionamient dels alies de root que varem definir abans en el
fitxer /etc/samba/smbusers, Administrador y Administrator
~# smbclient //localhost/netlogon -U administrador
Enter administrador's password: admin
Domain=[DEBIAN] OS=[Unix] Server=[Samba 3.2.5]
smb: \> quit
~# smbclient //localhost/netlogon -U administrator
Enter administrator's password: admin
Domain=[DEBIAN] OS=[Unix] Server=[Samba 3.2.5]
smb: \> quit
~#

6. Configuració de PAM/NSS
El servei NSS (Name Service Switch) proveix una interficie per configurar i accedir
a diferents bases de dades de comptess d’usuaris, la forma més bàsica i conecguda
és accedir a la informació dels usuaris locals amb els fitxers
/etc/passwd i /etc/shadow, /etc/group, /etc/hosts, etc.

PAM (Pluggable Authentication Modules) és un mecanisme d’autenticació flexible


que permet abstraure les aplicacions i altre software del proces de identificació. El
módul PAM, segons com s’hagi configurat, accedirà a la informació i determinarà la
seva identitat, autenticitat, privilegis i limitacions entre altres coses.

Llavors, la combinació PAM/NSS ens proveix una capa de abstracció que ens
permet obtenir la informació d’usuaris i la seva identitat sense importar que
aquesta informació sigui emmagatzemada en un simple fitxer de text pla
(/etc/passwd) o un complex directori ldap.

6.1 Configuració de libnss-ldap


El paquet libnss-ldap és el nexe que permetrà al servei NSS accedir i utilitzar la
informació en el directori LDAP.
# dpkg-reconfigure libnss-ldap

• Identificador de recursos para el servidor LDAP: ldap://127.0.0.1/


• El nombre distintivo (DN) de la base de búsquedas: dc=aso,dc=local
• Versión de LDAP a utilizar: 3
• ¿Hace falta un usuario para acceder a la base de datos LDAP?: No
• ¿Dar privilegios especiales de LDAP para root?: Sí
• ¿Desea hacer que la configuración sólo la pueda leer o escribir el propietario? Sí
• Cuenta LDAP para root: cn=admin,dc=aso,dc=local
• Contraseña para la cuenta LDAP de root: admin

El dimoni nscd (Name Service Cache Daemon) és una caché de noms per el servei
NSS. Accelera de forma significativa les consultes però pot fer-nos passar males
estoness durant la configuració. Per tant,l’aturem:
# /etc/init.d/nscd stop
6.1.1 El fitxer /etc/ldap/ldap.conf
host localhost
base dc=aso,dc=local
binddn cn=admin,dc=aso,dc=local
bindpw admin
bind_policy soft
pam_password exop
timelimit 15
nss_base_passwd dc=aso,dc=local?sub
nss_base_shadow dc=aso,dc=local?sub
nss_base_group ou=group, dc=aso,dc=local?one

6.1.2 El fitxer /etc/libnss-ldap.conf


/etc/libnss-ldap.conf és el fitxer de configuració de libnss-ldap. Allá es podríen
emmagatzemar en clar alguna clau, no en el nostre cas però igualment ha
d’asegurar-se que els permissos són restrictius. Propietari root, grup root i
permissos 600.
Busqui i reemplaci el conteningut de les sigüents linees:
base dc=aso,dc=local
uri ldap://127.0.0.1/
ldap_version 3
rootbinddn cn=admin,dc=aso,dc=local
bind_policy soft
pam_password crypt
nss_base_passwd dc=aso,dc=local?one
nss_base_shadow dc=aso,dc=local?one
nss_base_group ou=group, dc=aso,dc=local?one

6.1.3 El fitxer /etc/libnss-ldap.secret


/etc/libnss-ldap.secret és el fitxer de credencials. Allá s’emmagatzemarà en clar
alguna clau de root del servidor ldap, asegurís de que els permissos són restrictius.
Propietari root, grup root i permissos 600
# cat /etc/libnss-ldap.secret
admin

6.2 Configurant el paquet libpam-ldap


# dpkg-reconfigure libpam-ldap

• Identificador de recursos para el servidor LDAP: ldap://127.0.0.1/


• El nombre distintivo (DN) de la base de búsquedas: dc=aso,dc=local
• Versión de LDAP a utilizar: 3
• Crear un administrador de la base de datos local: Sí
• ¿Hace falta un usuario para acceder a la base de datos LDAP?: No
• Cuenta LDAP para root: cn=admin,dc=aso,dc=local
• Contraseña para la cuenta LDAP de root: admin
• Cifrado local a utilizar cuando se cambian las contraseñas: crypt

6.2.1 El fitxer /etc/pam_ldap.conf


/etc/pam_ldap.conf és el fitxer de configuració de libpam-ldap.
Busqui i reemplaci el conteningut de les sigüents linees:
base dc=aso,dc=local
uri ldap://127.0.0.1/
ldap_version 3
rootbinddn cn=admin, dc=aso,dc=local
bind_policy soft
pam_password crypt
nss_base_passwd dc=aso,dc=local?one
nss_base_shadow dc=aso,dc=local?one
nss_base_group ou=group, dc=aso,dc=local?one

6.2.2 El fitxer /etc/pam_ldap.secret


/etc/pam_ldap.secret és el fitxer de credencials. Allí Allá s’emmagatzemarà en clar
alguna clau de root del servidor ldap, asegurís de que els permissos són restrictius.
Propietari root, grup root i permissos 600

# cat /etc/pam_ldap.secret
admin

6.3 El fitxer /etc/nsswitch.conf


/etc/nsswitch.conf és el fitxer de configuració del servei NSS, determina quals són
els orígens que es van utilitzar per obtenir la informació. Tenint ja configurat libnss-
ldap només modificarem les següents linees afegint l’origen ldap:
passwd: files ldap
group: files ldap
shadow: files ldap

Aixó indica al servei NSS que ha d’utilitzar l’origen files (/etc/passwd, /etc/group y
/etc/shadow respectivamente) i l’origen ldap (mitjantçant el modul libnss-ldap).

Amb samba ya configurat com servidor de nomss wins podem afegir tambiè el
suport per resolució de noms de hosts amb aquest servei.
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 ldap

Aqui l’ordre és més important, això indica que ha de resoldre nom de host amb files
(/etc/hosts), després utilitzarà wins (samba) i finalment amb el DNS resoldre.

Reiniciar el servei nscd..


Comprovem que el nostre usuari root pertany al grup Domain Admins:
# id root
uid=0(root) gid=0(root) grupos=0(root),512(Domain Admins)

Comprovem les dues entrades per al nostre usuari root, la de /etc/passwd i la de


ldap:
# getent passwd | grep root
root:x:0:0:root:/root:/bin/bash
root:x:0:0:Netbios Domain Administrator:/home/root:/bin/bash

Comprovem els grups del domini:


# getent group | grep -E 'root|Domain'
root:x:0:
Domain Admins:*:512:root
Domain Users:*:513:
Domain Guests:*:514:
Domain Computers:*:515:
6.4 Configurant PAM
Ara configurarem el módul PAM per poder accedir localment amb usuaris del
Domini. Als següents fitxers afegir el contingut corresponent.

6.4.1 El fitxer /etc/pam.d/common-auth


# Lo que denominarías el bloque primario, si cualquiera de los dos
módulos tiene
# exito se salta la ejecucion del modulo pam_deny.so
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_ldap.so use_first_pass

# Si no se salta este punto la autenticacion falla siempre


auth requisite pam_deny.so

# aún cuando la autenticacion tubiera éxito los modulos del bloque


# primario podrian no retornar un código positivo, esto soluciona eso
# asegurando un valor positivo si no lo era antes
auth required pam_permit.so

6.4.2 El fitxer /etc/pam.d/common-account


# Lo que denominarias el bloque primario, si cualquiera de los dos
módulos tiene
# exito se salta la ejecucion del modulo pam_deny.so
account [success=2 new_authtok_reqd=done default=ignore]
pam_unix.so
account [success=1 default=ignore] pam_ldap.so

# Si no se salta este punto la autenticacion falla siempre


account requisite pam_deny.so

# aún cuando la autenticacion tubiera éxito los modulos del bloque


# primario podrian no retornar un código positivo, esto soluciona eso
# asegurando un valor positivo si no lo era antes
account required pam_permit.so

6.4.3 El fitxer /etc/pam.d/common-password


# Es buena idea que se tenga restriciones sobre los passwords
# cracklib permite controlar longitudes minimas y fortaleza de la
clave
# ante ataques de diccionario
# Solo no debe ovidarse instalar cracklib, simplemente aptitude
install libpam-cracklib
password required pam_cracklib.so difok=2 minlen=8
dcredit=2 ocredit=2 retry=3

# Lo que denominarias el bloque primario, si cualquiera de los dos


módulos tiene
# exito se salta la ejecucion del modulo pam_deny.so
password [success=2 default=ignore] pam_unix.so obscure
crypt
password [success=1 user_unknown=ignore default=die]
pam_ldap.so use_authtok try_first_pass

# Si no se salta este punto la autenticacion falla siempre


password requisite pam_deny.so

# aún cuando la autenticacion tubiera éxito los modulos del bloque


# primario podrian no retornar un código positivo, esto soluciona eso
# asegurando un valor positivo si no lo era antes
password required pam_permit.so

6.4.4 El fitxer /etc/pam.d/common-session


# Lo que denominarias el bloque primario, si el usuario está
correctamente autenticado
# se salta la ejecucion del modulo pam_deny.so (recordar que este es
un apartado de
# sesion, por lo tanto lo que se controla no es el acceso sino los
privilegios efectivos
# de un usuario ya autenticado)
session [default=1] pam_permit.so

# Si no se salta este punto la autenticacion falla siempre


session requisite pam_deny.so

# aún cuando la autenticacion tubiera éxito los modulos del bloque


# primario podrian no retornar un código positivo, esto soluciona eso
# asegurando un valor positivo si no lo era antes
session required pam_permit.so

# Se chequean los privilegios y restricciones


session required pam_unix.so
session optional pam_ldap.so

Per possibles erros de udevd, que busca per usuaris/grups no existents de NSS
crearem els següents grups:
addgroup --system nvram
addgroup --system rdma
addgroup --system fuse
addgroup --system kvm
adduser --system --group --shell /usr/sbin/nologin --home /var/lib/tpm
tss
Ja podem reiniciar. Si durant el reinici dona algun error, o si en l’entrada de sessió
tenim problemes, hi ha hagut algun problema.

7. Creació d’usuaris i grups en el directori LDAP amb smbldap-tools


Arribats a aquest punt, ja hauriem d’estar en condicions d’ingresar al servidor amb
usuaris del Domini , els quals autenticaràn mitjantçant PAM,accedint aquest a la
informació emmagatzemada en el nostre directori LDAP.
Però per provar si és possible ingresar al sistema local amb un usuari del domini,
primero haurem de crear un.

7.1 Crear usuaris del domini

Amb l’eina smbldap-useradd crearem al usuari prova al domini.


# smbldap-useradd -a -m -P prova
Cannot confirm uidNumber 1000 is free: checking for the next one
Changing UNIX and samba passwords for pepe
New password: 123456
Retype new password: 123456

• La opció -a indica que és un usuario Windows


• La opció -m indica que ha de crear-se el home del usuari i inicialitzar-lo amb el
contingut de /etc/skel que és el comportament standard per la creació d’una
compt UNIX. Aquesta opció no ssempre és necesari inclour-la ja pot passar que
no tots els usuaris del domini necessitin un HOME en el servidor.
• La opció -P indica que es solicitarà i establirà un password al usuari.

man smbldap-useradd per més informació sobre les opcions del comandament.

Podem verificar que el usuari s’ha creat però no existeix localment:


:~# cat /etc/passwd | grep prova
:~# getent passwd | grep prova
prova:x:1003:513:System User:/home/prova:/bin/bash
:~#

El paquet libpam-dotfile ens proveix l’eina pamtest que ens permet verificar el
funcionamient dels mecanismes de autenticació. Provem amb el nostre usuari
prova:
:~# pamtest passwd prova
Trying to authenticate <prova> for service <passwd>.
Password: 123456
Authentication successful.

7.2 Crear un usuari administrador del domini


A diferencia dels sistemes Linux/Unix, on l’administrador del domini és root i el seu
UID és 0, en un Domini Windows per ser administrador del domini basta amb
pertanyer al grup Domain Admins, amb GID 512.
Llavors, per crear un usuari administrador del domini, cal amb indicar-li a smbldap-
adduser que l’inclogui en el grup 512
# smbldap-useradd -a -m -G 512 -P adminnuevo
Changing UNIX and samba passwords for adminnuevo
New password: adminnuevo
Retype new password: adminnuevo

Tambè podem ingresar al sistema amb aquest usuari, i podrem comprovar que és
només un administrador del domini però no té permissos de root (su prompt no es
#)
$ id adminnuevo
uid=1002(adminnuevo) gid=513(Domain Users) grupos=512(Domain
Admins),513(Domain Users)

7.3 Crear un Grup en el domini


:~# smbldap-groupadd -a "Grupo Nuevo"
Cannot confirm gidNumber 1000 is free: checking for the next one
Cannot confirm gidNumber 1001 is free: checking for the next one
Cannot confirm gidNumber 1002 is free: checking for the next one
:~#

Verifiquem que el grup existeix, però no localment:


:~# cat /etc/group | grep "Grupo Nuevo"
:~# getent group | grep "Grupo Nuevo"
Grupo Nuevo:*:1003:
:~#

7.4 Eliminar usuaris i grups del domini


Provem d’eliminar el grupo acabat de crear:
:~# smbldap-groupdel "Grupo Nuevo"
:~#

I ara , ja no existeix:
:~# getent group | grep "Grupo Nuevo"
:~#

Eliminem al usuari prova que hem creat anteriorment:


:~# smbldap-userdel -r prova
:~#

La opció -r indica que ha d’eliminar-se el home del usuari.


Verifiquem que l’usuari no existeix.
:~# getent passwd | grep prova
:~#

8. Agregar els usuaris i grups Linux/Unix locals al directorio LDAP


Per la migració dels usuaris i grups Unix al ldap s’utilitzaràn eines provistes per el
paquet smbldap-tools

Aquestes eines es troben en els fitxers:


/usr/share/doc/smbldap-tools/examples/migration_scripts/smbldap-
migrate-unix-accounts.gz
/usr/share/doc/smbldap-tools/examples/migration_scripts/smbldap-
migrate-unix-groups.gz

Haurem de descomprimir aquests fitxers i fer-los executables. Els copiarem a


alguna ubicació que figuri en el nostre path com ser /usr/sbin:
# zcat /usr/share/doc/smbldap-
tools/examples/migration_scripts/smbldap-migrate-unix-accounts.gz >
/usr/sbin/smbldap-migrate-unix-accounts
# zcat /usr/share/doc/smbldap-
tools/examples/migration_scripts/smbldap-migrate-unix-groups.gz >
/usr/sbin/smbldap-migrate-unix-groups
# chmod 755 /usr/sbin/smbldap-migrate-unix-accounts /usr/sbin/smbldap-
migrate-unix-groups

Migrant usuaris locals al directori LDAP


El script smbldap-migrate-unix-accounts està preparat per rebre com a paràmetre
el fitxer /etc/passwd i /etc/shadow, però nosaltres no desitjem exportar tots els
usuaris.
Usuaris com backup, bin o daemon no ens són necessaris en el nostre directori
ldap, tampoc podem migrar root i nobody perque aquests usuaris ja existeixen el el
directori.
Només migrarem els usuaris necessaris, copiem /etc/passwd i /etc/shadow a una
ubicaió temporal:
# cp /etc/passwd /etc/shadow /tmp/

Treïem d’aquests fitxers temporals les usuaris que no desitjem migrar i llavors si
correm l’eina de migració:
# smbldap-migrate-unix-accounts -a -P /tmp/passwd -S /tmp/shadow
Migrant grups locals al directori LDAP
Copiem /etc/group a una ubicació temporal:
# cp /etc/group /tmp/

Editem el fitxer deixant els grups que volguem migrar (podria no migrar els grups
root, bin i daemon) i llavors fem:
# smbldap-migrate-unix-groups -a -G /tmp/group

Segurament volguem que els usuaris Samba pertanyin a certs grups Unix, per
exemple els grups audio, video, cdrom, plugdev, floppy, etc. per tenir aquets
privilegis quan accedeixin desde terminals Linux/Unix. No tenim més que agregar-
los als grups, per exemple al usuari adminnuevo:
# smbldap-usermod --group audio,video,floppy,cdrom,plugdev,"Domain
Admins","Domain Users" adminnuevo

i podem veure que adminnuevo ja és membre d¡aquests grups:


# id adminnuevo
uid=1002(adminnuevo) gid=513(Domain Users) grupos=513(Domain
Users),512(Domain
Admins),24(cdrom),25(floppy),29(audio),44(video),46(plugdev)

NOTA: Recorda parar el dimoni nscd per fer aquests poves.

9. Agregar equips Windows al Domini

9.1 Requisits del sistema Windows

El sistema a agregar al domini serà un Windows XP Professional.


Abans de res s’ha d’estar conscient que el nostre PDC no és un Domini Active Directory, per
el que:

• No se utiliza el mecanismo de autenticación MIT Kerberos: samba puede ser cliente


en un dominio Active Directory y utilizar Kerberos para la autenticación, pero no
puede utilizar este mecanismo cuando es un PDC.
• No incorpora un servidor DNS: a diferencia de un dominio NT, donde los nombres se
resuelven mediante wins, un dominio Active Directory es gobernado por una
implementación DNS. Si bien Active Directory soporta wins (no por defecto, debe
instalarse) se basa en DNS para ubicar objetos en la red y esto requiere que los
clientes tengan al controlador de dominio como servidor DNS primario.

Al no utilitzar Kerberos no és un problema, els clients s’autenticaràn amb NTLM, un protocol


el suficientment segur.

Al no ser un servidor DNS resulta per a nosaltres en una mínima configuració més, al no
copttar amb un servidor DNS el dominio aso.local no es resol amb la IP del servidor.
Això no suposa un problema, simplement haurem d’utilitzar noms NetBIOS en lloc de noms
DNS, per el qual,tant els clients no podràn agregar-se al domini aso.local sino que hauran
de fer-ho al domini NetBIOS ASO.LOCAL.
Haurem de configurar als nostres clientes per a que utilitzin el nostre Samba com servidor de
noms WINS.

Configuració de red

Assignem al cliente una direcció IP dins del segment de red del nostre servidor i configurem
per a que el servidor wins sigui el nostre servidor Samba. Haurem d’habilitar tambè NetBIOS
sobre TCP/IP:

9.2 Unir el equipo con Windows XP Professional al dominio Samba


Agregarem l’equip al domini de manera standard. S’utilitza la compta de root, amb
password dominioadmin

I hauriem de rebre el missatge de benvinguda al Domini :


Possible error:

Al tractar d’unir una màquina al domini ens diu : ERROR AL INTENTAR UNIRSE AL
DOMINIO “X” NO SE HA ENCONTRADO EL NOMBRE DE USUARIO. Aquest error es
degut a que la màquina no està com de confiança.

Per tant, per a que funcioni hem de fer el següent:

Creació de comptes de màquina i d’usuari:

Hem que crear una compta de màquina per cada equip que volguem introduïr en el
domini, la compta de màquina estarà formada per un compta d’usuario unix i una
compta d’usuario samba i a diferencia de la compta d’usuari, aquesta tindrà el
símbol dolar.

Creem la compta de màquina unix ,la introdiïm en el grup Domain computers i no le


asignem una shell:

# /usr/sbin/useradd -g “Domain computers” -d /dev/null -c “WinXP-SP3” -s


/bin/false WinXP-SP3$

Bloquejem la compta unix per evitar l’accés a una shell:

# passwd -l WinXP-SP3$

Creem la compta samba, la opció –m indica que es tracta d’una compta de tipus
màquina.

#smbpasswd -a -m WinXP-SP3
10. BIBLIOGRAFIA

Pàgines i manuals de recerca utilitzats :

http://fliiby.com/file/26557/ag1y87ah7t.html

http://www.scribd.com/doc/8754614/Configuracion-Del-Cliente-LDAP

http://edin.no-ip.com/content/ldap-samba-pdc-pamnss-debian-lenny-howto

http://www.dragonjar.org/como-configurar-ldap-en-ubuntu-server-o-debian.xhtml

http://es.tldp.org/COMO-INSFLUG/COMOs/LDAP-Linux-Como/LDAP-Linux-
Como.html

http://www.debian-administration.org/article/OpenLDAP_installation_on_Debian#ldap-
install

http://www.ac.usc.es/docencia/ASRI/Tema_6html/node22.html

http://dns.bdat.net/documentos/ldap/

http://www.tuxjm.net/docs/samba+ldap-como/html-onechunk/

http://www.linuca.org/body.phtml?nIdNoticia=327

http://jroliva.wordpress.com/samba-ldap-debian-40-etch/

Manuals amb els quals s’ha arribat a un final satisfactori:

http://edin.no-ip.com/content/ldap-samba-pdc-pamnss-debian-lenny-howto

http://www.esdebian.org/wiki/controlador-primario-dominio-pdc-debian-lenny-50-
mediante-samba-pamnss-openldap

http://jroliva.wordpress.com/samba-ldap-debian-40-etch/

Вам также может понравиться