ReadyMedia, anteriormente conocido como MiniDLNA, es un servidor DLNA de código abierto muy ligero que nos va a permitir convertir cualquier ordenador con sistema operativo Linux en un centro multimedia a través del cual brindar todo tipo de contenido a otros dispositivos compatibles con el protocolo DLNA a través de nuestra red local.
En este mismo blog hay una entrada en la que explico como configurar ReadyMedia, Ahora te ensenaré a configurarlo de forma mas segura.
Este servidor es bastante simple de configurar, pero a veces las cosas sencillas se pueden complicar.
El problema.
El problema de ReadyMedia, es debido al permiso predeterminado del directorio de inicio /home
.
Anteriormente, el permiso del directorio de inicio del usuario se establecía en 755, lo que permitía a otros usuarios ver el directorio, así como los archivos y subdirectorios que lo contenían. Para evitar este problema de seguridad, los desarrolladores establecieron el permiso para los directorios de inicio como 700, lo que significa que solo el propietario del directorio de inicio puede ver el contenido.
Si quieres compartir cualquier carpeta dentro de tu directorio /home
, esto causa un gran problema con minidlna, ya que el propietario del directorio de inicio es el único que puede acceder o atravesar la carpeta ya sea localmente o a través de su LAN. Este cambio se realizó únicamente por razones de seguridad, y creo que fue el camino correcto, ya que no hay ninguna razón por la que otros usuarios puedan ver el contenido del directorio de inicio de los demás.
1-. Instalación.
Como sistema operativo voy a utilizar Debian 12, como servidor DLNA voy a utilizar ReadyMedia en su versión actual 1.3.0 y mi usuario será Pantuflo.
Para instalar el servidor DLNA ReadyMedia en Debian escribe lo siguiente en la terminal:
sudo apt install minidlna
2-. Crea los directorios
Como dije antes, el directorio /home
está protegido contra escritura, así que nosotros crearemos en la raiz, un directorio llamado minidlna
al que haremos de nuestra propiedad.
Abre tu terminal para iniciar en tu /home
, cambia al directorio raíz de la siguiente manera:
cd /
Si haces un ls
verás que estás en la raiz del sistema.
Pantuflo@computer:/$ ls
bin etc initrd.img.old lost+found opt run sys var
boot home lib media proc sbin tmp vmlinuz
dev initrd.img lib64 mnt root srv usr vmlinuz.old
Ahora crea la carpeta llamada minidlna
y dentro de esta, un subdirectorio llamado cache
.
sudo mkdir -p minidlna/cache
Una vez creada la carpeta, esta pertenecerá a root, pero nosotros la haremos propiedad del usuario Pantuflo
sudo chown -R Pantuflo:Pantuflo minidlna
Con esto hemos cambiado la carpeta minidlna y el subdirectorio cache a nuestra propiedad.
3-. Configuración de minidlna.
La configuración de este servidor multimedia se encuentra almacenada dentro del fichero “minidlna.conf
”
Accedemos a la configuración con el siguiente comando:
sudo nano /etc/minidlna.conf
Nombre de usuario.
Comenzamos por la línea que dice #user=minidlna, sustituye por:
user=Pantuflo
Añade los directorios a compartir.
Se pueden añadir directorios dentro de nuestro propio sistema, o bien desde fuera, como un disco usb. Si nuestros archivos están en otro disco, diferente del sistema operativo, tendrás que montarlos al inicio siguiendo esta guía Montar particiones al inicio en Debian 12
Busca la siguientes lineas
# set this to the directory you want scanned.
# * if you want multiple directories, you can have multiple media_dir= lines
# * if you want to restrict a media_dir to specific content types, you
# can prepend the types, followed by a comma, to the directory:
# + "A" for audio (eg. media_dir=A,/home/jmaggard/Music)
# + "V" for video (eg. media_dir=V,/home/jmaggard/Videos)
# + "P" for images (eg. media_dir=P,/home/jmaggard/Pictures)
# + "PV" for pictures and video (eg. media_dir=PV,/home/jmaggard/digital_camera)
media_dir=AV,/home/Pantuflo/.aMule/Inconming
media_dir=APV,/mnt/Delos/
media_dir=APV,/mnt/Delfos/
Justamente debajo escribe las rutas a los archivos a compartir. En mi caso voy compartir los audios y vídeos de la carpeta Incoming y los Audios, Vídeos y Fotos de los discos llamados Delos y Delfos.
Según la letra que elijamos (A,V,P) podemos configurar rutas diferentes para:
A audios
V vídeos
P pictures o fotos
Ejemplo de configuración de algunas carpetas.
#Compartir audios de la carpeta Musica
media_dir=A,/home/tu_usuario/Música
#Compartir los videos de la carpeta Videos
media_dir=V,/home/tu_usuario/Vídeos
#Compartir las imágenes de la carpeta imágenes
media_dir=P,/home/tu_usuario/Imágenes
#Compartir audio, video e imágenes de directorio
media_dir=AVP,/home/tu_usuario/directorio
Base de datos y caché de carátulas.
Sigue buscando hasta llegar a #db_dir/=/var/cache/minidlna y modifica a lo siguiente:
db_dir=/minidlna/cache
Archivo de Registro:
Hacemos lo mismo con el directorio de logs
o registros, #log_dir=/var/log/minidlna, y modifica a lo siguente:
log_dir=/minidlna
Añade un nombre al servidor.
Busca la línea friendly_name y elige el nombre de tu interés. Yo llamaré a mi servidor ReadyMedia
friendly_name=ReadyMedia
Auto-actualizar el contenido.
Si queremos que cada vez que hayamos añadido nuevo contenido a cualquiera de los directorios anteriormente indicados sea detectado por el servidor de forma automática, deberemos de agregar o descomentar la siguiente directiva:
inotify=yes
Tiempo de actualización.
Configurar el intervalo de notificación SSDP, en segundos
notify_interval=60
4-. Configuracion de systemd
Una vez terminada la configuración reiniciamos el servidor con:
sudo systemctl restart minidlna.service
Ahora comprueba el estado del servidor con:
sudo systemctl status minidlna.service
● minidlna.service - MiniDLNA lightweight DLNA/UPnP-AV server
Loaded: loaded (/lib/systemd/system/minidlna.service; enabled; preset: enabled)
Active: active (running) since Thu 2025-01-02 23:13:35 CET; 22h ago
Docs: man:minidlnad(1)
man:minidlna.conf(5)
Main PID: 2630 (minidlnad)
Tasks: 2 (limit: 9573)
CPU: 2.230s
CGroup: /system.slice/minidlna.service
└─2630 /usr/sbin/minidlnad -f /etc/minidlna.conf -P /run/minidlna/minidlna.pid -S -r
Fíjate en la línea que dice «Loaded» ahí está la ruta de configuración de nuestro servicio y es la que vamos a modificar.
Escribe en consola lo siguiente:
sudo nano /lib/systemd/system/minidlna.service
Esto nos muestra el archivo de configuración, en el que solo vamos a añadir y cambiar un par de cosas de la sección de [Service].
Añadimos la línea ProtectHome=read-only y cambiamos el usuario y el grupo por Pantuflo
[Unit]
Description=MiniDLNA lightweight DLNA/UPnP-AV server
Documentation=man:minidlnad(1) man:minidlna.conf(5)
After=local-fs.target remote-fs.target autofs.service
[Service]
ProtectHome=read-only
User=Pantuflo
Group=Pantuflo
Environment=CONFIGFILE=/etc/minidlna.conf
Environment=DAEMON_OPTS=-r
EnvironmentFile=-/etc/default/minidlna
RuntimeDirectory=minidlna
LogsDirectory=minidlna
PIDFile=/run/minidlna/minidlna.pid
ExecStart=/usr/sbin/minidlnad -f $CONFIGFILE -P /run/minidlna/minidlna.pid -S $DAEMON_OPTS
[Install]
WantedBy=multi-user.target
Recargamos systemd con:
sudo systemctl daemon-reload
y reiniciamos el servicio minidlna
sudo systemctl restart minidlna.service
Y con todo esto, debemos de tener todo terminado.
5-. Funcionamiento.
Para saber si nuestro servidor está funcionando bien, tecleamos en nuestro navegador lo siguiente:
Nos ofrece información sobre el número de audios, videos e imágenes compartidas, así como los dispositivos que hay conectados a nuestro servidor.
Busca tus archivos.
Ahora tan solo debes de ir a la aplicación de tu SmartTV, Smartphone o PC para encontrar el contenido multimedia de tu servidor.
Por ejemplo para encontrar los archivos multimedia de tu servidor con el reproductor VLC.
Abre tu reproductor VLC ve al menú Ver, Lista de Reproducción y el menú de la izquierda busca Plug’n Play Universal y haz click. Sobre el lado derecho aparecerán los servidores Ready Media que tengas configurados.
Ahora entra en el que te aparece a ti, y busca las carpetas con el contenido multimedia.
Gracias muy bien explicado, tienes artículos muy interesantes.
Saludos.
Gracias!!