Apartamento En Familia

Apartamento En Familia
Apartamento de playa para vacaciones. http://www.apartamentoenfamilia.es. Número registro HUTT-005768

miércoles, 19 de febrero de 2014

Bloquear usuario en Dovecot y Samba validando contra LDAP mediante sambaAcctFlags


En algunos escenarios en donde tenemos la validación de usuarios centralizada mediante un directorio LDAP (como por ejemplo OpenLDAP), es posible que cuando queramos bloquear a un usuario queramos que tenga efecto en varios servicios.

En este artículo no trataré de explicar que es Samba ni como se instala un servidor IMAP como Dovecot. Tampoco como hacer que los usuarios validen contra el LDAP. Lo que busco es explicar como una vez esto funcione, que algunos usuarios estén bloqueados.

Imaginemos que tenemos un usuario que se valida en LDAP y que tiene acceso al correo electrónico mediante Dovecot y acceso a un almacén de discos mediante Samba.

Samba

(ver Artículo anterior relacionado con Samba)
Si tenemos Samba instalado nos hará falta el smbldap-tools para que interactue con el directorio ldap:

apt-get install smbldap-tools

Si por ejemplo queremos que no entre en un recurso samba y tenemos en nuestro directorio LDAP el samba3.schema, marcaremos el sambaAcctFlags con una D, es decir, desactivaremos la cuenta:

FlagDescription
DAccount is disabled.
HA home directory is required.
IAn inter-domain trust account.
LAccount has been auto-locked.
MAn MNS (Microsoft network service) logon account.
NPassword not required.
SA server trust account.
TTemporary duplicate account entry.
UA normal user account.
WA workstation trust account.
XPassword does not expire.
(Fuente samba.org)

De esta manera al intentar entrar en el samba no le dejará. 

Dovecot

En dovecot lo podemos hacer mediante el parámetro user_filter del archivo /etc/dovecot/dovecot-ldap.conf . Por ejemplo:

user_filter = (&(objectClass=posixAccount)(uid=%u)(!(|(sambaAcctFlags=[UD])(sambaAcctFlags=[DU]))))

Lo que hace este filtro es validar el uid del usuario y mirar que NO tenga el la bandera [UD] o [DU]. Muchas veces nos encontraremos el atributo sambaAcctFlags con 11 carácteres (casi todos ellos con espacios vacíos). Así que tendremos que tenerlo en cuenta en nuestras búsquedas.

That u don't know what you've got 'til it's gone