domingo, 13 de septiembre de 2015

DIY - Servidor con Raspberry Pi #1

Buenas chi@s:

Hoy os traigo un proyecto para montar un servidor casero. Es bastante económico. Os pongo una relación de precios si comprarais todos los componentes, pero seguro que la mitad los tenéis en casa.

Lista de la compra:

- Cable HDMI
- HDD 500 GB (Valen 256 Gb y valen 750 Gb)
- Raspberry Pi B+ o superior
- Alimentación externa para el HDD
- Micro SD 32 Gb (Valen 16 Gb)
- Cable Ethernet
- Adaptador Wifi USB
- Teclado y ratón (En mi caso un 2 en 1 inalámbrico).

Aquí os dejo el resulado final del servidor:

 

Lista de la compra en fotos:






















































































































Listado de precios de los componentes:


Esto es un precio como dije si compramos todo nuevo. Pero en mi caso solo me compré la raspberry porque de lo demás tenía por casa.

Bien, una vez que ya hemos adquirido todo el Hardware necesario y antes de empezar con el montaje y enchufado de cables vamos a preparar el apartado de Software de nuestro servidor.

En primer lugar tenemos que instalar el sistema operativo de la raspberry, este va a ser el Core de nuestro server. ¿Que SO instalar? ¿Windows? No! ¿Linux? Casi! Vamos a instalar raspbian, se trata de un SO basado en Debian que a su vez este es un linux más ligerito.

Vamos a este link y descargamos la versión última de NOOBS que contiene raspbian y otras opciones y nos va a guiar por el proceso de instalación:


Os recomiendo la versión Offline & Network ya que es más rápido descargar los 742 Mb que ocupa con el PC que con la Pi mas tarde. 


¿Ya?

Bien, yo tengo la versión Noobs v. 1.4.1. Descomprimimos en .rar en una carpeta del escritorio, introducimos la SD en nuestro lector de tarjetas y copiamos el contenido completo en la raíz de la SD.


A continuación extraemos  la SD con seguridad y la insertamos en la raspberry. Estamos listos para empezar.

1ª Parte: Configuración de la raspberry, instalación de raspbian y configuración del acceso remoto por SSH:

Comenzamos por insertar la SD en la raspberry, enchufamos el HDMI a la Pi y a una pantalla, enchufamos el cable Ethernet al ruter y a la Pi. Por último enchufamos teclado y ratón. Estamos listos para darle chicha. Nos tiene que quedar algo así:





Una vez conectado el cable de alimentación no salen estas opciones:


Seleccionamos Raspbian [RECOMMENDED] y le damos a install:


Y esperamos que finalice el proceso de instalación... Cuando termina se reinicia el sistema y nos aparece la primera configuración de la Pi.


Ahí es cuestión de ir mirando y si queremos cambiamos la contraseña de acceso.

Por defecto es:

Usuario: pi
Contraseña: raspberry

La que yo utilizo es:

Usuario: pi
Contraseña:pi

Más corto e intuitivo,pero podemos poner la que queramos.

Recomiendo hacer un pequeño overclock siempre y cuando el servidor vaya  a estar en un lugar fresco y seco (No hace falta guardarlo en el armario de las magdalenas pero si conviene que esté a la sombra).

Seleccionamos Medium 900 MHz ARM (Procesador) , 250 MHz core, 450 MHz SDRAM lo que nos va a dar un exceso de sobrevoltaje de 2 V por lo que nuestra alimentación que va a 5 V tiene que ser capaz de garantizar.

Por último [IMPORTANTE ESTE PASO] vamos a habilitar el acceso remoro seguro vía SSH.

Para eso seguimos la secuencia de imágenes.




ENABLE!

Luego nos vamos al final, le damos a Finish y se hace un reboot.



Tarda un poco, dejamos que se ejecuten todos los comandos hasta que nos pida el log in.



Ahí ponemos usuario y contraseña, recordatorio, por defecto pi; raspberry. Si la habéis cambiado pues pi; loquesea!

Una vez en el sistema, despues de logarnos nos sale algo como:

pi@raspberrypi $  

Y escribimos el comando:

ifconfig

 De esta forma nos sale esto y podemos ver nuestra ip, en mi caso 192.168.1.130


Ale, ya tenemos el core listo de momento, apuntamos la ip y ejecutamos el siguiente comando para apagar el sistema.

sudo shutdown -h now


2ª Parte: Preparación del HDD y de los programas auxiliares para manejar el server.

Primero cogemos el HDD y lo conectamos al ordenador. Y utilizando el programilla Minitool Partition wizard formateamos el HDD con los siguientes parámetros:

Partition type: PRIMARY
File system: EXT4

Ojo a esto, si no lo formateamos en EXT3 o EXT4 no va a reconocer el HDD la Pi.


Ya tenemos el disco duro ready y formateado. Ahora lo dejamos enchufado ya  a la raspberry de esta manera.


A continuación, una vez conectado el HDD a la Pi, encendemos el sistema.

**Nota: Tenemos que tener enchufado a la Raspberry el HDD, el cable de Red y el cable de Power. Nada más, ya no nos hace falta la pantalla. A partir de aquí todo lo que vamos a hacer se hace de forma remota desde el PC.

Programas auxiliares:

A) Putty, es un cliente SSH que nos va a permitir acceder a la Pi desde nuestro PC:

Lo descargamos de aquí:



Una vez descargado vamos a abrirlo y ponemos los siguientes datos:



1. Host name or IP: 192.168.1.130 (En vuestro caso la que corresponda)
2. Puerto 22: Viene por defecto.
3. Nombre que queramos: Pi server, Pi ehernet, Pi wifi, Manolita... Lo que queráis.
4. Guardamos esta configuración.
5. Abrimos la conexión: OPEN SESAM!

Se nos abre una ventana negra que nos pide credenciales.

Ponemos las contraseñas que habíamos visto anteriormente.

login as: pi
pi@192.168.1.130's password: pi (en mi caso)

y nos aparece esto:


Bien, empezamos la fiesta.

El objetivo va a ser, por un lado montar un servidor privado de acceso remoto desde cualquier dispositivo de la red local + (porque no?) montar un cliente torrent para poder poner el servidor a trabajar descargando todas nuestras pelis, series, libros, música y lo que sea que descarguéis directamente en el servidor. De esta forma, las descargas se almacenan en el servidor y ya desde cualquier ordenador de casa o chromecast o móvil seremos capaces de acceder y reproducir desde ahí o copiar los archivos.

Vamos a ello.

3ª Parte: Configurar el cliente torrent --> Transmission.

Todo lo realizamos desde Putty:

A) Instalación de Transmission:

Primero instalamos el programa con el siguiente comando:

sudo apt-get -y install transmission-daemon 

**Nota: Para pegar comandos en putty lo copiamos de aquí con ctrl+C y botón derecho del ratón en la ventana de comandos para pegar.

Si todo ha ido bien , nos tiene que enseñar la siguiente pantalla:



Esto nos habrá iniciado el cliente. Ahora vamos a configurarlo a  nuestro gusto. Para ello detendremos el programa con el siguiente comando.

sudo /etc/init.d/transmission-daemon stop


Bueno, ya tenemos el cliente instalado y preparado para configurarlo.

Antes de nada vamos a preparar las carpetas para el almacenamiento de descargas ya que queremos que se guarden en el HDD.

B) Carpetas de almacenamiento de datos:


Primero de todo hay que identificar la dirección del HDD. Sin el HDD enchufado ejecutamos el siguiente comando:

sudo fdisk -l

Y nos aparecerá el siguiente resultado. En el podemos ver las particiones de la memoria SD.




Ahora conectamos nuestro HDD y ejecutamos el comando de nuevo.




Vemos que la dirección de nuestro HDD es la nueva que ha aparecido. En mi caso /dev/sda1 si tenéis otras unidades puede que os aparezca otra dirección. En este caso mi sistema de archivos es EXT4 que solo es compatible con linux pero podéis usar otro formato como FAT32.

A continuación hay que crear un punto de montaje para nuestro HDD. Este sera nuestro acceso a él. Crearemos la carpeta dentro del directorio /media

Y en el crearemos la carpeta "SERVER", lo podemos hacer con el siguiente comando:


sudo mkdir /media/server




Ahora ya podemos montar el HDD en la Raspberry pero de esta forma tendríamos que montarlo cada vez que se inicie la Raspberry Pi. Por lo que vamos a editar el archivo fstab que se encuentra en el directorio /etc ejecutando el siguiente comando:


sudo nano /etc/fstab
Es recomendable usar el formato ext3, ext4 u otro de linux ya que fat32 o ntfs no permiten asignar diferentes permisos a las carpetas.

Debajo del todo añadimos la siguiente linea:



/dev/sda1 (esta es la dirección que hemos leído antes) /media/server (esta es nuestra dirección de montaje) ext4 (El formato) defaults 0 0



/dev/sda1 /media/server ext4 defaults 0 0 


Cada parámetro se separa con un tabulador. Finalmente le damos a Ctrl+x , le damos a yes y enter. El resultado debe de ser parecido al de la siguiente imagen, pero con vuestros datos en caso de que sean diferentes.




Para ver reflejados los cambios ejecutaremos:

sudo mount -a 

o reiniciamos la raspberry con el comando.


sudo reboot

Una vez reiniciada vamos a por las carpetas:

Dado que una tarjeta SD normalmente no tiene espacio suficiente para los usos que le vamos a dar, tendremos que especificar que nos guarde los archivos descargados dentro del HDD. Así que vamos a crear las carpetas oportunas dentro de nuestro HDD.

En mi caso lo tengo montado en /media/server , así que añadiré una carpeta que se llame torrent y dentro de esta las carpetas finish y temp. También hay que darle todos los permisos para que el cliente torrent pueda acceder a ellas. Los comandos son los siguientes:

cd /media/server
ls
sudo mkdir torrent
 ls
cd torrent
sudo mkdir finish
sudo mkdir temp
ls
sudo chmod -R 777  /media/server
ls -l

Y el resultado debe ser como el que sigue:





C) Configuración Torrent 
Ahora editaremos el archivo de configuración con el comando:

sudo nano /var/lib/transmission-daemon/info/settings.json

“download-dir”: “/media/server/torrent/finish”,
Este es el directorio donde se guardaran los archivos descargados.
“incomplete-dir-enabled”: true,
Si lo ponemos verdadero le indicamos que guarde las partes de los torrents descargados en una carpeta diferente a los archivos finalizados.
“incomplete-dir”: “/media/server/torrent/temp”,
Directorio donde se guardaran las partes de los torrents.
“rpc-enabled”: true,
Habilita el RPC, es decir el que aplicaciones puedan conectarse al servicio, como la propia pagina web.
“rpc-bind-address”: “0.0.0.0″ 
Por defecto viene a 127.0.0.1 si lo ponemos a 0.0.0.0 indicamos que cualquiera puede conectarse.
“rpc-username”: “transmission”, 
Aqui pondremos el usuario que queramos utilizar para hacer login en la pagina WEB de gestión.
“rpc-password”: “{ac385a17c99c16caa7a3f218ae7955af61bb33f2moBazqG.” 
Esta es la password del usuario por defecto que es “transmission” igual que el usuario, la contraseña esta cifrada.
“rpc-whitelist-enabled”: false, 
Esto habilita una lista de direcciones que pueden acceder mediante RPC por ejemplo la web.

Una vez modificados todos estos valores hacemos ctrl+X, Y, Enter

Y ya tenemos configurado transmission.

A continuación iniciamos el servicio de nuevo:

sudo /etc/init.d/transmission-daemon start

Abrimos un navegador cualquiera en nuestro PC (Chrome, Firefox...) y ponemos en la barra de direcciones:

192.168.1.130:9091
IP:puerto



 Se nos abre una ventana de dialogo que nos pide usuario y contraseña.

Usuario: transmission
Contraseña: transmission

y esto nos lleva a la pagina donde podemos poner a descargar el torrent que queramos en el servidor desde cualquier dispositivo.




***Nota: Desde el móvil, desde el PC, desde la tablet. Si ponemos la IP y el puerto es decir (192.168.1.130:9091) (Cada uno la que tenga, esta es la del ejemplo, el puerto es 9091 por defecto) podemos acceder al servicio torrent del servidor.

Bueno, pues en este punto doy por finalizado el tutorial de cómo instalar y configurar un cliente torrent en raspberry Pi, acoplarle un HDD de almacenamiento y configurarlo y poder acceder al servicio desde cualquier dispositivo.

En el siguiente post os enseñaré a acceder al contenido del servidor a través del servicio SAMBA de acceso remoto.

Cualquier duda y/o comentario dejadlo reflejado abajo y os contestaré ASAP.

Un saludo

Alexmad33

Fuentes:
http://www.electroensaimada.com/torrent.html
http://blog.datosclave.pro/2012/03/permisos-chmod-a-carpetas-y-subcarpetas-tip/


Enlace a la segunda parte --> http://alexmad33.blogspot.com.es/2015/09/diy-servidor-con-raspberry-pi-2.html

No hay comentarios:

Publicar un comentario