miércoles, enero 31, 2018

Home Server - Set Up

He estado limpiando por casa y entre montones de papeles me he encontrado un viejo portátil de mi mujer. No va a usarlo así que le hice copia de seguridad de su usuario y me dispuse a montar un servidor local.

Voy a comentar los pasos por aquí.
  1. Instalar Ubuntu
  2. Acceso remoto a LAN (Red Local) desde WAN(Internet) con Dynamic DNS.
  3. Redirigir tráfico desde WAN a máquinas concretas
  4. SSH
  5. Transmission
  6. Plex
  7. Nginx & PHP7



Consideraciones: Es una maquina de 32 bits así que habrá actualizaciones de programas que no tenga pero bueno, me puedo conformar.

1. Instalar Ubuntu

Quiero dedicarle el mínimo tiempo posible al mantenimiento así que evito distros como ArchLinux que, por desconocimiento mio, seguramente me llevaría mas tiempo de investigación en algunas cosas. Entre Debian y Ubuntu que son las que manejo voy a tirar para una Xubuntu, esta distro la usamos bastante en institutos e incluso en terminales antiguos tira bastante bien. Además por lo que veo hay una LTS la 16.04.3



En la página de descargas de Xubuntu hago uso el torrent:



Grabo el DVD y el instalador es muy sencillo, no quiero dualboot así que me cargo el Windows Vista que tenía, aparte de eso, poner el nombre a la máquina y crear el usuario creo que es todo prácticamente Siguiente, Siguiente.


2. Acceso remoto a LAN (Red Local) desde WAN(Internet) con Dynamic DNS. 

Si sabes que es esto puedes saltar al punto 3 o 4.

No conozco ningún servicio concreto así que busco en google y la primera que me sale es noip que da hasta 3 dominios en su versión gratuita. Fenomenal para probar el funcionamiento.




Tras darme de alta y seleccionar el dominio tan solo me queda instalar en mi nuevo servidor noip para que este avise de cambios en la configuracion WAN de mi red.

Para el que no tenga idea de como funciona esto es:
-Tu red debe tener un ip pública en internet. Esta IP te la da tu ISP(Movistar, Orange, Pepephone, etc). Esta IP puede ir cambiando. Lo que hace el programa de noip entiendo que detecta los cambios de esta ip pública y le manda notificaciones a noip.
-Cuando accedes con el dominio proveído te abstraes de conocer esa información y olvidarte de preocuparte de posibles cambios que te haga el ISP.

Es una pena porque parece ser que en versiones anteriores noip tenía un paquete en los repos, pero ya no. Así que no podemos instalar automaticamente si no que hay que hacerlo manuelmente. No hay problema porque hay manuales muy bien explicaditos como el siguiente


http://lasegundapuerta.com/index.php/informatica/linux-y-software-libre/2119-instalar-no-ip-en-ubuntu-server-12-04-y-14-04

Pone para 12.04, 14.04 pero va igual de bien para 16.04


3.Redirigir tráfico desde WAN a máquinas concretas

Cuando accedes a tu LAN desde internet la máquina de acceso suele ser el router. Pero nosotros queremos que sea nuestro servidor el que responda.

Para ello lo que hacemos en configurar en el router el port forwarding. Básicamente lo que vamos a hacer es decirle al router que cuando alguien haga una petición web(http/https), ssh, algun servicio que vayas a montar en el servidor, en vez de ser él el que responda que delegue esa responsabilidad a nuestra máquina.

Si accedemos a nuestro router seguramente veamos de forma sencilla en el menú principal alguna opción que se llame "Puertos", "Port forwarding" o algo parecido.

Os pongo captura de como se ve en el mio.


4. SSH

Es indispensable en un servidor poder conectarte a él desde otro ordenador y para ello tenemos SSH.

Recuerdo haber leído la historia de su creación por un finlandés después de un ataque de sniffing en la universidad en 1995!



Viene instalado por defecto pero os dejo enlaces por si quereis hacer algunas cosas...

Cambiar puerto estándar, añade un extra de seguridad pero ya no estará en puerto estándar.
https://askubuntu.com/questions/264046/how-to-ssh-on-a-port-other-than-22

Acceder mediante SSH sin login
https://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id

Alias en mi terminal
En vez de escribir siempre "ssh <user>@<server> -p <portnumber>" añado un alias como "sshome".

Si quieres añadir alias en un terminal bash normal
https://askubuntu.com/questions/17536/how-do-i-create-a-permanent-bash-alias

En mi caso voy con oh-my-zsh
en  ~/.zshrc tengo una linea con 'source ~/.aliases'
y en ~/.aliases el alias concreto 'alias sshome="ssh <user>@<server> -p <portnumber>"'

5. Transmission.

Este programa ya viene instalado en Xubuntu 16.04.3.



Levantar la interfaz web del Transmission
https://help.ubuntu.com/community/TransmissionHowTo#Web_Interface

6. PLEX

En casa no tenemos enchufada la TV a la antena, por lo que tenemos que tirar de otros métodos para ver contenido (Chromecast o PS4). Usamos servicios de streaming Netflix, Amazon Prime Video, Youtube y normalmente vamos tirando bien. Pero bueno, a veces queremos ver alguna peli un poco más rara o algún contenido propio(videos/fotos) y tiramos de PLEX.

Instalar el servidor de PLEX en el servidor.





7. Nginx & PHP7



Nginx - PHP7
https://www.digitalocean.com/community/tutorials/como-instalar-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04-es


Otro enlace que también añade Laravel... pero eso ya para el siguiente post que comento Laravel/Telegram Bot
https://medium.com/asked-io/how-to-install-php-7-x-nginx-1-9-x-laravel-5-x-bce95bb1f57a


No hay comentarios:

Publicar un comentario