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.

!!! info "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.

!!! danger "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.

!!! danger "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.

!!! danger "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.

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

Conectar Unidad de Red

!!! info "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.