GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Webmin

Squid-Proxy-Server

Dieser Artikel erklärt, was ein HTTP- oder FTP-Proxy-Server ist, und erklärt dann, wie Webmin verwendet werden kann, um den beliebten Squid-Proxy-Server zu konfigurieren.

Inhalt

Einführung in Proxying und Squid

Ein HTTP-Proxy-Server ist im Grunde ein Programm, das Anfragen von Clients nach URLs akzeptiert, sie im Namen des Clients abruft und die Ergebnisse an den Client zurückgibt. Proxys werden in Netzwerken verwendet, in denen Clients keinen direkten Zugriff auf das Internet haben, aber dennoch in der Lage sein müssen, Webseiten anzuzeigen. Ein Proxy wird auch zum Zwischenspeichern häufig angeforderter Seiten verwendet, sodass, wenn mehr als ein Client dieselbe Seite anzeigen möchte, sie nur einmal heruntergeladen werden muss.

Viele Unternehmen und Organisationen haben ihre Firewalls so eingerichtet, dass sie den gesamten eingehenden und ausgehenden Datenverkehr von Systemen in internen LANs blockieren. Dies kann aus Sicherheitsgründen erfolgen oder um den Zugriff der Mitarbeiter auf das Internet einzuschränken. Da das Anzeigen von Webseiten äußerst nützlich ist, wird häufig ein Proxy eingerichtet, über den auf Websites zugegriffen werden kann.

Große Organisationen und ISPs mit vielen Client-PCs, die auf das Internet zugreifen, möchten möglicherweise auch einen Proxy-Server betreiben, um die Belastung ihrer Netzwerke zu verringern. Da eine der Hauptaufgaben eines Proxys das Zwischenspeichern von Seiten ist, die von Clients angefordert werden, wird jede Seite, die mehr als einmal angefordert wird, aus dem Cache zurückgegeben, anstatt vom ursprünglichen Server abgerufen zu werden. Aus diesem Grund werden Client-Systeme oft so konfiguriert oder gezwungen, einen Caching-Proxy zu verwenden, um auf das Internet zuzugreifen.

Ein Proxy ist nur dann sinnvoll, wenn Client-Browser so konfiguriert sind, dass er verwendet wird, anstatt sich direkt mit Websites zu verbinden. Glücklicherweise kann jeder existierende Webbrowser und fast alle Programme, die Dateien für verschiedene Zwecke über HTTP herunterladen, so konfiguriert werden, dass sie einen Proxy verwenden. Dies weist sie an, stattdessen eine spezielle Proxy-HTTP-Verbindung zum Proxy-Server herzustellen und die vollständige URL zum Herunterladen anzugeben.

Proxys sind nicht nur für HTTP – sie können auch FTP- und Gopher-Protokollanfragen von Clients unterstützen, die sie bedienen, indem sie eine FTP- oder Gopher-Verbindung zum tatsächlich angeforderten Server herstellen. Auch verschlüsselte SSL-Verbindungen können von einem Proxy verarbeitet werden, auch wenn dieser die Anfrage nicht entschlüsseln kann. Stattdessen leitet der Proxy einfach alle Daten vom Client zum Zielserver und wieder zurück.

Squid ist der beliebteste Proxy-Server für Unix/Linux-Systeme. Es ist Open Source und kann kostenlos von www.squid-cache.org heruntergeladen werden und ist als Standardpaket in allen Linux-Distributionen und vielen anderen Betriebssystemen enthalten. Squid unterstützt sowohl Proxying, Caching als auch HTTP-Beschleunigung und verfügt über eine große Anzahl von Konfigurationsoptionen, um das Verhalten dieser Funktionen zu steuern.

Squid liest seine Konfiguration aus der Textdatei squid.conf, die normalerweise im oder unter dem /etc-Verzeichnis zu finden ist. Diese Datei besteht aus einer Reihe von Anweisungen, eine pro Zeile, von denen jede einen Namen und einen Wert hat. Jede Direktive legt eine Option fest, wie zum Beispiel den TCP-Port zum Abhören oder ein Verzeichnis zum Speichern von zwischengespeicherten Dateien. Das Squid-Modul von Webmin bearbeitet diese Datei direkt und ignoriert alle Kommentare oder Direktiven, die es nicht versteht.

Im Laufe der Jahre wurden viele Versionen von Squid veröffentlicht, von denen jede unterschiedliche Konfigurationsanweisungen unterstützt oder denselben Anweisungen unterschiedliche Bedeutungen zugewiesen hat. Dies bedeutet, dass eine squid.conf-Datei von Version 2.0 möglicherweise nicht mit Squid 2.5 kompatibel ist - und eine von Squid 2.5 wird sicherlich nicht mit Version 2.0 funktionieren. Glücklicherweise weiß Webmin, welche Direktiven jede Version unterstützt, und erlaubt nur die Bearbeitung derjenigen, die der laufenden Version von Squid bekannt sind.

Zwischengespeicherte Webseiten werden in Dateien in einer mehrstufigen Verzeichnisstruktur gespeichert, um die Leistung des Dateisystems zu erhöhen. Squid kann so konfiguriert werden, dass es mehrere separate Cache-Verzeichnisse verwendet, sodass Sie Dateien auf verschiedene Festplatten verteilen können, um die Leistung zu verbessern. Jedes Mal, wenn eine Cache-fähige Seite angefordert wird, wird sie in einer Datei gespeichert, sodass bei einer nachfolgenden Anforderung für dieselbe Seite die Datei gelesen und die Daten daraus bereitgestellt werden können. Da sich einige Webseiten im Laufe der Zeit ändern (oder sogar dynamisch generiert werden), verfolgt Squid die letzten Änderungs- und Ablaufdaten von Webseiten, sodass Daten aus dem Cache gelöscht werden können, wenn sie veraltet sind.

Das eigentliche Programm, das Client-Anfragen verarbeitet, ist ein permanent laufender Serverprozess namens squid. Es kann auch mehrere andere Unterprozesse für Aufgaben wie DNS-Lookups oder Client-Authentifizierung starten, aber die gesamte eigentliche HTTP-Protokollverarbeitung wird in dem einzelnen Master-Prozess durchgeführt. Im Gegensatz zu anderen ähnlichen Servern wie Apache oder Sendmail startet oder verwendet Squid keine Unterprozesse, um Client-Anfragen zu verarbeiten.

Squid kann auf allen von Webmin unterstützten Unix-Varianten kompiliert werden und funktioniert auf allen fast identisch. Das bedeutet, dass die Benutzeroberfläche des Webmin-Moduls auch auf allen Betriebssystemen gleich ist, mit Ausnahme der Standardpfade, die es für die Squid-Programme und Konfigurationsdateien verwendet.

Das Squid-Proxy-Server-Modul

Wenn Sie Squid in Webmin einrichten oder konfigurieren möchten, müssen Sie das Squid Proxy Server-Modul verwenden, das Sie in der Kategorie Server finden. Wenn auf das Symbol geklickt wird, erscheint die im folgenden Screenshot gezeigte Seite, vorausgesetzt, dass Squid korrekt installiert und konfiguriert ist. Wie Sie sehen können, besteht die Hauptseite nur aus einer Tabelle mit Symbolen, auf die Sie jeweils klicken können, um ein Formular zum Bearbeiten von Einstellungen in dieser Kategorie aufzurufen.


Die Hauptseite des Squid-Moduls

Wenn Sie Squid noch nie auf Ihrem System konfiguriert oder gestartet haben, wurde das Cache-Verzeichnis wahrscheinlich noch nicht eingerichtet. Das Modul erkennt dies und zeigt eine Meldung wie *Ihr Squid-Cache-Verzeichnis /var/spool/squid wurde nicht initialisiert* über der Symboltabelle an. Gehen Sie zum Initialisieren des Caches wie folgt vor  :

  1. Wenn Sie mit dem angezeigten Cache-Verzeichnis unzufrieden sind, ist es jetzt an der Zeit, es zu ändern. Befolgen Sie die Anweisungen im Abschnitt *Hinzufügen von Cache-Verzeichnissen*, um Ihre eigenen Verzeichnisse zu definieren, bevor Sie fortfahren.
  2. Im als Unix-Benutzer geben Sie den Namen des Benutzers ein, dem die Cache-Dateien gehören und als der der Daemon-Prozess ausgeführt wird. Normalerweise ist dies ein spezieller Squid-Benutzer, der für diesen Zweck erstellt wurde (und das Feld wird standardmäßig auf Squid gesetzt, wenn ein solcher Benutzer existiert), aber tatsächlich ist jeder Benutzer geeignet. Ich empfehle die Verwendung des Benutzer- und Gruppenmoduls (das in Kapitel 4 behandelt wird), um einen Benutzer namens squid zu erstellen, dessen Home-Verzeichnis das Cache-Verzeichnis ist, falls erforderlich.
  3. Klicken Sie auf Cache initialisieren Taste. Die Squid-Konfiguration wird aktualisiert, um Ihren gewählten Benutzernamen und den Befehl squid -z zu verwenden wird ausgeführt, um die Cache-Verzeichnisse einzurichten. Alle erzeugten Ausgaben werden angezeigt, damit Sie sehen können, wie die Initialisierung voranschreitet.
  4. Wenn der Vorgang abgeschlossen ist, kehren Sie zur Hauptseite des Moduls zurück und die Fehlermeldung sollte verschwunden sein.

Wenn Squid überhaupt nicht auf Ihrem System installiert ist (oder an einem anderen Ort als dem von Webmin erwarteten installiert ist), wird eine Fehlermeldung wie Die Squid-Konfigurationsdatei /etc/squid.conf existiert nicht angezeigt erscheint auf der Hauptseite anstelle der Symboltabelle. Wenn Sie es wirklich installiert haben, lesen Sie den Abschnitt *Konfigurieren des Squid-Proxy-Server-Moduls* für Anweisungen zum Ändern der Pfade, die das Modul verwendet. Wenn es andererseits wirklich nicht installiert ist, sollten Sie das Softwarepakete-Modul (unter SoftwarePackages) verwenden, um das Squid-Paket von Ihrer Linux-Distributions-CD oder -Website zu installieren.

Wenn für Ihr Betriebssystem kein solches Paket vorhanden ist, müssen Sie die neueste Version von Squid von www.squid-cache.org herunterladen, kompilieren und installieren. Solange Sie einen Compiler auf Ihrem System installiert haben, ist dies ein relativ einfacher Prozess ohne Abhängigkeiten.

Wenn Sie den Server nach der Installation langfristig nutzen möchten, sollten Sie dafür sorgen, dass er beim Booten gestartet wird, indem Sie das Bootup- und Shutdown-Modul verwenden (dessen Verwendung in Kapitel 9 erklärt wird). Alle Linux-Pakete enthalten ein Boot-Aktionsskript für Squid, obwohl es möglicherweise standardmäßig deaktiviert ist und Sie es daher in diesem Modul aktivieren müssen. Andernfalls müssen Sie eine Aktion erstellen, die einen Befehl wie
/usr/local/squid/bin/squid  -sY
ausführt , vorausgesetzt, Sie haben Squid in /usr/local/squid installiert.

Sobald Squid installiert und initialisiert wurde, können Sie dieses Modul verwenden. Wenn Squid ausgeführt wird, hat jede Seite oben zwei Links - Änderungen übernehmen was ein erneutes Lesen der aktuellen Konfiguration erzwingt, und Squid stoppen wodurch der Proxy-Server heruntergefahren wird. Wenn der Server nicht läuft, werden diese Links stattdessen durch *Start Squid* ersetzt, was, wie der Name schon sagt, versucht, ihn zu starten. Wenn es noch nicht ausgeführt wird, möchten Sie es wahrscheinlich jetzt starten.

Da jede Version von Squid neue Konfigurationsanweisungen eingeführt hat, wird die Benutzeroberfläche dieses Moduls anders aussehen, je nachdem, welche Version von Squid es auf Ihrem System erkennt. Alle Anweisungen in diesem Kapitel wurden für Squid 2.4 geschrieben, da es derzeit die am weitesten verbreitete Version ist. Wenn Sie eine ältere oder neuere Version verwenden, erscheinen möglicherweise andere Felder auf den Formularen oder haben mehr oder weniger Optionen. Beispielsweise hat jede neue Version unterschiedliche ACL-Typen eingeführt, und die Authentifizierung wurde in der Geschichte des Programms auf drei verschiedene Arten gehandhabt. Die Grundkonzepte waren jedoch immer gleich.

Wenn Sie dieses Modul verwenden, stellen Sie sicher, dass Ihr Browser so konfiguriert ist, dass er nicht den Squid-Proxy verwendet, um auf Ihren Webmin-Server zuzugreifen. Sonst läuft man Gefahr, sich durch einen Konfigurationsfehler den eigenen Zugriff auf das Modul abzuschneiden oder den Serverprozess herunterzufahren. Alle Browser, die einen Proxy verwenden können, haben ein Feld zum Auflisten von Hosts, mit denen Sie sich direkt verbinden können, in das Sie den Hostnamen Ihres Webmin-Servers eingeben können.

Ändern der Proxy-Ports und -Adressen

Standardmäßig wartet Squid auf Proxy-Anfragen auf TCP-Port 3128 auf allen IP-Adressen Ihres Systems. Da dies nicht der übliche Port ist, auf dem Proxys ausgeführt werden (8000 und 8080 scheinen am häufigsten zu sein), möchten Sie ihn möglicherweise ändern. Möglicherweise möchten Sie auch die Listening-Adresse bearbeiten, sodass nur Clients in Ihrem internen Netzwerk eine Verbindung herstellen können, wenn Ihr System über mehr als eine Netzwerkschnittstelle verfügt.

Führen Sie die folgenden Schritte aus, um die von Squid verwendeten Ports anzugeben:

  1. Klicken Sie auf der Hauptseite des Moduls auf Ports and Networking Symbol, um das in Abbildung 44-2 gezeigte Formular aufzurufen.
  2. In den Proxy-Adressen und Ports Tabelle, wählen Sie die Option *Unten aufgeführt*. In der folgenden Tabelle definiert jede Zeile einen Überwachungsport und optional eine Adresse, an die gebunden werden soll. Alle vorhandenen Ports und Adressen werden aufgelistet, gefolgt von einer einzelnen leeren Zeile zum Hinzufügen einer neuen. Im ersten leeren Feld im Port Geben Sie in der Spalte eine Portnummer wie 8000 ein oder 8080 . Wählen Sie in der Spalte *Hostname/IP-Adresse* entweder Alle aus um Verbindungen auf allen Schnittstellen Ihres Systems zu akzeptieren, oder die zweite Option, um eine IP-Adresse in das angrenzende Textfeld einzugeben. Mithilfe dieser Tabelle kann Squid so konfiguriert werden, dass es auf beliebig vielen Ports lauscht. Da jedoch jeweils nur eine leere Zeile angezeigt wird, müssen Sie das Formular speichern und erneut öffnen, um mehr als einen neuen Port hinzuzufügen.
  3. ICP ist ein Protokoll, das von Squid verwendet wird, um mit anderen Proxys in einem Cluster zu kommunizieren. Um einen anderen Port als den Standardport 3130 für ICP abzuhören, füllen Sie den ICP-Port aus Feld. Dies ist jedoch im Allgemeinen nicht erforderlich, da nur andere Proxies dieses Protokoll verwenden.
  4. Squid akzeptiert normalerweise ICP-Verbindungen auf jeder IP-Adresse. Um dies zu ändern, wählen Sie das zweite Optionsfeld im Feld *Eingehende UDP-Adresse* und geben Sie eine der Schnittstellen-IPs Ihres Systems in das Textfeld ein. Dies kann nützlich sein, wenn sich alle anderen Proxys, mit denen Ihr Server möglicherweise kommunizieren möchte, in einem einzigen internen LAN befinden.
  5. Klicken Sie auf Speichern Schaltfläche unten auf der Seite, um die Konfigurationsdatei mit Ihren neuen Einstellungen zu aktualisieren, und klicken Sie dann auf den Link *Änderungen übernehmen* zurück auf der Hauptseite, um sie zu aktivieren.


Das Ports- und Netzwerkformular

Cache-Verzeichnisse hinzufügen

In seiner üblichen Standardkonfiguration verwendet Squid ein einzelnes Verzeichnis zum Speichern von zwischengespeicherten Seiten. In diesem Verzeichnis werden höchstens 100 MB Daten gespeichert, was wahrscheinlich nicht ausreicht, wenn eine große Anzahl aktiver Clients bedient werden. Wenn Ihr System über mehr als eine Festplatte verfügt, ist es sinnvoll, den Cache auf mehrere Festplatten zu verteilen, um die Leistung zu verbessern. Dies kann durch die Angabe mehrerer Verzeichnisse erfolgen, jedes mit seiner eigenen maximalen Größe.

Auf einem System, das für die Ausführung eines Proxy-Servers vorgesehen ist, sollte die maximale Menge, die in jedem Verzeichnis zwischengespeichert werden soll, etwa 90 % des verfügbaren Speicherplatzes betragen. Es ist unklug, Squid zu konfigurieren oder zuzulassen, dass es den gesamten freien Speicherplatz belegt, da viele Dateisysteme unter Leistungseinbußen leiden, wenn sie fast voll sind. Darüber hinaus kann Speicherplatz auch von Protokolldateien und Benutzerdaten belegt werden. Wenn Squid Ihre gesamte Festplatte füllt, können Probleme auftreten, da andere Programme keine temporären Dateien erstellen oder in Protokolle schreiben können.

Führen Sie die folgenden Schritte aus, um ein neues Cache-Verzeichnis hinzuzufügen und die maximale Größe für das vorhandene festzulegen:

  1. Klicken Sie auf die Cache-Optionen Symbol auf der Hauptseite des Moduls, um das im Screenshot unten gezeigte Formular aufzurufen.
  2. In den Cache-Verzeichnissen Wählen Sie im Feld Aufgelistet aus Möglichkeit. Wenn Standard zuvor ausgewählt wurde, hat Squid das einzige einkompilierte Standard-Cache-Verzeichnis verwendet, das in Klammern angezeigt wird. Wenn Sie dieses Verzeichnis weiterverwenden möchten, muss es explizit in die Tabelle eingetragen werden. Die Standardgröße beträgt 100 MB und es werden 16 Verzeichnisse der 1. Ebene und 256 Verzeichnisse der 2. Ebene verwendet. Jede Zeile in der Tabelle gibt ein einzelnes Cache-Verzeichnis an. Alle vorhandenen Verzeichnisse (außer dem Standardverzeichnis) werden aufgelistet, damit Sie sie bearbeiten können, gefolgt von einer einzelnen leeren Zeile. Jede Zeile enthält Felder unter den folgenden Spalten :
    • Verzeichnis Der vollständige Pfad zum Cache-Verzeichnis der obersten Ebene, z. B. /var/spool/squid oder /disk2/cache . Dieses Verzeichnis muss bereits existieren und dem Benutzer gehören, unter dem Squid läuft (normalerweise Squid genannt) - das Modul wird es nicht für Sie erstellen.
    • Typ Der im Verzeichnis verwendete Speichertyp. Sie sollten immer UFS auswählen hier.
    • Größe (MB) Die maximale Datenmenge, die es enthalten wird, in Megabyte. Sobald dieses Limit erreicht ist, werden die ältesten nicht angeforderten Dateien durch neue ersetzt.
    • Verzeichnisse der 1. Ebene Die Anzahl der Unterverzeichnisse, die unter dem Cache-Verzeichnis erstellt werden. Der Standardwert von 16 ist normalerweise in Ordnung, aber Sie können ihn für sehr große Caches erhöhen.
    • Verzeichnisse der zweiten Ebene Die Anzahl der Unterverzeichnisse, die unter jedem Verzeichnis der ersten Ebene erstellt werden. Sie sollten einfach 256 eingeben, es sei denn, Ihr Cache wird sehr groß.
    • Optionen Lassen Sie dieses Feld leer – es wird nur für andere Verzeichnistypen verwendet. Wenn Sie sich fragen, warum Squid zwei Ebenen von Unterverzeichnissen unter jedem Cache-Verzeichnis erstellen muss, liegt der Grund in der schlechten Leistung vieler Dateisysteme, wenn ein Verzeichnis eine große Anzahl von Dateien enthält. Da jede einzelne zwischengespeicherte HTML-Seite oder jedes einzelne Bild in einer separaten Datei gespeichert wird, kann die Anzahl der Dateien auf einem ausgelasteten Proxy-System enorm sein. Das Verteilen auf mehrere Verzeichnisse löst dieses Problem.
  1. Nachdem Sie ein Verzeichnis hinzugefügt haben, klicken Sie auf Speichern Schaltfläche unten auf der Seite. Wenn Sie mehr als einen hinzufügen möchten, müssen Sie auf die Cache-Optionen klicken Symbol erneut, um die Tabelle mit einer neuen leeren Zeile wieder anzuzeigen.
  2. Wenn Sie mit der Definition der Verzeichnisse fertig sind, kehren Sie zur Hauptseite des Moduls zurück. Wenn ein neues hinzugefügt wurde, wird eine Fehlermeldung wie Ihre Squid-Cache-Verzeichnisse wurden nicht initialisiert angezeigt wird Angezeigt werden. Klicken Sie auf Cache initialisieren Schaltfläche, damit Squid alle Unterverzeichnisse in allen neuen Cache-Verzeichnissen erstellt. Der Server wird während des Vorgangs heruntergefahren und

neu gestartet, wenn es fertig ist.

  1. Nachdem die Initialisierung abgeschlossen ist, klicken Sie auf Änderungen übernehmen Link auf einer beliebigen Seite, um mit der Verwendung Ihrer neuen Verzeichnisse zu beginnen.


Das Cache-Optionsformular

Caching- und Proxy-Optionen bearbeiten

Squid verfügt über zahlreiche Einstellungen, die die Größe von zwischengespeicherten Objekten, die Größe von Client-Anforderungen und die Arten von Seiten, die zwischengespeichert werden sollen, begrenzen. Sie können verwendet werden, um zu verhindern, dass der Server riesige Dateien speichert (z. B. heruntergeladene ISO-Images), um die Größe der Dateien zu begrenzen, die Clients hochladen oder herunterladen können, und um den Cache von Seiten zu verhindern, die sich häufig ändern (z. B. solche, die von CGI-Skripten generiert werden). ). Die Standardeinstellungen funktionieren im Allgemeinen jedoch gut, mit der möglichen Ausnahme der maximalen Upload-Größe, die nur 1 MB beträgt.

Gehen Sie folgendermaßen vor, um die Caching-Optionen zu bearbeiten :

  1. Klicken Sie auf die Cache-Optionen Symbol auf der Hauptseite, um das Formular erneut anzuzeigen.
  2. Um die maximale Größe der hochgeladenen Dateien festzulegen, wählen Sie die zweite Option unter Maximale Größe des Anfragetexts aus Geben Sie eine Zahl in das Textfeld ein und wählen Sie einige Einheiten aus dem Menü aus. 10 oder 100 MB sollten für jeden mehr als genug sein.
  3. Um zu verhindern, dass Clients große Dateien herunterladen, füllen Sie das Feld *Maximale Größe des Antworttexts* auf die gleiche Weise aus. Dies kann verwendet werden, um den Missbrauch Ihres Netzwerks durch Clients zu verhindern, die riesige Filme oder ISO-Dateien herunterladen, kann aber oft untergraben werden, indem eine große Datei in Teilen heruntergeladen wird.
  4. Wenn Sie eine Obergrenze für die Datei festlegen möchten, die eine Seite im Cache gespeichert werden kann, geben Sie die Maximale Cache-Zeit ein statt es auf Standard zu belassen . Andernfalls werden Daten bis zu einem Jahr oder bis zu dem vom Ursprungsserver festgelegten Ablaufdatum zwischengespeichert.
  5. Squid speichert nicht nur heruntergeladene Dateien im Cache, sondern merkt sich auch Fehlermeldungen von Servern und gibt sie an Clients zurück, die dieselbe Seite anfordern. Sie können die Zeitspanne ändern, für die Fehler zwischengespeichert werden, indem Sie eine Zahl eingeben und Einheiten in der Cachezeit für fehlgeschlagene Anfragen auswählen Feld. Wenn Standard ausgewählt ist, werden Fehler für 5 Minuten zwischengespeichert. Aber auch das kann ärgerlich lang werden, wenn Sie gerade einen Fehler auf einer Website behoben haben.
  6. Squid speichert die Antworten auf Hostnamen-Lookups zwischen, um die Menge an DNS-Aktivität zu reduzieren, unabhängig von den TTLs, die die DNS-Server bereitstellen. Wenn Standard im Feld *DNS-Lookup-Cache-Zeit* ausgewählt ist, werden die Antworten 6 Stunden lang gespeichert. Wenn Ihnen das zu lang erscheint, wählen Sie das zweite Optionsfeld und geben Sie stattdessen Ihre eigene Cache-Zeit ein.
  7. Die URLs nicht für ACLs zwischenspeichern Feld kann verwendet werden, um das Caching für bestimmte URLs, Webserver oder Clients vollständig zu verhindern. Jede Anforderung, die mit einer der in diesem Feld überprüften ACLs übereinstimmt, wird niemals zwischengespeichert und daher immer direkt abgerufen. Sie können diese Funktion verwenden, um das Caching dynamisch generierter Seiten zu blockieren, indem Sie einen URL Path Regexp erstellen ACL für .cgi oder cgi-bin und hier auswählen. Weitere Informationen zur Funktionsweise und Definition von ACLs finden Sie im Abschnitt *Zugriffskontrolllisten verwenden*.
  8. Klicken Sie auf Speichern Schaltfläche unten auf der Seite, um zum Hauptmenü zurückzukehren. Da sich einige zusätzliche Caching-Optionen auf dem Formular zur Speicher- und Festplattennutzung befinden, klicken Sie auf Speichernutzung Symbol, um es anzuzeigen.
  9. Um die von Squid verwendete Speichermenge zu begrenzen, geben Sie das Speichernutzungslimit ein Feld. Beachten Sie, dass sich diese Begrenzung nur auf den maximalen Speicher auswirkt, der zum Speichern von Dateien während der Übertragung und häufig aufgerufener Dateien sowie negativer Antworten verwendet wird. Da Squid den Speicher für andere Zwecke verwendet, wird er sicherlich mehr verbrauchen, als Sie hier eingeben. Wenn Standard ausgewählt ist, wird ein Limit von 8 MB erzwungen, was wahrscheinlich zu niedrig für einen ausgelasteten Server ist.
  10. Um das Caching großer Dateien zu verhindern, füllen Sie das Feld *Maximale Objektgröße im Cache* aus. Der Standardwert beträgt nur 4 MB. Wenn Sie also über ausreichend Speicherplatz verfügen, sollte dieser unbedingt erhöht werden.
  11. Klicken Sie auf Speichern unten im Formular und dann auf Änderungen übernehmen Link auf der Hauptseite, um alle Ihre neuen Einstellungen zu aktivieren.

Einführung in Zugriffskontrolllisten

ACLs (Zugriffskontrolllisten) sind möglicherweise Squids leistungsstärkste Funktion. Eine ACL ist einfach ein Test, der auf eine Client-Anforderung angewendet wird, um zu sehen, ob sie übereinstimmt oder nicht. Basierend auf den ACLs, mit denen jede Anfrage übereinstimmt, können Sie sie dann blockieren, das Caching verhindern, sie in einen Verzögerungspool zwingen oder sie an einen anderen Proxyserver übergeben. Es gibt viele verschiedene ACL-Typen – zum Beispiel prüft ein Typ die IP-Adresse eines Clients, ein anderer stimmt mit der angeforderten URL überein, während andere den Zielport, den Hostnamen des Webservers, den authentifizierten Benutzer usw. prüfen.

Die häufigste Verwendung von ACLs ist das Blockieren von Verbindungen von Clients außerhalb Ihres Netzwerks. Wenn Sie einen Proxy-Server betreiben, der mit dem Internet verbunden und von dort aus zugänglich ist, sollte es Hosts außerhalb Ihres lokalen Netzwerks nicht gestattet sein, ihn zu verwenden. Böswillige Personen verwenden häufig andere Proxys, um Verbindungen zu waschen, die zum Hacken, Versenden von Spam oder zum Zugreifen auf Websites verwendet werden, die ihnen nicht gestattet werden sollten.

Da die spezielle CONNECT-Proxy-Anforderung verwendet werden kann, um sich mit jedem Port zu verbinden, wird häufig eine ACL verwendet, um ihre Verwendung für alle Ports außer 443 (dem SSL-Standard) zu blockieren. Dadurch wird verhindert, dass Benutzer Ihren Proxy verwenden, um sich mit anderen Servern als Webservern wie AIM, ICQ oder MSN zu verbinden. Ebenso kann eine ACL eingerichtet werden, um normale HTTP-Anfragen an Ports wie 22, 23 und 25 zu blockieren, die normalerweise für SSH, Telnet und SMTP verwendet werden.

Das bloße Definieren einer ACL in der Squid-Konfiguration bewirkt eigentlich nichts – sie muss auf irgendeine Weise angewendet werden, um eine Wirkung zu erzielen. In diesem Abschnitt wird erläutert, wie Sie sie verwenden, um zu steuern, welche Anforderungen an Ihren Server zugelassen oder abgelehnt werden. In anderen Abschnitten wird erklärt, wie sie sich auf das Caching und den Zugriff auf andere Server beziehen.

Wenn es eine Anfrage erhält, bestimmt Squid zuerst, mit welchen ACLs es übereinstimmt. Anschließend vergleicht es diese Liste von Übereinstimmungen mit einer Liste von Proxy-Einschränkungen, von denen jede eine oder mehrere ACLs und eine auszuführende Aktion (entweder Erlauben oder Verweigern) enthält. Sobald eine Einschränkung gefunden wird, die den ACLs für die Anfrage entspricht, bestimmt ihre Aktion, ob die Anfrage zugelassen oder abgelehnt wird. Wenn keine Einschränkungen übereinstimmen, wird das Gegenteil der letzten Aktion in der Liste angewendet. Aus diesem Grund ist die letzte Aktion in den meisten Squid-Konfigurationen Alle zulassen oder Alle ablehnen .

ICP-Anforderungen von anderen Proxys werden ebenfalls überprüft, um festzustellen, mit welchen ACLs sie übereinstimmen, und mit einer ähnlichen, aber unterschiedlichen Liste von ICP-Einschränkungen verglichen, um festzustellen, ob sie zulässig sind oder nicht. Siehe Mit anderen Proxys verbinden Abschnitt später für eine komplexere Erklärung dessen, was ICP ist und wann es verwendet wird.

Die typische Squid-Standardkonfiguration umfasst mehrere ACLs und Proxy-Einschränkungen. Aus Sicherheitsgründen werden standardmäßig alle Anfragen von überall abgelehnt. Dies bedeutet, dass Sie die Einschränkungsliste ändern müssen, bevor jemand Ihren Proxy verwenden kann. Lesen Sie weiter, um herauszufinden, wie.

Um die Listen der definierten ACLs, Proxy-Einschränkungen und ICP-Einschränkungen anzuzeigen, klicken Sie auf Zugriffskontrolle Symbol auf der Hauptseite des Moduls. Wie das Bild unten zeigt, wird auf der linken Seite eine Tabelle mit ACLs mit ihren Namen, Typen und Übereinstimmungen angezeigt. Auf der rechten Seite befinden sich Tabellen mit Proxy- und ICP-Einschränkungen, die ihre Aktionen und die ACLs zeigen, denen sie entsprechen. Die Einschränkungstabellen haben neben jedem Eintrag Aufwärts- und Abwärtspfeile, um sie in der Liste zu verschieben, da ihre Reihenfolge wichtig ist.


Die Seite Zugriffskontrolllisten

Bevor Clients Ihren Proxy verwenden können, müssen Sie ihn konfigurieren, um den Zugriff von einigen Adressen zuzulassen. Die Schritte dazu sind :

  1. Wählen Sie auf der Zugriffssteuerungsseite Client-Adresse aus aus dem Menü unterhalb der Liste vorhandener ACLs. Wenn Sie auf Neue ACL erstellen klicken klicken, erscheint ein Formular zur Eingabe übereinstimmender Adressen.
  2. Im ACL-Namen Geben Sie im Feld einen Kurznamen ein, z. B. IhrNetzwerk .
  3. Im leeren Feld unter Von IP Geben Sie die Start-IP-Adresse im zulässigen Bereich ein, z. B. 192.168.1.1.
  4. Wenn das Feld unter An IP Geben Sie die Endadresse im Bereich ein, z. B. 192.168.1.100 . Nur Clients, die in diesen Bereich fallen, stimmen mit der ACL überein. Geben Sie nichts in die Netzmaske ein Feld.
  5. Alternativ können Sie ein IP-Netzwerk angeben, indem Sie die Netzwerkadresse in das Feld Von IP eingeben Feld und die Netzmaske (wie 255.255.255.0 ) in die Netzmaske Feld. Um mehr als eine einzugeben, müssen Sie diese ACL speichern und erneut bearbeiten, damit neue leere Felder angezeigt werden.
  6. Klicken Sie auf Speichern , um die ACL hinzuzufügen und zur Zugriffssteuerungsseite zurückzukehren, auf der Ihre neue ACL aufgelistet wird.
  7. Klicken Sie auf Proxy-Einschränkung hinzufügen unter den Proxy-Einschränkungen Tisch.
  8. Wählen Sie im angezeigten Formular Zulassen aus aus der Aktion Feld.
  9. In den ACLs abgleichen Liste, wählen Sie Ihr neues IhrNetzwerk aus ACL.
  10. Klicken Sie auf Speichern Schaltfläche auf diesem Formular, um wieder zur Zugriffskontrollseite zurückzukehren. Die neue Einschränkung wird am Ende der Tabelle angezeigt, höchstwahrscheinlich unter Alle ablehnen Eintrag.
  11. Klicken Sie neben Ihrer neuen Einschränkung auf den Aufwärtspfeil, um sie über Alle ablehnen zu verschieben . Dies weist Squid an, Verbindungen von Ihrem Netzwerk zuzulassen und alle anderen abzulehnen.
  12. Klicken Sie abschließend auf Änderungen übernehmen Link oben auf der Seite. Der Proxy kann nun von Clients in Ihrem internen Netzwerk verwendet werden, aber von niemandem sonst!

Diese Anweisungen gehen davon aus, dass Sie mit der standardmäßigen Squid-Konfiguration beginnen. Wenn der Proxy bereits so konfiguriert wurde, dass er den Zugriff von überall zulässt (durch Ändern der Option Alle ablehnen Beschränkung auf Alle zulassen ), sollten Sie es wieder zurücksetzen, um Clients von außerhalb Ihres Netzwerks zu blockieren. Um mehr über die verfügbaren ACL-Typen und ihre Verwendung zu erfahren, lesen Sie die nächsten beiden Abschnitte.

ACLs erstellen und bearbeiten

Bevor Sie Anfragen von einer Adresse, einem Server oder für eine Seite blockieren oder zulassen können, müssen Sie eine entsprechende ACL erstellen. Die grundlegenden Schritte dazu sind :

  1. Wählen Sie den zu erstellenden ACL-Typ aus dem Dropdown-Menü unter der Tabelle *Zugriffskontrolllisten* aus und klicken Sie auf die Schaltfläche* Neue ACL erstellen*.
  2. Geben Sie im angezeigten Formular unter ACL-Name einen Namen für Ihre neue ACL ein Feld. Wenn mehr als eine den gleichen Namen hat, wird sie als übereinstimmend behandelt, wenn eine ACL mit diesem Namen übereinstimmt. Der Name sollte nur aus Buchstaben und Zahlen bestehen, ohne Leerzeichen oder Sonderzeichen.
  3. Füllen Sie den Rest des Formulars wie in der nachstehenden Tabelle erläutert aus.
  4. In der Fehler-URL Geben Sie im Feld eine vollständige URL ein, zu der Clients, die von dieser ACL abgelehnt werden, umgeleitet werden. Auf diese Weise können Sie benutzerdefinierte Fehlerseiten definieren, die anstelle der standardmäßigen Squid-Antworten angezeigt werden.
  5. Klicken Sie auf Speichern Schaltfläche am unteren Rand des Formulars.

Sobald eine ACL erstellt wurde, können Sie sie bearbeiten, indem Sie auf ihren Namen in der Liste klicken, die Felder ändern und auf Speichern klicken . Oder Sie können es mit Löschen löschen (wenn es nicht von einer Proxy- oder ICP-Einschränkung verwendet wird). Taste. Wie üblich, die Änderungen übernehmen Der Link muss verwendet werden, um alle von Ihnen vorgenommenen Änderungen zu aktivieren.

Squid hat eine erstaunliche Anzahl von ACL-Typen, obwohl nicht alle in allen Versionen des Servers verfügbar sind. Die folgende Tabelle listet diejenigen auf, die Sie für Squid 2.4 erstellen können, und erklärt, was sie tun und was die Felder im Erstellungsformular für eine ACL jedes Typs bedeuten:

Viele Arten von ACL sind für bestimmte Situationen ungeeignet. Wenn beispielsweise ein Client eine CONNECT-Anforderung sendet, ist der URL-Pfad nicht verfügbar und somit ein URL-Pfad-Regexp ACL funktioniert nicht. In solchen Fällen wird automatisch davon ausgegangen, dass die ACL nicht übereinstimmt.

Proxy-Einschränkungen erstellen und bearbeiten

Sobald Sie einige ACLs erstellt haben, können sie verwendet werden, indem Sie Proxy-Einschränkungen erstellen, bearbeiten und verschieben. Squid vergleicht jede Anfrage der Reihe nach mit allen definierten Einschränkungen und stoppt, wenn es eine Übereinstimmung findet. Die für diese Einschränkung festgelegte Aktion bestimmt dann, ob die Anforderung zugelassen oder abgelehnt wird. Dieses Verarbeitungssystem in Kombination mit der Leistungsfähigkeit von ACLs ermöglicht es Ihnen, einige unglaublich komplexe Zugriffskontrollregeln einzurichten - Sie könnten beispielsweise allen Zugriff auf Websites mit Beben verweigern in der URL von Montag bis Freitag zwischen 9:00 und 17:00 Uhr, mit Ausnahme bestimmter Kundenadressen.

Führen Sie die folgenden Schritte aus, um eine Proxy-Einschränkung zu erstellen:

  1. Klicken Sie auf die Zugriffskontrolle Symbol auf der Hauptseite des Moduls, um die im obigen Screenshot gezeigte Seite aufzurufen.
  2. Klicken Sie auf Proxy-Einschränkung hinzufügen unter der Liste der bestehenden Einschränkungen, um zum Erstellungsformular zu gelangen.
  3. Aus der Aktion Feld wählen Sie entweder Zulassen oder Verweigern abhängig davon, ob übereinstimmende Anfragen verarbeitet werden sollen oder nicht.
  4. Die Übereinstimmungs-ACLs list kann verwendet werden, um mehrere ACLs auszuwählen, die die Aktion auslösen, wenn alle übereinstimmen. Ebenso die Don't match ACLs können verwendet werden, um ACLs auszuwählen, die nicht übereinstimmen dürfen, damit die Aktion ausgelöst wird. Es ist absolut zulässig, eine Auswahl aus beiden Listen zu treffen, um anzugeben, dass die Aktion nur ausgelöst werden soll, wenn alle ACLs auf der linken Seite übereinstimmen und wenn die auf der rechten Seite nicht übereinstimmen. In seiner Standardkonfiguration hat Squid eine ACL namens all das passt zu allen Anfragen. Es kann nützlich sein, um Einschränkungen zu erstellen, die jeden zulassen oder verweigern, von denen normalerweise eine standardmäßig vorhanden ist.
  5. Klicken Sie auf Speichern Schaltfläche, um die neue Einschränkung zu erstellen und zur Zugriffssteuerungsseite zurückzukehren.
  6. Verwenden Sie die Pfeile daneben in den Proxy-Einschränkungen Tabelle, um sie an die richtige Stelle zu verschieben. Wenn Ihre Liste mit Alle ablehnen endet Eintrag, müssen Sie ihn von unten verschieben, damit er Wirkung zeigt. Wenn die Liste einen Eintrag enthält, der alle Clients aus Ihrem Netzwerk zulässt, und Sie gerade eine Einschränkung hinzugefügt haben, um den Zugriff auf einige Websites zu verweigern, müssen Sie ihn über Zulassen verschieben Eintrag, damit es verwendet werden kann.
  7. Wenn Sie mit dem Erstellen und Positionieren von Beschränkungen fertig sind, klicken Sie auf Änderungen übernehmen Link oben in der

Seite, um sie zu aktivieren.

Nachdem eine Proxy-Einschränkung erstellt wurde, können Sie sie bearbeiten, indem Sie auf den Link in der Aktion klicken Spalte für ihre Zeile in der Tabelle. Dadurch wird ein Bearbeitungsformular angezeigt, das mit dem zum Erstellen der Einschränkung identisch ist, jedoch mit Speichern und Löschen Knöpfe unten. Ersteres speichert alle Änderungen, die Sie an der Aktion oder an übereinstimmenden ACLs vornehmen, während letzteres die Einschränkung vollständig aufhebt. Auch hier die Änderungen übernehmen Link muss nach dem Aktualisieren oder Löschen einer Einschränkung verwendet werden, um die Änderung zu aktivieren. Wenn Sie aus irgendeinem Grund alle Proxy-Einschränkungen löschen, lässt Squid alle Anfragen von allen Clients zu, was wahrscheinlich keine gute Idee ist.

Auf der Zugriffssteuerungsseite befindet sich auch eine Tabelle zum Bearbeiten und Erstellen von Einschränkungen, die für ICP-Anforderungen gelten. As the *Connecting to other proxies* section explains, ICP is a protocol used by Squid proxies in a cluster or hierarchy to determine what URLs other servers have cached. You can add to and edit entries in the ICP restrictions table in exactly the same way as you would for proxy restrictions. If you really are running a cluster of proxies, it may make sense to block ICP requests from sources other than your own network. If not, the default setup that allows all ICP packets is fine.

Setting up proxy authentication

Even though it is possible to configure Squid to allow access only from certain IP addresses, you may want to force clients to authenticate themselves to the proxy as well. This might make sense if you want to give only certain people access to the web, and cannot use IP address validation due to the use of dynamically assigned addresses on your network. It is also handy for keeping track of who has requested what through the proxy, as usernames are recorded in the Squid logs.

All browsers and programs that can make use of a proxy also support proxy authentication. Browsers will pop up a login window for entering a username and password to be sent to the proxy the first time it requests them, and automatically send the same information for all subsequent requests. Other programs (such as wget or rpm) require the username and password to be specified on the command line.

Each login and password received by Squid is passed to an external authentication program which either approves or denies it. Typically this program checks against a separate users file, but it is possible to write your own programs that use all sorts of methods of validating users - for example, they might be looked up in a database, or an LDAP server, or the Unix user list. Webmin comes with a simple program that reads users from a text file in the same format as is used by Apache, and this module allows you to edit users in such a file.

The steps to turn on authentication for your Squid proxy are :

  1. On the module's main page, click on the Access Control icon to bring up the form shown in Figure 44-4.
  2. Select External Auth from the menu below the ACL table and hit the Create new ACL Taste.
  3. In the form that appears, enter auth for the ACL name and select All users in the External auth users Feld. Then, hit the Save button.
  4. Click on Add proxy restriction below proxy restrictions table.
  5. Select Deny in the Action field and choose your new auth ACL from the Don’t match ACLs aufführen. This will block any proxy requests that are not authenticated, thus forcing clients to log in.
    Selecting Allow and then choosing auth from the Match ACLs field can be used for a slightly different purpose. This creates a proxy restriction that allows access to all authenticated clients, which can be positioned to force clients outside your network to log in while not requiring it for those inside the network.
  6. Klicken Sie auf Speichern button to return to the access control page again.
  7. Use the up arrow next to the new restriction to move it above any entry in the table that allows all access from your own network. If it is below this entry, clients from the network will be able to use the proxy without needing to log in at all. Of course, this may be what you want in some cases.
  8. Click on the Authentication Programs icon back on the main page.
  9. From the Authentication program field, select Webmin default . This tells the module to use the simple text-file authenticator that comes with the module so that you don’t have to write your own. Of course, you can specify your own custom program by selecting the last radio button and entering the full path to a script with some parameters in the adjacent text box. This program must continually read lines containing a username and password (separated by a space) as input, and for each output either the line OK or ERR for success or failure, respectively. Squid will run several instances of the program as permanent daemon processes when it is started.
  10. The login window that appears in browsers includes a description of the proxy server that the user is logging into. By default, this is Squid proxy-caching web server, but you can enter your own (such as Example Corporation Proxy) by filling in the Proxy authentication realm field.
  11. Normally, Squid will cache valid logins for one hour to avoid calling on the authentication program for every single request. This means that password changes may take up to an hour to take effect, which can be confusing. To lower this limit, at the cost of increased system load and slightly slower request processing, edit the Time to cache passwords for field.
  12. Hit the Save button and then click on Apply Changes on the main page.

Now that authentication is enabled, any attempts to use your proxy from a web browser will cause a login window to appear. Because no valid users have been defined yet, no logins will be accepted, which is not particularly useful! To create some users for authentication, follow these steps:

  1. Click on the Proxy Authentication icon on the module’s main page to bring up a table listing proxy users. At first, this will be empty.
  2. Click on the Add a new proxy user link above or below the table to display the user creation form. Configuring Logging 595
  3. Enter a login name into the Username field and a password for the user in the Password field.
  4. To temporarily disable this user without deleting him, change the Enabled? field to No.
  5. Hit the Create button to add the user and then click the Apply Changes link. This last step is necessary after creating a user for the changes to take effect, as Webmin’s Squid authentication program only reads the user file when first started.

A user can be edited by clicking on its name in the proxy users list, changing the username, password, or enabled status, and hitting the Save Taste. You can also completely remove a user with the Delete Schaltfläche auf seinem Bearbeitungsformular. Again, Apply Changes must be clicked to make anymodifications or deletions active. Squid will also cache valid passwords (as explained above) to reduce the load on theauthentication program, so a password change may take some time to take effect.

The module’s user management feature will only work if you choose Webmin default in the Authentication program field or if your own custom program takes the full path to an Apache-style users file as a parameter. If your program validates users against some other database or server, or if the module cannot figure out which file contains users from the command, the Proxy Authentication icon will not appear. Sometimes you may want to allow normal UNIX users to log in to your program with the same passwords that they use for telnet and FTP. Even though it is possible to write a program that does proxy authentication against the UNIX user database, there is another solution—configuring the module to add, delete, and update proxy users whenever a UNIX user is created, removed, or renamed. This is most useful for keeping usernames and passwords in sync without needing to grant access to every single UNIX user. Once you have normal authentication set up as explained above, synchronization can be turned on by following these steps:

  1. On the module’s main page, click on the Module Config link in the top-left corner.
  2. As their names suggest, the Create proxy users when creating system users, Update proxy users when updating system users, and Delete proxy users when deleting system users fields control the automatic creation, modification, and deletion of proxy users when the same thing happens to a UNIX user. For each one, you can either select Yes or No. You should probably turn on synchronization for updates and deletions, but leave it off for creations so that you can explicitly control who gets access to the proxy.
  3. Hit the Save button at the bottom of the form to activate the new settings. From now on, actions performed in Webmin’s Users and Groups module will also affect the Squid user list in the ways you have chosen. Adding a user at the command line with useradd or changing a password with the passwd command, however, will not.

Webmin
  1. So installieren und konfigurieren Sie Squid Proxy unter Ubuntu 20.04

  2. So installieren und konfigurieren Sie Squid Proxy unter Debian 11

  3. So installieren und konfigurieren Sie Squid Proxy unter Rocky Linux/Alma Linux 8

  4. So installieren Sie den Squid-Proxy auf AlmaLinux 8

  5. Installieren Sie den Squid-Proxyserver auf Ubuntu 14.04

So konfigurieren Sie den Squid-Proxyserver unter Ubuntu 20.04 LTS

So installieren Sie den neuesten Squid-Proxyserver unter Linux

Installieren Sie Squid Proxy Server unter Ubuntu 20.04 LTS Linux

Installieren Sie Squid Proxy Server auf Rocky Linux 8 und AlmaLinux 8

So erstellen Sie einen HTTP-Proxy mit Squid unter CentOS 8

So installieren Sie den Squid-Proxyserver unter Ubuntu 18.04