DEV Community

RustDesk: Cómo crear una red de acceso remoto segura y privada

RustDesk es la solución perfecta para acceso remoto seguro, de código abierto y bajo tu control completo. En este artículo te mostraré cómo desplegar tu propio servidor, configurarlo como una red cerrada y asegurarlo para uso corporativo.

Architecture

Diagrama realizado con https://savnet.co

RustDesk es una alternativa de código abierto a herramientas como TeamViewer o AnyDesk, pero con una ventaja clave: puedes autoalojarlo. Esto significa:

  • Control total sobre tus datos
  • Sin límites de conexión
  • Costo cero en licencias (solo el servidor)

Paso 1: Preparar el servidor

Necesitarás un servidor Linux con Ubuntu 22.04 o 24.04 LTS con:

  • 1 vCPU, 2 GB RAM (suficiente para decenas de conexiones)
  • Ubuntu 22.04 LTS o superior
  • IP pública fija

New DigitalOcean Server

Paso 2: Configuración inicial del servidor

Conéctate por SSH y actualiza el sistema:

ssh root@tu_ip_servidor
apt update && apt upgrade -y
timedatectl set-timezone America/Bogota  # Ajusta a tu zona horaria
reboot
Enter fullscreen mode Exit fullscreen mode

Paso 3: Instalar Docker y Docker Compose

Sigue la instalación oficial de Docker:

# Instalar dependencias
apt install -y ca-certificates curl gnupg

# Agregar repositorio oficial de Docker
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
  https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
  | tee /etc/apt/sources.list.d/docker.list > /dev/null

# Instalar Docker
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Verificar instalación
docker --version
docker compose version
Enter fullscreen mode Exit fullscreen mode

Versiones docker

Paso 4: Preparar la estructura de RustDesk

mkdir -p /opt/rustdesk-server/data
cd /opt/rustdesk-server
Enter fullscreen mode Exit fullscreen mode

Paso 5: Crear el archivo docker-compose.yml

Crea nano /opt/rustdesk-server/compose.yml:

services:
  hbbr:
    container_name: hbbr
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - ./data:/root
    network_mode: "host"
    restart: unless-stopped

  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
    command: hbbs
    volumes:
      - ./data:/root
    network_mode: "host"
    depends_on:
      - hbbr
    restart: unless-stopped
Enter fullscreen mode Exit fullscreen mode

Importante: Usamos network_mode: "host" porque RustDesk necesita ver la IP real del host para funcionar correctamente.

Paso 6: Levantar los servicios

# Levantar servicios
docker compose up -d

# Verificar que estén corriendo
docker ps

# Ver logs
docker compose logs
Enter fullscreen mode Exit fullscreen mode

Servicios docker

Paso 7: Obtener la clave pública del servidor

Esta clave es crucial para que los clientes confíen en tu servidor:

cat /opt/rustdesk-server/data/id_ed25519.pub && echo ""
Enter fullscreen mode Exit fullscreen mode

Guarda el resultado. Se verá algo como:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
Enter fullscreen mode Exit fullscreen mode

Paso 8: Configurar el firewall

Puertos necesarios para RustDesk OSS:

  • TCP 21115 - Servicio principal
  • TCP 21116 - Servicio de ID
  • UDP 21116 - Para mejor rendimiento
  • TCP 21117 - Servicio de relay

Configurar UFW en el servidor:

# Instalar firewall ufw
apt install -y ufw

# Permitir SSH desde TU IP pública
ufw allow from tu_ip_admin to any port 22
# SI NO TIENES IP pública, permite cualquier origen con
ufw allow 22

# Permitir puertos de RustDesk
ufw allow 21115/tcp
ufw allow 21116/tcp
ufw allow 21116/udp
ufw allow 21117/tcp

# Activar firewall
ufw enable
ufw status verbose
Enter fullscreen mode Exit fullscreen mode

Firewall ufw

Configurar firewall del proveedor cloud:

En el panel de tu proveedor cloud, crea reglas Inbound que permitan solo desde tus IPs corporativas:

Firewall DigitalOcean

Paso 9: Configurar computador/cliente

En cada equipo:

  1. Abre RustDesk
  2. Ve a Settings → Network
  3. Haz click en Unlock Network Settings
  4. Ve a Servidor ID/Relay
  5. Configura:
    • ID Server: IpServidorRust
    • Relay Server: IpServidorRust
    • Key: Pega la clave pública obtenida en el paso 7
    • API Server: Déjalo vacío (solo para RustDesk Pro)

Configuración cliente Rust

Si quieres usar rápidamente tu configuración da click en el icono de copiar en la parte superior derecha, y el icono de pegar para importar:

Export/Import cliente RustDesk



Formas de mejorar la seguridad de tu computador/cliente RustDesk

Configuración seguridad cliente RustDesk

RustDesk ofrece múltiples métodos de autenticación para controlar el acceso remoto de forma segura. Aquí te explico cada opción:

1. Contraseña de un solo uso (One-time password)

  • Se genera automáticamente en cada sesión y el usuario debe suministrarla al técnico remoto para que pueda conectarse.
  • Opciones de longitud: 6, 8 o 10 dígitos
  • La clave cambia en cada sesión.
  • Uso ideal: Soporte técnico puntual o accesos temporales

2. Contraseña permanente (Permanent password)

  • Clave que especificas manualmente y no cambia entre sesiones
  • Permite acceso continuo sin necesidad de compartir nuevas claves
  • Uso ideal: Acceso remoto frecuente a tu propio equipo

3. Combinación de ambos métodos (Both passwords)

  • Flexibilidad para usar contraseña temporal O permanente
  • Uso ideal: Escenarios mixtos (uso personal + soporte ocasional)

4. Autenticación en dos factores (2FA)

  • Capa adicional de seguridad
  • Opciones: códigos desde app autenticadora o integración con bot de Telegram
  • Uso ideal: Equipos accesibles desde internet público

5. Dispositivos de confianza (Trusted devices)

  • Solo aplica cuando usas 2FA
  • Marcar dispositivos específicos como confiables
  • Evita solicitar 2FA en cada conexión desde esos dispositivos
  • Mejora la comodidad manteniendo seguridad

6. Configuraciones de seguridad adicionales

  • Longitud de contraseña: Configurable según necesidades de seguridad
  • Tiempo de expiración: Para contraseñas temporales
  • Registro de auditoría: Monitoreo de accesos

Recomendaciones prácticas:

Para uso personal frecuente: Contraseña permanente + 2FA opcional

Para soporte técnico: Contraseña de un solo uso

Para entornos corporativos: 2FA obligatorio + dispositivos de confianza

Para máxima seguridad: Combinación de métodos + registro de auditoría

Estos métodos te permiten balancear seguridad y conveniencia según tus necesidades específicas.



Cómo convertir esto en una red realmente cerrada

1. Bloquear acceso desde Internet público del servidor RustDesk

No permitas acceso a cualquier ip en las reglas del firewall ufw o del operador cloud. Solo permite:

  • IPs de tus oficinas
  • IP de tu VPN corporativa
  • Rangos específicos autorizados

2. Implementar VPN para acceso remoto

La forma más segura: usuarios remotos primero se conectan a la VPN corporativa, luego acceden a RustDesk.

3. Crear usuario administrativo sin root:

adduser adminops
usermod -aG sudo adminops

mkdir -p /home/adminops/.ssh
cp /root/.ssh/authorized_keys /home/adminops/.ssh/authorized_keys
chown -R adminops:adminops /home/adminops/.ssh
chmod 700 /home/adminops/.ssh
chmod 600 /home/adminops/.ssh/authorized_keys

# Deshabilitar root por SSH
if grep -q '^PermitRootLogin' /etc/ssh/sshd_config; then
  sed -i 's/^PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
else
  echo 'PermitRootLogin no' >> /etc/ssh/sshd_config
fi

sshd -t && systemctl restart ssh
Enter fullscreen mode Exit fullscreen mode

RustDesk Pro: Para necesidades empresariales avanzadas

La versión RustDesk que hemos configurado es excelente para acceso remoto básico, pero si necesitas funcionalidades empresariales avanzadas, RustDesk ofrece una versión Pro con características adicionales:

  • Gestión centralizada de usuarios y grupos
  • Control de acceso granular (permisos por rol)
  • Autenticación LDAP/Active Directory
  • Auditoría y logs detallados
  • Soporte técnico prioritario
  • Funciones de administración masiva

Para estas organizaciones puedes consultar los planes Pro en https://rustdesk.com/pricing/.

¿Necesitas un servidor en la nube? Puedes obtener un Droplet Ubuntu en DigitalOcean usando nuestro enlace de referido y recibir créditos iniciales para probar este tutorial.


¿Has implementado RustDesk en tu organización? ¡Comparte tu experiencia en los comentarios!

Top comments (0)