Pestañas

jueves, enero 12, 2012

Servidor caserillo

Visto aquí

Una de las cosas que se pueden hacer con un ordenador antiguo es montar un pequeño servidor en casa. Voy a contar ahora las cosillas que hay que hacer para eso, en plan sencillo: un servidor web, algo para bajar archivos con P2P, ese tipo de cosas. Si alguien tiene algo que añadir, para eso están los comentarios.

Lo primero es bajarse una Debian e instalarla en el ordenador antiguo siguiendo estos pasos. Vamos a instalar una distribución sin entorno gráfico, para aprovechar todos los recursos del ordenador y no gastar en memoria, espacio, procesador, etc. En ese último enlace se puede seguir paso a paso todo lo que hay que hacer para montar el servidor (también se puede usar esto, por ejemplo). Si se siguen todos los pasos, podemos montar el servidor casi sin ningún problema. Comento a continuación las cosas que tal vez den problemas o que hay que hacer con más cuidado:



La IP:

El primer problemilla que nos vamos a encontrar en el tema de la IP para poder contectar el servidor a Internet. Si tenemos una IP fija, ningún problema, pero si tenemos un ADSL lo normal es que la IP sea dinámica y hay que intentar hacer algo con eso. Nos damos de alta en no-ip.com e instalamos noip2 haciendo esto:

$ wget http://ftp.es.debian.org/debian/pool/main/n/no-ip/noip2_2.1.9-3_i386.deb
$ dpkg -i noip2_2.1.9-3_i386.deb

Esto no funciona así como así porque hay que abrir los puertos correspondientes en el router.  Para acceder a la dirección del router (ipconfig en Windows, ifconfig en Linux), la direccion que sale (192.168.X.XXX) nos da la IP interna del ordenador (la IP pública se sabe rápidamente pinchando aquí). Hay que hacer esto para saber cual es el puerto y de qué ordenador se trata. Nos vamos a la aplicación de configuración del router en el navegador, que tendrá dirección 192.168.X.1 y de ahí a Virtual Servers. Allí introducimos los puertos que hay que abrir. En los routers (por ejemplo) suele venir una lista de servicios habituales para añadir (web, fpt, correo, etc). El SSH suele venir a través del puerto 22.

Un problema recurrente cuando se hace esto es que el ADSL, al asignar las direcciones IP de forma automática (DHCP), va cambiando las ips internas de los ordenadores de nuestra casa. Si uno de ellos va a ser el servidor, tendremos problemas constantes porque la IP cambiará si lo apagamos. Para evitar esto, sin tener que cambiar el método de asignación de las IPs del router, podemos añadir una IP fija al ordenador que hace de servidor. Para eso primero hemos de elegir una IP que no esté dentro del rango que el router tiene para asignar direcciones (el rango, en mi router, viene en LAN). Con esa dirección que hemos elegido nos vamos al ordenador y hacemos lo que nos dicen aquí. Primero una copia de seguridad (como root):

$ cp /etc/network/interfaces /etc/network/interfacesOK

Luego editamos el archivo:

$ nano /etc/network/interfaces

Y escribimos en él lo siguiente:

auto lo 
iface lo inet loopback 
auto etho0 
iface etho0 inet static 
address 192.168.X.XXX 
netmask 255.255.255.0 
gateway 192.168.X.X

donde 192.168.X.XXX es la IP que hemos elegido para el servidor (fuera del rango de DHCP) y 192.168.X.X es la dirección del router. Cerramos y guardamos el archivo anterior y comprobamos haciendo ifconfig que se ha cambiado la IP (reiniciar si acaso). No me ha resultado necesario incluir las direcciones de los servidores DNS, si hiciese falta puede intentarse sacarlas de aquí. Recordar que ahora hay que cambiar la IP que escribimos en la aplicación del router donde abrimos los puertos.

Finalmente, para asegurarnos de que noip2 se arranca al iniciar el ordenador hacemos lo siguiente (como root):

$ nano /etc/rc.local

Antes de la línea "exit 0" que se puede leer al final, añadimos lo siguiente:

/usr/local/bin/noip2 &

Algo a tener en cuenta: al cabo de 60 días, detienen el servicio de nuestra no-ip. Hay que entrar y darle a activar de nuevo. 

Servidor Torrent:

Una de las posibles utilizaciones del servidor puede ser la de montar un servidor torrent para compartir archivos. El programa puede estar accesible desde la web, de forma que uno puede poner a descargar cosas desde cualquier parte a través de la dirección correspondiente. Para instalar servidor torrent puede hacerse esto y se puede probar esto para mejorar la gestión del espacio.

El programa que instala la guía anterior se llama TorrentFlux y a pesar de que funciona más o menos y es muy fácil de instalar, a mí me da problemas con algunos torrents, que no descargan nunca con ese programa, aunque sí con otros. He intentado instalar vuze o rtorrent+rutorrent, pero no lo he conseguido. Uno que parece que funciona es deluge. Se puede instalar desde repositorios o directamente compilándolo. Por problemas de paquetes he tenido que hacerlo compilando pero empleando la versión 1.2.3. Lo que no he conseguido es que funcione ninguno de los arranques automáticos del programa (este script, por ejemplo). La única manera de que salga la interfaz web es hacerlo directamente:  

$ deluged 
$ screen -fa -d -S deluge-web -m deluge-web

Montar el pincho USB:

Una vez que nos hayamos bajado algo, habrá que sacar los archivos del servidor. Lo más sencillo es usar un pincho USB, ya que el FTP es un poco lento cuando hablamos de gigas y gigas. Pues esto no es trivial cuando se hace el línea de comandos, oigan. Primero, editamos el archivo de configuración:

$ nano /etc/fstab

Y ahí dentro colocamos la siguiente linea en caso de que no haya nada parecido

/dev/sdb /media/usb vfat rw,user,noauto 0 0

A lo mejor ahora hay que reiniciar pero no estoy seguro. Luego, tenemos que saber cómo llama Debian al pincho USB:

$ fdisk -l /dev/sdb

Y haciendo esto en la última línea nos dirá el nombre que tenemos que utilizar (en mi caso sdb4). Luego formateamos (si es necesario) como NTFS, de lo contrario no podremos manejar archivos grandes porque es de suponer que vamos a usar lo que nos hemos bajado en un sistema que no sea Linux:

$ mkntfs /dev/sdb4

Creamos la carpeta donde vamos a montar esto, que es la que pusimos en la línea de fstab:

$ mkdir /media/usb

Y montamos:

$ mount /dev/sdb4 /media/usb

Para desmontar

$ umount /dev/sdb4

Una vez copiadas todas nuestras mierdas al USB, estaría bien pasarle un antivirus por si acaso (esto hay que hacerlo siempre que nos bajemos algo de internet). No por el peligro en el propio Debian, sino porque esos archivos que nos hemos bajado probablemente los usemos en Windows y ahí sí que tenemos un peligro.

Por ejemplo, podemos usar clamav. Instalamos:

$ apt-get install clamav

Y luego actualizamos la firmas con la instrucción

$ freshclam

Y pasamos el antivirus tal que así:

$ clamscan -r /media/usb/

Lo malo es que no analiza archivos grandes... si alguien sabe como hacer esto, ya sabe, a los comentarios.

Cosillas sueltas:
Y a otra cosa, hombre ya.