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.

Logotipo de OpenSSH, donde se ve un pez globo (que tiene pinchos) con corbata y un maletín negro con las palabras "top secret". En el logo se lee: "Keeping your communiqués secret".
Banner de OpenSSH.

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.

Una puerta a una hacienda, pero con aspecto abandonado. La puerta es un trabajo de hierro forjado y se ve la vegetación sin haber sido cuidada desde hace tiempo. Es invierno, aunque luce el sol, y los árboles están sin hojas.

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.

4 1 voto
Article Rating
Subscribe
Notificarme de
guest

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

12 Comments
más antiguo
más nuevo más votado
Reacciones en línea
Ver todos los comentarios
Jimmy Olano

¡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! 😎

Javierinsitu

Buen artículo,
Encuentro a esta, una utilidad básica pero sumamente práctica para la Rpi. Un indispensable.
Saludos

david ochobits

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!

Isaac Palacio

Hola,
¿Que quieres decir con centro de torrents?
¿Un repositorio torrents?
¿un servidor de torrents?

Saludos

truko22

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 😀