es:kuckucksmuehle:hackerspace:fileserver

Servidor de archivos

El Servidor de archivos permite a todos los clientes conectados a la red interna Red acceder a la documentación y archivos multimedia.

A raspberry pi 2 alimenta al servidor de archivos que se encuentra conectado con al menos un disco duro, utilizando un conector USB a SATA. El contenido del disco duro está encriptado para que no tengamos que preocuparnos de lo que sucede con el disco cuando ya no se pueda acceder.

Preparación

  • Preparar la sd-card con la imagen base de raspian
  • Conectar a raspberry a la red
  • Conectar el disco(s) con raspberry utilizando adaptadores USB-SATA
  • Configure el gateway para dar a raspberry una IP configurada y el nombre local 'file' el origen se encuentra relacionado con la mac-address

Cuando el raspberry se reinicia, se debe obtener la IP configurada (192.168.1.32) en nuestro caso y ya debería estar configurada la ssh: ssh pi@file. Ahora podemos crear usuarios. Esto depende del tipo de fileserver que quieras crear. Nosotros usamos 'core' para los usuarios y para los voluntarios (workaway) que se encuentran con nosotros por largos periodos de tiempo.

Instalando el Software

Después necesitamos instalar software. Como el sistema puede abastecer de archivos a cualquier PC en la red, instalamos samba y para la encriptación del disco cryptsetup.

sudo apt-get install samba cryptsetup

Para la facil administración tmux dstat htop mc esta instalado también.

Después agregamos al usuario 'echo' al sistema y configurar una costrasena más larga junto con las llaves permitidas y agregamos al usuario a el archivo sudoers. Después desactivamos el usuario 'pi'. Ahora creamos el directorio /data las acciones deseadas y establecer la propiedad raíz a esos directorios. Agregue un archivo 'HARDISK_NOT_MOUNTED' en cada recurso compartido, para que los usuarios vean que algo está mal cuando se reinicia el pi.

Ahora necesitamos la partición del disco(o usar LVM). Cuando el LVM esta en uso, los siguientes comandos son ligeramente diferentes.

Preparar el disco

fdisk /dev/sda Crear una partición para cada grupo de archivos: core, workaway, público, multimedia y elegir el tamaño sabiamente porque cambiarlo después no es fácil. Tenga en cuenta que usamos / dev / sda aquí, revisamos dmesg por el nombre del dispositivo actual, de lo contrario,si tu partición y el formato de el dispositivo incorrecto, y perderemos todos sus datos

/dev/sda1 100G core
/dev/sda2 100G workaway
/dev/sda3 200G public
/dev/sda4 1.6T media

Cuando las particiones están listas, necesitamos ejecutar cryptsetup luksFormat para cada dispositivo y proporcionar una contraseña. Guarde la contraseña en una ubicación segura a la que pueda acceder cuando el servidor de archivos necesite un reinicio.

$ cryptsetup luksFormat /dev/sda1

ATENCIÓN!
========
Esto sobrescribirá los datos irremediablemente en /dev/sda1.

Está seguro? (Escriba en mayúsculas): YES
Escriba contrasena: 
Verifique contrasena: 

Repita esto para todas las particiones.

Después cree el script en /data que contiene una línea para cada partición

/data/unlock_disk.sh

#!/bin/bash

Echo 'para desbloquear necesita contraseñas almacenadas en rh'
Echo 'ejecutar archivo de identidad para obtener las contrasenas de acceso para cpublic, ccore, cworkaway y cmedia'
Echo 'el desbloqueo tomará varios minutos'
echo '---'
echo 'core'
cryptsetup luksOpen /dev/sda1 ccore
echo 'workaway'
cryptsetup luksOpen /dev/sda2 cworkaway
echo 'public'
cryptsetup luksOpen /dev/sda3 cpublic
echo 'media'
cryptsetup luksOpen /dev/sda4 cmedia

Hacer el script ejecutable y ejecutarlo como root. Se le pedirá las contraseñas y crear dispositivos en /dev/mapper.

Ahora necesitamos dar formato a los dispositivos con un sistema de archivos y establecer opciones que desbloqueen todo el espacio disponible en el disco.

$ mkfs.ext4 /dev/mapper/ccore
$ tune2fs /dev/mapper -r0

Cuando los dispositivos estén formateados se pueden agregar a la fstab. El noauto es importante, de lo contrario el pi no arrancará y se hará un shell - malo si no se tiene un teclado y una pantalla adjunta:

/dev/mapper/cpublic     /data/public     ext4 defaults,noauto 0 0
/dev/mapper/ccore       /data/core       ext4 defaults,noauto 0 0
/dev/mapper/cworkaway   /data/workaway   ext4 defaults,noauto 0 0
/dev/mapper/cmedia      /data/media      ext4 defaults,noauto 0 0

A continuación, cree un script en / data que contenga una línea para cada partición:

/data/mount_disk.sh

#!/bin/bash

mount /dev/mapper/public
mount /dev/mapper/ccore
mount /dev/mapper/cworkaway
mount /dev/mapper/cmedia

Ejecute el script y vea que los sistemas de archivos están montados. Compruebe que están montados y corrija la posesión de los directorios en / data con chmod y chown:

root@file:~# mount
/dev/mapper/cmedia on /data/media type ext4 (rw,relatime,data=ordered)
/dev/mapper/ccore on /data/core type ext4 (rw,relatime,data=ordered)
/dev/mapper/cworkaway on /data/workaway type ext4 (rw,relatime,data=ordered)
/dev/mapper/cpublic on /data/public type ext4 (rw,relatime,data=ordered)
root@file:~# ls -la /data
total 32
drwxrwxrwx  6 nobody   nogroup  4096 Oct  3 09:01 .
drwxr-xr-x  4 core     core     4096 Oct  3 09:19 core
drwxr-xr-x  6 nobody   nogroup  4096 Oct  2 13:34 media
-rwxr-x---  1 root     root      115 Oct  3 09:01 mount_disk.sh
drwxrwxrwx  4 nobody   nogroup  4096 Oct  3 09:25 public
-rwxr-x---  1 root     root      413 Oct  3 09:01 unlock_disk.sh
drwxr-xr-x  3 workaway workaway 4096 Oct  3 08:57 workaway

Samba

Ahora es tiempo de configurar samba, abra el archivo /etc/samba/smb.conf y agregue las siguientes sentencias:


[public]
  comment = Archivos accesibles para todos los usuarios, locales y remotos.
  path = /data/public
  browseable = yes
  writeable = yes
  guest ok = yes

[workaway]
  comment = Archivos que están disponibles para usuarios workaway
  path = /data/workaway
  browseable = yes
  writeable = yes
  valid users = workaway, core
  force group = workaway
  create mask = 0770
  directory mask = 0770

[core]
  comment = Archivos que están disponibles para usuarios instruidos unicamente
  path = /data/core
  browseable = yes
  writeable = yes
  valid users = @core
  force group = core
  create mask = 0700
  directory mask = 0700


[media]
  comment = Archivos que hacen senales de audio o video, no pueden subir(upload) nada, usar el compartir público e informar al miembro core. 
  path = /data/media
  browseable = yes
  read only = yes
  guest ok = yes

Tambien deberías cambiar de grupo de trabajo al comienzo del archivo a 'ecohackerfarm'.

Los ultimos pasos para colocar los passwords para los usuarios core y workaway:

smbpasswd -a core
smbpasswd -a workaway

Test

Ponga un archivo test.txt en cada directorio en los datos y asegúrese de que su propiedad coincide (por ejemplo, / data / workaway / test debe ser rw para el grupo workaway).

Compruebe utilizando un cliet-system (por ejemplo, osx) y conéctese al servidor. Conéctese sin credenciales (invitado) y compruebe que no puede utilizar las comparticiones de trabajo y core, pero puede ver el testfile en multimedia (pero no puede cambiar nada) y ve el archivo en público (y puede cambiarlo). Repita esto para el workaway y el usuario principal.

Cuando todo esto se hace, debe reiniciar el sistema para ver que el servicio se está levantando muy bien. Después del reinicio, los recursos compartidos están disponibles, pero los clientes sólo deben ver el mensaje HARDDISK_NOT_MOUNTED . Inicie sesión y ejecute los scripts /data/unlock_disk.sh proporcionando las contraseñas del disco y /data/mount_disk.sh . Ahora los clientes deben ver el test.txt de nuevo.

Poblar con datos

Transferencia de datos a la PI utilizando wifi puede ser bastante lento. Si usted planea poner un Terabyte del material de aprendizaje en él, considere conectar el disco en un PC real con SATA así usted necesitará un décimo del tiempo:

WIFI: 1MB/s -> 3.6GB/h, the terrabyte will take 277h to copy
SATA: 100MB/s -> 360GB/h, the terrabyte will take about 3 hours to copy

Publicar

Ahora tus visitantes y workaways necesitan saber que hay un servidor de archivos y qué hacer con él. Escriba una documentación del usuario final de aproximadamente la mitad de una página y póngala en el wiki e imprímala.

Costos

Para la instalación descrita necesitas raspberry pi 2+, un adaptador USB-SATA y un disco duro.

El costo en 2016 fue de: 35EUR por el PI, 20EUR por la USB-SATA y 71EUR para el disco duro de 2TB. El sistema utiliza 5W de energía eléctrica y debe estar siempre prendido.

Este espacio hacker provee un fileserver cuando te conectas a la red echo-vpn. Su nombre es file y tiene la siguiente ip-address 192.168.1.32. Contiene archivos multimedia, almacenamiento público para todos y documentos que solo son accesibles para voluntarios(workaway) y miembros del core.

  • Abrir el eplorador
  • Busque en la red
  • Encuentre 'echohackerfarm' y 'file'
  • Conecte y comparta
  • Abra Finder
  • Seleccione conectar al servidor
  • Ingrese
    smb://file
  • seleccione lo que desea compartir
  • Abra Arvhicos
  • Seleccione conectar con el servidor
  • Ingrese
    smb://file
  • Seleccione y comparta lo que desee

Como workaway, cargue cualquier archivo (fotos, documentos o similar) que desee compartir con otros workaways o el core-team en la acción workaway . Cargue cualquier archivo que desee compartir con todo el mundo en el recurso public .

  • es/kuckucksmuehle/hackerspace/fileserver.txt
  • Last modified: 2017/01/08 14:26
  • by palmercado