Proxyserver Squid optimieren
Virtueller Makler
Einleitung
Proxyserver Squid optimieren
Auch in Zeiten von DSL & Co. lässt sich ein lokaler Proxy-Server nach wie vor sinnvoll einsetzen. Zum einen beschleunigt dieser den Zugriff auf Daten im Internet, zum anderen spart der Proxy-Server den Abruf eines erheblichen Datenvolumens ein. Letzteres ist vor allem dann interessant, wenn anstatt einer Flatrate ein nach Download-Volumen angerechneter Tarif für den Internet-Zugang Verwendung findet.
Bei Squid handelt es sich um den am weitesten verbreiteten Proxy-Server für Unix- beziehungsweise Linux-Plattformen. Im folgenden Beitrag zeigt Internet Professionell, wie Sie mehr aus Squid herausholen. Grundsätzlich hat Squid eine Menge Schrauben, an denen man drehen kann. Jedoch arbeitet der Proxy-Server von sich aus bereits recht flott und stabil, so dass es nicht viel zu optimieren gibt. Internet Pro stellt Ihnen daher die Tipps vor, die Ihnen als Administrator den meisten Nutzen bringen.
Tipps&Tricks
Proxyserver Squid optimieren
So erläutert der Workshop unter anderem, wie Sie eigene Fehlermeldungen erzeugen oder die Bandbreite Ihres Internet-Zugangs steuern. Freilich decken die Tipps und Tricks nur einen Bruchteil der Möglichkeiten von Squid ab. Eine Erläuterung aller möglichen Features des Proxyservers würde jedoch den Rahmen dieses Beitrags sprengen.
Als Testobjekt dient ein aktuelles Suse Linux 9.0 Professional mit Squid in der Version 2.5. Da im Handbuch der Distribution die Installation und grundlegende Einrichtung des Proxy-Servers bereits sehr ausführlich beschrieben wird, gehen wir an dieser Stelle nicht näher darauf ein. Dieser Beitrag baut darauf auf, dass Sie bereits einen lauffähigen Squid auf Ihrem System eingerichtet haben. Ebenso wird vorausgesetzt, dass Sie mit der Einrichtung der Access-Control-Listen, kurz ACLs, vertraut sind.
Steuerung der Bandbreite
Proxyserver Squid optimieren
Auch die mittlerweile weithin verfügbaren flotten Internet-Verbindungen über DSL haben ihre Grenzen. Wenn zwei Mitarbeiter größere Datenmengen aus dem Internet laden, kann es schon mal passieren, dass die Bandbreite in die Knie geht und alle Mitarbeiter etwas länger auf ihre angeforderten Seiten warten müssen. Um die heutzutage stets knappe Bandbreite gleichmäßig und kontrolliert zu verteilen, bietet Squid anhand der so genannten Delay-Pools
die Möglichkeit einer begrenzten Bandbreitensteuerung.
Die Delay-Pools werden über zwei Werte definiert: restore und maximum. Mit restore bestimmen Sie dabei die Bandbreite in Byte pro Sekunde, mit maximum die maximale Datenmenge in Byte, die in einem Rutsch vom Proxy-Server übertragen wird. Dies bedeutet, dass die mit maximum festgelegte Datenmenge normal über das Netz übertragen wird, ohne weitere Begrenzung und mit voller Bandbreite. Erst alle Daten, welche über maximum liegen, werden von Squid so lange verzögert, bis die mit restore festgelegte durchschnittliche Bandbreite erreicht beziehungsweise nicht überschritten wird.
So steht einem Client die jeweils unter restore festgelegte Bandbreite im Durchschnitt zur Verfügung, ein Datenpaket in der unter maximum festgelegten Größe kann jedoch mit der vollen verfügbaren Bandbreite transportiert werden. Um die Delay-Pools unter Squid zu nutzen, muss der Proxyserver mit der configure-Option –enable-delay-pools installiert werden.
Bandbreitensteuerung einrichten
Proxyserver Squid optimieren
Wie alle anderen Optionen von Squid legen Sie auch die Delay-Pools in der zentralen Konfigurationsdatei squid.conf fest. Die entsprechenden Einstellungen hierfür finden Sie im Abschnitt DELAY POOL PARAMETERS.
Im ersten Schritt legen Sie fest, wie viele Delay-Pools Sie nutzen möchten. Dabei können Sie unterschiedlichen Benutzern oder Benutzergruppen jeweils eine eigene Bandbreite mit einem eigenen Delay-Pool zuweisen. Als Beispiel legen Sie zwei Delay-Pools an:
delay-pools 2
Die Option delay-class definiert für jeden Delay-Pool die zugehörige Klasse. Der Proxy-Server Squid kennt drei verschiedene Arten von Delay-Pools – Delay-Class 1 bis Delay-Class 3. Jede dieser Klassen besitzt unterschiedliche Parameter zur Festlegung der entsprechenden Bandbreite. Dabei ist die Klasse 1 die einfachste Form eines Delay-Pools. Hier wird die Bandbreite aller Verbindungen zusammengefasst und darf die festgelegte Bandbreite nicht übersteigen. Es werden alle Benutzer dieses Delay-Pools zusammen auf ein Maximum gesetzt.
Verschiedene Klassen
Proxyserver Squid optimieren
In der Klasse 2 kann zudem neben der Gesamtbandbreite aller Nutzer für jeden Client eine individuelle Bandbreitenbegrenzung festgelegt werden. Dies geschieht anhand des letzten Byte der IP-Adresse. In der Klasse 3 steht Ihnen zusätzlich noch eine Begrenzung für jedes Subnetz zur Verfügung.
In diesem Beispiel weisen Sie dem Delay-Pool 1 die Klasse 2 und dem Delay-Pool 2 die Klasse 3 zu:
delay-class 1 2
delay-class 2 3
Nun ist der an der Zeit, die Parameter
der Delay-Pools festzulegen – restore und maximum. Dies geschieht mit Hilfe der Option delay_parameters. Die Syntax ist dabei recht einfach: Sie geben den Delay-Pool an, gefolgt von den beiden Werten, welche wiederum durch einen Schrägstich getrennt werden:
delay_parameters 1 8192/16384 3600/3600
Beachten Sie dabei, dass der Wert für restore den für maximum natürlich nicht überschreiten darf, jedoch dürfen beide Werte gleich groß sein. Im obigen Beispiel betragen für den Delay-Pool 1 der Klasse 2 für alle Benutzer der restore-Wert 8192 Bytes pro Sekunde und der maximum-Wert 16384 Bytes pro Sekunde, für die einzelnen Nutzer sind beide Werte 3600 Bytes pro Sekunde. Die Angaben -1 für restore- oder maximum-Wert würde keine Begrenzung bedeuten. Bei einem Delay-Pool der Klasse 3 geben Sie zuerst die Werte für alle Nutzer, gefolgt von denen für das Subnetz und für die einzelnen Benutzer an.
Mit delay_access legen Sie fest, welche Anfrage in welchen Delay-Pool fällt. Dabei ist die Syntax die gleiche wie bei den Access-Regeln. Sie können über ACLs bestimmen, für welche Anfrage welcher Delay-Pool Anwendung findet:
delay_access pool allow|deny acl
In folgendem Beispiel definieren Sie den Zugriff auf den Delay-Pool 1 der Klas-
se 2 für das Klasse-C-Netz 192.168.1.0/
255.255.255.0:
acl vertrieb src 192.168.0.1/255.255.255.0
delay_pools 1
delay_class 1 2
delay_parameters 8192/16384 3600/3600
delay_access 1 allow vertrieb
delay_access 1 deny all
Als letzte Einstellung für die Delay-Pools steht delay_initial_bucket_level zur Verfügung. Damit bestimmen Sie die anfängliche Füllung eine Poll-Limits in Prozent beim Neustart von Squid. Dies dient dazu, Spitzenlast-Effekte zu vermeiden. Den Standardwert von 50 Prozent können Sie in der Regel ohne weitere Änderungen übernehmen.
Sprache für Fehlermeldungen
Proxyserver Squid optimieren
Der normale Nutzer im Netzwerk bekommt in der Regel vom Einsatz des Proxy-Servers nichts mit. Er gibt regulär im Adressfeld des Browsers die gewünschte Internet-Adresse ein, welche dann wie üblich im Browserfenster erscheint. Erst wenn etwas nicht funktioniert, tritt der Proxy-Server anhand von Fehlermeldungen in Erscheinung.
Dies ist beispielsweise der Fall, wenn der Anwender eine falsche Internet-Adresse eingibt, welche nicht existiert. Um zum einen dem User eine leicht
verständliche Meldung anzuzeigen und den Systemadministrator vor unnötigen Rückfragen zu verschonen, bietet Squid die Möglichkeit, die Sprache der Fehlermeldungen festzulegen und sogar eigene Meldungen für den Proxyserver zu generieren.
Zwar sind die meisten Fehlermeldungen für den Kenner sofort erkennbar, für den Anwender ohne Profi-Kenntnisse in diesem Bereich aber oft etwas verwirrend und wenig aussagekräftig.
Standardmäßig bringt Squid Fehlermeldungen in knapp 30 verschiedenen Sprachen mit. Die gewünschte Sprache legen Sie beim Übersetzen der Quellen mit der configure-Option –enable-err-language=lang fest. Dabei muss die Angabe der Sprache dem Namen des Verzeichnisses unter errors/ relativ zum Quellpfad entsprechen. In diesem Verzeichnis befindet sich also für jede unterstützte Sprache ein Unterverzeichnis. Dieses Unterverzeichnis enthält die jeweiligen Fehlermeldungen als HTML-Datei. Die Dateinamen beginnen alle mit ERR_, gefolgt von einer kurzen Beschreibung der Meldung, wie zum Beispiel ERR_INVALID_URL.
Wenn Sie Squid bereits installiert haben, können Sie die Sprache für die Fehlermeldungen auch nachträglich ändern. Hierzu legen Sie in der Datei squid.conf unter error_directory das entsprechende Verzeichnis fest. Für deutschsprachige Fehlermeldungen geben Sie Folgendes an:
error_directory /usr/share/squid/errors/German
Nach dem erneuten Einlesen der Datei squid.conf mit rcsquid reload erscheinen alle Fehlermeldungen nun auf Deutsch.
Eigene Fehlermeldungen
Proxyserver Squid optimieren
Neben den vorhandenen Fehlermeldungen können Sie auch eigene Meldungen erzeugen. Hierzu legen Sie je nach Sprache im entsprechenden Verzeichnis eine neue Datei an, deren Name mit ERR_ beginnt. Am einfachsten ist es, wenn Sie eine vorhandene Datei kopieren und nach Ihren Vorstellungen bearbeiten. In der Datei squid.conf können Sie dann Ihre neuen Fehlermeldungen über die Option deny_info einbinden. Damit wird die Fehlermeldung an eine Access-Control-Liste gebunden. Wird der Zugriff auf eine Ressource anhand dieser ACL verhindert, erscheint Ihre eigene Fehlermeldung.
Wenn Sie für Ihre neue Fehlermeldung eine der vorhandenen Dateien als Basis nehmen, fällt Ihnen sicher gleich auf, dass die HTML-Dateien nicht ordnungsgemäß abgeschlossen sind, also die beiden Tags