Calamar (software)

Almacenamiento en caché y reenvío de proxy web HTTP

Calamar
Desarrollador(es)Duane Wessels, Henrik Nordström, Amos Jeffries, Alex Rousskov, Francesco Chemolli, Robert Collins, Guido Serassio y voluntarios [2]
Lanzamiento inicialJulio de 1996 ; hace 28 años ( 1996-07 )
Versión estable
6.12 [3]  / 11 de octubre de 2024
Repositoriogithub.com/squid-cache/squid
Escrito enC++ [4]
Sistema operativoBSD , Linux , Unix , Windows [5]
TipoServidor proxy
LicenciaGPL 2.0 o posterior [6]
Sitio webwww.squid-cache.org
La pila LAMP con Squid como caché web.

Squid es un proxy web HTTP de reenvío y almacenamiento en caché . Tiene una amplia variedad de usos, incluida la aceleración de un servidor web mediante el almacenamiento en caché de solicitudes repetidas, el almacenamiento en caché de la World Wide Web (WWW), el Sistema de nombres de dominio (DNS) y otras búsquedas de red para un grupo de personas que comparten recursos de red, y la ayuda a la seguridad mediante el filtrado del tráfico. Aunque se utiliza principalmente para HTTP y el Protocolo de transferencia de archivos (FTP), Squid incluye soporte limitado para varios otros protocolos, incluidos Internet Gopher , Secure Sockets Layer (SSL), [7] Transport Layer Security (TLS) y Hypertext Transfer Protocol Secure ( HTTPS ). Squid no admite el protocolo SOCKS , a diferencia de Privoxy , con el que Squid se puede utilizar para proporcionar soporte para SOCKS.

Squid fue diseñado originalmente para ejecutarse como un demonio en sistemas tipo Unix . Se mantuvo un puerto para Windows hasta la versión 2.7. Las nuevas versiones disponibles en Windows utilizan el entorno Cygwin . [8] [9] Squid es software libre publicado bajo la Licencia Pública General GNU .

Historia

Squid fue desarrollado originalmente como el caché de objetos Harvest , [7] parte del proyecto Harvest en la Universidad de Colorado en Boulder . [10] [11] Se completó más trabajo en el programa en la Universidad de California, San Diego y se financió a través de dos subvenciones de la National Science Foundation . [12] Duane Wessels bifurcó la "última versión precomercial de Harvest" y la renombró Squid para evitar confusiones con la bifurcación comercial llamada Cached 2.0, que se convirtió en NetCache . [13] [14] La versión 1.0.0 de Squid se lanzó en julio de 1996. [13] SquidNT , un puerto del servidor proxy Squid, se fusionó con el proyecto principal de Squid en septiembre de 2006. [15]

En la actualidad, Squid se desarrolla casi exclusivamente gracias a esfuerzos voluntarios.

En octubre de 2023, se reveló que Squid seguía sufriendo 35 vulnerabilidades de seguridad que no se habían solucionado durante dos años y medio después de su informe inicial. [16]

Funcionalidad básica

Una vez instalado un servidor proxy de Squid, los navegadores web pueden configurarse para utilizarlo como servidor proxy HTTP, lo que permite a Squid conservar copias de los documentos devueltos, lo que, en caso de solicitudes repetidas de los mismos documentos, puede reducir el tiempo de acceso y el consumo de ancho de banda . Esto suele ser útil para que los proveedores de servicios de Internet aumenten la velocidad para sus clientes y para las redes LAN que comparten una conexión a Internet . Dado que los servidores de almacenamiento en caché están controlados por el operador del servicio web, los servidores proxy de almacenamiento en caché no anonimizan al usuario y no deben confundirse con los servidores proxy anonimizadores.

Un programa cliente (por ejemplo, un navegador) debe especificar explícitamente el servidor proxy que desea utilizar (algo habitual en los clientes de ISP) o bien puede utilizar un proxy sin ninguna configuración adicional: "almacenamiento en caché transparente", en cuyo caso Squid intercepta todas las solicitudes HTTP salientes y almacena todas las respuestas en caché. Esto último suele ser una configuración corporativa (todos los clientes están en la misma LAN) y, a menudo, genera las preocupaciones sobre privacidad mencionadas anteriormente.

Squid tiene algunas funciones que pueden ayudar a anonimizar las conexiones, como la desactivación o modificación de campos de encabezado específicos en las solicitudes HTTP de un cliente . La persona que controla el ordenador que ejecuta Squid puede decidir si se configuran o no y para qué se configuran. Las personas que solicitan páginas a través de una red que utiliza Squid de forma transparente pueden no saber si se está registrando esta información. [17] Al menos en las organizaciones del Reino Unido, los usuarios deberían estar informados si se están monitorizando los ordenadores o las conexiones a Internet. [18]

Proxy inverso

La configuración anterior, que almacena en caché el contenido de una cantidad ilimitada de servidores web para una cantidad limitada de clientes, es la clásica. Otra configuración es la de " proxy inverso " o "aceleración de servidor web" (utilizando http_port 80 accel vhost ). En este modo, la caché sirve a una cantidad ilimitada de clientes para una cantidad limitada de servidores web (o solo uno).

Por ejemplo, si slow.example.com es un servidor web "real" y www.example.com es el servidor de caché de Squid que lo "acelera", la primera vez que se solicita una página desde www.example.com , el servidor de caché obtendría la página real desde slow.example.com , pero las solicitudes posteriores obtendrían la copia almacenada directamente desde el acelerador (durante un período configurable, después del cual se descartaría la copia almacenada). El resultado, sin ninguna acción por parte de los clientes, es menos tráfico hacia el servidor de origen, lo que significa menos uso de CPU y memoria, y menos necesidad de ancho de banda. Sin embargo, esto significa que el servidor de origen no puede informar con precisión sobre sus cifras de tráfico sin una configuración adicional, ya que todas las solicitudes parecerían haber venido del proxy inverso. Una forma de adaptar los informes en el servidor de origen es utilizar el encabezado HTTP X-Forwarded-For informado por el proxy inverso, para obtener la dirección IP del cliente real.

Es posible que un servidor Squid funcione simultáneamente como proxy normal y como proxy inverso. Por ejemplo, una empresa puede alojar su propio sitio web en un servidor web, con un servidor Squid que actúa como proxy inverso entre los clientes (clientes que acceden al sitio web desde fuera de la empresa) y el servidor web. El mismo servidor Squid podría actuar como un caché web clásico, almacenando en caché las solicitudes HTTP de los clientes dentro de la empresa (es decir, los empleados que acceden a Internet desde sus estaciones de trabajo), acelerando así el acceso web y reduciendo las demandas de ancho de banda.

Límites de alcance de los medios

Por ejemplo, una característica del protocolo HTTP es limitar una solicitud al rango de datos del recurso al que se hace referencia. Esta característica se usa ampliamente en sitios web de transmisión de video como YouTube , de modo que si un usuario hace clic en el medio de la barra de progreso del video, el servidor puede comenzar a enviar datos desde el medio del archivo, en lugar de enviar todo el archivo desde el principio y que el usuario espere a que los datos anteriores terminen de cargarse.

Las descargas parciales también son ampliamente utilizadas por Microsoft Windows Update para que paquetes de actualización extremadamente grandes puedan descargarse en segundo plano y pausarse a mitad de la descarga si el usuario apaga su computadora o se desconecta de Internet.

El formato de descarga Metalink permite a los clientes realizar descargas segmentadas emitiendo solicitudes parciales y distribuyéndolas en varios espejos.

Squid puede retransmitir solicitudes parciales al servidor web de origen. Para que una solicitud parcial se satisfaga rápidamente desde la memoria caché, Squid requiere que ya exista una copia completa del mismo objeto en su almacenamiento.

Si un usuario de video proxy está viendo una transmisión de video y navega a una página diferente antes de que el video se descargue por completo, Squid no puede conservar la descarga parcial para reutilizarla y simplemente descarta los datos. Se requiere una configuración especial para forzar que dichas descargas continúen y se almacenen en caché. [19]

Sistemas operativos compatibles

Squid es compatible con muchos sistemas operativos , incluidos:

Véase también

Referencias

  1. ^ "Logotipo del Proyecto Squid" . Consultado el 6 de julio de 2014 .
  2. ^ "¿Quién se encarga del proyecto Squid?"
  3. ^ "squid-6.12". 11 de octubre de 2024. Consultado el 13 de octubre de 2024 .
  4. ^ squid-cache/squid, Squid, 27 de julio de 2022 , consultado el 27 de julio de 2022
  5. ^ "¿Cuál es el mejor sistema operativo para Squid?"
  6. ^ "Licencia de calamar".
  7. ^ ab C. Mic Bowman, Peter B. Danzig, Darren R. Hardy, Udi Manper, Michael F. Schwartz, El sistema de acceso y descubrimiento de información Harvest, Computer Networks and ISDN Systems, Volumen 28, números 1 y 2, diciembre de 1995, páginas 119 a 125. doi:10.1016/0169-7552(95)00098-5
  8. ^ "Squid para Windows". GitHub . Febrero de 2024. La compilación actual se basa en la última compilación de Squid 4 para Cygwin Windows de 64 bits
  9. ^ "Base de conocimientos de Squid-cache.org". Squid en Windows
  10. ^ Introducción de Squid, en el sitio web de Squid
  11. ^ El caché de cosecha ahora está disponible como un "acelerador httpd", por Mike Schwartz en la lista de correo http-wg, martes, 4 de abril de 1995, tal como lo envió Brian Behlendorf a la lista de correo de desarrolladores de Apache HTTP Server
  12. ^ "Patrocinadores de Squid". Archivado desde el original el 11 de mayo de 2007. Consultado el 13 de febrero de 2007. La NSF fue la principal fuente de financiación para el desarrollo de Squid entre 1996 y 2000. Dos subvenciones (#NCR-9616602, #NCR-9521745) recibidas a través de la División de Investigación e Infraestructura de Redes Avanzadas (ANIR) fueron administradas por la Universidad de California en San Diego.
  13. ^ de Duane Wessels Squid e ICP: pasado, presente y futuro, Actas del Grupo de usuarios de Unix de Australia, septiembre de 1997, Brisbane, Australia
  14. ^ "netcache.com". Archivado desde el original el 12 de noviembre de 1996. Consultado el 7 de agosto de 2012 .
  15. ^ "Preguntas frecuentes sobre Squid: ¿Squid funciona en Windows?"
  16. ^ "55 vulnerabilidades en el proxy de almacenamiento en caché de Squid y 35 vulnerabilidades de día cero". 11 de octubre de 2023.
  17. ^ Consulte la documentación de header_access y header_replace para obtener más detalles.
  18. ^ Véase, por ejemplo, Monitoreo de computadoras en el lugar de trabajo y su privacidad
  19. ^ "Referencia de configuración de Squid" . Consultado el 26 de noviembre de 2012 .
  20. ^ Puertos OS/2 por Paul Smedley, Puertos OS/2
  21. ^ "Base de conocimientos/Windows - Wiki de Squid Web Proxy".

Lectura adicional

  • Sitio web oficial
  • Blog de calamares
  • Guía del usuario de Squid
  • Proxy transparente Squid para DD-WRT
  • Guía de Palm WebOS: guía de instalación de Squid
  • Proxy inverso de Squid: crea un proxy inverso con Squid
  • Manual de configuración – Guía del manual de configuración de ViSolve Squid
  • Manual de configuración: opciones de configuración autorizadas de Squid
  • "Configuración de Solaris". Archivado desde el original el 15 de enero de 2008.– Configurar Squid en Solaris
  • SQUID – Instalación en CentOS, Fedora y Red Hat
Obtenido de "https://es.wikipedia.org/w/index.php?title=Squid_(software)&oldid=1232895519"