Hace tiempo estaba pensando escribir un artículo sobre cómo crear y configurar una nueva PC que sirviese como servidor de archivos; es decir, una PC que utilicemos estrictamente para descargar y alojar archivos, que serán jalados por el resto de PCs en el hogar.

De hecho, tenía una PC con Ubuntu cumpliendo esa función (una antigua Pentium 4), además de ser mi “test machine” del mundo Linux, claro, que terminó expirando, y de momento se encuentra en reparación.

Pero en fin, el asunto es que, navegando por ahí, encontre Nerdica, una página de reciente lanzamiento (tiene tan sólo 8 artículos), y me encuentro justo con un artículo bastante detallado al respecto, screenshots y todo.  Y bueno, Ross Squires, quien maneja Nerdica, tuvo la amabilidad de permitirme traducir el artículo, así que sin más, aquí se los dejo.

 

 NOTA: El artículo es bien extenso, y requiere de la instalación de diferentes programas, que puede parecer algo complicado al comienzo. Pero todo ha sido tan bien explicado por el autor original, no sólo dandonos los comandos necesarios, sino que también explicando qué hace cada uno, que es una gran manera para novatos de Ubuntu como yo, de ir aprendiendo un poco más de todo el asunto. De verdad, luego de seguir este tutorial, me sentí “iluminado”.. o… bueno, al menos con más conocimientos… o algo así

 

Por que?

Mientras que la mayor parte de nuestro tiempo en Internet se va en mensajería instantánea, e-mail, o simplemente navegando la Web, puede que uno llegue a ciertas situaciones, en donde debemos hacer algunas transferencias de archivos. Si usamos una laptop, ya debemos habernos acostumbrado a pararnos y estar suspendiendo la laptop a cada rato.

Pero, a veces necesitamos una PC dedicada para terminar el trabajo. Necesitaeremos una solución para descargar archivos y distribuirlos cuando los necesitemos. En esta guía, aprenderemos como crear un servidor con Ubuntu (sin monitor), para recoger archivos de BitTorrent, e inclusive salvarlos a un disco duro externo USB que puede ser desconectado y transportado. Incluso aprenderemos cómo administrar remotamente el servidor desde la web usando SSH, VNC, y una interfase en HTML intuitiva, para recoger y administrar la PC cuando no estemos en casa.

Este tutorial ya toma por hecho que tenemos una PC “de sobra” por ahí. Construir una PC no es el objetivo de este artículo

 

El resto del artículo, después del salto

 

La instalación del OS

Instalando Ubuntu

Haremos una instalación básica de Ubuntu Linux. Ubuntu es un sistema operativo gratuito y libre basado en el escritorio Gnome, y el kernel Linux.  Pero “no es supuestamente un servidor “sin cabeza” (headless)? Por que no hacemos simplemente una instalación de servidor? Bueno, se podría, pero al final uno termina usando más tiempo instalando los paquetes X-server necesarios para configurar el cliente BitTorrent. Además, no estamos configurandolo para convertirlo en un web host super eficiente para miles de personas. Esto está apuntado principalmente a aquellos que necesitan un host de archivos y cliente BitTorrent. Cualquier cosa que no necesitemos, puede ser quitada luego.

Ubuntu puede ser descargado de la página oficial de Ubuntu. Si la computadora que usaremos es un modelo antiguo, puede que queramos considerar utilizar el instalador alternativo de texto, en vez del LiveCD disponible en la página. Lo que estamos descargando es un ISO, una imagen de un CD. Esta imagen necesita ser quemada en un disco en blanco. Depenidendo de qué sistema operativo estemos usando, podemos utilizar alguna aplicación de Windows para hacerlo (Infrarecorder.CD Burner XP, ISO Recorder), o podemos usar un simple comando en linux (si el archivo está en nuestro directorio Home), para hacerlo:

cdrecord ubuntu-7.04-desktop-i386.iso

Reiniciar la PC mientras el disco este en el lector. Elegir instalar Ubuntu, y el proceso es bastante simple. Se nos preguntará qué lenguaje queremos usar, y configurar una cuenta de usuario. La parte más complicada es siempre la partición, pero si vamos a usar la PC entera como una PC para archivos, simplementte podemos usar la partición guiada para borrar el disco entero. Una vez que la instalación haya terminado, reiniciamos, y nos loggeamos usando los datos que le proporcionamos, y ya estaremos listos para configurar el software.

 

 

Creando el servidor “sin cabeza” (headless)

Una vez que el tutorial esté terminado, deberíamos ser capaces de desconectar el monitor de esta computadora, y no necesitaríamos volver a tocarla. Si necesitamos configurar algo, lo haremos a través de la consola (SSH), o un escritorio remoto (VNC). Podemos dejar el monitor y los periféricos conectados si queremos, porque igual tenemos una PC totalmente funcional con un increíble sistema operativo.

Si queremos crear un servidor headless, navegar a través de los menús superiores hacia Applications | Accesories | Terminal. De ahi, tipeamos estos comandos:

sudo apt-get install openssh-server tightvncserver
sudo update-rc.d gdm remove

Nota: podemos añadir la interfaz de usuario para que vuelva a empezar cuando se cargue Ubuntu con este comando:

sudo update-rc.d gdm defaults

Al usar estos pasos, estaremos instalando algunos paquetes para la administración remota del sistema, y quitando el GUI (la interfaz gráfica) del arranque cuando la PC se prenda. Ahora, grabaremos el IP de la computadora en algún lugar, cuando tipeamos:

ifconfig eth0

Lo que tenemos que copiar, es la dirección IP bajo “inet addr”. La próxima vez que reiniciemos nuestra computadora, podremos entrar a esa IP usando SSH con nuestro nombre y password. Podemos usar el cliente que viene ya con Linux, o usar un cliente popular como Putty, si es que tenemos otro sistema operativo.

Si quieren usar una interfaz gráfica, hay varios clientes que podemos utilizar para conectarnos a la sesión VNC, como RealVNC. Una vez que nos hayamos logeado via SSH, siempre podemos empezar una sesión remota usando VNC.

vncserver -geometry 800×600

y cerrarla, usando:

vncserver -kill :1

Dependiendo en cómo queremos trabajar con el servidor, se llevará a cabo la configuración. Primero, podemos usar SSH para conectarnos vía una consola para entrar comandos. O bien, podemos configurarlo usando un escritorio remoto, con VNC. O aún así, todavía podemos usar la computadora como una PC regular, y terminar la configuración localmente. Todos los pasos de ahora en adelante pueden hacerse de cualquiera de las tres maneras. Hay que notar, sin embargo, que cuando tengamos que configurar Azurus, necesitaremos utilizar una interfaz gráfica. Ahora, pasaremos a configurar el software usado para construir el servidor BitTorrent.

 

 

Configurando el disco duro Externo (Opcional)

Una vez que la instalación haya terminado, podemos añadir opcionalmente un disco duro externo para hacer del movimiento de archivos, algo más fácil. Usaremos un servicio llamado “autofs” para que detecte automáticamente el disco duro y ponerlo listo para que se quede compartido en red cada vez que se conecta.  Para instalar autofs, usar este comando

sudo apt-get install autofs

Una vez que haya terminado, vamos a conectar el disco duro externo para saber qué device le asigna Ubuntu. Luego de conectarlo y esperar unos segundos, entrar este comando

dmesg | tail

Lo cual nos mostrará algo similar a esto:

 

[47820.164000] sdb: Write Protect is off
[47820.164000] sdb: Mode Sense: 03 00 00 00
[47820.164000] sdb: assuming drive cache: write through
[47820.164000] SCSI device sdb: 398297088 512-byte hdwr sectors (203928 MB)
[47820.168000] sdb: Write Protect is off
[47820.168000] sdb: Mode Sense: 03 00 00 00
[47820.168000] sdb: assuming drive cache: write through
[47820.168000] sdb: sdb1
[47820.184000] sd 4:0:0:0: Attached scsi disk sdb
[47820.184000] sd 4:0:0:0: Attached scsi generic sg2 type 0

 

La línea “[47820.168000] sdb: sdb1 es la que nos interesa. Esta nos dice que Ubuntu le está asignado al disco “sdb”, y su partición, se llama “sdb1”. “1”, porque es la primera y única partición del disco. Ahora, tendremos que averiguar qué tipo de partición está creada en el disco. Entrar esto en la consola:

sudo fdisk -l /dev/sdb

La columna “system” mostrará qué tipo de partición es. Tomar nota de cual es. Si es HPFS/NTFS, tendremos que usar el driver “ntfs-3g”. Si contiene “FAT” en el nombre, usaremos el driver “vfat”. Finalmente, si es “Linux” podemos usar el driver “auto”. Nota: Si es una partición NTFS, tendremos que instalar manualmente el driver, usando:

sudo apt-get install ntfs-3g

Ahora, le añadiremos una información adicional al servicio autofs. Usar este comando para editar el archivo:

sudo nano /etc/auto.master

Nota: Podemos reemplazar “nano” con nuestro editor de texto favorito. Para salvar el archivo en nano, usamos el atajo Ctrl-O, para salir, Ctrl-X.

Ahora, buscar la línea que diga:

#/misc /etc/auto.misc

y cambiarla por

/misc /etc/auto.misc –timeout=60

Salvar el archivo (Ctrl-O), salir (Ctrl-X), y abrir el archivo “miscellaneous”, entrando este comando:

sudo nano /etc/auto.misc

Y añadir, al final del archivo:

external -fstype=ntfs-3g :/dev/sdb1

Recuerden cambiar “ntfs-3g” por el tipo de driver que elegimos hace unos momentos atrás. Nota: si estamos usando “ntfs-3g”, sería bueno aggregarle “,fore”,  y que se vea: “-fstype=ntfs-3g,force”. Esto hace que sea mucho más simple usar drives que hayan sido desmontadas mal. Un poco riesgaso, pero es más fácil de reparar.

Finalmente, reiniciamos el servicio autofs

sudo /etc/init.d/autofs restart

Ahora, cada vez que algo o alguien busque archivos en el directorio “/misc/external”, Ubuntu tratará de montar automáticamente la unidad externa para ser utilizada.

 

 

El Cliente BitTorrent

Instalación

Ahora para el corazón de nuestro servidor Bittorrent. Usaremos el cliente Azureus, porque tiene una enorme base de datos de plugins, y podemos configurarla para que corra en modo silencioso, sin necesitar la interfaz. Lo primero que iremos a hacer, es descargar el client Azureus, y encontrar un lugar en donde mantenerlo. Necesitaremos también instalar las dependencias de Azureus, descargar el cliente y los plugins. Poner estos comandos, para hacerlo:

sudo apt-get install sun-java5-jre libswt3.2-gtk-java
mkdir ~/software
cd ~/software
mkdir azureus
cd azureus
wget
http://prdownloads.sourceforge.net/azureus/Azureus2.5.0.4.jar?download
-O Azureus2.jar
wget http://azureus.sourceforge.net/cvs/log4j.jar
wget http://azureus.sourceforge.net/cvs/commons-cli.jar
wget http://nerdica.com/wp-content/uploads/2007/06/azureus
wget http://nerdica.com/wp-content/uploads/2007/06/azureus-gui
mkdir ~/bin
mv azureus-gui ~/bin/

chmod +x ~/bin/azureus-gui

Hacer un Log Out, y luego entramos de nuevo para que se reconozcan los nuevos archivos de programa. Luego editamos la configuración de Azureus:

sudo nano ~/software/azureus/azureus

Reemplazar “(your user name)” con el nombre de usuario que tenemos. Hacer lo mismo (en la línea 39, para ser exactos), con el siguiente archivo, luego de ingresar:

sudo nano ~/bin/azuereus-gui

Salvarlo, y luego moverlo al lugar adecuado, usando:

sudo mv ./azureus /etc/init.d/azureus

 

Configuración de los Plugins

Ahora abriremos Azureus para editar unas cuantas opciones de configuración para ponerlo todo en su lugar, e instalar el Web UI para una administración remota. Entrar este comando para abrir Azureus

azureus-gui

Seguir el wizard de configuración hasta que la aplicación haya llegado a la pantalla principal. Una vez que la configuración inicial esté lista, ahora podemos cerrar el programa, yendo a File->Exit. Ahora instalaremos el HTML WEB UI. Mientras estamos en esto, podemos extender a Azureus mucho mas, con la cantidad de plugins que se encuentran en su página web.

wget http://azureus.sourceforge.net/plugins/azhtmlwebui_0.7.6.jar
mkdir ~/.azureus/plugins/azhtmlwebui
mv azhtmlwebui_0.7.6.jar ~/.azureus/plugins/azhtmlwebui/

Ahora podemos usar un navegador de Internet como Firefox para navegar directamente al Web UI cada vez que esté corriendo el servicio de Azureus para descargar Torrents. Podemos hacerlo, poniendo el IP de la máquina con Ubuntu, seguido del puerto “6886”. Por ejemplo:

http://127.0.0.1:6886/

azureus-web

el UI de Azureus

 

Podemos añadir nuevos torrents, dirigiéndonos al tab de “Upload”, y podemos monitorear todos nuestros torrents, buscándolos en Downloads. Podemos configurar algunos settings de conexión, si vamos a “Options”. Hora de disfrutar nuestro cliente web de Azureus!

Ahora, si tenemos un disco duro externo configurado, podemos configurar a Azureus para que mueva todos los archivos terminados al disco externo. Eso puede lograrse, reabriendo Azureus (azureus-gui). Ir a Tools | Options. Luego, navegar en el menú de la izquierda a Files | Completion Moving. Ponerle un check al widget llamado “move completed files (after download)” y cambiar el directorio para que apunte a “/misc/external”. Si no tenemos un disco externo, dejar las opciones por defecto.

 

external

Configurando las opciones de download

 

Si queremos, podemos también configurar un nombre de usuario y password para ser usadas por el Web UI. Ir en el menú de la izquiera a “Plugins | HTML Web UI”. Al final del panel de configuración hay opciones para poner un user name y password.

Salvar el archivo de configuración, al clickear “Save” al final del panel, y saliendo de Azureus.

 

Empezar el servicio cuando cargue Ubuntu

Ahora que todo está configurado, queremos asegurarnos que Azureus empiece cuando nuestra PC cargue. Para hacer esto, tenemos que añadir el servicio a los servicios que Ubuntu carga al inicio, con estos comandos:

sudo cp ~/software/azureus/azureus /etc/init.d/
sudo chmod +x /etc/init.d/azureus
sudo update-rc.d azureus defaults

 

Ahora, Azureus empezará cuando el servidor esté cargando. Si lo queremos detener manualmente, o empezarlo también de dicha manera, podemos entrar, en el terminal:

/etc/init.d/azureus stop
/etc/init.d/azureus start

Nota: Ahora Azureus está corriendo de manera silenciosa. No veremos un ícono en el system tray de Gnome cuando cargue la PC. Si tenemos qeu configurar Azureus luego, tenemos que asegurarnos de detener el servicio, y abrir el GUI.

Para saber más sobre esta parte del tutorial, ir a AzureusWiki

 

Hamachi

Instalación

Hamachi es un software de redes privadas (VPN) que se utiliza para crear fácilmente redes personales que pueden ser accedidas a través de cualquier firewall. El cliente de Linux está disponible desde su página web. Querrán configurar esto para que sea más fácil conectarse al Samba que está alojando a todos nuestros archivos. Instalar Hamachi es exactamente igual que configurar Azureus. Tendremos que descargar el programa, y luego configurarlo para que cargue al inicio. Primero debemos descargar el software:

cd ~/software
wget http://files.hamachi.cc/linux/hamachi-0.9.9.9-20-lnx.tar.gz
tar xvfz hamachi-0.9.9.9-20-lnx.tar.gz
wget http://nerdica.com/wp-content/uploads/2007/06/hamachi_service
-O hamachi-0.9.9.9-20-lnx/

Luego instalarlo

cd hamachi-0.9.9.9-20-lnx
sudo make install
sudo ./tuncfg/tuncfg

Y luego vamos a añadir al servicio de Hamachi al servidor. Primero, tenemos que empezar por añadir un nuevo driver para que cargue cuando la PC se inicie. Editar la configuración de modulos de Ubuntu:

sudo nano /etc/modules

Añadir “tun” al final del archivo. Hamachi usa el módulo “Tun” para poder crear un device de redes “falso”.

Ahora, añadiremos la nueva configuración de servicio de Hamachi. Descargar el archivo de configuración, y añadirlo al runlevel apropiado

sudo cp ~/software/hamachi_service /etc/init.d/
sudo chmod +x /etc/init.d/hamachi_service
sudo update-rc.d hamachi_service defaults

Configuración

Ahora, vamos a crear una red a la cual nos uniremos. Primero, empezaremos a crear una cuenta en Hamachi. Entrar los siguientes comandos para crear una cuenta, y conectarnos:

hamachi-init
hamachi start
hamachi login
hamachi set-nick MyUserName

Asegurarse que reemplazaremos “MyUserName” con un nickname con el que queremos ser identificados. Luego, crear una red para compartir archivos con estos comando de Hamachi, cambiando MyNetwork y MyPassword con lo que vayamos a utilizar.

hamachi create MyNetwork MyPassword
hamachi go-online MyNetwork

Ahora  tenemos a Hamachi completamente configurado para usarlo en una red. Luego de reiniciar, Hamachi empezará automáticamente y nos conectará a la red. Si alguna vez queremos reconfigurar Hamahci para nuevas redes, escribimos lo siguiente:

sudo hamachi join NewNetwork NewPassword

Lo último que haremos, es grabar el IP de Hamachi para guardarlo. Tipeamos lo siguiente en el terminal

ifconfig ham0

Copiar el IP que aparece en “int addr”.

 

Samba

Ahora, los pasos para finalmente poder descargar BitTorrents y compartirlos a través de la red personal. Usaremos Samba, una implementación del servicio de Windows SMB para Linux. Samba nos permite no sólo copiar archivos, sino también usarlos como “streaming” (en caso de archivos multimedia)

Instalación

Para empezar, entramos el siguiente comando para instalar el paquete de Samba

sudo apt-get install samba smbfs

Ahora, crearemos una cuenta de usuario para acceder al Samba share. Lo haremos añadiendo un nombre de usuario de Samba a la lista de usuarios

sudo smbpasswd -a (your user name)

Reemplazar “(your user name)” por el nombre personal de usuario. Poner el password dos veces cuando nos lo pida.

Ahora, tendremos que editar el archivo de configuración de Samba. Hacerlo, siguiendo esto:

sudo nano /etc/samba/smb.conf

Encontrar la línea que diga

; security = user

Y quitarle el punto y coma inicial

security = user

Ahora, tendremos que añadir una entrada para compartir el directorio en donde estarán todos nuestros archivos BitTorrent descargados. Se puede conseguir, añadiendo una entrada en el archivo smb.conf

[Downloads]
comment = Contains Azureus Downloads
path = /misc/external
browseable = yes
valid users = (your user name)
writable = yes

Si no configuraron un disco duro externo, el directorio por defecto de Azureus es el que tiene los archivos, y está ubicado en “/home/(nombre de usuario)/Azureus Downloads/”. Hay que reemplazar (nombre de usuario) por el, bueno, nombre de usuario. Además, necesitaremos dejar todo el directorio entre comillas, porque contiene un espacio.  Así que, si no se usó un disco externo, lo que tenemos que añadir a smb.conf, sería:

[Downloads]
comment = Contains Azureus Downloads
path = “/home/(your user name)/Azureus Downloads/”
browseable = yes
valid users = (your user name)
writable = yes

Ahora, para probar la configuración, y reiniciar el servicio de Samba, ponemos

sudo testparm
sudo /etc/init.d/samba restart

 

Una vez que todas las partes de este tutorial hayan sido completadas, deberíamos ser capaces de navegar al IP de Hamachi (”http://5.x.x.x:6886″) del servidor para enviar y poner archivos BitTorrent. Usando el explorador, podemos  navegar luego al directorio para recoger o sacar los archvos. Si lo hacemos desde otra PC con Ubuntu, llegaremos a dichos archivos yendo a “Places | Connect to Server°. Una vez que el cuadro de diálogo aparezca, cambiar el tipo de servidor a “Windows share”, y pondremos los datos de login del servidor. En Windows, lo podemos hacer abriendo el explorador de Windows, poniendo la dirección de nuestro servidor en la barra de direcciones (”\5.x.x.x”).

samba1

Navegando archivos descargados, via Hamachi, en Ubuntu

 

En Conclusión

Luego de completar el tutorial, ahora tendremos un servidor de archivos BitTorrent corriendo ubuntu, configurado para compartir sus descargas a través de un servidor privado y seguro. Inclusive podemos copiar los archivos descargados directamente a nuestro disco duro externo, si es que tenemos uno. Una vez que tengamos al cliente Hamachi configurado también en nuestra laptop u otra PC, podemos conectarnos a nuestro servidor BitTorrent desde donde sea, no importa donde estemos. Hay muchas cosas que podemos hacer después de este punto. Podemos usarlo para compartir música, películas, y otros archivos personales. Podemos usar el port forwarding en un router para dar acceso abierto a nuestro servidor a través de Internet. Con estas simples herramientas, podemos  descargar y compartir archivos como queramos.

 


 

 Link al artículo original

 Nuevamente, gracias a Ross (Nerdica.com) por la oportunidad de traducir este artículo

  • juan_pda

    hola se puede instalar azureus sobre un ubuntu server sin tener un gestor de ventanas? me parace que es lo mas correcto ya que azureus corre sobre la jvm. saludos

  • Enrique

    Actualmente uso un Eee subnotebook con windows xp + utorrent y un disco duro externo, muy eficiente y de bajo consumo.

  • Artanis

    Excelente tuto. Es lo que he estado buscando, para poner a trabajar ese cacharro viejo que tengo de soporta libros… Saludos.