martes, 13 de octubre de 2015

INSTALAR UN SERVIDOR SAMBA EN RASPBERRY PI 2

Samba es el método más utilizado para compartir archivos e impresoras ya que permite su integración en distintos sistemas operativos como Windows, GNU/Linux, OSx,..
Se basa en el protocolo SMB (Server Message Block) que es la base para compartir ficheros e impresoras en Windows.
Si instalamos este servicio en nuestra Raspberry, ésta se convertirá en un auténtico NAS (Network access storage), donde podremos compartir los archivos y carpetas entre los diferentes dispositivos de la red doméstica.

Lo primero que debemos hacer es instalar las paquetes necesarios para nuestro servidor:


$ sudo apt-get install samba samba-common-bin

Una vez instalado "SAMBA" , crearemos los usuarios y el grupo necesarios para que puedan interactuar en las carpetas compartidas.


Al igual que Windows, tenemos que tener en cuenta dos tipos de permisos:

  • Los permisos del sistema de archivos.
  • Los permisos de compartición propios de samba.
Nuestro servidor  utiliza nativamente las cuentas locales  del sistema para las autentificaciones "SAMBA", aunque también podríamos trabajar sobre autentificaciones LDAP por ejemplo.
Como nosotros utilizaremos las cuentas locales de la Raspberry, deberemos crear los usuarios y grupos en el sistema y en "SAMBA".


$ sudo adduser -shell /bin/false --no-create-home usuario

Con estas opciones, hemos creado un usuario que no tenga ninguna shell con la que poder loguearse en el sistema ni conectarse vía ssh,..., además evitamos que se cree el directorio del usuario dentro de "Home", ya que este usuario sólo tendrá acceso a las carpetas compartidas que vamos a crear.

Posteriormente, crearemos los usuarios en "SAMBA" con la opción "-a":

$ sudo smbpasswd -a usuario

Ya tenemos configurado nuestro usuario "SAMBA", ahora pasaremos a crear el grupo de acceso e incluir a los usuarios que queramos:

$ sudo addgroup samba

$ sudo adduser usuario samba

Una vez configurados los usuarios y grupos, haremos lo mismo con las carpetas compartidas, y asignaremos a ésta los permisos para que puedan acceder. Crearemos por tanto una carpeta compartida en el directorio "Home" llamada "samba" y asignaremos los permisos al grupo, dejando al usuario "root" como propietario:

 $ sudo mkdir /home/samba
 $ sudo chgrp -R samba /home/samba
 $ sudo chmod 770 /home/samba

No debemos olvidar que tenemos que añadir el bit "sedgit", pues si nos conectamos con un usuario y creamos una carpeta o archivo, por defecto el grupo que tendrá los permisos será el grupo principal de éste. Para solucionarlo ejecutamos:

$ sudo chmod g+s /home/samba


Con esto hemos creado la carpeta "samba" asignándole los atributos de propietario al usuario "root" y al grupo "samba" con permisos de escritura,lectura y ejecución en ambos, y sin acceso al resto.

Ahora pasaremos a configurar el servicio "SAMBA". Editaremos el archivo principal:

$ sudo nano /etc/samba/smb.conf

Observamos que hay diferentes opciones. La línea que más nos interesa de momento es la siguiente, que deberemos descomentar:

security=user

Esto habilitará la autentificación a través de las cuentas locales del sistema.








 

También incluiremos en este archivo los recursos que queramos compartir en "SAMBA".
Añadiremos estas líneas a modo de ejemplo:


[samba] # Nombre del recurso compartido.
 comment = Carpeta compartida para el grupo samba.
 path = /home/samba # Ruta del recurso compartido.
 read only = No # No permitir a los usuarios no validos que puedan leer.
 valid users = @samba # Permitir al grupo samba el acceso al recurso.
 write list = @samba # Otorgar al grupo samba la escritura.
 create mask = 0660 # Máscara por defecto al crear un archivo.
 directory mask = 0770 # Máscara por defecto al crear directorio.


Si queremos permitir el acceso individual a cualquier usuario, solo tenemos que quitar la "@" e incluir todos los usuarios que queramos, siempre separados con ",".


Si deseamos que nuestro recurso no sea visible, le añadimos "$" al final del nombre de éste.

Guardamos el archivo y ejecutamos la herramienta de comprobación del archivo smb.conf:

$ sudo testparm


Reiniciaremos también el servicio:

$ sudo /etc/init.d/samba restart



Debemos de tener también cuenta que si existe un firewall activo en la Raspberry tenemos que abrir el puerto TCP 445:

$ sudo ufw allow 445/tcp

Ya tenemos el servicio "SAMBA" activo, sólo nos faltaría configurarlos en los equipos clientes.

En Windows abriremos el explorador y escribiremos en la zona superior:


\\ip o nombre de la Raspberry\samba




















Introducimos el dominio o la ip seguido del usuario y abajo insertamos la contraseña.

En Linux, desde el terminal  montaremos la unidad en el directorio que queramos:


$ sudo mount.cifs //192.168.0.101/samba  /mnt/samba  -o user=usuario_raspberry


En Mac,  nos situamos en el "Finder" y vamos a la pestaña "ir">"conectarse al servidor". Introducimos la ip o nombre de la Raspberry mas el recurso compartido (si es necesario):














Pinchamos la opción usuario registrado y metemos las credenciales:
















En Android, podemos usar multitud de "apps". En mi caso, utilizo "ES File Explorer". 
Para agregar un sitio, en la pestaña red, pulsamos el boton "+":























Seleccionamos LAN y rellenamos los campos requeridos:








 















Ya tendremos configuradas las carpetas compartidas en todos nuestros dispositivos.

En el próximo tutorial crearemos un servidor "OPENVPN" en la Raspberry con el que podremos conectarnos a través de cualquier dispositivo mediante un túnel seguro VPN (Virtual Private Network).



No hay comentarios:

Publicar un comentario