Tailscale: instalación y configuración básica¶
Tailscale crea una red mesh segura basada en WireGuard y autenticación SSO.
Arquitectura de Tailscale¶
graph TB
subgraph "Tailscale SaaS"
TS[Control Plane<br/>admin.tailscale.com]
TS --> AUTH[Autenticación SSO<br/>Google/Microsoft/etc]
TS --> DNS[MagicDNS]
TS --> ACL[ACL Engine]
end
subgraph "Nodos/Peers"
D1[Device 1<br/>Laptop]
D2[Device 2<br/>Server]
D3[Device 3<br/>Mobile]
SR[Subnet Router<br/>Gateway]
EN[Exit Node<br/>VPN Gateway]
end
TS -->|ACLs| D1
TS -->|ACLs| D2
TS -->|ACLs| D3
TS -->|ACLs| SR
TS -->|ACLs| EN
D1 -->|WireGuard| D2
D1 -->|WireGuard| D3
D1 -->|WireGuard| SR
D1 -->|WireGuard| EN
D2 -->|WireGuard| D3
SR -->|WireGuard| EN
SR -->|Acceso LAN| LAN[(Red Local)]
EN -->|Internet| NET[Internet]
style TS fill:#e1f5fe
style D1 fill:#f3e5f5
style D2 fill:#f3e5f5
style D3 fill:#f3e5f5
style SR fill:#fff3e0
style EN fill:#ffebee
Tipos de nodos en Tailscale¶
mindmap
root((Tipos de Nodos<br/>Tailscale))
Regular Node
Conexión mesh
Acceso peer-to-peer
MagicDNS
Sin privilegios especiales
Subnet Router
Anuncia rutas locales
--advertise-routes
Gateway para LAN
Requiere autorización
Exit Node
--advertise-exit-node
Gateway de internet
Enruta todo el tráfico
Configuración de ACLs
App Connector
Próximamente
Conexión a servicios SaaS
Sin exposición pública
Requisitos¶
- Debian/Ubuntu o equivalente con
curlysudo - Acceso a
https://login.tailscale.com
Instalación rápida¶
curl -fsSL https://tailscale.com/install.sh | sh
Verifica servicio y versión:
tailscale version
sudo systemctl status tailscaled
Autenticación y alta del nodo¶
sudo tailscale up
- Abre el enlace que aparece y autentícate
- En
admin.tailscale.comautoriza el dispositivo si es necesario
Comandos útiles¶
# Estado y IPs
tailscale status
ip -4 addr show tailscale0
# Habilitar al arranque
sudo systemctl enable --now tailscaled
# Salir/Desconectar
sudo tailscale down
Hardening y opciones útiles¶
- ACLs (panel): define quién puede hablar con quién. Ejemplo mínimo (permitir a grupo admins todo):
{
"acls": [
{"action": "accept", "src": ["group:admins"], "dst": ["*"]}
]
}
- DNS: habilita MagicDNS y define dominios de búsqueda; para fuerza DNS corporativo:
sudo tailscale up --accept-dns=true
- Subnet router (acceso a una LAN):
sudo tailscale up --advertise-routes=192.168.10.0/24
Override de systemd (asegurar red arriba)¶
sudo systemctl edit tailscaled
[Unit]
After=network-online.target
Wants=network-online.target
Aplica y reinicia:
sudo systemctl daemon-reload
sudo systemctl restart tailscaled
Notas¶
- Evita conflictos con otras VPN WireGuard
- Revisa ACLs en el panel para controlar accesos
Ejemplos con contenedores (Docker)¶
Conectar tus contenedores a la VPN¶
- Opción 1 (userspace subnet router): expone puertos del contenedor Tailscale y usa
--advertise-exit-node/--advertise-routessegún necesidad. - Opción 2 (namespace compartido/sidecar):
docker run -d --name tailscale \
--cap-add NET_ADMIN --device /dev/net/tun \
-v tailscale_state:/var/lib/tailscale \
--network container:miapp \
tailscale:latest
- Opción 3 (host networking): ejecutar Tailscale en el host o contenedor con
--network hosty el resto usa la red del host.