stringtranslate.com

Proxy inverso

Un servidor proxy que conecta Internet a una red interna.
Ejemplo de escenario: Un cliente en Internet ( nube a la izquierda ) realiza una solicitud a un servidor proxy inverso ( óvalo rojo en el medio ). El proxy inspecciona la solicitud, determina que es válida y que no tiene el recurso solicitado en su propia caché. Luego reenvía la solicitud a algún servidor web interno ( óvalo a la derecha ). El servidor interno devuelve el recurso solicitado al proxy, que a su vez lo entrega al cliente. El cliente en Internet no conoce la red interna y no puede saber si se está comunicando con un proxy o directamente con un servidor web.

En las redes de computadoras , un proxy inverso o servidor sustituto es un servidor proxy que aparece ante cualquier cliente como un servidor web ordinario , pero en realidad simplemente actúa como un intermediario que reenvía 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 utilizan servidores web suelen configurar servidores proxy inversos para facilitar la comunicación entre el navegador de un usuario de Internet y los servidores web . Una ventaja importante de hacerlo es que los servidores web se pueden ocultar detrás de un cortafuegos en una red interna de la empresa, y solo es necesario exponer directamente a Internet el proxy inverso. Los servidores proxy inversos se implementan en servidores web de código abierto populares , como Apache , Nginx y Caddy . Algunos de los sitios web más importantes de Internet utilizan servidores proxy inversos dedicados, como el software de código abierto HAProxy y Squid .

Un proxy inverso puede rastrear todas las direcciones IP que realizan solicitudes a través de él y también puede leer y modificar cualquier tráfico no cifrado y corre el riesgo de registrar contraseñas o inyectar malware si es comprometido por una parte malintencionada.

Los proxies inversos se diferencian de los proxies de avance , que se utilizan cuando el cliente está restringido a una red interna privada y solicita a un proxy de avance que recupere recursos de Internet público.

Usos

Los sitios web de gran tamaño y las redes de distribución de contenido utilizan servidores proxy inversos, junto con otras técnicas, para equilibrar la carga entre los servidores internos. Los servidores proxy inversos pueden mantener un 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 habitual que los servidores proxy inversos añadan funciones como compresión o cifrado TLS al canal de comunicación entre el cliente y el servidor proxy inverso. [3]

Los servidores proxy inversos pueden inspeccionar los encabezados HTTP , lo que, por ejemplo, les permite presentar una única dirección IP a Internet mientras retransmiten solicitudes a diferentes servidores internos en función de la URL de la solicitud HTTP.

Los servidores proxy 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, dificultar el inicio de acciones legales, como la eliminación de sitios web o el bloqueo del acceso al sitio web, ya que la dirección IP del sitio web puede no ser evidente de inmediato. Además, el servidor proxy inverso puede estar ubicado en una jurisdicción diferente con requisitos legales diferentes, lo que complica aún más el proceso de eliminación.

Las funciones de firewall de aplicaciones pueden brindar protección contra ataques comunes basados ​​en la Web, como ataques de denegación de servicio (DoS) o ataques de denegación de servicio distribuidos (DDoS). Sin un proxy inverso, eliminar malware o iniciar cierres de sitios (mientras se enfrenta simultáneamente al ataque) en el propio sitio, por ejemplo, puede resultar difícil.

En el caso de sitios web seguros , es posible que un servidor web no realice el cifrado TLS por sí mismo, sino que delegue la tarea a un proxy inverso que puede estar equipado con hardware de aceleración TLS . (Consulte Proxy de terminación TLS ).

Un proxy inverso puede distribuir la carga de las solicitudes entrantes a varios servidores, y cada servidor admite su propia área de aplicación. En el caso de servidores web con proxy inverso , es posible que el proxy inverso tenga que reescribir la URL en cada solicitud entrante para que coincida con la ubicación interna relevante 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 . Los cachés de proxy de este tipo suelen poder satisfacer una cantidad considerable de solicitudes de sitios web, lo que reduce en gran medida 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 con cuchara", [4] se puede generar una página dinámicamente de una sola vez y enviarla al proxy inverso, que luego puede devolverla al cliente poco a poco. El programa que genera la página no necesita permanecer abierto, lo que libera recursos del servidor durante el tiempo posiblemente prolongado que el cliente necesita para completar la transferencia.

Los servidores proxy inversos pueden funcionar en cualquier lugar donde sea necesario acceder a varios servidores web a través de una única dirección IP pública. Los servidores web escuchan en distintos puertos de la misma máquina, con la misma dirección IP local o, posiblemente, en distintas máquinas con distintas direcciones IP locales. El servidor proxy inverso analiza cada solicitud entrante y la envía al servidor correcto dentro de la red de área local .

Los servidores proxy inversos pueden realizar pruebas A/B y pruebas multivariables sin necesidad de que el código de la aplicación maneje la lógica de qué versión se entrega 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 de alguna otra forma el 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 la cantidad de sistemas que pueden tener acceso a datos no cifrados y los convierte en un objetivo más valioso para los atacantes.

La gran mayoría de las violaciones de datos externas ocurren cuando los piratas informáticos logran abusar de un proxy inverso existente que fue implementado intencionalmente por una organización o cuando logran convertir un servidor existente con conexión a Internet en un servidor proxy inverso. Los sistemas comprometidos o convertidos permiten a los atacantes externos especificar dónde quieren que se dirijan sus ataques, lo que les permite acceder a las redes y sistemas internos.

Las aplicaciones que se desarrollan para el uso interno de una empresa no suelen estar protegidas según los estándares públicos y no están necesariamente diseñadas para resistir todos los intentos de piratería. Cuando una organización permite el acceso externo a dichas aplicaciones internas a través de un proxy inverso, puede aumentar involuntariamente su propia 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 de los sistemas que están detrás del servidor proxy inverso.

El uso del proxy inverso de un tercero (por ejemplo, Cloudflare , Imperva ) coloca toda la tríada de confidencialidad, integridad y disponibilidad en manos del tercero que opera el proxy.

Si un proxy inverso está presente en muchos dominios diferentes , su interrupción (por ejemplo, debido a una configuración incorrecta o un ataque DDoS) podría hacer caer todos los dominios presentes. [7]

Los servidores proxy inversos también pueden convertirse en un punto único de falla si no hay otra forma de acceder al servidor back-end.

Véase también

Referencias

  1. ^ "Proxies de reenvío e inversos". The Apache Software Foundation. Archivado desde el original el 28 de agosto de 2018. Consultado el 26 de agosto de 2018 .
  2. ^ Reese, Will (septiembre de 2008). "Nginx: el servidor web y proxy inverso de alto rendimiento". Linux Journal (173).
  3. ^ "Servidores proxy y tunelización". MDN Web Docs . Archivado desde el original el 26 de noviembre de 2020 . Consultado el 6 de diciembre de 2020 .
  4. ^ "Entrada wiki de squid-cache sobre "SpoonFeeding"". Francesco Chemolli. Archivado desde el original el 25 de enero de 2019. Consultado el 9 de febrero de 2011 .
  5. ^ "¿Es posible agregar autenticación básica de acceso HTTP mediante HAProxy?". serverfault.com . Archivado desde el original el 4 de octubre de 2018 . Consultado el 27 de abril de 2016 .
  6. ^ "forward_auth (directiva Caddyfile) - Documentación de Caddy". caddyserver.com . Consultado el 22 de mayo de 2022 .
  7. ^ "La interrupción de Cloudflare deja fuera de servicio importantes sitios y servicios, incluido Discord". finance.yahoo.com . Archivado desde el original el 22 de junio de 2020 . Consultado el 14 de diciembre de 2020 .