SSH sin abrir el puerto 22: tabla comparativa y comandos reales
Se puede llegar a un servidor por SSH sin abrir el puerto 22 a internet si los dos extremos están en una malla WireGuard. El servidor escucha solo en su dirección privada 100.64.x.x y el router no redirige nada. Así, los escáneres de internet no encuentran ningún servicio SSH contra el que probar contraseñas o lanzar ataques.
Qué expone un puerto 22 abierto en un servidor accesible desde internet
Un puerto 22 redirigido en el router o abierto en el cortafuegos de un proveedor cloud responde a cualquiera que le envíe un paquete. El demonio SSH tiene que aceptar la conexión TCP, negociar claves y procesar el intento de acceso antes de saber quién hay al otro lado. Eso pone tres cosas delante de todo internet: el propio código del demonio, cualquier cuenta que todavía acepte contraseñas y la constancia de que en esa dirección hay un servidor. Cambiar el puerto a otro número lo esconde de los escaneos rápidos, pero no cambia ninguna de las tres.
Cómo transporta prialo el SSH por WireGuard sin puertos de entrada
En prialo, cada dispositivo tiene su propio par de claves WireGuard y recibe una dirección fija dentro de 100.64.0.0/10, el espacio compartido del RFC 6598. Por eso nunca choca con una LAN 192.168.x.x o 10.x.x.x. El cliente SSH se conecta a esa dirección y los paquetes viajan dentro del túnel. En el camino de datos no hay usuario ni contraseña: solo claves.
En el router no se abre nada. Los dos extremos negocian un camino directo con STUN (UDP 3478 en el plano de control) y perforación de NAT. Cuando eso falla por un CGNAT de operador, un NAT simétrico u otra VPN delante, el tráfico pasa por un relé en TCP 4430 que reenvía paquetes que no puede descifrar. En ambos casos, el servidor solo inicia conexiones salientes.
Con el servidor ya en la malla, sshd puede escuchar únicamente en su dirección 100.64 y la redirección del puerto 22 se puede eliminar. Las claves SSH y el endurecimiento habitual de sshd siguen en su sitio. La malla añade una capa por delante, pero no sustituye la autenticación del servidor.
Puerto 22 abierto frente a SSH por prialo: qué queda expuesto en cada caso
| Elemento expuesto | Puerto 22 abierto a internet | SSH por prialo con el puerto 22 cerrado |
|---|---|---|
| Demonio SSH | Alcanzable desde cualquier dirección de internet | Alcanzable solo desde dispositivos dados de alta en la malla |
| Prueba de contraseñas | Posible contra cualquier cuenta que acepte contraseñas | Sin camino: el plano de datos solo usa claves WireGuard |
| Configuración del router | Requiere redirección de puerto o regla de cortafuegos | Ningún puerto de entrada abierto |
| Servidor detrás de CGNAT | Inaccesible sin IP pública | Camino directo o relé en TCP 4430 |
| Quién puede conectarse | Cualquiera que supere el acceso SSH | Dispositivos aprobados con claves válidas, con registro de auditoría |
Dar de alta un servidor Linux en prialo paso a paso
- Crear una clave de alta: genera en la administración una clave de un solo uso que caduque. También puede ser reutilizable, y siempre es revocable.
- Instalar el nodo como root: ejecuta el comando de abajo con la dirección del servidor, el relé y la huella SPKI de tu plano de control.
- Comprobar el canal de control: prialo status debe mostrar 'Control: tls, pinned' y una IP dentro de 100.64.0.0/10. prialo ip imprime esa dirección.
- Probar desde el portátil: prialo ping <host-or-ip> confirma el camino. Después, conéctate por ssh a la dirección 100.64.
- Cerrar el puerto 22 hacia internet: elimina la redirección del router o la regla del cortafuegos y limita sshd a la dirección de la malla.
sudo PRIALO_AUTH_KEY='<enrolment key>' prialo install --server=control.example.com:50051 --relay=control.example.com:4430 --tls-pin=sha256:<fingerprint>
Un nodo rechaza el servidor de control que no presente la clave fijada, así que ninguna autoridad de certificación forma parte del modelo de confianza. La aprobación de dispositivos y el registro de auditoría de cada evento administrativo dejan constancia de quién añadió el servidor y cuándo. Para varios clientes, el flujo de trabajo de un MSP está en SSH y RDP a servidores de clientes.
Qué sigue expuesto cuando el plano de control de prialo es autohospedado
Cerrar el puerto 22 en todos los servidores concentra la superficie pública en una sola máquina. El paquete autohospedado ejecuta tres contenedores con Docker Compose: servidor de coordinación, relé y PostgreSQL. Publica gRPC en TCP 50051, STUN en UDP 3478 y el relé en TCP 4430. La API de administración del puerto 8080 nunca se publica en internet y al panel se llega mediante un túnel SSH. Por eso, esa máquina necesita su propio acceso SSH bien protegido. Las claves y la base de datos se quedan en el servidor del cliente, y Sinergia no accede a esa instancia. Los puertos y las copias se detallan en el plano de control autohospedado.
Tráfico de relé y cuota para sesiones SSH en prialo
El SSH por relé consume bastante menos de 1 MB por hora. Una sesión interactiva apenas cuenta frente a los 10 GB mensuales de tráfico por relé del plan Free o los 100 GB por persona del plan Teams (5 EUR por persona al mes, IVA no incluido). El escritorio remoto es otra cosa: de 0,5 a 1 GB por hora. Reenviar una trama cuesta unos 23 ns y no depende de cuántos clientes haya conectados. En un relé propio, PRIALO_MESH_QUOTA_BYTES limita el tráfico de salida por malla y mes. Superado el límite, las tramas se descartan y se cuentan, sin desconectar a nadie.
Lo que prialo aún no permite para SSH desde móviles y Windows
A 17 de octubre de 2026, las apps de Mac e iPhone están en la cola de revisión de Apple y todavía no se pueden descargar. Android está en preparación, y el cliente de Windows es una versión temprana sin instalador ni firma. El cliente de terminal para Linux y macOS y el paquete autohospedado ya funcionan. Un cliente SSH como Termi1 para iPhone y iPad solo podrá llegar a una dirección 100.64 cuando la app de iPhone esté disponible. Los móviles y Windows tampoco aceptan rutas de subred todavía, y solo Linux puede hacer de router.
Preguntas frecuentes
¿Es seguro el SSH por prialo con el puerto 22 cerrado en el router?
El SSH por prialo con el puerto 22 cerrado saca el servidor de los escaneos públicos y de la prueba de contraseñas desde internet. Solo los dispositivos dados de alta con claves WireGuard llegan a su dirección 100.64. La autenticación SSH sigue aplicándose, así que conviene mantener el acceso solo con claves.
¿Funciona el SSH a través de prialo detrás de un CGNAT de operador?
El SSH a través de prialo funciona detrás de un CGNAT de operador. Los nodos intentan primero un camino directo con STUN y perforación de NAT. Si el CGNAT o un NAT simétrico lo impiden, el tráfico pasa por el relé en TCP 4430, que no puede descifrarlo. El servidor no necesita IP pública.
¿Cuánto tráfico de relé consume una sesión SSH en prialo?
Una sesión SSH por relé en prialo consume bastante menos de 1 MB por hora. El plan Free incluye 10 GB de tráfico por relé al mes para hasta 10 dispositivos, y Teams incluye 100 GB por persona al mes. Usado solo para SSH, rara vez se acerca a esos límites.
¿Hay que abrir algún puerto para autohospedar el plano de control de prialo?
Autohospedar el plano de control de prialo exige publicar en ese servidor TCP 50051 para gRPC, UDP 3478 para STUN y TCP 4430 para el relé. La API de administración del puerto 8080 no se publica y al panel se entra por túnel SSH. Los nodos no abren ningún puerto de entrada.
¿Prefieres tu propio servidor? Guía del paquete autoalojado de prialo