Pon tu servidor detrás de un proxy inverso
Una red que bloquea la dirección IP de tu servidor no puede detener a las aplicaciones que no se conectan a ella directamente. Detrás de un proxy inverso como Cloudflare, las aplicaciones se conectan al proxy y este reenvía la conexión a tu servidor.
Cómo funciona
Tu dominio apunta al proxy en lugar de a tu servidor. Las aplicaciones consultan el dominio y se conectan al proxy, que descifra la conexión (como lo hace con cualquier sitio web) y la vuelve a cifrar hacia tu servidor. El tráfico viaja mediante WebSocket, compatible con Cloudflare. También puedes usar otro proxy inverso siempre que admita WebSocket y se comunique con tu servidor mediante TLS.
Las aplicaciones solo consultan el dominio si su clave lo incluye como nombre de confianza, lo cual requiere un certificado emitido por una autoridad de certificación.
Una clave también puede incluir la dirección directa de tu servidor. Así, las aplicaciones pueden conectarse de cualquier forma: el proxy las mantiene conectadas si la dirección se bloquea, pero cualquiera que tenga la clave podrá ver esa IP. Una clave sin la dirección de tu servidor fuerza a que todas las conexiones pasen por el proxy.
Aspectos a tener en cuenta
- Bloqueos: Una red aún puede bloquear las direcciones del proxy inverso o tu dominio. Sin embargo, las direcciones de Cloudflare dan servicio a muchos otros sitios web, por lo que bloquearlas tiene un costo alto.
- DNS: Las aplicaciones consultan tu dominio mediante el DNS de la red antes de conectarse. Si la red bloquea o falsea la respuesta, recurren a las direcciones de su clave; por eso, una clave que solo incluye el dominio no podrá conectarse.
- Privacidad: El proxy inverso ve el tráfico dentro del túnel al igual que tu servidor: sabe adónde se conectan tus usuarios y el contenido sin cifrar que envíen. Su tráfico HTTPS permanece cifrado. Utiliza un proxy inverso de confianza.
- Solo TCP: Tu servidor no ofrece sus puertos UDP y QUIC a las aplicaciones que se conectan a través del proxy.
- Términos de servicio: Comprueba que las condiciones de tu proveedor permitan el tráfico VPN. Por lo general, un grupo reducido de usuarios (unos 50 o menos) no supone ningún problema.
Antes de empezar
- Un dominio o subdominio con un certificado de una autoridad de certificación en tu servidor: consulta Usar un nombre de dominio y un certificado de confianza para ver cómo hacerlo. Configúralo primero, mientras el registro del dominio apunte directamente al servidor.
- Un único servidor detrás del dominio. Si los registros apuntan a dos servidores, las conexiones de una misma sesión pueden repartirse entre ambos e interrumpir la sesión.
- El servidor debe escuchar en el puerto TCP
443o en otro puerto compatible con el proxy. Cloudflare solo admite tráfico HTTPS en443, 2053, 2083, 2087, 2096, 8443.
Activar el proxy
- En Cloudflare, abre los registros DNS de tu dominio y cambia el registro que apunta a tu servidor a Proxied, junto con su registro AAAA si lo tiene.
- En SSL/TLS, cambia el modo de cifrado a Full (strict). De este modo, Cloudflare se conecta a tu servidor mediante TLS y valida su certificado. En el modo Flexible usaría HTTP sin cifrar, algo que el servidor no acepta.
VpnHood! MANAGER renueva sus certificados mediante HTTP en el puerto TCP 80 a través del dominio, y Cloudflare redirige esa solicitud a tu servidor. En un servidor administrado, mantén desactivado Always Use HTTPS: de lo contrario, redirigirá la solicitud a HTTPS y la renovación fallará.
En un servidor administrado
Comprueba el certificado del grupo de servidores para el dominio: en Signature debe indicar CA Signed, y en Visibility, PublicInToken. Así, las claves incluirán el dominio y las aplicaciones podrán resolverlo.
Para dirigir todas las aplicaciones a través del proxy, retira las direcciones del propio servidor de las claves en Access Points del servidor:
- Desactivar Automatic Configuration.
- Edita cada dirección y cambia su Mode a Private.
- Mantén Listen en Yes para que el servidor siga escuchando y el proxy pueda conectarse a él.
MANAGER permite claves sin dirección solo si el certificado indica CA Signed. En Configura las direcciones IP de tu servidor se explica cada ajuste.
Si se deja en PublicInToken, las direcciones permanecen en las claves y las aplicaciones usan tanto estas como el proxy. De este modo, el proxy mantiene conectados a tus usuarios si se bloquea una dirección.
Las aplicaciones con una clave anterior reciben la nueva la próxima vez que se conectan, ya que Push token to clients está activado de forma predeterminada.
El dominio apunta a un único servidor, por lo que, en un grupo de varios servidores, todas las aplicaciones que se conectan a través del proxy acceden al mismo.
En un servidor independiente
Comprueba que el servidor utilice el certificado del dominio, con IsValidHostName configurado en true: Usa un nombre de dominio y un certificado de confianza explica cómo hacerlo. Las claves generadas desde entonces incluyen el dominio, y las aplicaciones lo consultan.
Un servidor independiente siempre incluye sus propias direcciones en sus claves junto al dominio, por lo que las aplicaciones usan tanto estas como el proxy. El proxy mantiene conectados a tus usuarios si una dirección se bloquea, pero cualquiera que tenga una clave puede ver la dirección.