Usar la Raspberry Pi como NAS

Un NAS es un almacenamiento ligado a una red. Esto es, un servidor que provee una capacidad importante de almacenamiento donde guardar ficheros, directorios, documentos, en definitiva, lo que queramos. La Raspberry Pi conectada a un Disco Duro externo puede servir cómo NAS.

Vamos a usar SSHFS para compartir los directorios cifrando. Además, también podremos cifrar el disco duro.

Recuperando un disco duro viejo

En mi caso he conseguido extraer un disco duro de un portátil al que se le rompió la placa base, por lo que no he tenido que gastar nada más que unos 12€ en una carcasa de las que te sacan un USB para conectar el disco duro a la Pi o donde quieras.

Borrando y cifrando el disco duro (opcional y recomandable)

Para cifrar el disco duro hace falta el módulo dmcrypt del kernel, que no está en Raspbian. Por lo que podemos hacer dos cosas: compilarnos el kernel en Raspbian o usar Arch Linux ARM. En mi caso he optad por la segunda opción.

Lo primero que vamos a hacer es formatear el disco duro. Podemos usar el siguiente comando, si es un par de veces mejor:

dd if=/dev/urandom of=/dev/sda

Donde sda será nuestro disco duro. El comando puede tardar mucho tiempo, incluso días, depende del tamaño de nuestro disco duro y de la velocidad de escritura, pero paciencia, vale la pena.

Para cifrar el disco duro usaremos una herramienta que se llama cryptsetup:

pacman -S cryptsetup

Pasaremos a cifrarlo:

cryptsetup -c aes -h sha256 -y -s 256 luksFormat /dev/sda

Accedemos al disco duro cifrado: cryptsetup luksOpen /dev/sda hd

Donde hd será el nombre o identificador con el que montaremos el disco duro. Pero primero hace falta darle formato:

 mkfs.ext4 -L 'discoduro' /dev/mapper/hd

Donde discoduro es la etiqueta del disco duro. Ahora lo montaremos:

 mount /dev/mapper/hd /home/user/hd

Donde /home/user/hd es el directorio donde montamos el disco duro. También es útil cambiar el usuario y grupo que tienen acceso a ese directorio, ya que por defecto será root:

chown -R user:group /home/user/hd

Esto podríamos automatizarlo en un script, para montar fácilmente el disco duro siempre en el mismo directorio:

#! /bin/bash
cryptsetup luksOpen /dev/sda hd
mount /dev/mapper/hd /home/user/hd
chown -R user:group /home/user/hd

SSHFS

SSHFS es una herramienta que nos permite montar un directorio remoto en la máquina local. Es muy fácil de usar:

sshfs usuario@maquinaremota:/home/user/hd /home/usuario/remoto

Nos pedirá la contraseña. /home/user/hd es el directorio de la máquina remota y /home/usuario/remoto es el directorio en la máquina local. Si hacemos un ls /home/usuario/remoto veremos que los archivos ya están disponibles en la máquina local y podemos trabajar sobre ellos.

Para desmontar el directorio remoto:

 fusermount -u /home/usuario/remoto

Esto es todo por hoy, disfrutadlo :)

Imágen de truthtodare

Compartir

1 Comentario

  1. Interesante, lo unico que me parece una implementacion muy limitada de unas nas server, sigo prefiriendo freenas o openfiler.

    De todas maneras interesante articulo.

Deja una respuesta

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax