LDAP como sistema de autentificación y Samba

From Luniwiki
Jump to: navigation, search

Emerge y use flags

El fichero /etc/portage/package.use tiene esta pinta:

www-servers/apache ldap
net-fs/samba ldap ads oav
dev-libs/apr-util ldap
net-nds/openldap samba
dev-lang/php ldap

El fichero /etc/portage/package.keywords tiene estos valores:

net-nds/phpldapadmin ~amd64

Luego tenemos que instalar los siguientes paquetes:

emerge -av openldap
emerge -av samba smbldap-tools
emerge -av pam_ldap 
emerge -av nss_ldap
emerge -av phpldapadmin

Configuración del LDAP

Editamos el fichero /etc/openldap/ldap.conf

BASE    dc=luniel, dc=com
URI     ldap://ldap.luniel.com

Editamos el fichero de configuración /etc/openldap/slapd.conf

include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/samba.schema
database        bdb
suffix          "dc=luniel,dc=com"
checkpoint      32      30 # <kbyte> <min>
rootdn          "cn=Manager,dc=luniel,dc=com"
directory       /var/lib/openldap-data
index    sambaSID    eq
index    sambaPrimaryGroupSID    eq
index    sambaDomainName    eq
index objectClass,uid,uidNumber,gidNumber,memberUid eq
index cn,mail,surname,givenname   eq,subinitial

Generamos la contraseña del LDAP y la ponemos en el fichero sldapd.conf

slappasswd -h {Md5}
rootpw {MD5}rA3fnmXVe2pWskUzhs1dtQ==

Generamos la base de datos del Ldap, despues de haber configurado correctamente el fichero /etc/smbldap-tools/smbldap.conf.

Configuración de Samba

La configuración de Samba tiene que ser la siguiente:

passdb backend = ldapsam:ldap://vega.luniel.com/
ldap passwd sync = yes
ldap suffix = dc=luniel,dc=com
ldap admin dn = cn=Manager,dc=luniel,dc=com
#ldap ssl = start tls
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Users
add user script = /usr/sbin/smbldap-useradd -a -g 10000 "%u"
ldap delete dn = Yes
delete user script = /usr/sbin/smbldap-userdel "%u"
add machine script = /usr/sbin/smbldap-useradd -w -g 10001 "%u"
add group script = /usr/sbin/smbldap-groupadd -a "%g"
delete group script = /usr/sbin/smbldap-groupdel "%g"
passwd program = /usr/sbin/smbldap-passwd %u

Le damos la contraseña de Manager del LDAP a samba:

smbpasswd -w contraseña

Luego creamos el esqueleto del LDAP:

smbldap-populate -u 10000 -g 10000

Para crear un nuego grupo:

smbldap-groupadd -a nombre_grupo

Para añadir un nuevo usuario:

smbldap-useradd -a nombre_usuario

Para cambiar la contraseña:

smbldap-passwd nombre_usuario

Para que la contraseña sea valida durante 45 días

pdbedit -P "maximum password age" -C 3888000

PAM Por LDAP

Retocamos el fichero /etc/ldap.conf con los parametros adecuados

host vega.luniel.com
uri ldap://vega.luniel.com
base dc=luniel,dc=com
ldap_version 3
rootbinddn cn=Manager,dc=luniel,dc=com
scope sub
bind_policy soft
pam_password exop
#Añadido por Luniel Systems
pam_filter objectclass=posixAccount
pam_login_attribute uid
pam_member_attribute memberUid
pam_check_host_attr yes
nss_base_passwd ou=Users,dc=luniel,dc=com
nss_base_passwd ou=Computers,dc=luniel,dc=com
nss_base_shadow ou=Users,dc=luniel,dc=com
nss_base_group  ou=Groups,dc=luniel,dc=com
#Fin de añadido por Luniel
nss_reconnect_tries 4                   # number of times to double the sleep time
nss_reconnect_sleeptime 1               # initial sleep value
nss_reconnect_maxsleeptime 16   # max sleep value to cap at
nss_reconnect_maxconntries 2    # how many tries before sleeping

Cambiamos el fichero /etc/pam.d/system-auth

#%PAM-1.0
auth       required     pam_env.so
auth       sufficient   pam_unix.so likeauth nullok try_first_pass
auth       sufficient   pam_ldap.so use_first_pass
auth       required     pam_deny.so
account    sufficient   pam_unix.so
account    sufficient   pam_ldap.so
password   required     pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
password   sufficient   pam_unix.so nullok md5 shadow use_authtok
password   sufficient   pam_ldap.so use_authtok
password   required     pam_deny.so
session    required     pam_limits.so
session    required     pam_unix.so
#
##Para crear el home directory si no existe
session    required     pam_mkhomedir.so skel=/etc/skel/ umask=0022
session    optional     pam_ldap.so

Para activar la busqueda en el LDAP cambiamos el fichero /etc/nsswitch.conf

passwd:      files ldap
shadow:      files ldap
group:       files ldap
# passwd:    db files nis
# shadow:    db files nis
# group:     db files nis
hosts:       files dns
networks:    files dns
services:    db files
protocols:   db files
rpc:         db files
ethers:      db files
netmasks:    files
netgroup:    files
bootparams:  files
automount:   files
aliases:     files

Referencias

--Daniel Simao 17:41 17 jun 2008 (UTC)