
En redes informáticas , un proxy inverso o servidor sustituto es un servidor proxy que, para cualquier cliente, parece un servidor web ordinario , pero en realidad actúa simplemente como intermediario, reenviando las solicitudes del cliente a uno o más servidores web ordinarios. [ 1 ] [ 2 ] Los proxies inversos ayudan a aumentar la escalabilidad , el rendimiento, la resiliencia y la seguridad , pero también conllevan una serie de riesgos.
Las empresas que administran servidores web suelen configurar proxies inversos para facilitar la comunicación entre el navegador del usuario y los servidores. Una ventaja importante es que los servidores web pueden ocultarse tras un cortafuegos en la red interna de la empresa, y solo el proxy inverso necesita estar expuesto directamente a Internet. Los servidores proxy inversos se implementan en servidores web de código abierto populares . Algunos de los sitios web más grandes de Internet utilizan servidores proxy inversos dedicados.
Un proxy inverso es capaz de rastrear las direcciones IP de las solicitudes que se transmiten a través de él, así como de leer y/o modificar cualquier tráfico no cifrado. Sin embargo, esto implica que cualquiera que haya comprometido el servidor también podría hacerlo.
Los proxies inversos se diferencian de los proxies directos , que se utilizan cuando el cliente está restringido a una red privada e interna y solicita a un proxy directo que recupere recursos de Internet pública.
Usos
Los sitios web de gran tamaño y las redes de distribución de contenido utilizan proxies inversos, junto con otras técnicas, para equilibrar la carga entre los servidores internos. Los proxies inversos pueden mantener una caché de contenido estático, lo que reduce aún más la carga en estos servidores internos y en la red interna. También es común que los proxies inversos añadan funciones como compresión o cifrado TLS al canal de comunicación entre el cliente y el proxy inverso. [ 3 ]
Los proxies inversos pueden inspeccionar los encabezados HTTP , lo que, por ejemplo, les permite presentar una única dirección IP a Internet mientras reenvían las solicitudes a diferentes servidores internos en función de la URL de la solicitud HTTP.
Los proxies inversos pueden ocultar la existencia y las características de los servidores de origen . Esto puede dificultar la determinación de la ubicación real del servidor o sitio web de origen y, por ejemplo, complicar el inicio de acciones legales como la eliminación o el bloqueo del acceso al sitio web, ya que la dirección IP puede no ser evidente de inmediato. Además, el proxy inverso puede estar ubicado en una jurisdicción diferente con requisitos legales distintos, lo que complica aún más el proceso de eliminación.
Las funciones de firewall de aplicaciones pueden proteger contra ataques web comunes, como ataques de denegación de servicio (DoS) o ataques de denegación de servicio distribuido (DDoS). Sin un proxy inverso, eliminar malware o iniciar acciones de retirada de contenido (mientras se gestiona el ataque simultáneamente) en un sitio web propio, por ejemplo, puede resultar difícil.
En el caso de sitios web seguros , un servidor web puede no realizar el cifrado TLS por sí mismo, sino delegar la tarea a un proxy inverso que puede estar equipado con hardware de aceleración TLS . (Véase Proxy de terminación TLS ).
Un proxy inverso puede distribuir la carga de las solicitudes entrantes entre varios servidores, cada uno de los cuales admite su propia área de aplicación. En el caso de los servidores web que utilizan un proxy inverso, este puede tener que reescribir la URL en cada solicitud entrante para que coincida con la ubicación interna correspondiente del recurso solicitado.
Un proxy inverso puede reducir la carga en sus servidores de origen mediante el almacenamiento en caché de contenido estático y dinámico , lo que se conoce como aceleración web . Este tipo de caché proxy suele poder atender un número considerable de solicitudes de sitios web, reduciendo significativamente la carga en los servidores de origen.
Un proxy inverso puede optimizar el contenido comprimiéndolo para acelerar los tiempos de carga.
En una técnica denominada "alimentación en cuchara" [ 4 ] , se puede generar una página dinámicamente en su totalidad y enviarla al proxy inverso, que la envía al cliente según lo permita la conexión. El programa que genera la página no necesita permanecer abierto, liberando así recursos del servidor durante el tiempo que el cliente pueda tardar en completar la transferencia.
Los proxies inversos pueden funcionar en cualquier lugar donde se requiera el acceso a varios servidores web a través de una única dirección IP pública. Los servidores web escuchan en diferentes puertos en la misma máquina, con la misma dirección IP local o, posiblemente, en máquinas diferentes con direcciones IP locales distintas. El proxy inverso analiza cada solicitud entrante y la entrega al servidor correcto dentro de la red de área local .
Los proxies inversos pueden realizar pruebas A/B y pruebas multivariantes sin necesidad de que el código de la aplicación gestione la lógica para determinar qué versión se sirve a un cliente.
Un proxy inverso puede agregar autenticación de acceso a un servidor web que no tiene ninguna autenticación. [ 5 ] [ 6 ]
Riesgos
Cuando el tráfico de tránsito está cifrado y el proxy inverso necesita filtrar, almacenar en caché, comprimir o modificar o mejorar dicho tráfico, primero debe descifrar y volver a cifrar las comunicaciones. Esto requiere que el proxy posea el certificado TLS y su clave privada correspondiente, lo que amplía el número de sistemas que pueden acceder a los datos no cifrados y lo convierte en un objetivo más valioso para los atacantes.
La gran mayoría de las filtraciones de datos externas ocurren cuando los piratas informáticos logran vulnerar un proxy inverso existente, implementado intencionalmente por una organización, o cuando convierten un servidor con acceso a Internet en un servidor proxy inverso. Los sistemas comprometidos o convertidos permiten a los atacantes externos especificar a dónde quieren que se redirijan sus ataques, lo que les permite acceder a redes y sistemas internos.
Las aplicaciones desarrolladas para uso interno de una empresa no suelen estar reforzadas según los estándares públicos ni diseñadas para resistir todos los intentos de pirateo. Al permitir el acceso externo a dichas aplicaciones internas mediante un proxy inverso, una organización puede aumentar involuntariamente su superficie de ataque e invitar a los piratas informáticos.
Si un proxy inverso no está configurado para filtrar ataques o no recibe actualizaciones diarias para mantener actualizada su base de datos de firmas de ataques, una vulnerabilidad de día cero puede pasar sin filtrar, lo que permite a los atacantes obtener el control del o los sistemas que se encuentran detrás del servidor proxy inverso.
Otorgar al proxy inverso de un tercero acceso a las claves privadas (para el almacenamiento en caché o la optimización de contenido) pone toda la tríada de confidencialidad, integridad y disponibilidad en manos del tercero que opera el proxy.
Un proxy inverso representa un punto único de fallo para los servicios de back-end a los que da servicio: una interrupción causada por una configuración incorrecta, un ataque de denegación de servicio o un fallo de software puede hacer que todos los servicios a los que da servicio sean inaccesibles para los clientes externos, incluso cuando los propios servicios de back-end funcionan correctamente. Por ejemplo, una interrupción en Cloudflare en 2020 dejó fuera de servicio brevemente a importantes sitios y servicios que dependían de su proxy inverso, incluido Discord. [ 7 ]
Véase también
Referencias
- ↑ "Proxies directos e inversos" . La Fundación de Software Apache. Archivado del original el 28 de agosto de 2018. Consultado el 26 de agosto de 2018 .
- ↑ Reese, Will (septiembre de 2008). "Nginx: el servidor web de alto rendimiento y proxy inverso" . Linux Journal (173).
- ↑ "Servidores proxy y tunelización" . MDN Web Docs . Archivado del original el 26 de noviembre de 2020. Consultado el 6 de diciembre de 2020 .
- ↑ "Entrada de la wiki de calamares sobre "SpoonFeeding"" . Francesco Chemolli. Archivado del original el 25 de enero de 2019. Recuperado el 9 de febrero de 2011 .
- ↑ "¿Es posible agregar autenticación de acceso HTTP básica a través de HAProxy?" . serverfault.com . Archivado del original el 4 de octubre de 2018 . Recuperado el 27 de abril de 2016 .
- ↑ "forward_auth (directiva Caddyfile) - Documentación de Caddy" . caddyserver.com . Consultado el 22 de mayo de 2022 .
- ↑ "La interrupción del servicio de Cloudflare deja fuera de servicio a importantes sitios y servicios, incluido Discord" . finance.yahoo.com . Archivado del original el 22 de junio de 2020. Consultado el 14 de diciembre de 2020 .
- proxy inverso
- Redes informáticas