Servidor SAMBA que publica los HOMES de usuarios LDAP y un share público.
10K+
En este repositorio se encuentran los archivos necesarios para montar un sistema de servidores LDAP y SAMBA (con LDAP haciendo de backend de SAMBA). Por lo tanto el sistema a montar consta de dos contenedores docker:
docker pull agalilea/ldapsmbdocker pull agalilea/sambaPara que SAMBA utilice LDAP como backend y los directorios HOME se automonten mediante SAMBA al loguear necesitamos:
docker network create sambanet docker run --rm --name ldap --hostname ldap --network sambanet -d agalilea/ldapsmb docker run --rm --name samba --hostname samba --network sambanet -d agalilea/samba En el servidor LDAP tan sólo hay que descargar y añadir un schema específico para SAMBA en /etc/openldap/schema y cargarlo en
slapd.conf con la línea de configuración include /etc/openldap/schema/samba.schema. Esto es lo que nos
permitirá almacenar los datos de SAMBA en la base de datos LDAP.
En el servidor SAMBA hay que:
passdb backend = ldapsam:ldap://ldap
y una serie de líneas con los sufijos que se usarán en LDAP para
guardar los nuevos usuarios, grupos, hosts y otras configuraciones necesarias.Para verificar que el servidor SAMBA tiene acceso a LDAP usamos
getent passwd
getent group
y verificamos que aparecen los usuarios y grupos de LDAP. Con la segunda orden podemos verificar que están presentes
los grupos Account Operators, Print Operators, Backup Operators y Replicators, creados durante el populate de la
base de datos.
Para comprobar que SAMBA está utilizando LDAP como backend, creamos un nuevo usuario con el comando
smbpasswd -a local01
y comprobamos que el nuevo usuario SAMBA aparece en LDAP con
ldapsearch -x -LLL -b 'uid=local01,ou=usuaris,dc=edt,dc=org'
Para comprobar que SAMBA está publicando los shares, ejecutamos smbtree e intentamos conectar a un share con
smbclient //SAMBA/public
smbclient -U pere //SAMBA/pere
se incluye en el repositorio de github un tercer directorio llamado hostsambapam. En él están los archivos necesarios para construir una imagen docker de un cliente samba-ldap-pam capaz de conectarse a los servidores LDAP y SAMBA. Desde este cliente un usuario LDAP puede loguearse al sistema, y al hacerlo se automontará en su HOME un directorio con su HOME de SAMBA (es decir, al loguear el usuario pere, en su home aparecerá un directorio llamado pere que corresponde al share SAMBA//pere, que sólo es accesible para él y que se desmontará al cerrar la sesión).
La imágen de docker está en https://hub.docker.com/r/agalilea/hostsambapam y se puede descargar con
docker pull agalilea/hostsambapam
Para que esto sea posible hemos hecho lo siguiente: En el cliente:
<volume user="*" fstype="cifs" server="samba" path="%(USER)" mountpoint="~/%(USER)" />En el servidor SAMBA:
/etc/samba/smb.conf
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
security = user
passdb backend = ldapsam:ldap://ldap
ldap suffix = dc=edt,dc=org
ldap user suffix = ou=usuaris
ldap group suffix = ou=grups
ldap machine suffix = ou=hosts
ldap idmap suffix = ou=domains
ldap admin dn = cn=Manager,dc=edt,dc=org
ldap ssl = no
ldap passwd sync = yes
load printers = yes
cups options = raw
[homes]
comment = Home Directories
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
[public]
comment = Share publico
path = /tmp/home/public
public = yes
browseable = yes
writable = yes
printable = no
guest ok = yes
https://help.ubuntu.com/lts/serverguide/samba-ldap.html.en https://github.com/edtasixm06/samba/blob/master/samba:18ldapsam/README.md
Content type
Image
Digest
Size
278.8 MB
Last updated
over 7 years ago
docker pull agalilea/samba