Sistemas

Mi red privada con Tailscale

Cómo tengo conectados imac, fxserver, hpserver y móviles en una red privada

3 min de lectura

Llevo años trabajando con servicios repartidos entre varias máquinas: un servidor con mis webs y proyectos, otra máquina en casa para almacenamiento y pruebas, el iMac de trabajo y los móviles. La pregunta delicada siempre era la misma: ¿cómo accedo a todo eso cuando no estoy delante de la máquina?

Durante mucho tiempo la respuesta era abrir puertos en el router (las puertas por donde entra y sale la información), y con ellos la puerta a cualquier escáner automático de bots. Probé VPN clásicas (túneles privados entre redes) y túneles manuales, pero todas acababan siendo pesadas de mantener. Desde que monté Tailscale, ese problema simplemente desapareció.

Qué es exactamente

Tailscale crea una red privada entre tus equipos. Por debajo usa WireGuard, un sistema de cifrado moderno y rápido; por delante, tú solo ves que tus dispositivos se comunican como si estuvieran en la misma red local, estén donde estén. Sin abrir ni un solo puerto. Cada máquina tiene una dirección estable dentro de la red y, con MagicDNS —el servicio que pone nombres fáciles a las máquinas—, un nombre fácil de recordar.

Mis equipos

Tengo una media docena de dispositivos en la red; estos son los que hacen vida cada día:

  • imac: el ordenador de trabajo, donde escribo, diseño y coordino.
  • fxserver: el servidor donde viven mis webs y la mayoría de proyectos.
  • hpserver: la máquina de casa, para almacenamiento y pruebas.
  • ipad171 e iphone-12-pro: para entrar desde cualquier sitio.

Cuando hago ssh fxserver (SSH es entrar en un ordenador remoto como si estuvieras delante), no me acuerdo de direcciones IP: el nombre ya resuelve dentro de la red.

Para qué lo uso cada día

  • SSH hacia cualquier servidor, desde el iMac o desde el móvil si hace falta.
  • Montar sistemas de ficheros remotos (hacer que ficheros de otra máquina se vean como una carpeta más) para trabajar con ellos como si fueran locales.
  • Paneles y APIs internos (las APIs son puntos de comunicación entre programas) que solo existen dentro de la red: no están expuestos a internet y eso es exactamente lo que quiero.
  • Agentes y automatizaciones que trabajan contra los servidores —como el vigilante de disco con cron que cuento en otra nota—: la conexión va cifrada y no abre nada al mundo exterior.

Detalles que me importan

  • Cero puertos abiertos en el router. La superficie de ataque hacia dentro (lo que vería alguien que nos escanea desde internet) es prácticamente nula.
  • Cada dispositivo tiene su clave (su identidad dentro de la red): si uno se pierde, la invalido y listo.
  • tailscale ping (una llamada rápida para ver si responde) me permite saber si una máquina está muerta o solo fuera de la red, algo que me ha ahorrado más de un dolor de cabeza. Distinguir muerta y fuera de red tiene nota propia: ¿Servidor muerto o fuera de red?

De las decisiones de infraestructura que he tomado, esta es de las que más paz me dan. Nada brillante que enseñar, pero todo funciona y nadie puede tocar lo que no debe tocar.