Comprenda que es un servidor proxy, como funcionan los proxies directos e inversos y los principales papeles del cache, control de acceso, privacidad, CDN y balanceo de carga en redes.

¡Descúbrelo!

En redes de computadoras, un Servidor Proxy es un sistema o aplicación que actúa como intermediario para solicitudes de clientes que buscan recursos de otros servidores. Cuando un cliente se conecta al servidor proxy y solicita un servicio (como un archivo, conexión, página web u otros recursos) de un servidor diferente, el proxy evalúa la solicitud para simplificar y controlar su complejidad. Los servidores proxy fueron desarrollados para agregar estructura y encapsulamiento a los sistemas distribuidos.

Hoy en día, la mayoría de los proxies son del tipo web, facilitando el acceso al contenido en la World Wide Web y proporcionando anonimato. Tienen una variedad de usos, incluyendo filtrado de contenido y provisión de anonimato. Además, un servidor proxy puede alterar la solicitud del cliente o la respuesta del servidor y, en algunos casos, puede ofrecer este recurso incluso sin conectarse al servidor especificado.

Los servidores proxy también pueden funcionar como servidores de caché, almacenando datos temporalmente en redes de computadoras. Generalmente se instalan en máquinas con conexiones superiores a las de los clientes y con alta capacidad de almacenamiento.

Un ejemplo específico es el proxy de caché HTTP, que permite que el cliente solicite un documento en la World Wide Web. El proxy busca el documento en su caché y, si lo encuentra, atiende la solicitud y devuelve el documento inmediatamente. Si no lo encuentra, el proxy busca el documento en el servidor remoto, lo entrega al cliente y guarda una copia en su caché. Esto genera una reducción de la latencia, ya que es el servidor proxy, y no el servidor original, el que se consulta, además de proporcionar una reducción en el uso del ancho de banda.

El origen de los Servidores Proxy

El servidor proxy fue concebido para atender la necesidad de conectar una Red de Área Local (LAN) a Internet por medio de una computadora en la red que comparte su conexión con las demás máquinas. En otras palabras, si consideramos la red local como una red “interna” e Internet como una red “externa”, el servidor proxy es el elemento que permite que otras máquinas obtengan acceso externo.

Normalmente, las máquinas de la red interna no poseen direcciones IP válidas en Internet y, por lo tanto, no tienen una conexión directa con ella. Así, cualquier solicitud de conexión de una máquina de la red local hacia una máquina en Internet se dirige al servidor proxy. Este, a su vez, establece contacto con la máquina deseada y reenvía la respuesta de la solicitud a la máquina de la red local.

Proxy Directo

Un diagrama que ilustra la ruta de la conectividad a internet desde una computadora hacia un servidor de destino a través de un proxy directo.

El Proxy Directo es un componente intermediario que actúa del lado del cliente, representándolo en la comunicación con el servidor. Existen tres aplicaciones fundamentales para un Proxy Directo:

Sistema de Caché Comunitario

Este sistema busca optimizar el desempeño en el acceso a recursos estáticos en una red local. El Proxy Directo almacena en caché los recursos que se acceden con frecuencia, compartiéndolos entre todas las máquinas de la red. Sin embargo, con el aumento del tráfico cifrado, esta práctica se vuelve menos eficaz, ya que impide la intermediación del Proxy en tráfico cifrado.

Actualmente, la tendencia es tener cada vez más tráfico cifrado. Cuando usted accede a un sitio y ve el símbolo del candado junto a la barra de direcciones, eso significa que el sitio y todo su contenido están cifrados desde el servidor hasta su navegador de Internet. Esto incluye recursos estáticos, como imágenes. Cuando el tráfico está cifrado, el servidor Proxy no puede almacenar en caché ese recurso estático.

Por lo tanto, el uso del Sistema de Caché Comunitario está cada vez más en desuso. El cifrado del tráfico, que es una práctica cada vez más común para garantizar la seguridad de los datos, vuelve ineficaz la intermediación del Proxy. Como resultado, el sentido de tener ese tipo de sistema se está perdiendo. Las organizaciones están buscando otras soluciones para optimizar el desempeño en el acceso a recursos estáticos en una red local.

Privacidad o Enmascaramiento de Origen

En este contexto, el Proxy Directo actúa como un intermediario externo con el objetivo de ocultar el verdadero origen del tráfico. Cuando un cliente accede al Proxy, este reenvía la solicitud al servidor de destino, haciendo que el servidor interprete que el tráfico se origina en el Proxy, ocultando así la identidad real del cliente.

Este método tiene varias aplicaciones prácticas. Por ejemplo, si un sitio en Europa está bloqueando accesos provenientes de una red local o de un país específico, como Brasil, un servidor Proxy ubicado en un país que no está siendo bloqueado (como Estados Unidos) puede usarse para sortear esa restricción. El cliente se conecta al servidor Proxy en Estados Unidos, que entonces accede al servidor web en Europa. Para el servidor en Europa, parece que el acceso proviene de Estados Unidos.

Sin embargo, existen algunas desventajas en este método. La principal es la cuestión de la seguridad. El servidor Proxy es una máquina intermediaria en el tráfico de red y puede no ser confiable, especialmente si se trata de un servidor Proxy público disponible en Internet. El propietario de ese servidor Proxy puede estar monitoreando el tráfico que pasa por él. Además, los servidores Proxy generalmente solo sirven para tráfico web, es decir, acceso a páginas de Internet. Esto ocurre porque los servidores Proxy son específicos por protocolo. Incluso con proxies SOCKS, algunos protocolos y aplicaciones no pueden configurarse para usar un servidor proxy.

Por estas razones, el uso de servidores Proxy para enmascaramiento de origen se está volviendo menos común. En su lugar, los Servidores VPN están siendo cada vez más utilizados. Los servidores VPN ofrecen cifrado y otras ventajas, convirtiéndose en una opción más segura y flexible para el enmascaramiento de origen.

Control de Acceso

En el contexto del Proxy Directo, asume el papel de implementar políticas restrictivas para el acceso a Internet en la red local. Las reglas configurables en el Proxy incluyen restricciones de horario, bloqueo de sitios basado en palabras clave o políticas específicas. Funciona, esencialmente, como un firewall, controlando el tráfico en el sentido del cliente hacia Internet.

Un ejemplo práctico de esto puede encontrarse en muchos hoteles alrededor del mundo. Cuando un huésped se conecta a la red del hotel e intenta navegar por Internet, cualquier sitio al que intente acceder lo redirigirá a una página de autenticación del hotel. Esta página solicita información como el número de habitación y el apellido del huésped. Una vez que el huésped es autenticado correctamente, se libera el acceso a Internet. Este es un ejemplo de control de acceso implementado a través de un Proxy Directo.

Proxy Reverso

Un diagrama que ilustra la conexión entre computadoras, internet, un proxy reverso y un servidor de origen.

Un Proxy Reverso actúa como representante de un servidor, sirviendo como intermediario en la comunicación entre el cliente y el servidor, pero siempre representando el lado del servidor. Existen tres aplicaciones típicas para un Proxy Reverso.

Control de Acceso

La primera aplicación es el control de acceso, también conocido como firewall. Como mencionamos anteriormente, un firewall puede funcionar tanto como Proxy Directo como Proxy Reverso, dependiendo de su ubicación y del sentido del tráfico.

Un ejemplo práctico de esto puede verse cuando un servidor web ubicado en Europa bloquea el tráfico originado en Brasil. En este caso, la regla configurada en el firewall de la red conectada a ese servidor es “Bloquear todo el tráfico originado en Brasil”.

Existen muchas configuraciones posibles en un firewall, que van desde bloquear países enteros, bloquear máquinas específicas, hasta bloquear con base en reglas o patrones de acceso. Por lo tanto, un firewall ofrece una amplia gama de posibilidades de filtrado.

Sistema CDN (Content Delivery Network)

Dos diagramas que ilustran diferentes arquitecturas de red. El diagrama de la izquierda muestra un servidor central conectado a cuatro computadoras mediante conexión directa, todos rodeados por una forma de nube que simboliza internet o una nube de red. El diagrama de la derecha representa una Red de Distribución de Contenido (CDN), donde varios servidores se utilizan para entregar contenido a los usuarios finales de manera eficiente, con varios servidores naranjas conectados a cuatro computadoras por líneas continuas, indicando conexiones directas, también rodeados por una forma de nube similar.

La segunda aplicación típica de un Proxy Reverso es el sistema CDN (Content Delivery Network), también conocido como red de distribución de contenido o red de entrega de contenido. Una CDN es una empresa especializada que pone a disposición diversos servidores en puntos estratégicos alrededor del mundo. Estos servidores actúan como intermediarios para servidores web.

Cuando usted es propietario de un servidor web y contrata los servicios de una CDN, pasa a tener a su disposición una red de servidores distribuidos por el mundo. Esta red queda disponible para usted de forma automática. Cuando un cliente intenta acceder a su sitio, en realidad interactúa con el servidor CDN más cercano geográficamente. Esto aumenta el desempeño, ya que el cliente nunca accede directamente a su servidor, sino al servidor CDN, que actúa como un Proxy Reverso.

El servidor CDN almacena en caché los recursos estáticos de su sitio, como imágenes y hojas de estilo. Esto permite que el contenido se entregue más rápidamente al cliente. Además, el CDN puede funcionar como un firewall, ofreciendo una capa adicional de protección. Usted puede configurar parámetros de filtrado de tráfico en los servidores CDN. Por ejemplo, puede filtrar el acceso de clientes de determinados países a su sitio web.

Esta configuración proporciona protección adicional, y usted no necesariamente necesitará tener un firewall cerca de su servidor, ya que el CDN, al ser también un Proxy Reverso, normalmente ofrece un panel de control que contiene un firewall. Por lo tanto, los servidores CDN pueden funcionar como un filtro, bloqueando o controlando el acceso.

Además del control de acceso, los servidores CDN también pueden tener opciones integradas de optimización para mejorar aún más el desempeño. Por ejemplo, pueden optimizar el código fuente de su sitio, entregando un código optimizado al cliente, que cargará el sitio y sus recursos más rápidamente.

Otro ejemplo común de optimización es la optimización de imágenes. Como el CDN almacena archivos estáticos, especialmente imágenes, usted puede activar, si la plataforma ofrece esa opción, una optimización de imágenes. Esto significa tomar una imagen grande y reducir su tamaño, sin pérdida de calidad, para entregar un archivo menor al cliente. La transferencia de un archivo menor toma menos tiempo que la transferencia de un archivo mayor.

Por lo tanto, un servidor CDN puede ofrecer varias opciones de optimización, dependiendo de la plataforma que usted contrate. Estas son solo algunas de las posibilidades genéricas para ayudarle a entender qué se quiere decir con optimizaciones.

Balanceador de Carga

La tercera aplicación típica de un Proxy Reverso es actuar como balanceador de carga. El balanceo de carga es un proceso crucial cuando un servicio es altamente solicitado y una sola máquina puede no ser capaz de atender todas las solicitudes.

Por ejemplo, considere el servidor web de un sitio muy accedido, como Google. Google no depende de un único servidor, sino de una red de servidores web para atender las innumerables solicitudes que recibe por segundo.

Cuando usted accede al sitio de Google, en realidad no está accediendo directamente a un servidor web. En su lugar, está interactuando con un sistema de balanceo de carga, que es un balanceador de carga. Este balanceador de carga encamina su solicitud a un servidor web dentro de la red de servidores web de Google.

El balanceador de carga puede operar de dos maneras. Puede simplemente hacer un sistema de rotación, también conocido como round-robin, enviando tráfico al primer servidor, luego al segundo, y así sucesivamente. Alternativamente, puede ser más inteligente y leer el nivel de carga de cada servidor, enviando tráfico al servidor que esté menos ocupado.

Esta es una aplicación común en la práctica y no está restringida a servidores web. El balanceo de carga también puede aplicarse a servicios de correo electrónico.