Product SiteDocumentation Site

11.5. Configuración de espacios compartidos Windows con Samba

Samba es un conjunto de herramientas que administran el protocolo SMB (también conocido como «CIFS») en Linux. Windows utiliza este protocolo para espacios compartidos de red e impresoras compartidas.
Samba también puede actuar como un controlador de dominio Windows. Esta es una herramienta sobresaliente para asegurar una integración perfecta entre servidores Linux y las máquinas de escritorios en las oficinas que todavía utilizan Windows.

11.5.1. Servidor Samba

El paquete samba contiene los dos servidores principales de Samba 4: smbd y nmbd.

11.5.1.1. Configuración con debconf

El paquete define una configuración mínima durante la instalación inicial. No obstante es muy recomendable adaptar la configuración a posteriori ejecutando la orden dpkg-reconfigure samba-common:
Lo primero que tenemos que configurar es el nombre del grupo de trabajo al que pertenecerá el servidor Samba (en el caso de Falcot, la respuesta es FALCOTNET).
El paquete también propone identificar el servidor WINS de la información provista por el demonio DHCP. Los administradores de Falcot Corp rechazaron esta opción ya que pretenden utilizar el servidor Samba en sí como servidor WINS.

11.5.1.2. Configuración manual

11.5.1.2.1. Cambios en smb.conf
Los requisitos en Falcotr requieren modificar otras opciones en el archivo de configuración /etc/samba/smb.conf. Los siguientes extractos resumen los cambios realizados en la sección [global].
[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = FALCOTNET

# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
   wins support = yes 1

[...]

####### Authentication #######

# Server role. Defines in which mode Samba will operate. Possible
# values are "standalone server", "member server", "classic primary
# domain controller", "classic backup domain controller", "active
# directory domain controller". 
#
# Most people will want "standalone sever" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
   server role = standalone server

# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server.
   security = user 2

[...]

1

Indica que Samba debe funcionar como un servidor de nombres Netbios (WINS) para la red local.

2

Este es el valor predeterminado para este parámetro; sin embargo, como es central a la configuración de Samba, se recomienda rellenarlo explícitamente. Cada usuario debe autenticarse antes de acceder a cualquier espacio compartido.
11.5.1.2.2. Añadir usuarios
Cada usuario Samba necesita una cuenta en el servidor; primero debe crear las cuentas Unix, luego necesita registrar el usuario en la base de datos de Samba. El paso de Unix se realiza de la forma normal (por ejemplo, utilizando adduser).
Agregar un usuario existente a la base de datos de Samba sólo es cuestión de ejecutar smbpasswd -a usuario; esto pedirá la contraseña de forma interactiva.
Puede eliminar un usuario ejecutando smbpasswd -x usuario. También puede desactivar temporalmente una cuenta Samba (con smbpasswd -d usuario) y reactivarla después (con smbpasswd -e usuario).

11.5.2. Cliente Samba

La funcionalidad de cliente en Samba le permite a una máquina Linux acceder a espacios e impresoras compartidas en Windows. Los programas necesarios se encuentran en los paquetes cifs-utils y smbclient.

11.5.2.1. El programa smbclient

El programa smbclient consulta servidores SMB. Puede utilizarse la opción -U usuario, para conectarse con el servidor bajo una identidad concreta. Con smbclient //servidor/espaciocompartido se accede al espacio compartido de modo interactivo como si se tratara de un cliente FTP en una consola. smbclient -L servidor enumerará todos los espacios compartidos (y visibles) en un servidor.

11.5.2.2. Montaje de espacios compartidos de Windows

El programa mount permite montar un espacio compartido de Windows en la jerarquía del sistema de archivos de Linux (con la ayuda de mount.cifs provisto por cifs-utils).

Ejemplo 11.24. Montaje de un espacio compartido de Windows

mount -t cifs //arrakis/shared /shared \
      -o credentials=/etc/smb-credentials
El archivo /etc/smb-credentials (que no debe ser accesible por usuarios) tiene el siguiente formato:
username = usuario
password = contraseña
Puede especificar otras opciones en la línea de órdenes; la lista completa se encuentra disponible en la página de manual mount.cifs(1). Dos opciones en particular pueden ser interesantes: uid y gid que permiten forzar el usuario y grupo dueños de los archivos disponibles en el punto de montaje para no restringir el acceso a root.
También puede configurar el montaje de un espacio compartido Windows en /etc/fstab:
//servidor/shared /shared cifs credentials=/etc/smb-credentials
Puede desmontar un espacio compartido SMB/CIFS con el programa umount estándar.

11.5.2.3. Impresión en una impresora compartida

CUPS es una solución elegante para imprimir desde una estación de trabajo Linux en una impresora compartida por una máquina Windows. Cuando instale smbclient, CUPS le permitirá instalar impresoras compartidas Windows de forma automática.
Los pasos necesarios son los siguientes:
  • Introduzca la interfaz dec configuración CUPS: http://localhost:631/admin
  • Pulse en «Agregar impresora».
  • Seleccione el dispositivo de impresión, elija «Impresora Windows via SAMBA».
  • Introduzca la URI de conexión para la impresora de red. Debería ser similar a la siguiente:
    smb://usuario:contraseña@servidor/impresora.
  • Introduzca el nombre que identificará unívocamente a esta impresora. Luego introduzca la descripción y la ubicación de la impresora. Se mostrarán estas cadenas a los usarios para ayudarlos a identificar las impresoras.
  • Indique el fabricante/modelo de la impresora o, directamente, provea un archivo de descripción de impresora (PDD: «Printer Description File») funcional.
Voilà, ¡la impresora ya está lista!