Skip to content
Esta página se tradujo con IA y puede contener imprecisiones. Ayuda a mejorarla en GitHub.

Gately v0.6.6 publicado ​

12 de noviembre de 2026

Descargar v0.6.6 · GitHub Release

Esta versión se centra en el refuerzo de seguridad. Se recomienda actualizar a todos los usuarios.

Correcciones de seguridad ​

  • Cabeceras de origen falsificadas: antes solo se eliminaban las cabeceras con el nombre exacto, como X-Real-Ip, mientras que los backends PHP, WSGI y CGI tratan X_Forwarded_For o X_Real_IP como la misma variable que la cabecera real, de modo que un visitante podía indicar a esos backends cualquier dirección de cliente o esquema. Ahora las cabeceras de origen y de puerto de origen que aporta el visitante, incluidas sus variantes con guion bajo, se eliminan siempre antes de reenviar. Las subpeticiones de autenticación de reenvío reciben el mismo trato y Gately escribe él mismo X-Original-URI, así que los servicios de autenticación que permiten rutas según ese valor ya no se dejan engañar por un valor del visitante.
  • Límite de intentos de inicio de sesión en servicios de archivos: las comprobaciones de contraseña de WebDAV, FTP y SMB no tenían límite de intentos. Ahora un origen con 10 fallos en 15 minutos es rechazado hasta que termina la ventana (IPv6 agrupado por /64; un inicio de sesión correcto no reinicia el contador). Las credenciales verificadas recientemente no ocupan un hueco y las sondas anónimas de SMB no se cuentan.
  • Restauración: al restaurar un archivo de cuenta se usa una nueva clave de sesión, de modo que una copia antigua no puede reactivar tokens revocados después por el cierre de sesión o por «Cerrar sesión en todos los dispositivos». Se rechazan las copias que al descomprimirse superan 128 MB o contienen más de 256 archivos.
  • Otros: la importación de configuración de nginx limita la profundidad de anidamiento de bloques (un archivo muy anidado agotaba la pila y terminaba el proceso); las cabeceras Host de más de 300 bytes reciben 400; los nombres de usuario que se escriben en el registro de auditoría y en los logs tras un inicio de sesión fallido se recortan a 64 caracteres.
  • Dependencias: correcciones de seguridad de la biblioteca estándar de Go 1.26.11; actualizados golang.org/x/net, klauspost/compress y andybalholm/brotli; el cliente SMB de los montajes de almacenamiento pasa a cloudsoda/go-smb2, que tiene mantenimiento (GO-2026-5051).

Cuentas y sesiones ​

  • Revocación de sesiones en el servidor: al cerrar sesión se revoca el token, y «Ajustes → Cuenta y seguridad → Sesiones de inicio de sesión» incluye el nuevo «Cerrar sesión en todos los dispositivos» (POST /api/account/sessions/revoke), que finaliza de una vez todas las sesiones creadas con contraseña, Passkey, inicio de sesión de terceros y el gateway de fnOS. Los tokens de API no se ven afectados.
  • Límites de solicitudes salientes (restrictOutbound, desactivado por defecto): al activarlo, las solicitudes salientes a direcciones configuradas por el administrador (webhooks, notificaciones, suscripciones a listas de IP, callbacks de DDNS, comprobación de actualizaciones, inicio de sesión de terceros, etc.) rechazan las direcciones de loopback, privadas y de enlace local (incluida 169.254.169.254). La comprobación se aplica a la IP resuelta en cada conexión, de modo que cubre también las redirecciones y el DNS rebinding. Los upstreams del proxy inverso, Wake-on-LAN, los montajes de almacenamiento y otras funciones de red interna no se ven afectados.
  • Protección contra solicitudes lentas: el puerto de administración limita la lectura del cuerpo de la solicitud por endpoint. Los endpoints normales deben terminar en 60 segundos; los de archivos grandes (restauración de copias, paquetes de actualización, subida de archivos) no tienen límite de tiempo total, pero deben seguir enviando a 4 KiB/s o más de media.

Servicio web ​

  • Quitar el prefijo de ruta en backends por ruta (#86): un backend por ruta puede quitar su prefijo antes de reenviar con la opción «Quitar el prefijo de ruta al reenviar», de modo que /api/zyqd/abc llega al backend como /abc, precedido por la ruta que lleve la dirección del backend. Equivale al proxy_pass http://backend/; de nginx, y las importaciones de nginx lo convierten automáticamente.
  • Puerto de origen del visitante (#83): con «Añadir X-Forwarded-*» activado, se envían al backend X-Real-Port y X-Forwarded-For-Port. Cuando Gately está detrás de una CDN o un proxy inverso, los ajustes globales admiten una «Cabecera del puerto real».
  • Gately de dos niveles (#81): cuando la instancia externa solo ejecuta el WAF y la interna gestiona el inicio de sesión, configure la misma clave de marca de autenticación en ambas y active «Confiar en la marca de autenticación del backend» en el sitio externo; los visitantes autenticados por la instancia interna también omiten el WAF externo.

Consulte Servicio web y WAF.

Copia de seguridad y restauración (#85) ​

Al restaurar una configuración ahora se puede «Conservar la cuenta de administrador actual»: la cuenta, los tokens de API y el inicio de sesión de terceros de la interfaz de administración mantienen sus valores actuales, y la copia puede omitir account.json, lo que resulta útil para trasladar la configuración de otra instancia. Consulte Configuración · Copia de seguridad y restauración.

Correcciones ​

  • DDNS (#84): los registros de dynv6 con dominio principal dynv6.net y subdominio xxxx ya no fallan con 404 al sincronizar ni al eliminar el registro del proveedor; la zona xxxx.dynv6.net se detecta automáticamente.

Rendimiento ​

  • La lista de bloqueos ya no reconstruye su lista CIDR en cada cambio cuando contiene muchos bloqueos; el enrutamiento de sitios solo compara dominios comodín tras no encontrar un dominio exacto; los registros caducados de límite de tasa y de fallos de inicio de sesión se limpian como máximo una vez por segundo.
  • La autenticación básica de sitios y WebDAV guardan en caché durante 10 minutos las comprobaciones bcrypt correctas, con lo que el coste de CPU por solicitud baja de unos 85 ms a microsegundos.
  • El reenvío de puertos reutiliza los búferes de copia cuando no se puede usar splice; la lista de conexiones en vivo solo construye las 500 filas que devuelve; la eliminación de cabeceras de origen ya no reserva memoria.
  • Las estadísticas de sitios, el estado y los logs de Docker y la lista de sesiones de terminal de la interfaz web dejan de consultarse mientras la pestaña del navegador está oculta.

Notas de actualización ​

  • Docker: descargue la nueva imagen y recree el contenedor; OpenWrt: instale el nuevo .apk / .ipk sobre el anterior; fnOS: instale el nuevo .fpk en el Centro de aplicaciones; el resto de instalaciones puede actualizarse en línea desde Ajustes del sistema.
  • Las sesiones iniciadas siguen siendo válidas tras la actualización; use «Cerrar sesión en todos los dispositivos» cuando todos los dispositivos deban iniciar sesión de nuevo.

Publicado bajo la licencia Apache-2.0.