Herramientas de usuario

Herramientas del sitio


informatica:certificaciones:lpic:lpic-2:209_file_sharing:209.1_samba_server_configuration

¡Esta es una revisión vieja del documento!


209.1 SAMBA Server Configuration

Perteneciente a Topic 209: File Sharing

  • Weight: 5
  • Description: Candidates should be able to set up a Samba server for various clients. This objective includes setting up Samba as a standalone server as well as integrating Samba as a member in an Active Directory. Furthermore, the configuration of simple CIFS and printer shares is covered. Also covered is a configuring a Linux client to use a Samba server. Troubleshooting installations is also tested.
  • Key Knowledge Areas:
    • Samba 4 documentation
    • Samba 4 configuration files
    • Samba 4 tools and utilities and daemons
    • Mounting CIFS shares on Linux
    • Mapping Windows user names to Linux user names
    • User-Level, Share-Level and AD security
  • Terms and Utilities:
    • smbd, nmbd, winbindd
    • smbcontrol, smbstatus, testparm, smbpasswd, nmblookup
    • samba-tool
    • net
    • smbclient
    • mount.cifs
    • /etc/samba/
    • /var/log/samba/

Samba

Samba es una solución software de interoperabilidad con Windows disponible en los sistemas Linux y Unix.

El nombre de Samba viene del protocolo SMB (Server Message Block) utilizado para la compartición de recursos en las redes Microsoft. Permite en particular compartir archivos e impresoras en los servidores Linux para clientes Windows.

Tambien se conoce como CIFS, que es la implementacion que Windows hace de dicho protocolo.

La suite software Samba también tiene un cliente que permite a las máquinas Linux conectarse a los recursos compartidos de un servidor Windows.

Instalación

Dependiendo de la distribución, instalaremos servidor y cliente:

Debian:

apt-get install samba samba-client

Red Hat:

yum install samba samba-client

Samba se basa en dos daemons:

  • El daemon nmbd se encarga de anunciar los servicios y en general de todo el funcionamiento NetBIOS over IP.
  • El daemon smbd se encarga de las comparticiones de archivos y de impresoras.

Los fichero de logs se almacenan en /var/log/samba:

  • log.nmbd
  • log.smbd

Configuración

Su fichero de configuración es /etc/samba/smb.conf y está dividido en secciones estandarizadas, cada una precedida por un título entre corchetes:

[seccion1]
parametro1 = valor1
parametro2 = valor2

[seccion2]
parametro3 = valor3
parametro4 = valor4

El manual de smb.conf es uno de los más extensos de Linux. Se puede consultar una versión online en la propia web de Samba.

Hay tres secciones especiales:

  • global: Parámetros de configuración globales de samba
  • homes: Define las carpetas personales de los usuarios (al estilo de los /home de Linux).
  • printers: Configuración para el acceso a las impresoras de red

El resto de secciones corresponden a la configuración de carpetas compartidas o “shares”.

Sección [global]

Elementos comunes de la sección [global] en smb.conf:

[global]
    workgroup = <grupo_de_trabajo>
    server string = <comentario>
    log file = </ruta/log.%m>
    max log size = <log_maxi>
    security = user # (por defecto)
    encrypt passwords = true # (por defecto)
Parámetro Descripción
grupo_de_trabajo El nombre del grupo de trabajo del servidor. Hay que tener en cuenta que este parámetro también proporciona el nombre del dominio cuando está trabajando en un dominio.
comentario Comentario asociado al servidor. Visible por ejemplo en el Entorno de Red de las máquinas Windows.
log.%m Definición del formato estándar de los archivos de registro.
log_maxi Definición del tamaño máximo de los archivos de registro.
user (Opcional) Parámetro de seguridad que obliga a autentificarse con una cuenta de usuario.
encrypt passwords (Opcional) Necesario para todos los clientes modernos que presentan de forma nativa contraseñas encriptadas.

Otros parámetros importantes de la sección [global] en smb.conf:

  • Netbios name: nombre del servidor samba
  • Unix passwords sync: permite sincronizar las contraseñas de samba con las del sistema. Al crear un usuario de Samba, también se crea un usuario en el sistema (Linux). Si se cambia la contraseña del usuario de Samba, tenemos que activar esta opción si queremos que también se actualice la de sistema.
  • Passdb backend: especifica el sistema de autenticación (smbpasswd / tdbsam / ldap)
  • Username map: establece el fichero de mapeo de usuarios del sistema con usuarios Windows.

Compartición de directorios

Formato típico de una [carpeta compartida] en smb.conf:

[nombre_comparticion]
    comment = <comentario>
    path = <ruta>
    read only = yes
    browseable = yes
Valor Descripción
nombre_compartición El nombre con el que se verá la compartición en las máquinas Windows.
comentario (Opcional) Definición del comentario asociado a la compartición.
ruta Definición de la ruta del directorio que se desea compartir. El directorio debe existir en el sistema de archivos Linux.
read only Definición del acceso a la compartición en modo de sólo lectura o lectura/escritura. read only tendrá el valor yes o no según se elija la configuración. Hay que tener en cuenta que este parámetro se aplica a la compartición y que el acceso queda sometido a los permisos del sistema de archivos Linux.
browseable Gestión de la visibilidad de la compartición para los clientes.

Los valores de los parámetros pueden indicarse con yes, true o 1; y no, false o 0.

browseable hace que al conectarnos a un servidor con recursos compartidos, estos se listen (yes) o por el contrario no se muestren (no) y solo pueda acceder quien sabe que existe.

Ejemplo:

[documentos]
    path = /home/pepito
    browseable = yes
    read only = yes

Para aplicar la nueva configuración, hay que reiniciar el servicio samba:

service samba-ad-dc restart

A partir de la versión 4 de Samba, la aplicación puede crear su propio dominio.

Para hacer la prueba desde un equipo Windows, abriríamos desde el navegador de archivos la ruta \\192.168.1.40 (o la dirección IP que tenga el servidor con samba) y nos debería listar los recursos compartidos, en este caso documentos. Para acceder al recurso necesitaríamos un usuario de Samba.

La herramienta testparm nos permite verificar la configuración.

Otros parámetros importantes para [carpeta compartida] en smb.conf:

  • guest ok: permite el acceso como invitado a la carpeta (puede usarse en [global] también)
  • valid users: lista de usuarios o grupos con acceso a la carpeta.
  • writeable: permiso para escribir en la carpeta (también es válido writable).
  • hosts <allow|deny>: máquinas con acceso permitido o denegado a las carpetas.

Modos de funcionamiento de Samba

En función del contexto de nuestra red, Samba pude actuar de varias modos:

  • Standalone server: es una máquina independiente que comparte archivos en la red y gestiona la autenticación por sus medios.
  • Miembro de un dominio: podemos añadir nuestro servidor a un dominio Windows NT o Active Directory, y la autenticación se gestionará en el dominio. Puede ser PDC (Primary Domain Controller) o BDC (Backup Domain Controller).
  • Domain Controller: Samba, desde la versión 4, puede actuar como controlador de dominio sin necesidad de un Windows Server para generar su propio Directorio Activo. Se encargará de la autenticación, DNS interno…

Niveles de seguridad

Samba dispone de dos niveles de seguridad: a nivel de usuario (user-level) y a nivel de carpeta compartida (share-level). Son parámetros de configuración globales.

User-level:

  • security = user: para servidores standalone, usará la base de datos de contraseñas local
  • security = ads: samba actua como parte de un dominio Active Directory
  • security = domain: samba validará los usuarios contra un PDC o un BDC

Share-level:

  • security = share: cada share tiene sus propios usuarios y contraseñas válidos.

El fichero de configuración /etc/samba/smbusers nos permite realizar el mapeo de usuarios Samba con usuarios de Unix (permite que los usuarios Windows puedan conectarse sin una cuenta unix, y se apliquen los privilegios indicados). La cuenta Unix debe existir previamente.

El formato de este fichero es:

# Unix_name = SMB_name1 SMB_name2 ...

Ejemplo:

root = administrator admin
nobody = guest smbguest

En el ejemplo anterior, los usuarios admin y administrator de Windows corresponderán a la cuenta root de Linux. Los usuarios guest y smbguest de Windows, a nobody de Linux.

Herramientas de administración de Samba

testparm

Comando que valida el formato del fichero de configuración y devuelve la configuración activa (sin líneas de comentarios) del servicio establecida en el fichero de configuración. De esta manera podríamos redirigir su salida a un archivo y así generar un smb.conf legible y de tamaño razonable.

  • -v: Devuelve el mismo informe más todos los parámetros de configuración no utilizados con su valor por defecto.

nmblookup

Comando que proporciona búsquedas de nombres NetBIOS sobre TCP/IP.

smbstatus

Comando que muestra las conexiones smb activas, es decir, los usuarios que están conectados a los recursos compartidos de la máquina con el servidor Samba.

Samba-tool

Esta es la herramienta que nos permite administrar todos los aspectos del servidor Samba cuando actúa como Active Directory Domain Controller (AD DC). No sirve cuando Samba actúa como Domain Member o Standalone Server.

net

Herramienta para la administración de servidor Samba y CIFS remotos. Es análoga a la herramienta net de Windows.

Administración de Credenciales

A la hora de autenticarse, tendremos que crear un usuario local y un usuario de Samba.

El cliente de Windows presentará una contraseña encriptada por el algoritmo de hash nativo de los sistemas Windows MD4 (Message Digest 4), mientras que las contraseñas de los sistemas Linux usan el algoritmo MD5 (Message Digest 5).

Para que los clientes Windows se puedan autentificar en los sistemas Linux, hay que hacer que estos sistemas alberguen una versión de la contraseña encriptada en MD4 además de la contraseña nativa (/etc/shadow) encriptada en MD5.

Estas dos contraseñas se administrarán de forma independiente y podrán ser incluso distintas.

smbpasswd

Comando que permite gestionar las cuentas samba.

smbpasswd <opcion> <nombre_cuenta>

Opciones:

  • -a: Crea una contraseña MD4 para una cuenta linux existente.
  • -d: Desactiva una cuenta samba.
  • -e: Reactiva una cuenta samba.
  • -x: Elimina una cuenta samba.

Suponiendo que existe el usuario linuxito en el sistema, tendríamos que crear un usuario de Samba:

smbpasswd -a linuxito

Una vez que hemos añadido el usuario. Si quisiésemos cambiarle la contraseña, ejecutaríamos el comando sin opciones:

smbpasswd linuxito

Es posible configurar que se sincronicen las contraseñas samba con las contraseñas del sistema Linux incluyendo la siguiente directiva en el smb.conf:

unix password sync = yes

En la versiones antiguas de SAMBA, la información generada por el comando smbpasswd, según la distribución se almacenaba en:

  • Debian: /etc/samba/smbpasswd
  • RedHat: /var/lib/samba/private/smbpasswd

Pero las versiones recientes, utilizan el formato de base de datos TDB (tdbsam) para almacenar los usuarios y contraseñas, como alternativa al fichero smbpasswd. Y el directorio donde se encuentran estos ficheros, también depende de la distribución:

  • Debian: /var/lib/samba
  • RedHat: /var/lib/samba/private

Cliente Samba

El cliente Samba permite acceder a una compartición de una máquina Windows o Samba desde un cliente Linux.

Los dos comandos principales del cliente samba son smbclient y smbmount.

smbclient

Comando para obtener información de los recursos compartidos albergados por un servidor SMB.

smbclient -L <direccion_servidor> -U <nombre_usuario>

Modo interactivo (dos formas según usemos las barras normales o invertidas):

smbclient \\\\direccion_servidor\\comparticion -U nombre_usuario
smbclient //direccion_servidor/comparticion -U nombre_usuario

En el modo interactivo entraremos en una sesión donde podremos hacer ciertas consultas.

smbmount y mount

Comando que permite realizar el montaje de una compartición SMB en un directorio local tal y como se puede hacer con un sistema de archivos local o una compartición NFS. (Obsoleto)

Este comando desaparecerá en futuras versiones de Samba

Tenemos dos formas de utilizarlo según usemos las barras invertidas o normales:

smbmount \\\\direccion_servidor\\comparticion punto_de_montaje -o user=nombre_usuario
smbmount //direccion_servidor/comparticion punto_de_montaje -o user=nombre_usuario

Sintaxis del comando mount para montar una compartición smb:

mount -t smbfs -o username=<nombre_usuario> //<direccion_servidor>/<comparticion> <punto_de_montaje>

Para que mount pueda montar un recurso Samba, es necesario instalar el paquete cifs-utils en Debian

informatica/certificaciones/lpic/lpic-2/209_file_sharing/209.1_samba_server_configuration.1619098497.txt.gz · Última modificación: por tempwin