Guía del usuario novato (I)
La semana pasada en el podcast que grabamos acompañado de dos grandes personas que saben mucho sobre NAS, hablamos sobre que hacer una vez sacamos el nas de la caja y lo echamos a andar y me di cuenta que antes de comprar nada, debemos de conocer y tener unos conceptos básicos que os voy a ir mostrando como hacerlos en una serie de posts.
Conceptos que debemos de conocer
- IP Pública dinámica
Este es el principal concepto que debemos conocer. Es nuestra matrícula en internet, facilitada por nuestro operador de internet. Si somos particulares o pequeños autónomos, posiblemente no tengamos la posibilidad de disponer de una IP Pública fija, que no cambie, como si es un servicio que se oferta normalmente a las empresas, sino que tenemos una IPv4 que es dinámica y cambia de forma automática sin que podamos controlarlo. Por lo que tenemos un problema, por suerte fácilmente solucionable, si tenemos este tipo de direcciones.
- IP Local
No debemos confundir con el anterior. Estas IP son las matrículas de nuestros dispositivos dentro de nuestra red de casa. Nuestro router normalmente las asignas de manera automática y suelen tener el formato 192.168.1.xxx siendo esas tres xxx un valor que normalmente oscila entre el valor 1 y el 254.
- CGNAT
Es la abreviatura de Carrier Grade Network Address Translation, es una técnica que permite el uso de una misma IPv4 pública en la que se asociarán direcciones IPv4 privadas de forma simultánea.
La IPv4 son las direcciones IP Públicas que tenemos actualmente y que se han quedado cortas debido al crecimiento de conexiones de servicios e internet.
Esto es un parche intermedio hasta que las compañias implementen el IPv6 que acabará con el problema de las direcciones IP.
Si no tienes que abrir puertos, pues ni siquiera te importará, pero no podrás usar tu NAS de forma normal y tranquila, o por ejemplo, abrir puertos de los servicios de playstation para tener menos latencia, ver cámaras de seguridad que no usen su propio sistema de forma remota, etc.
Para saber si estás detrás de CGNAT tienes que seguir los siguientes pasos:
- Descubre cuál es tu dirección IP Pública. Si necesitas ayuda, hay páginas webs de consulta, por ejemplo, https://www.cual-es-mi-ip.net/
- Ve a la sección WAN IPv4 de tu router Compara la IP pública obtenida con la que ves en esta sección.
- Si aparece una IP: 100.64.0.0/10, estás en CG-NAT Si la IP es de diferente subred, no estarás usando CG-NAT.
Si estamos tras CG-NAT, no podremos abrir puertos y esto nos impedira por ejemplo, acceder a nuestro NAS desde fuera de casa, o montar servicios o apps adicionales.
- DDNS
El DNS dinámico (DDNS) es un servicio que permite la actualización en tiempo real de la información sobre nombres de dominio situada en un servidor de nombres. El uso más común que se le da es permitir la asignación de un nombre de dominio de Internet a un dispositivo con dirección IP variable (dinámica). Esto permite conectarse con la máquina en cuestión sin necesidad de tener conocimiento de que dirección IP posee en ese momento.
El DNS dinámico hace posible utilizar un software de servidor en un dispositivo con dirección IP dinámica (como la suelen facilitar muchos ISP) para, por ejemplo, alojar un sitio web en la PC de nuestra casa, sin necesidad de contratar un hosting de terceros; pero hay que tener en cuenta que las PC caseras posiblemente no estén tan bien dotadas como los servidores de un Datacenter, ni tengan toda la infraestructura que poseen estos lugares.
La función es transformar la IP Pública y dinámica en "fija", para que nuestros servicios siempre estén disponibles y no nos tengamos que preocupar de este paso.
En mi caso lo hago mediante https://www.namecheap.com y un contenedor docker. Os lo mostraré en futuros artículos.
- Abrir puertos
Si tenemos IP Pública y no estamos tras un CGNAT como hemos visto anteriormente, podremos abrir puertos en el router.
Esto se nos hace necesario para la creación de certificados SSL y de algunos servicios básicos como una VPN
En cada router se hace de una forma distinta.
- VPN
Una red privada virtual, en inglés, virtual private network, VPN, es una tecnología de red de ordenadores que permite una extensión segura de la red de área local (LAN) sobre una red pública o no controlada como Internet.
Hace posible que nuestro dispositivos se comporten como si estuviésemos en casa, aunque estemos lejos de ella.
Hace que naveguemos de forma segura, ya que la comunicación entre dispositivos está encriptada, y que en el caso de nuestro NAS, lo usemos sin exponerlo a internet.
Es de los servicios básicos e importantes para mí, pero es necesario normalmente, abrir algún puerto en el router, bien sea el 51820 para una VPN como wireguard o el 1194 para una VPN como OPENVPN.
- NAS
El almacenamiento conectado en red, Network Attached Storage (NAS), es el nombre dado a una tecnología de almacenamiento dedicada a compartir la capacidad de almacenamiento de un computador/ordenador (servidor) con computadoras personales o servidores clientes a través de una red (normalmente TCP/IP), haciendo uso de un sistema operativo optimizado para dar acceso con los protocolos CIFS, NFS, FTP o TFTP.
Son nuestros servidores NAS y aunque inicialmente solo eran dispositivo de almacenamiento de datos, hoy en día nos permiten muchas más funciones como tener un blog, una nube personal, un servidor multimedia para tener nuestros archivos de video, fotos o música, o incluso más interesante y disponible en algunos dispositivos, la posibilidad de usar docker.
- Docker
Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de virtualización de aplicaciones en múltiples sistemas operativos.
Nos permite ejecutar aplicaciones consumiendo muy pocos recursos y de forma aislada, lo que hará, que de forma normal, sean más segura y además estén aisladas en carpetas por lo que si tuviésemos algún problema de funcionamiento o acceso a la información, normalmente al destruir el contenedor, eliminamos los riesgos.
- Proxy inverso
un proxy inverso es un tipo de servidor proxy que recupera recursos en nombre de un cliente desde uno o más servidores.
Traduce las direcciones de nuestros servicios que son de forma númerica a direcciones web que es algo que nos es más familiar.
Por ejemplo cuando queremos ir a google.es , este tiene la IP 142.250.184.3 pero así no nos acordaremos, ¿verdad? pues cuando nosotros vamos a google.es en internet, realmente estamos haciendo una petición a la dirección ip expuesta anteriormente pero de forma más amigable y fácil para nosotros.
Esto lo usaremos en otra entrada de este artículo para traducir por ejemplo, un servicio de nube que montemos en docker y que normalmente accedemos a él mediante dirección IP local:puerto del servicio y lo traducirá a https://direcciónweb.com por ejemplo.
Es muy recomendable que lo tengamos con un dominio propio, lo que nos facilitará la creación del ddns, y de los proxy inverso.
En mi caso por ejemplo lo tengo comprado en https://www.namecheap.com y podéis tener uno por unos 12$/al año.
- NAT Loopback o Hairpin NAT
Una explicación corta de lo que es NAT loopback podria ser:
NAT loopback es una extensión de NAT que te permite acceder a tu dirección pública de internet (WAN) desde dentro de tu propia red (LAN). Esto es práctico cuando tenemos algun servidor dentro de nuestra propia red, ya que nos permite acceder a ese servidor usando la misma IP pública (y por lo tanto también dominio) tanto desde dentro de la LAN, como desde el exterior.
Es decir es lo que permite que podamos usar proxy inversos (direcciones web) dentro de nuestra red local (direcciones numericas:puerto del servicio)
No todos los router lo permiten, por ejemplo no se puede hacer con los Live box de Orange. Mi recomendación es usar equipos propios, que siempre facilitaran estas tareas.
- Certificado SSL
Secure Sockets Layer (SSL; en español capa de puertos seguros) son protocolos criptográficos, que proporcionan comunicaciones seguras por una red, comúnmente Internet.
Los conocemos más comúmente como el candadito que sale junto a la dirección web que consultamos y que hace que nos podamos fiar un poco más de que estamos navegando por un sitio fiable.
Es importante que nuestros proxys inversos creados tengan un certificado de este tipo para que los podamos consultar de forma segura desde cualquier punto del mundo.
- Gestor de proxy inverso
Es un programa o servicio que se encarga de "traducir" nuestro servicio local tipo un servicio de nube que montemos en docker y que normalmente accedemos a él mediante dirección IP local:puerto del servicio y lo traducirá a https://direcciónweb.com por ejemplo.
En el caso que expondremos más adelante en estos artículos, lo haremos con NGINX Proxy Manager, porque de una manera "fácil y sencilla" nos permite hacer esta traducción y le añadirá un certificado ssl que lo crearemos de forma gratuita y que debemos de renovar cada tres meses.
Este programa que instalaremos en docker y que abriremos los puertos correspondientes en el router, se encargará de todo.
Mi nombre es David Rodríguez, apasionado por un millón de cosas que lleven placas y chips dentro.
Puedes encontrarme como @_Bilito en twitter y en grupo de Telegram de Synology NAS https://t.me/synologyNAS
Tengo un un canal de youtube que complementa al blog https://www.youtube.com/@_Bilito y que me harías un gran favor si te subscribes.
También colaboro en podcast como Bateria 2x100https://pod.link/1115144939 y además hemos comenzado otra aventura en otro podcast Detras del Mostrador https://pod.link/1657695301