Desde la versión HTML5 v7.49, la puerta de enlace admite el estilo de proxy inverso de retorno incluso a través de un proxy. ¿Cuál es la principal diferencia con el estilo de proxy inverso habitual de /~~****?
Normalmente, cuando un navegador navega por la puerta de enlace, como por ejemplo mediante el enlace http://domain.com/~~srv1, crea una conexión TCP remota con el servidor de destino con la IP/dominio proporcionado válido para la cadena /~~srv1. En ese caso, la IP/dominio remoto debe ser accesible para esa puerta de enlace. Esto significa que, si la puerta de enlace es accesible desde Internet, pero el subservidor no comparte el mismo rango de intranet con esa puerta de enlace, entonces el subservidor también debe ser accesible desde Internet para la puerta de enlace, y ambos deben tener IP de Internet para ser visibles entre sí.
El nuevo estilo de proxy inverso de conexión de retorno mitiga esa restricción. En el caso anterior, el subservidor ya no necesita ser directamente visible para la puerta de enlace, es suficiente que el subservidor pueda acceder a la puerta de enlace directamente. Esto funciona estableciendo una conexión de control con la puerta de enlace a través de una línea segura con un protocolo de enlace especial que intercambia claves de seguridad de sesión.
A partir de ese momento, tan pronto como alguien solicite el enlace http://domain.com/~~srv1, la puerta de enlace enviará al subservidor a través de una conexión de control ya establecida una pequeña solicitud de conexión TCP, por lo que el subservidor creará una nueva conexión TCP a la puerta de enlace según esta solicitud con una cadena de hash especial válida por única vez y, a partir de ese momento, la solicitud de conexión a la puerta de enlace en http://domain.com/~~srv1 continuará en esa nueva conexión TCP como si la puerta de enlace hubiera creado esta conexión TCP.
Para utilizarlo, la configuración debe realizarse no solo en la puerta de enlace sino también en el subservidor de destino.
La puerta de enlace utiliza casi el mismo estilo que para el equilibrio de carga habitual.
----------GATEWAY-PART-->--webserver\balance.bin
/~~srvBACK=mypassword1234#:1;
acepta cualquier IP que intente conectarse a la puerta de enlace, ya que la contraseña debe ser mypassword1234
El hash # al final de la contraseña es obligatorio y se utiliza como indicador para distinguirla de otras entradas de balance.bin con IP/dominios
El puerto ya no se tiene en cuenta, debe ser cualquier valor positivo, incluso 1 está bien.
Con el mismo éxito, puede utilizar char * de la siguiente manera: /~~srvBACK=mypassword1234#:*; en lugar de un valor numérico.
o
/~~srvBACK=mypassword1234#:*51.254.22.85;
acepta solo conexiones establecidas desde la dirección IP 51.254.22.85, solo se permite una entrada de IP, aquí el carácter inicial * es obligatorio
o
/~~srvBACK=mypassword1234#:*51.254.*;
acepta solo conexiones desde direcciones IP que comiencen con 51.254., podría cubrir un rango de direcciones IP potencial pero solo se permite una entrada de IP, el carácter inicial * es obligatorio
o
/~~srvBACK=mypassword1234#:*demo.mydyndns.net;
acepta IP resuelta para demo.mydyndns.net, es decir, cuando se establece una nueva conexión en la puerta de enlace para /~~srvBACK
la puerta de enlace primero resuelve el dominio (en el ejemplo demo.mydyndns.net) a IP y lo compara con la IP que intentó conectarse a la puerta de enlace.
Esto se puede utilizar como nivel de seguridad adicional al aceptar subservidores domésticos registrados en servicios DNS dinámicos, el carácter inicial * es obligatorio
o
SSL /~~srvBACK=mypassword1234#:*;
SSL /~~srvBACK=mypassword1234#:1;
acepta cualquier IP que intente conectarse a la puerta de enlace, ya que la contraseña debe ser mypassword1234 (recuerde que el hash # es obligatorio al final)
pero además la conexión se cifra mediante SSL solo para solicitudes HTTP.
La configuración como /~~srvBACK=mypassword1234#:3389 RDPPORT; ya no tendrá sentido ya que el subservidor crea la conexión TCP, no la puerta de enlace.
----------SUBSERVER-PART-->--webserver\backbalance.bin
/~~srvBACK=mypassword1234#demo.tsplus.net:443;
¡Observe aquí que la parte de configuración del subservidor usa un nombre de archivo diferente al de la parte de la puerta de enlace!
El subservidor que debería ser accesible a través de la puerta de enlace mediante /~~srvBACK se registrará a sí mismo en la puerta de enlace con la conexión de control principal.
Solo se permite una conexión de control a la misma puerta de enlace para una cadena /~~srvBACK específica; si alguien más intenta renovar la conexión de control principal incluso con una contraseña válida, se descartará. La conexión de control principal envía cada 20 segundos un paquete activo, por lo que en caso de que la conexión no responda durante al menos 1 minuto, dicha conexión se marcará como inválida para cerrarse y, por lo tanto, se permitirá el establecimiento de la siguiente conexión de control. Esta situación puede ocurrir si el proveedor bloquea la conexión TCP por cualquier motivo pero no envía el comando de cierre; esto puede suceder obviamente.
A diferencia del estilo de proxy inverso habitual, no se permite que este tipo de conexión se actualice en caliente, por lo que para aceptar nuevas configuraciones de equilibrio de retorno, se debe reiniciar el subservidor. La puerta de enlace puede actualizar en caliente las configuraciones, pero la conexión de control ya establecida no se eliminará y continuará con las configuraciones anteriores hasta que se elimine o después de que se reinicie la puerta de enlace.
No se recomienda reemplazar esta función con un escenario de equilibrio de carga ya utilizado, pero en el caso de que una empresa quiera permitir que sus usuarios hagan accesibles sus PC de casa a través de la puerta de enlace de la empresa, esta función satisface perfectamente esas necesidades.
Por ejemplo:
https://demo.tsplus.net/~~homePC_Frederique/
o
https://demo.tsplus.net/~~homePC_Sophie/
etc.
en tal caso, podría viajar por el mundo y poder acceder a su PC de casa a través de https://demo.yourserver.net/~~myHomePC incluso cuando su propia PC no esté disponible para acceder directamente desde Internet.
Como se mencionó, no solo admite una conexión TCP limpia, sino también un proxy HTTPS con estilo CONNECT para el modo de proxy inverso de backbalance.bin con autenticación NTLM y básica.
Ahora, no solo los usuarios domésticos habituales pueden vincular sus PC de intranet a una puerta de enlace independiente, sino que también los clientes corporativos detrás de un proxy
por ejemplo, con la autenticación NTLM pueden hacer que sus servidores internos estén disponibles en una puerta de enlace remota a través del estilo de proxy inverso /~~**. Además, admite la conexión de proxy en cascada con autenticación en cada servidor proxy en cascada.
Para que funcione, agregue como última línea en SUBSERVER-PART en webserver\backbalance.bin (¡no balance.bin!)
/~~srv1=jw_initialpassword#3090.ip-47-197-143.eu:443 -> \myuser1:mypass@192.168.10.11:808;
Esto se conectará a 3090.ip-47-197-143.eu:443 a través del proxy 192.168.10.11:808 utilizando el inicio de sesión NTLM: \myuser1
o
/~~srv1=jw_initialpassword#3090.ip-47-197-143.eu:443 -> \myuser1:mypass@192.168.10.11:808 -> \myuser2:mypass@192.168.12.12:808;
Igual que antes, pero además se utiliza el siguiente servidor proxy en cascada 192.168.12.12:808
El inicio de sesión no admite autenticación simplemente proporcionando la cadena de proxy -> 192.168.10.11:808;
El uso del inicio de sesión NTLM se aplica mediante un carácter de barra diagonal \ dentro de la parte de inicio de sesión; si no hay ningún carácter de barra diagonal, se trata de una autenticación básica como
-> myuser2:mypass@192.168.12.12:808;
Si el cliente utiliza el inicio de sesión NTLM con la parte de dominio, la barra diagonal permanecerá dentro de la parte de inicio de sesión como en el ejemplo
/~~srv1=jw_initialpassword#3090.ip-47-197-143.eu:443 -> mydomain\myuser1:mypass@192.168.10.11:808;
pero si no se utiliza ningún dominio con autenticación NTLM, el carácter de barra diagonal inicial en la parte de inicio de sesión es obligatorio de todos modos
-> \myuser2:mypass@192.168.12.12:808;
De lo contrario, se maneja la autenticación básica.