martes, abril 27, 2021

Como montarse un DLNA Home Server con Raspberry Pi

Vamos hoy con otro proyecto de Maker sencillo y útil basado en nuestra querida Raspberry Pi, que como ya sabemos su gran versatilidad permite infinidad de proyectos interesantes que se pueden llevar a cabo con este mini ordenador. Hoy veremos cómo puedes construir vuestro propio servidor utilizando una Raspberry Pi Zero.

Figura 1: Como montarse un DLNA Home Server con Raspberry Pi

Por si quieres, antes de comenzar con este nuevo proyecto, os dejo aquí la lista de otros proyectos con Raspberry Pi y Raspberry Pi Zero que ya hemos ido publicando por aquí, y que son una buena fuente de entrenamiento para ver diferentes tipos de cosas que podemos construir.

- Raspberry Pi: Cómo construir un medidor ambiental
- Raspberry Pi: Dirtytooth para Raspberry Pi v2.0
- Raspberry Pi: Una VPN para navegar por redes WiFi con portales cautivos
- Raspberry Pi: Pi Guardian con Latch, Bots en Telegram y "ojos"
- Raspberry Pi: Latch My Car
- Rapsberry Pi: Tu servicio VPN con OpenVPN, Latch y Virus Total
- Raspberry Pi: Latch en OpenWRT
- Raspberry Pi Zero: Cómo configurar un GPS en tu Raspberry Pi Zero

En este proyecto lo que nos ha hecho decantarnos por la Raspberry Pi ha sido su bajo precio (se pueden conseguir por menos de 35 €), la gran cantidad de puertos y conexiones que tiene. Otros aspectos importantes a tener en cuenta a la hora de montar un servidor son el ruido y el gasto de energía, al fin y al cabo, es un dispositivo que estará encendido constantemente y por lo tanto consumiendo energía de la red eléctrica a todas horas. 

Figura 2: Libros para Makers en 0xWord que deberías tener:

Por suerte la Raspberry Pi Zero W esta compuesta por elementos muy eficientes y que generan un consumo energético muy bajo (apenas 7-8w). Además, otra de las desventajas de tener tu propio servidor en casa son los ruidos, en este caso la Raspberry Pi no cuenta con ventiladores por lo tanto el único ruido lo generará el disco duro que utilicemos. Para montar nuestro servidor necesitaremos los siguientes elementos:
Como podéis ver los elementos que compondrán nuestro servidor, a excepción del disco duro son realmente baratos lo que hace que la Raspberry Pi sea una de las mejores candidatas para desempeñar este trabajo.

Figura 3: Ejemplo de servidor casero con Raspberry Pi

Al igual que hacemos siempre que trabajamos con este tipo de dispositivos, el primer paso es instalar el sistema operativo. En este caso el software escogido, como en la mayoría de nuestros proyectos será Raspbian, la forma más rápida y sencilla de cargar el SO en la Raspberry Pi es a través de un archivo de imagen. Si todavía no sabes cómo se hace esto por aquí tienes un pequeño tutorial en el que se explica cómo hacerlo.

Figura 4: Cómo instalar Raspberry Pi OS Lite

En este caso en particular podemos hacer que Raspbian se adapte mejor a la utilidad que vamos a darle a nuestra placa aplicando los siguientes cambios a la hora de configurarla por primera vez (desde la pantalla raspi-config). Si tu Raspberry Pi ya estaba previamente configurada no te preocupes, podrás acceder al menú de configuración con el comando “sudo raspi-config”.

En apartado “expand_rootfs” deberemos seleccionar la opción de expandir la partición para llenar la tarjeta SD, en el apartado “memory_split” asignaremos el mínimo a la GPU para dejar espacio a los demás servicios y que funcione todo de una forma más fluida, también, es de vital importancia habilitar el ssh. En el apartado “boot_behaviour” deberemos desactivar la opción de “boot desktop” para garantizar un mayor ahorro energético, también es recomendable cambiar la contraseña.

Figura 5: Menú raspi-config.

Por último, hay otras configuraciones que harán que nuestro servidor funcione mejor y que no se aplican directamente desde el menú de configuración de Raspberry Pi. En primer lugar, es recomendable tener una dirección IP estática, para ello utilizaremos el comando: 
  • sudo nano -w /etc/network/interfaces
Luego cambiaremos la línea que pone “iface eth0 inet dhcp” por “iface eth0 inet static”.  También crearemos un usuario y le daremos permisos utilizando los siguientes comandos:
  • sudo adduser (nombreusuario)
  • sudo usermod -a -G users (nombreusuario)
  • sudo usermod -a -G sudo (nombreusuario)
Hecho esto solo nos queda actualizar y apagar la Raspberry Pi para conectar nuestros periféricos (el disco duro en este caso). Ahora que ya hemos configurado la Raspberry Pi podremos acceder a su configuración de manera remota utilizando el comando:
  • ssh (nombreusuario)@(dirección IP estática de la raspberry)
Para montar nuestro disco duro vía USB instalaremos autofs, con esta herramienta lo que lograremos será automatizar la detección de dispositivos USB, ya que sin la interfaz gráfica este proceso puede resultar un poco tedioso estén o no conectados cuando arranque nuestra placa. Para ello utilizaremos los comandos:
  • sudo apt-get install autofs
  • sudo nano -w /etc/auto.master
  • sudo nano -w /etc/auto.misc
  • sudo /etc/init.d/autofs restart
  • ls -s /misc/storage
Con el disco duro instalado ya solo nos queda configurar nuestro servidor, debemos tener en cuenta que la tasa de transferencia de la Raspberry Pi vía cable ethernet es de 100 MB y que nuestro disco duro esta conectado vía USB por lo tanto no necesitaremos una herramienta muy potente para transferir archivos. En este caso utilizaremos Samba, ya que es compatible con las últimas versiones de Windows

Figura 6: Raspberry Pi Server oculto en una caja de pequeñas dimensiones.

Para instalarlo usaremos el comando “sudo apt-get install samba-common-bin” y utilizaremos el comando “sudo smbpasswd -a (nombreusuario)” para dar acceso a nuestro usuario local. A continuación, editaremos el archivo de configuración de Sambasudo nano -w /etc/samba/smb.conf” y en el apartado “workgroup” pondremos el nombre que tengamos en nuestro grupo domestico de Windows (por ejemplo: casa o dormitorio) y en el apartado “path” añadiremos la ruta donde se guardará nuestro backup. Hecho esto reiniciaremos samba para guardar nuestros cambios usando “sudo /etc/init.d/samba restart”.

Figura 7: menú de configuración de Samba.

Para terminar de configurar nuestro backup utilizaremos deja-dup para GNU/Linux ya que es una herramienta super sencilla de configurar y utilizar, además, cuenta con una opción para ssh que nos será muy útil y ya viene preinstalada en algunas de las distribuciones de GNU/Linux

Si tu distribución de GNU/Linux no trae deja-dup instalada solo tendrás que utilizar el comando “sudo apt-get install deja-dup” para obtenerla. Desde el interfaz de la herramienta, en el apartado “Backup location” seleccionaremos “SSH” y en el apartado “Server” pondremos la dirección IP de nuestra Raspberry Pi y guardaremos los cambios.

Figura 8: Menú de configuración de deja-dup.

Por último, levantaremos nuestro servidor DLNA, esta es la mejor opción para almacenar contenido de todo tipo de archivos multimedia (documentos, series, películas…) y que sea accesible para cualquier dispositivo conectado a nuestra red. Para este último paso utilizaremos Minidlna ya que es una de las mejores opciones para trabajar con nuestra Raspberry Pi, para instalarla usaremos el comando “sudo apt-get install minidlna” y accederemos al menú de configuración utilizando el comando “sudo nano -w /etc/minidlna.conf”.

En él podremos crear distintas rutas para almacenar por separado archivos de audio o video. También podremos elegir el nombre que queramos para nuestro servidor, solo tenemos que buscar el apartado “friendly_name” y escribir el nuevo nombre. Por último, buscaremos el apartado “inotify” y nos aseguramos de que tenga el valor “yes”, esto activará la detección automática de nuevos archivos. Una vez hayamos terminado con la configuración de minidlna utilizaremos el comando “sudo /etc/init.d/minidlna force-reload” para guardar los cambios y reiniciar el programa.

(Revisada y Ampliada) de Carlos Álvarez y Pablo González en 0xWord

Los servidores DLNA son la mejor opción para compartir contenido multimedia en nuestro hogar - por lo que es recomendable es que hagas un proceso de fortificación del GNU/Linux - todo, sin embargo, también es posible levantar otro tipo de servidores utilizando una Raspberry Pi y un disco duro, desde servidores sin DLNA hasta servidores para utilizar una impresora.

Saludos,
 
Autor: Sergio Sancho, Security Researcher en Ideas Locas.

1 comentario:

Robert dijo...

Buen aporte 👆

Entrada destacada

Programa de Especialización "Inteligencia Artificial para Expertos en Ciberseguridad" 2ª Edición.

Hoy, en medio del verano, os traigo información de la 2ª Edición del   Programa de Especialización  de "Inteligencia Artificial para Ex...

Entradas populares