educación, informática y demás

24.13 - Repaso general

Samba: Servicio SMB/CIFS

Instalar servidor Samba

Desde nuestro sistema GNU/Linux Debian 12 con XFCE vamos a instalar y configurar un servidor Samba en el equipo server que hemos configurado previamente para aceptar conexiones a través de ssh.

Ahora tratamos de instalar samba

En mi caso ya lo tengo instalado O:)

Fichero de configuración de samba

La mayoría de estas líneas son comentarios.

Los comentarios en samba, como ya sabemos, son líneas que comienzan por # o por ;. Si quitamos todas estas líneas, nos quedan tan solo 36 líneas de configuración. Lo que supone que hay 200 líneas de comentarios o líneas vacías.

Creando una copia de seguridad del fichero de configuración por defecto

El fichero de configuración de samba que viene por defecto al instalar el servidor Samba está bien, porque contiene muchos comentarios que nos sirven para aprender cómo funcionan algunos parámetros de configuración. No obstante, puede que nos resulte engorroso trabajar con él precisamente por la cantidad de comentarios que tiene.

En este caso, para no perder toda la información que contiene este fichero, podemos crear una copia del mismo y, después, quedarnos con la configuración base sin ningún comentario extra.

Ahora en el fichero de configuración tan solo nos quedaremos con la configuración sin comentarios.

Ahora solo tenemos que hacer que esto que aparece en pantalla no se muestre en pantalla sino que se escriba en un fichero, sobrescribiendo lo que haya en dicho fichero. Este fichero de destino será el fichero de configuración de samba.

Ayuda sobre samba

Podemos consultar información sobre Samba así como acceder a documentación técnica y manuales en el sitio web oficial de Samba.

Además, podemos consultar la página de manual de samba haciendo uso del comando man.

En la página de manual de smb.conf podemos encontrar ayuda sobre la configuración del servidor samba así como de los distintos parámetros de configuración disponibles.

Algunos de los principales parámetros de configuración que utilizaremos son los siguientes:

  • path
  • comment
  • read only
  • guest ok
  • valid users
  • invalid users
  • write list
  • read list
  • force user
  • force group
  • create mask
  • directory mask
  • browsable

Ejercicios

A continuación vamos a realizar una serie de ejercicios en los que configuraremos recursos compartidos utilizando samba.

Recurso compartido publico

Características:

  • Nombre: publico
  • Directorio /educatica/shared/public
  • Acceso de usuarios anónimos
  • Operaciones de Solo lectura

Solución

  1. Crear, si no existe, y configurar el directorio a compartir
  2. Configurar samba: usuarios y recursos compartidos
  3. Reiniciar el servicio
  4. Comprobar

Crear, si no existe, y configurar el directorio a compartir

Configurar samba: usuarios y recursos compartidos

Reiniciar el servicio

También podemos comprobar la configuración efectiva

Por defecto el valor de read only es yes, por eso no aparece en el listado mostrado por testparm. En nuestras configuraciones siempre debe aparecer configurado con el valor solicitado.

Comprobar

Para comprobar vamos a utilizar smbclient desde el equipo fileserver.

Está. Vamos a conectarnos.

Recurso compartido subidas

Características:

  • Nombre: subidas
  • Directorio /educatica/shared/upluads
  • Acceso de usuarios anónimos
  • Operaciones de lectura y escritura

Solución

  1. Crear, si no existe, y configurar el directorio a compartir
  2. Configurar samba: usuarios y recursos compartidos
  3. Reiniciar el servicio
  4. Comprobar

Crear, si no existe, y configurar el directorio a compartir

Configurar samba: usuarios y recursos compartidos

Reiniciar el servicio y comprobar

¿Qué comandos tenemos disponibles en smbclient?. Si ejecutamos help nos mostrará todas las opciones disponibles.

Recurso compartido empresa

Características:

  • Nombre: empresa
  • Directorio /educatica/shared/enterprise
  • Acceso de usuarios anónimos
  • Operaciones de lectura y escritura pero solo dentro de un directorio llamado uploads dentro del recurso compartido.

Solución

Crear, si no existe, y configurar el directorio a compartir.

Aquí está la complejidad del ejercicio.

Configurar samba: usuarios y recursos compartidos

Reiniciar el servicio y comprobar

Recurso compartido proyectos

Características:

  • Nombre: proyectos
  • Directorio /educatica/shared/work
  • Acceso de usuarios anónimos prohibido
  • Operaciones de lectura
  • Solo usuarios del sistema del sistema con credenciales en el sistema.

Como usuarios con credenciales en el sistema tan solo tenemos a marinapg, alfredoff y ramonam.

Solución

  1. Crear, si no existe, y configurar el directorio a compartir
  2. Configurar samba: usuarios y recursos compartidos
  3. Reiniciar el servicio
  4. Comprobar
Creamos el directorio, si no existe, y lo configuramos para permitir los accesos solicitados

Configurar samba: usuarios y recursos compartidos

Comprobamos los usuarios en la base de datos de usuarios de samba y añadimos los usuarios uno a uno
Al no permitir conexiones de usuarios anónimos tan solo podrán conectarse usuarios con cuenta en la base de datos de Samba

Reiniciar si es necesario y comprobar:

Se muestra el nuevo recurso compartido en la lista de recursos compartidos

Vamos a intentar conectarnos con smbclient

Si tratamos de acceder con usuario anónimo no nos lo permite. Solo podemos acceder con usuarios con cuenta en la base de datos de usuarios de samba
Accediendo desde navegador de sistema de ficheros
Conectamos con un usuario registrado

Vamos a hacer una pequeña prueba con el fichero saludo.txt

Con estos permisos del fichero saludo.txt todos los usuarios del sistema podrán escribir en él

¿Qué sucederá si intentamos escribir desde el navegador de sistema de ficheros conectado a través de samba a este recurso compartido?

Al acceder al fichero desde Samba se aplican los permisos de Samba para ese recurso compartido y los permisos locales del fichero y directorio(s) que lo contiene. Desde Samba hemos configurado solo lectura

Si se accediera en local, entonces el usuario alfredoff podría escribir

En este acceso estamos conectados a través de ssh al sistema server. Cambiamos de usuario a alfredoff y el acceso será como si fuera local
Podemos ver cómo el fichero se ha modificado

Recurso compartido desarrollo

Características:

  • Nombre: desarrollo
  • Directorio /educatica/shared/dpto/developers
  • Acceso de usuarios anónimos prohibido
  • Operaciones de lectura en general
  • Solo podrán acceder a través de samba los usuarios del grupo developers
  • Solo podrá escribir el usuario alfredoff

Solución

  1. Crear, si no existe, y configurar el directorio a compartir
  2. Configurar samba: usuarios y recursos compartidos
  3. Reiniciar el servicio
  4. Comprobar

El acceso nos lo piden a través de Samba, no obstante podemos adaptar los permisos en el sistema de ficheros local para el directorio que vamos a compartir para que se adapte a los permisos de samba. También podríamos dejar muy abierta la configuración en local y que la configuración de samba fuera la que restrinja los accesos.

Creamos el directorio a compartir y configuramos los permisos de acceso
Configuración de los permisos de Samba según nos piden

En este caso podríamos haber utilizado los permisos del sistema de ficheros, que son los que nos piden, y ser mucho más abiertos en Samba.

Algo falla en la configuración del recurso compartido. El usuario marinapg pertenece a developers
La ruta es incorrecta
Ahora la ruta del recurso es correcta
marinapg puede acceder para solo lectura
Accediendo con alfredoff podemos realizar operaciones de escritura
Hemos creado un directorio y un fichero

Veamos los permisos de estos recursos recién creados

El grupo developers podrá leer porque los otros tienen permiso de lectura. Quizá hubiera estado bien forzar el grupo al crear ficheros o directorios a través de samba

Recurso compartido ventas

Características:

  • Nombre: ventas
  • Directorio /educatica/shared/dpto/sales
  • Acceso de usuarios anónimos prohibido
  • Operaciones de lectura en general
  • Solo podrá escribir el usuario marinapg y los miembros del grupo sales.
  • Se debe garantizar que los miembros del grupo sales puedan escribir siempre en cualquier recurso creado fichero o directorio, así como que el resto de usuarios del sistema que accedan al recurso puedan leer.

Solución

  1. Crear, si no existe, y configurar el directorio a compartir
  2. Configurar samba: usuarios y recursos compartidos
  3. Reiniciar el servicio
  4. Comprobar
Creamos y configuramos el directorio
Todos pueden leer pero son pueden escribir marinapg y sales
Configuración de samba

Recurso compartido empleados

Características:

  • Nombre: ventas
  • Directorio /educatica/shared/staff
  • Acceso de usuarios anónimos prohibido
  • Operaciones de lectura en general
  • Solo usuarios del sistema del sistema con credenciales en el sistema.
  • Solo podrán escribir los miembros del grupo dirección
  • Se debe garantizar que los miembros del grupo dirección puedan escribir siempre en cualquier recurso creado fichero o directorio, así como que el resto de usuarios del sistema que accedan al recurso puedan leer.

Dejar una respuesta