9.3. Ajustando el archivo de configuración de Samba

9.3.1. Introducción

En esta sección se configurará Samba como un Controlador Primario de Dominio que almacena su base de datos SAM en un servidor OpenLDAP.

Para la configuración se asumirá que:

  • El nombre del dominio será: GSRDOMAIN

  • El nombre del servidor Netbios será: TODOSCSI

  • El directorio home de los usuarios estará en: /home/samba/users/NOMBREUSUARIO

  • Los perfiles móviles se almacenarán en: /home/samba/profiles/NOMBREUSUARIO

9.3.2. [global] - sección global

En la sección global se configurarán los parámetros globales del servidor. Entre otras cosas, se definirán los programas que serán utilizados para que un usuario pueda cambiar su clave (passwd program) y el diálogo que se establecerá entre el servidor y el usuario durante este cambio.

La opción “add user script” permite al demonio smb añadir, como usuario root, una nueva máquina. Cuando una máquina contacta con el dominio, este script es llamado y la nueva máquina es añadida al dominio. Esto hace que la administración de las cuentas para las máquinas sea muy sencilla. Por razones de seguridad, no todas las máquinas pueden entrar en el dominio, sólo aquellas cuyo administrador tenga una cuenta con los privilegios suficientes.

En las secciones siguientes se mostrarán los parámetros más importantes de la configuración de Samba, en el Apéndice AC, Archivo de configuración /etc/samba/smb.conf - Completo - se muestra un archivo de configuración completo para Samba.

9.3.2.1. [global] - Búsqueda/Identificación

[global]
   workgroup = GSRDOMAIN 1
   netbios name = TODOSCSI 2
   server string = SAMBA-LDAP PDC server 3
1

Definición del nombre del dominio.

2

Nombre Netbios por el cual el servidor Samba se va a conocer.

3

Descripción del servidor.

9.3.2.2. [global] - Autentificación

   security = user 1
   encrypt passwords = true 2
   passdb backend = ldapsam:ldap://gsr.pt 3
   guest account = guest 4
   invalid users = root 5
   unix password sync = yes 6
   passwd program = /usr/local/sbin/smbldap-passwd -o %u 7
   passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n . 8
   
1

Opción necesaria para la administración de dominios por parte de Samba.

2

Se activa la encriptación para el almacenado de las claves

3

Se asigna a esta opción el valor: “ldapsam:ldap://gsr.pt”, indicándole a Samba que las claves se almacenarán y recuperarán del servidor LDAP definido.

4

Nombre del usuario “invitado”, este podrá acceder a aquellos recursos con el parámetro “guest ok” sin autentificarse.

5

Lista de usuarios a los cuales no se le permite el acceso a Samba.

6

Se activa la sincronización entre las claves Unix y las claves Samba.

7

Programa utilizado durante el cambio de clave de un usuario.

8

Texto que se mostrará durante el cambio de una clave mediante Samba.

9.3.2.3. [global] - LDAP

   ldap admin dn = cn=admin,dc=gsr,dc=pt 1
;   ldap server = gsr.pt 2
;   ldap port = 389 3
   ldap ssl = off 4
   ldap delete dn = no 5
   ldap filter = (&(uid=%u)(objectclass=sambaSamAccount)) 6
   ldap suffix = ou=people,dc=gsr,dc=pt 7
   ldap user suffix = ou=people 8
   ldap group suffix = ou=groups 9
   ldap machine suffix = ou=machines 10
1

Esta línea le dice a Samba quien es el administrador del directorio LDAP. Este será el usuario empleado por Samba cuando se realicen operaciones de añadir, borrar o modificar cuentas de usuario.

2

Parámetro que contiene el FQDN del servidor ldap. Se necesita para encontrar la información sobre las cuentas de usuario. Este parámetro se comenta, ya que parece que Samba no lo reconoce.

3

Indica en que puerto está escuchando LDAP. El puerto 389 es el puerto estándar para las conexiones sin encriptación; el 636 es el puerto estándar para las conexiones con encriptación. Si la línea “ldap ssl” posee el valor “on”, Samba intentará automáticamente conectarse por el puerto 636 para contactar con el servidor LDAP. Este parámetro se comenta, ya que parece que Samba no lo reconoce.

4

Opción que determina si encriptar o no las comunicaciones entre el servidor Samba y el servidor LDAP.

5

Este parámetro especifica si al realizar una operación de borrado en ldapsam, se borra la entrada completa o solamente los atributos específicos de Samba.

6

Filtro de búsqueda para LDAP.

7

Parámetro que especifica la base para todas las búsquedas en LDAP.

8

Parámetro que indica donde se añaden los usuarios dentro del árbol.

9

Parámetro que indica donde se añaden los grupos de usuarios dentro del árbol.

10

Parámetro que indica donde se añaden las máquinas dentro del árbol.

9.3.2.4. [global] - impresión

   load printers = yes 1
   printing = cups 2
   printcap name = cups 3
   printer admin = @domainadmins 4
1

Se cargan automáticamente la lista de impresoras disponibles.

2 3

Estilo de impresión ha utilizar, en este caso se utilizará la impresión con CUPS (vea la Parte III dedicada a CUPS.)

4

Grupo de usuarios que tienen permiso para añadir y configurar impresoras, a parte del usuario “root”.

9.3.2.5. [global] - Controlador de dominio

   os level = 80 1
   preferred master = yes 2
   domain master = yes 3
   local master = yes 4
   domain logons = yes 5
   logon path = \\%L\profiles\%u 6
   logon drive = H: 7
   logon home = \\%L\%u\.profile 8
   logon script = 9
;   domain admin group = @domainadmins 10
1

Parámetro que controla el nivel en el que Samba se anunciará como elección de búsqueda. El valor de este parámetro determinará si el demonio nmbd tendrá alguna posibilidad de llegar a ser un buscador primario local para el grupo de trabajo en el área de broadcast local.

2 3 4 5

Estos parámetros juegan un papel fundamental asegurando el control del dominio y el soporte de autentificación en red. Una descripción más detallada de los mismos se encuentra en la página del manual smb.conf(5).

6 7 8 9

Opciones que facilitan las operaciones de autentificado de clientes y facilitan el control automatizado para la administración de redes sobrecargadas. Más información en la página del manual smb.conf(5).

10

Parámetro que acepta usuarios y grupos de usuarios que serán administradores de dominio. Este parámetro se comenta, ya que parece que Samba no lo reconoce.

9.3.2.6. [global] - Misceláneo

   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 1
   idmap uid = 10000-20000 2
   idmap gid = 10000-20000 3
   template shell = /bin/bash 4
   add user script = /usr/local/sbin/smbldap-useradd -w %u 5
1

Distintas opciones que mejoran el rendimiento del servidor Samba.

2 3

Estos dos parámetros especifican el rango de los ids de usuario y grupo, respectivamente, que serán utilizados en el mapeado de usuarios/grupos Unix en SIDs de usuarios/grupos NT.

4

Shell que el demonio winbindd añadirá a la información de un usuario, cuando este valor no sea omitido.

5

Se hace uso de las herramientas smbldap-tools para añadir maquinas (En el Apéndice J, Instalación y configuración de smbldap-tools se muestra un ejemplo de instalación y configuración de estas herramientas).

9.3.3. [homes] - directorios personales

Esta sección permite la compartición del directorio home de los usuarios, de forma que, dependiendo que usuario se haya autentificado en el sistema, Samba compartirá su directorio personal únicamente a él.

Los parámetros más importantes de esta sección se muestran a continuación:

   browseable = yes 1
   writeable = yes 2
   create mask = 0700 3
   directory mask = 0700 4
1

Indica si este recurso aparecerá en la lista de recursos compartidos o no. En este caso, si se mostrará.

2

Esta opción permite escribir datos en los directorios home, si su valor fuese “no”, los directorios home se compartirían como sólo lectura.

3

Máscara de creación de archivos, el valor de este parámetro indicará los permisos que tendrán los archivos de nueva creación.

4

Máscara de creación de directorios, el valor de este parámetro indicará los permisos que tendrán los directorios de nueva creación.

9.3.4. [netlogon]

El recurso compartido NETLOGON juega un papel fundamental en el soporte de inicio de sesión en un dominio y Miembro de Dominio. Este recurso compartido se provee en todos los Controladores de Dominio de Microsoft. Se utiliza para proveer de scripts de inicio de sesión, para almacenar archivos de Políticas de Grupo (NTConfig.POL), así como la localización de otras herramientas comunes que se puedan necesitar para el proceso de inicio de sesión. Este es un recurso esencial en un Controlador de dominio.

Los parámetros más importantes de esta sección se muestran a continuación:

   path = /home/samba/netlogon 1
   writeable = no 2
   write list = @domainadmins 3
1

Directorio donde se van a alojar los scripts.

2

No se permite escribir en el recurso compartido, sólo lectura.

3

Lista de usuarios/grupos que tienen permiso de escritura en el recurso compartido.

9.3.5. [profiles] - perfiles móviles

Este recurso compartido se utiliza para almacenar los perfiles de escritorio de los usuarios. Cada usuario ha de tener un directorio en el raíz de este recurso compartido. Este recurso ha de tener permisos de escritura para los usuarios y debería tener la permisos de lectura globales. Samba-3 tiene un módulo VFS denominado “fake_permissions” (permisos “falsos”) que se deberían instalar en este recurso. Este módulo permitiría a un administrador de Samba hacer el directorio de sólo lectura para todo el mundo. Por supuesto, esto sólo es útil una vez se ha creado correctamente el perfil.

Los parámetros más importantes de esta sección se muestran a continuación:

   path = /home/samba/profiles 1
   writeable = yes 2
   browseable = no 3
   create mask = 0600 4
   directory mask = 0700 5
1

Directorio donde se almacenarán los perfiles móviles, bajo este directorio, cada usuario tendrá una carpeta con su nombre.

2

Se permite escribir en el recurso compartido.

3

Indica si este recurso aparecerá en la lista de recursos compartidos o no. En este caso, no se mostrará.

4

Máscara de creación de archivos, el valor de este parámetro indicará los permisos que tendrán los archivos de nueva creación.

5

Máscara de creación de directorios, el valor de este parámetro indicará los permisos que tendrán los directorios de nueva creación.

9.3.6. [printers] - impresoras

Este es un recurso compartido especial que crea automáticamente servicios de impresión. La forma en que trabaja es la siguiente: si se crea un recurso compartido con el nombre [printers] en el archivo de configuración, Samba leerá automáticamente el archivo de definición de sus impresoras y creará una impresora compartida para cada impresora que aparezca en el archivo. Por ejemplo, si posee tres impresoras definidas: una lp otra pcl y una última ps, Samba proveerá tres impresoras compartidas con esos nombres, cada una configurada con las opciones que aparezcan en el recurso compartido [printers].

Los parámetros más importantes de esta sección se muestran a continuación:

   browseable = no 1
   path = /tmp 2
   printable = yes 3
   guest ok = no 4
   writable = no 5
   create mask = 0700 6
1

Indica si este recurso aparecerá en la lista de recursos compartidos o no. En este caso, no se mostrará.

2

Directorio que utilizará Samba como cola de impresión.

3

Como este parámetro tiene el valor yes, los clientes que se conecten al servidor, podrán abrir, escribir en y enviar archivos a la cola de impresión, es decir, al directorio especificado por la variable path.

4

No se permitirán las conexiones sin autentificación a este recurso.

5

No se permite escribir en el recurso compartido.

6

Máscara de creación de archivos, el valor de este parámetro indicará los permisos que tendrán los archivos de nueva creación.

9.3.7. [print$] - controladores de impresión

Al igual que un servidor de impresión Windows NT, para soportar la descarga de controladores por parte de clientes con distintas arquitecturas, se han de crear varios subdirectorios dentro del servicio [print$]. Estos se corresponderán con cada una de las arquitecturas soportadas. Samba también sigue este esquema. Así como el nombre del recurso compartido ha de ser [print$], los subdirectorios han de ser exactamente los nombres que se listan a continuación (puede obviar aquellos subdirectorios para las arquitecturas que no necesite soporte).

Por lo tanto, se ha de crear la estructura de directorios que se muestra a continuación, bajo el directorio compartido por [print$]. Cree aquellos directorios para aquellas arquitecturas que quiera dar soporte:

Ejemplo 9.3. [print$] - Subdirectorios para las distintas arquitecturas

[print$]--+
          |--W32X86           # controladores para Windows NT x86
          |--WIN40            # controladores para Windows 95/98
          |--W32ALPHA         # controladores para Windows NT Alpha_AXP
          |--W32MIPS          # controladores para Windows NT R4000
[Note]Nota

El paquete “samba” de Debian GNU/Linux crea esta estructura de directorios bajo /var/lib/samba/printers.

Los parámetros más importantes de esta sección se muestran a continuación:

   path = /var/lib/samba/printers 1
   browseable = yes 2
   writeable = no 3
   guest ok = no 4
   write list = root, @domainadmins 5
1

Directorio donde se almacenarán los controladores de impresión para las distintas arquitecturas.

2

Indica si este recurso aparecerá en la lista de recursos compartidos o no. En este caso, si se mostrará.

3

No se permite escribir en el recurso compartido.

4

No se permitirán las conexiones sin autentificación a este recurso.

5

Lista de usuarios/grupos que tienen permiso de escritura en el recurso compartido.

9.3.8. [tmp] - Directorio temporal

A modo de ejemplo, se va a compartir el directorio temporal /tmp con los siguientes parámetros:

   comment = Temporal 1
   writeable = yes 2
   path = /tmp 3
   guest ok = no 4
1

Comentario del recurso compartido.

2

Se permite la escritura en este recurso.

3

Directorio compartido dentro del sistema.

4

No se permiten conexiones anónimas al directorio, todo usuario ha de autentificarse para acceder a este recurso.

9.3.9. [cdrom] - CDROM

Otro ejemplo de compartición será el CDROM del sistema. Los parámetros empleados en esta ocasión serán:

   comment = Samba server's CD-ROM 1
   writable = no 2
   locking = no 3
   path = /cdrom 4
   guest ok = yes 5
1

Comentario del recurso compartido.

2

No se permite la escritura en este recurso compartido.

3

No se bloquearán realmente los archivos a petición de los clientes, simplemente se informará de que el bloqueo ha sido efectivo.

4

Ruta hacia el recurso compartido.

5

Se permitirá el acceso a este recurso a los usuarios invitados, es decir, aquellos usuarios que no se han autentificado.

[Tip]Sugerencia

Normalmente, para acceder al contenido de un CDROM es necesario montarlo primero. Por lo que se recomienda instalar el parche supermount en el núcleo Linux, de forma que el montado y desmontado del CDROM sea transparente al usuario. Cuando se intenta acceder al recurso, el CDROM se montará automáticamente.

Una vez aplicado el parche en el núcleo y seleccionado para la compilación, se ha de modificar la entrada para el CDROM dentro del archivo /etc/fstab, de forma que quede algo similar a:

<file system> <mount point> <type>     <options>                             <dump><pass>
none          /cdrom        supermount dev=/dev/cdrom,fs=auto,ro,auto,user,exec  0     0