Configurando un Servidor VPN Tailscale

NOTA

Esto es opcional. Solo necesitas considerar esta sección si ejecutas un nodo en casa y te gustaría conectarte a él desde fuera de tu red doméstica.

Si deseas iniciar sesión en tu red doméstica de forma remota, como mientras estás de vacaciones o en un viaje de negocios, la ruta más común es usar un servidor de Red Privada Virtual. Esto te permitirá conectarte a tu nodo vía SSH y monitorear tu panel de Grafana desde cualquier lugar del mundo, todo sin exponer tu puerto SSH a internet.

Muchos operadores de nodos de Rocket Pool usan Tailscale como su servidor VPN de elección para esto. Tailscale es un túnel VPN P2P de código abierto y un servicio de descubrimiento de endpoints alojado. Se encarga de la autenticación, publicación y el recorrido NAT requerido para establecer una ruta cifrada de extremo a extremo entre tu máquina y tu nodo sin enviar ningún tráfico sensible a un servidor centralizado. Es una herramienta muy poderosa.

Cubriremos brevemente una configuración básica, pero siéntete libre de revisar su documentación para más detalles.

Configurando Tailscale

Primero, crea una cuenta gratuita de Tailscale. Tailscale requiere el uso de un proveedor de identidad SSO como Google, GitHub, Okta, Microsoft, etc. Para más detalles, visita su Página de SSO.

Se recomienda que habilites 2FA (Autenticación de Dos Factores) en el proveedor de identidad que elijas para mayor seguridad.

A continuación, sigue su guía de incorporación para instalar Tailscale en tu cliente - la máquina con la que deseas conectarte a tu red. Por ejemplo, esto podría ser una laptop o tu teléfono. ¡Ten en cuenta que no es tu nodo Rocket Pool!

Una vez completado, deberías ver tu computadora como 'conectada' en el panel de Tailscale.

Ahora, instala Tailscale en tu nodo Rocket Pool. Puedes encontrar instrucciones para esto en su sitio web; por ejemplo, aquí están las instrucciones de instalación para Ubuntu.

NOTA

Si tienes UFW configurado, también querrás seguir las Instrucciones de Configuración de UFW).

Primero, agrega la clave de firma de paquetes y el repositorio de Tailscale en tu nodo Rocket Pool:

curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list

Ahora, instala Tailscale en tu nodo Rocket Pool:

sudo apt-get update
sudo apt-get install tailscale

Finalmente, autentica y conecta tu máquina a tu red Tailscale en tu nodo Rocket Pool:

sudo tailscale up

¡Estás conectado! Puedes encontrar tu dirección IPv4 de Tailscale ejecutando:

tailscale ip -4

Ahora deberías ver tu máquina del nodo agregada en el panel de Tailscale. También puedes cambiar el nombre de la máquina del nodo a través del panel, por ejemplo, a rocketnode.

Se sugiere deshabilitar la expiración de claves para la máquina del nodo para evitar la necesidad de volver a autenticarse periódicamente.

Nota

Si deseas acceder a tu nodo usando un nombre de host memorable como rocketnode, puedes hacerlo habilitando MagicDNS en la configuración de Tailscale.

Ahora deberías poder hacer exit de la sesión SSH a tu nodo en tu cliente, y volver a entrar vía SSH a tu nodo a través de Tailscale usando ssh your.user@rocketnode.

NOTA

Si modificaste el puerto SSH de la máquina del nodo en /etc/ssh/sshd_config cuando lo configuraste por primera vez, usa ssh your.user@rocketnode -p <tu puerto> en su lugar.

Por ejemplo, si asignaste SSH al puerto 1234, harías:

ssh your.user@rocketnode -p 1234

Ahora también puedes visitar http://rocketnode:3100 en tu navegador web para acceder a tu panel de Grafana desde tu cliente.

Si tienes UFW configurado, ahora puedes agregar una regla para aceptar cualquier conexión SSH entrante a través de Tailscale.

ADVERTENCIA

Los siguientes pasos modificarán las reglas de tu firewall. **Debes tener al menos 2 sesiones SSH abiertas a tu máquina del nodo antes de continuar - una para modificar la configuración y probarla después, y una que permanecerá conectada como respaldo en caso de que tus cambios rompan SSH para que puedas revertirlos!

Ejecuta estos comandos en la máquina del nodo.

Permite el acceso a todas las conexiones ssh entrantes a través de Tailscale.

sudo ufw allow in on tailscale0

También puedes eliminar el acceso al puerto SSH agregado en los pasos de habilitar un firewall para bloquear completamente tu nodo. Ten en cuenta que no podrás iniciar sesión desde la red local ya que tailscale se convertirá en la única forma de iniciar sesión. Solo ejecuta el siguiente comando si estás de acuerdo con esto.

sudo ufw delete "22/tcp"

Una vez que hayas configurado las reglas del firewall para restringir todas las conexiones que no sean de Tailscale, reinicia UFW y SSH:

sudo ufw reload
sudo service ssh restart

Ahora, confirma que todo está funcionando como se espera. Haz exit de una de tus sesiones SSH actuales (pero recuerda mantener la segunda abierta como respaldo).

A continuación, conéctate a la máquina del nodo vía SSH usando la dirección IP de Tailscale:

ssh your.user@rocketnode

Si funciona, hiciste todo correctamente y ahora puedes iniciar sesión de forma segura en tu red doméstica mientras estás en el extranjero!

CONSEJO

Si previamente reenviaste el puerto SSH de tu nodo en tu router, ahora puedes eliminarlo.