Squid (engl. für „Kalmar“) ist ein freier Proxyserver und Web-Cache, der unter der GNU General Public License steht. Er zeichnet sich vor allem durch seine gute Skalierbarkeit aus. Squid unterstützt die Netzwerkprotokolle HTTP/HTTPS, FTP über HTTP und Gopher.

Squid

Logo
Basisdaten

Entwickler Duane Wessels u. a.[1]
Erscheinungsjahr Juli 1996
Aktuelle Version 6.12[2]
(11. Oktober 2024)
Betriebssystem plattformübergreifend
Programmier­sprache C++[3]
Kategorie Proxyserver
Lizenz GPL (Freie Software)
deutschsprachig nein
www.squid-cache.org

Einsatzgebiete

Bearbeiten

Squid-Server können sowohl für sehr kleine Netze (5–10 Benutzer) als auch für sehr große Proxyverbunde in Weitverkehrsnetzen mit mehreren hunderttausend Benutzern eingesetzt werden.

Squid hat sich ebenfalls als transparenter Proxy bei ISPs (Internet Service Provider) bewährt. In dieser Funktion werden alle Anfragen von Kunden über den Proxy geleitet, was zur Beschleunigung der Datenübertragung sowie zur Reduktion der Datenrate des Providers führt. Häufig wird Squid auch als Reverse Proxy zum Schutz und zur Beschleunigung von Webservern eingesetzt. Ab Version 2.6 läuft Squid auch als HTTPS-Proxy. Damit wird die SSL-Verschlüsselung vom Webserver auf den Proxy verlagert.

Er kann auch mittels zusätzlicher Redirector-Software eine Filterfunktion wahrnehmen. Damit werden bestimmte Seiten oder Seiteninhalte nicht dargestellt, sondern stattdessen eine Ersatzseite oder Ersatzgrafik angezeigt. Dies wird oft zur Vermeidung von Werbeinhalten, aber auch zur Zensur von Webinhalten eingesetzt. Der SquidGuard, der mit Squid ausgeliefert wird, ist ein Programm, das diese Weiterleitungs-Funktionalität (in Squid mit ‚url_rewriter‘ bezeichnet) anwendet. Ein alternatives Produkt ist UfdbGuard, das zusätzlich zu den Filterfunktionen auch Erkennung und Blocken von Tunneln und nicht autorisierten Zertifikaten beherrscht.

In beschränktem, aber für praktische Zwecke oft ausreichendem Maß kann Squid über sogenannte „Delay-Pools“ auch zur Bandbreitenkontrolle eingesetzt werden. Dabei können Benutzerklassen (genauer gesagt Adressbereiche) definiert werden, die unterschiedliche Anteile bei der Leitungsnutzung haben. Einer Benutzerklasse kann ein Vorrat an Kapazität (Buckets) nach dem Token-Bucket-Algorithmus zugeordnet werden, der mit voller Datenrate aufgebraucht werden darf. Dadurch tritt die Beschränkung erst bei intensiver Nutzung auf, während bei „normaler“ Nutzung aus der Sicht des Anwenders die volle Datenrate zur Verfügung steht. Es ist konfigurierbar, wie viele nichtbenutzte Buckets eine Klasse ansparen kann, um bei Spitzen mit voller Datenrate bedient werden zu können. Was nicht möglich ist, ist die Zuordnung der vollen Kapazität, falls diese gerade verfügbar ist.

In gewissem Umfang kann Squid auch anonymisieren, indem bestimmte Header-Zeilen einer Web-Anfrage entfernt werden.

Da Squid sowohl das Internetprotokoll in der Version 4 als auch in der Version 6 gleichzeitig (Dual-Stack) beherrscht, kann er auch zwischen beiden Protokollen übersetzen.

Einsatz bei der Wikimedia Foundation

Bearbeiten

Ein gutes Beispiel für das Einsatzgebiet von Squid-Caches ist Wikipedia. Derzeit (Stand Dezember 2010) hat das Wikimedia-Projekt zirka 115 Squids weltweit im Einsatz. Diese Reverse Proxys halten viele Seiten im Speicher, damit häufige oder wiederholte Anfragen nicht immer von den Web- und Datenbankservern bearbeitet werden müssen. Diese Systeme bedienen hauptsächlich Seitenaufrufe von unangemeldeten Benutzern und halten über 75 % der Datenanfragen von den Webservern fern; die Effizienz der Webserver wird durch die Squid-Caches also mehr als vervierfacht.[4]

Geschichte

Bearbeiten

Squid wurde ursprünglich von Duane Wessels im Rahmen des Harvest project der University of Colorado at Boulder als der „Harvest object cache“ entwickelt.[5][6] Weitere Arbeit an der Software wurde an der University of California, San Diego vorgenommen und mit zwei Zuschüssen der National Science Foundation finanziert.[7] Duane Wessels führte eine Projektabspaltung von der letzten nicht-kommerziellen Version von Harvest durch und gab diesem Zweig den heutigen Namen Squid, um Verwechslung mit der anderen, kommerziell weitergeführten Version zu vermeiden, die sich Cached 2.0 nannte, aus der wiederum NetCache entwickelt wurde.[8][9] Version 1.0.0 von Squid wurde im Juli 1996 veröffentlicht.[8]

Squid wird mittlerweile fast ausschließlich in freiwilliger Arbeit weiterentwickelt.

Grafische Benutzeroberflächen

Bearbeiten

Es existieren grafische Benutzeroberflächen (GUI) zur Administration des Servers, zum Beispiel:

  • GADMIN SQUID als Teil der Sammlung GAdmintools, geschrieben in C/GTK+ für Linux-Desktops wie zum Beispiel Gnome oder KDE
  • SquidMan für macOS[10]
  • Webmin für die Online-Administration von Squid
Bearbeiten

Einzelnachweise

Bearbeiten
  1. Who looks after the Squid project? In: squid-cache.org. Abgerufen am 20. April 2017 (englisch).
  2. squid-6.12. 11. Oktober 2024 (abgerufen am 13. Oktober 2024).
  3. squid-cache/squid. Squid, 27. Juli 2022, abgerufen am 27. Juli 2022.
  4. http://meta.wikimedia.org/wiki/Wikimedia_servers
  5. Squid intro auf der Squid-Website
  6. Harvest cache now available as an „httpd accelerator“, geschrieben von Mike Schwartz über die http-wg-Mailingliste am Dienstag, dem 4. April 1995, von Brian Behlendorf an die Entwickler-Mailingliste des Apache HTTP Server weitergeleitet
  7. Past and Present Sponsors (Memento vom 2. Dezember 2015 im Webarchiv archive.today) (englisch).
  8. a b Duane Wessels Squid and ICP: Past, Present, and Future (Memento des Originals vom 30. Oktober 2005 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.life-gone-hazy.com, Proceedings of the Australian Unix Users Group. September 1997, Brisbane, Australien
  9. netcache.com (Memento vom 12. November 1996 im Internet Archive)
  10. About SquidMan. In: squidman.net. Abgerufen am 20. April 2017 (englisch).