Saltar a contenido

Samba.

Características.

✔️ IBM crea el servicio smb (Server Message Block) para la compartición de recursos, un software propietario usado por Windows.

✔️ Samba es una implementación libre de dicho protocolo smb creado por IBM.

✔️ Posteriormente Windows modificó el código de smb y lo renombró como CIFS (Common Internet File System).

✔️ Su finalidad es la compartición de recursos (directorios/ficheros) e impresoras entre sistemas heterogéneos (Windows/Linux/Solaris/Mac OSX).

✔️ Samba suele usar el puerto 139 o 445 TCP dependiendo de la versión.

✔️ SMB tiene 3 versiones: SMB 1.0, 2.0, 3.0 y 4.0. Nunca debemos usar 1.0 y deberíamos intentar usar 3.0 que es más seguro.

✔️ Samba también nos permite crear servidores de dominio activo (Active Directory) como Windows Server.

RESUMEN

🔥 CIFS: Protocolo SMB modificado por Windows para la compartición de recursos.

🔥 SAMBA: Protocolo libre simulando la funcionalidad de SMB, usado en Linux.

Instalación.

Servidor.

apt install samba

Cliente.

apt install samba-client

Configuración.

1. Accedemos al fichero de configuración.

COMENTARIOS

🔥 Los "#" y los ";" son comentarios y no surgen efecto dentro del fichero de configuración.

nano /etc/samba/smb.conf

2. Creamos los recursos a compartir / Cambio de parámetros del servicio.

Ejemplo: Al final del fichero añadimos un nuevo recurso.

[ejercicio1]
 comment = Prueba Ejercicio 1
 path = /srv/ejercicio1
 browsable = yes
 guest ok = yes
 read only = no
 create mask = 0777

3. Creamos en el servidor el recurso a compartir.

Es importante que en las carpetas a compartir y padres tengan permiso de ejecución para poder entrar en caso de que no pongamos restricción por usuario/contraseña.

mkdir –p /srv/ejercicio1
chmod 755 /srv/ejercicio1

4. Reiniciamos el servicio para que surjan efecto los cambios de configuración.

service smbd restart

Permisos Carpetas.

Un usuario debe cumplir con los permisos de:

  • Fichero de configuración de samba.

  • Permisos de la carpeta en el servidor.

Permisos

El usuario samba debe tener permisos en las carpetas que accede en el servidor.

Permiso
Significado
Lectura Puede listar la carpeta (ls)
Escritura Puede crear ficheros/carpetas.
Ejecución Puede acceder a la carpeta (cd).

Cliente Windows.

Cambiar Idioma y Teclado.

Habilitar el descubrimiento de equipos en redes privadas.

Tipos de Red

Cuando nos conectamos por primera vez a una red podemos decidir si es de confianza (privada) o no (pública)

🔥 Ejemplo redes privadas: Casa / Trabajo.

🔥 Ejemplo redes públicas: Instituto / Biblioteca.

Puede que tengamos que habilitar el descubrimiento de redes.

Acceder al recurso.

ACCESO \\IP_Servidor

🔥 Podemos abrir un explorador de directorio y colocar en la barra de direcciones \\IP_Servidor:

Conectar Unidad de Red

Unidad de Red

🔥 Se puede generar una especie de acceso directo a nuestros servicios compartidos.

Cliente Linux

Cambiar Idioma y Teclado

sudo dpkg-reconfigure keyboard-configuration
sudo service keyboard-setup restart

Conectar mediante Interfaz gráfica.

En Linux podemos acceder desde una carpeta usando el protocolo smb:

smb://usuario@IPServidor/CarpetaCompartida

Conectar mediante comandos.

  1. Averiguar dentro del servicio que carpetas compartidas hay disponibles.
  1. Acceso a la carpeta compartida.
#Importante escapar cada \, por eso hay 4 por un lado y 2 por otro...
smbclient \\\\172.17.0.2\\ejercicio1
  1. Una vez dentro son comandos parecidos a FTP.

Símbolo
Significado
ls Listar ficheros/carpetas.
cd Moverme entre carpetas.
get Descargar un fichero.
put Cargar un fichero.
? Mostrar la ayuda.

Recoger un fichero del servidor.

smb: \> get FICHERO_SERVIDOR FICHERO_CLIENTE

Recoger un fichero del servidor.

#Se debe haber creado antes un usuario samba con smbpasswd -a "usuario" 
#Dicho usuario debe existir en el sistema useradd salva -s /bin/false
smb: \> put FICHERO_CLIENTE FICHERO_SERVIDOR

Acceder mediante scripts.

smbclient \\\\172.17.0.2\\ejercicio1 --password 123 << EOF
    get Fichero_Servidor Fichero_Cliente
    put Fichero_Cliente Fichero_Servidor
    exit
EOF

Otra opción es usar -c del comando:

smbclient \\\\172.17.0.2\\ejercicio1 --password 123 -c  "get Fic_Servidor Fic_Cliente; put Fic_Cliente Fic_Servidor"

Vídeo de Ejemplo.

  1. Creación de Recurso Compartido.