LDAP como sistema de autentificación y Samba
Contents
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)