Hola. Mi nombre es Edgardo Marquez; mi seudónimo, eddamaky. Estoy muy emocionado y agradecido de poder participar en Colaboratorio, un proyecto que llevo siguiendo desde hace un tiempo.
En este, mi primer articulo, quiero compartir cómo creé mi centro de torrents. He utilizado una Raspberry Pi 3 con los siguientes paquetes: Raspbian, SSH y Transmission. La instalación de Raspbian y su configuración se pueden consultar en este enlace: Raspberry pi (II) – Instalando el SO, del compi Alfredo, alias @archibinario.
SSH instalación y configuración
OpenSSH (Open Secure Shell) es un conjunto de aplicaciones que permiten realizar comunicaciones cifradas a través de una red, usando el protocolo SSH. El protocolo proporciona confidencialidad, autenticación y conexión entre servidor y cliente.
La instalación es sencilla. Ejecutamos este comando en nuestra terminal:
$ sudo apt-get install openssh-server |
Una vez hecha la instalación del paquete vamos a configurar el archivo /etc/ssh/sshd_config. Para darle mayor seguridad hay que editarlo. Yo utilizo el programa VIM para esta tarea.
$ sudo vim /etc/ssh/sshd_config |
Modificamos las siguientes líneas:
PermitRootLogin no — Las conexiones root quedan bloqueadas y proporcionamos una mayor seguridad a nuestra conexión, evitando ataques de fuerza bruta.
LoginGraceTime 30 — Establecemos así el tiempo necesario para introducir nuestra contraseña. Yo lo tengo en 30″.
MaxAuthTries 3 — Número de intentos permitidos al introducir la contraseña. Si nos pasamos, nos desconectará.
MaxSessions 1 — Números de sesiones simultáneas. También sirve para evitar ataques de fuerza bruta en diferentes sesiones.
Autenticación
Hay varias formas de autenticarse en nuestra Raspberry Pi: con usuario y contraseña o con claves publicas, que nos darán mayor seguridad. SSH introdujo la autenticación de clave pública para mejorar la seguridad y evitar tener contraseñas almacenadas en archivos. Las claves se deben administrar de forma análoga a los nombres de usuarios y contraseñas.
Creando claves SSH-key
Para generar el par de claves ejecutamos ssh-keygen en nuestro localhost. Usamos los siguientes argumentos:
-t especifica el tipo de clave, en este caso RSA.
-b el tamaño, que añadiremos a continuación.
-f la ruta donde guardamos las claves, que incluimos, y
-c comentario de la clave, para tener una referencia.
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_raspberry_$(date +%Y-%m-%d) -C » Clave para Raspberry» |
Cuando la tenemos generada, la copiamos en nuestra Raspberry.
ssh-copy-id -i ~/.ssh/id_rsa_raspberry eddamaky@raspberrypi |
Para comprobar la seguridad podemos usar Lynis o Rebex SSH check.
Configurando disco
Primero tenemos que identificar la UUID de nuestro disco, podemos usar ls -l para listar el directorio o blkid, que nos da información mas detallada.
$ ls -l /dev/disk/by-uuid/ total 0 lrwxrwxrwx 1 root root 10 feb 18 19:17 10CAFC17CAFBF736 -> ../../sda1 lrwxrwxrwx 1 root root 15 feb 18 19:17 24eaa08b-10f2-49e0-8283-359f7eb1a0b6 -> ../../mmcblk0p2 lrwxrwxrwx 1 root root 15 feb 18 19:17 69D5-9B27 -> ../../mmcblk0p1 $ sudo blkid /dev/mmcblk0p1: LABEL_FATBOOT="boot" LABEL="boot" UUID="69D5-9B27" TYPE="vfat" PARTUUID="d9b3f436-01" /dev/mmcblk0p2: LABEL="rootfs" UUID="24eaa08b-10f2-49e0-8283-359f7eb1a0b6" TYPE="ext4" PARTUUID="d9b3f436-02" /dev/sda1: LABEL="discomedia" UUID="10CAFC17CAFBF736" TYPE="ext4" PARTUUID="19980bb7-01" /dev/mmcblk0: PTUUID="d9b3f436" PTTYPE="dos"
Editamos el archivo /etc/fstab y agregamos una línea con PARTUUID=19980bb7-01 y el directorio de montaje, que es /media/nas.
$ sudo vim /etc/fstab proc /proc proc defaults 0 0 PARTUUID=d9b3f436-01 /boot vfat defaults 0 2 PARTUUID=d9b3f436-02 / ext4 defaults,noatime 0 1 PARTUUID=19980bb7-01 /media/NAS ext4 defaults 0 3 # a swapfile is not swap partition, no line here # use dphys-swapfile swap[on|off] far that
Creamos el punto de montaje con mkdir -p /media/nas y ejecutamos mount -a para que monte el disco.
Configurando Transmission
Este programa es un cliente P2P liviano, gratuito (aunque admiten donaciones) y libre para la red Bittorrent. Lleva un conjunto de aplicaciones variadas que nos permiten configurar las características que más nos interesen.
Transmission-cli: Una colección de herramientas por línea de comandos.
Transmission-gtk: Un cliente BitTorrent que utiliza la interfaz GTK.
Transmission-qt: Igual, pero esta vez haciendo uso de la interfaz QT.
Transmission-remote-cli: Transmission empleando una interfaz para acceder al demonio.
Transmission-daemon: Y un demonio BitTorrent con interfaz web.
Instalación
Desde nuestro terminal ejecutamos el siguiente comando:
$ sudo apt-get install transmission-daemon --no-install-recommends
Instalo Transmission-daemon porque solo utilizaré la versión web. Con el argumento –no-install-recommends evitaré que instale también los paquetes recomendados.
Una vez instalado en nuestro disco media/nas, montamos los directorios.
$ mkdir -p /media/nas/transmission/{torrent,temporales,finalizado}
Editamos el archivo de configuración de Transmission, que se encuentra en /etc/transmission-daemon/settings.json.
Modificamos las siguientes líneas: download-dir, incomplete-dir.
Con rpc-password se puede cambiar el password (contraseña) y, cuando volvamos a cargar el demonio, se volverá a cifrar.
"download-dir": "/media/NAS/transmission/finalizado",
"incomplete-dir": "/media/NAS/transmission/temporales/"
"rpc-password": "{c42e73f3cd7ee35229988c52a6c6c660dbbb1aa0VkOA/x2y",
"rpc-username": "transmission",
"rpc-whitelist": "127.0.0.1,192.168.1.*",
Una vez modificado, detenemos el demonio y lo volvemos a cargar, para que registre los cambios.
$ sudo service transmission-daemon stop
$ sudo service transmission-daemon start
Accedemos a la consola de Transmission:
http://localhost:9091
Solicitará nuestro usuario y contraseña.
¡Y esto es todo, amigos y amigas! Saludos.
Páginas de referencia
man ssh ## (manual que aparece al ejecutar ese comando en una Terminal GNU/Linux).
Sitio Oficial SSH (software propietario)
Sitio Oficial OpenSSH (software libre)
Wikipedia/ OpenSSH
Wiki Debian/BitTorrent/Transmission-daemon
Imágenes
Las imágenes y las capturas fueron realizadas por el autor. Han sido licenciadas como el resto del blog: Atribución-Compartir Igual 4.0 Internacional (CC BY-SA 4.0).
Tratamiento de la fotografía de cabecera: Colaboratorio, nanomedios y experiencias virtuales.
¡Excelente, os felicito! por mi parte solamente os aporto un pequeño consejo: detened primero el demonio, modificad el JSON, guardad e iniciad el demonio.
¡Tengáis todos y todas un muy feliz día! 😎
Buen artículo,
Encuentro a esta, una utilidad básica pero sumamente práctica para la Rpi. Un indispensable.
Saludos
Hola colega,
Interesante propuesta. En mi caso yo tengo un NAS Synology donde gestiono las descargas que me interesan. Pero desde el punto económico y no privativo la combinación de RaspberryPi y Tranmission, es una gran alternativa.
Aunque actualmente, tal y como ha comentado el usuario Nasher_87, existen un buen número de «cacharros» open hardware similares, de los que se puede sacar mucho jugo.
Saludos!
Hola,
¿Que quieres decir con centro de torrents?
¿Un repositorio torrents?
¿un servidor de torrents?
Saludos
Genial, realice casi lo mismo pero con una raspberry pi 1 B con arch-arm, ssh y rtorrent anda muy bien para ser una placa vieja 😀