In unserem vorherigen Beitrag So installieren Sie den Squid-Proxyserver unter Linux haben wir Ihnen die grundlegende Einführung in den Squid-Server und seine Installation im Linux-System gegeben. In diesem Beitrag werden wir den Squid-Proxyserver konfigurieren. Wir werden die folgenden Themen behandeln:
- Squid so konfigurieren, dass es auf einem anderen Port lauscht
- Konfigurieren des Hostnamens für den Squid-Proxy-Server
- Speichergröße des Squid-Cache festlegen
- Zu verwendende DNS-Nameserver angeben
- Zugriff auf bestimmte Websites im Squid-Proxy-Server verweigern
- Konfigurieren der Squid-Proxy-Client-Authentifizierung
- Konfigurieren von Clients für die Verbindung über den Squid-Proxy-Server
Hinweis: Die in diesem Artikel beschriebenen Befehle und Verfahren wurden auf Ubuntu 20.04 LTS getestet (Fokusfossa). Dieselben Befehle und Prozeduren gelten auch für die Debian-Distribution.
Voraussetzungen
- Computer mit installiertem Ubuntu oder Debian
- Sudo-Benutzer
Konfiguration des Squid-Proxy-Servers unter Linux
Die Konfigurationsdatei des Squid-Proxy-Servers befindet sich unter /etc/squid/squid.conf .aufführen. Diese Datei enthält Anweisungen, durch die der Squid-Proxy-Server konfiguriert wird.
Squid so konfigurieren, dass es auf einem anderen Port lauscht
Standardmäßig lauscht der Squid-Proxy-Server auf Port 3128 auf Datenverkehr von Client-Rechnern. Sie können es jedoch so konfigurieren, dass es auf einem anderen Port als dem Standardport mit http_port lauscht Richtlinie.
Bearbeiten Sie die Squid-Konfiguration mit dem folgenden Befehl:
$ sudo nano /etc/squid/squid.conf
Suchen Sie nun den folgenden Eintrag in der Konfigurationsdatei.
Hinweis: Sie können Strg+W verwenden um nach einer beliebigen Zeile zu suchen. Drücken Sie Strg+W, geben Sie Schlüsselwörter ein und drücken Sie die Eingabetaste.
http_port 3128
Ersetzen Sie nun 3128 durch die Portnummer, die der Squid-Proxyserver überwachen soll, sagen wir 3155 :
http_port 3155
Starten Sie jetzt den Squid-Proxyserverdienst neu, damit die Änderungen wirksam werden:
$ sudo service squid restart
Konfigurieren des Hostnamens für den Squid-Proxyserver
Sie können den Hostnamen für den Squid-Proxyserver konfigurieren, wenn er den Hostnamen des Computers nicht selbst bestimmen kann. Um den Hostnamen zu konfigurieren, können Sie den visible_hostname verwenden Richtlinie. Dieser Name wird von Squid in Fehlermeldungen, internen URLs, FTP-Verzeichnislisten usw. verwendet.
Bearbeiten Sie die Squid-Konfiguration mit dem folgenden Befehl:
$ sudo nano /etc/squid/squid.conf
Fügen Sie nun den folgenden Eintrag in der Konfigurationsdatei hinzu und ersetzen Sie
visible_hostname <host_name>
Um beispielsweise „linuxways ” als Hostname des Squid-Proxy-Servers wäre der Eintrag:
visible_hostname linuxways
Wenn Sie mit den Konfigurationen fertig sind, speichern und verlassen Sie die Konfigurationsdatei.
Starten Sie jetzt den Squid-Proxydienst neu, damit die Konfigurationsänderungen wirksam werden.
$ sudo service squid restart
Falls der Squid-Client eine Fehlerseite erhält, sieht er den Hostnamen unten auf der Webseite aufgelistet.
Speichergröße des Squid-Cache festlegen
Squid speichert häufig besuchte Inhalte im Speicher. Die Standardgröße des Squid-Cachespeichers beträgt 256 MB. Um die Größe des Squid-Cache-Speichers zu ändern, cache_mem Direktive wird verwendet.
Bearbeiten Sie die Konfigurationsdatei mit dem folgenden Befehl:
$ sudo nano /etc/squid/squid.conf
Suchen Sie dann in der Konfigurationsdatei nach folgendem Eintrag und ersetzen Sie 256 durch den Wert, der für die Cache-Speichergröße eingestellt werden soll.
cache_mem 256 MB
Um beispielsweise die Cache-Größe auf 512 MB festzulegen, würde der Eintrag geändert werden in:
cache_mem 512 MB
Wenn Sie mit den Konfigurationen fertig sind, speichern und verlassen Sie die Konfigurationsdatei.
Starten Sie nun den Squid-Dienst neu, um die Änderungen zu übernehmen:
$ sudo service squid restart
Zu verwendende DNS-Nameserver angeben
Standardmäßig verwendet Squid /etc/resolv.conf Domänennamen aufzulösen. Wenn Sie möchten, dass Squid einen anderen Nameserver verwendet, können Sie dies mit dns_nameservers tun Richtlinie. Bearbeiten Sie die Squid-Konfiguration mit dem folgenden Befehl:
$ sudo nano /etc/squid/squid.conf
Fügen Sie nun den folgenden Eintrag in der Konfigurationsdatei hinzu und ersetzen Sie:
dns_nameservers <IP address of DNS server>
Zum Beispiel, um 8.8.4.4 festzulegen als Nameserver wäre der Eintrag:
dns_nameservers 8.8.8.8 8.8.4.4
Wenn Sie mit den Konfigurationen fertig sind, speichern und beenden Sie die Datei.
Starten Sie nun den Squid-Dienst neu, um die Änderungen zu übernehmen:
$ sudo service squid restart
Steuerung des Zugriffs auf den Proxy-Server
Funktionsweise der Squid-ACL
Für die Zugriffskontrolle werden ACLs in Kombination mit der Zugriffssteuerungsanweisung verwendet. ACL allein nützt nichts, sie helfen nur, Benutzeranfragen anhand verschiedener Regeln zu identifizieren. Um den Zugriff zu erlauben oder zu verweigern, werden sie mit http_access kombiniert Richtlinie.
Um ACL zu definieren, lautet die Syntax:
acl NAME TYPE value
Beispiel: LAN-Datenverkehr über den Squid-Proxy-Server zulassen
Zum Abgleichen von Datenverkehr aus dem LAN 192.168.5.0/24 , müssen wir eine ACL-Regel in der Squid-Konfigurationsdatei erstellen:
acl myacl src 192.168.5.0/24
Sobald die ACL definiert ist, können Sie http_access verwenden Anweisung zum Erlauben/Verweigern des Zugriffs. Hier ist die Syntax für den http_access Direktive:
http_access allow|deny NAME
Wobei NAME den Datenverkehr identifiziert, dem Sie den Zugriff erlauben/verweigern möchten.
Um den in der ACL identifizierten Datenverkehr zuzulassen, müssen Sie den folgenden http_access hinzufügen Direktive in der Squid-Konfigurationsdatei:
http_access allow myacl
Konfigurieren von Proxy-Quellen für den Zugriff auf das Internet
Zuerst konfigurieren wir die Quellen, denen wir den Zugriff auf das Internet über den Proxy-Server erlauben möchten. Sie möchten beispielsweise den Zugriff auf den Proxy-Server nur vom internen Netzwerk aus zulassen.
1. Um die zulässigen Quellen zu konfigurieren, bearbeiten Sie die Squid-Konfigurationsdatei:
$ sudo nano /etc/squid/squid.conf
2. Suchen Sie nun nach dem Eintrag acl localnet src .
Hinweis: Um im Nano-Editor nach einem Eintrag zu suchen, drücken Sie Strg+w , und geben Sie den Ausdruck ein, nach dem Sie suchen möchten. Drücken Sie im obigen Beispiel Strg+w und geben Sie acl localnet src ein wie im folgenden Screenshot gezeigt.
3. Hier sehen Sie die Anzahl der Einträge für verschiedene IP-Adressbereiche. Fügen Sie hier einen Eintrag für Ihr Netzwerk wie folgt hinzu:
acl localnet src subnet_ID/subnet_mask
Ihr lokales Netzwerk läuft beispielsweise auf 192.168.72.0/24 Subnetz. In diesem Fall wäre der Eintrag:
acl localnet src 192.168.72.0/255.255.255.0
4. Verwenden Sie jetzt den http_access lassen Sie die Quellen zu, die durch die ACL mit dem Namen localnet identifiziert werden oben definiert. Die http_access-Direktive ist bereits in der konfigurierten definiert, Sie müssen sie nur finden und auskommentieren.
Suchen Sie nach dem Eintrag #http_access allow localnet und kommentieren Sie es dann aus, indem Sie das # entfernen Zeichen.
http_access allow localnet
Speichern und beenden Sie nun die Squid-Konfigurationsdatei.
3. Starten Sie nun den Squid-Dienst mit dem folgenden Befehl neu:
$ sudo service squid restart
Zugriff auf bestimmte Websites im Squid-Proxyserver verweigern
Um den Zugriff auf einige Websites auf dem Squid-Proxyserver zu verweigern, erstellen Sie eine Datei und listen Sie alle Websites auf, denen Sie den Zugriff verweigern möchten.
$ sudo nano /etc/squid/deniedsites.acl
Listen Sie nun die Sites auf, denen Sie den Zugriff verweigern möchten, und speichern und beenden Sie die Datei.
…
.msn.com
.yahoo.com
.bbc.com
…
Bearbeiten Sie dann die Squid-Konfigurationsdatei mit dem folgenden Befehl:
$ sudo nano /etc/squid/squid.conf
Erstellen Sie nun eine ACL-Regel für die abgelehnten Websites und erwähnen Sie die Datei mit der Liste der abgelehnten Websites.
acl denied_sites dstdomain “/etc/squid/deniedsites.acl”
Die ACL-Regel denied_sites stimmt mit allen Anfragen überein, die für die Websites bestimmt sind, die in „/etc/squid/deniedsites.acl aufgeführt sind ” Datei.
Jetzt müssen Sie den http_access hinzufügen Anweisung zum Ablehnen der Websites, die durch die obige ACL-Regel mit dem Namen denied_sites identifiziert wurden . Fügen Sie die folgende Zeile in die Squid-Konfigurationsdatei ein:
http_access deny denied_sites
Wenn Sie mit den Konfigurationen fertig sind, speichern und beenden Sie die Datei.
Starten Sie nun den Squid-Dienst mit dem folgenden Befehl neu:
$ sudo service squid restart
Konfigurieren der Squid-Proxy-Client-Authentifizierung
Mit dem Squid-Proxyserver können wir aus Sicherheitsgründen eine grundlegende benutzerbasierte Authentifizierung hinzufügen. Dazu verwenden wir das htpasswd Programm, das mit dem Apache HTTP-Server geliefert wird. Dann erstellen wir eine Datei, die Benutzernamen und Passwörter für die Authentifizierung enthält.
1. Zuerst müssen wir Apache2-utils installieren. Verwenden Sie dazu den folgenden Befehl:
$ apt install -y apache2-utils
2. Erstellen Sie nun eine passwd-Datei in /etc/squid Verzeichnis zum Speichern von Passwörtern:
$ touch /etc/squid/passwd
3. Verwenden Sie den folgenden Befehl, um den Besitz auf den Benutzer „proxy“ festzulegen:
$ chown proxy: /etc/squid/passwd
4. Fügen Sie nun einen Benutzer in /etc/squid/passwd hinzu Datei:
htpasswd /etc/squid/passwd tin
Geben Sie ein Passwort ein und bestätigen Sie es durch erneute Eingabe. Jetzt werden der Benutzer und sein verschlüsseltes Passwort unter /etc/squid/passwd gespeichert Datei.
5. Bearbeiten Sie die /etc/squid/squid.conf Datei mit dem folgenden Befehl:
$ sudo nano /etc/squid/squid.conf
Fügen Sie nun die folgenden Zeilen in die Datei ein:
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwdauth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users
Once you are done with the configurations, save and exit the configuration file.
Konfigurieren von Clients für die Verbindung über den Squid-Proxyserver
In diesem Abschnitt werden wir Clients so konfigurieren, dass sie sich über den Squid-Proxy-Server verbinden.
1. Öffnen Sie einen Webbrowser in Ihrem System. Hier verwenden wir den Firefox Browser.
2. Gehen Sie zur oberen rechten Ecke Ihres Browsers und klicken Sie auf das Symbol mit den drei horizontalen Balken. Klicken Sie dann auf Optionen .
3. Geben Sie dann in der Suchleiste Netzwerk ein . Wenn das Suchergebnis angezeigt wird, klicken Sie auf Einstellungen wie im Screenshot unten zu sehen ist.
4. Wählen Sie die Manuelle Proxy-Konfiguration Optionsschaltfläche. Geben Sie dann die IP-Adresse des Squid-Proxy-Servers in HTTP-Proxy ein Feld und Portnummer im Port Feld. Aktivieren Sie außerdem die Option Diesen Proxy auch für FTP und HTTPS verwenden Kontrollkästchen. Klicken Sie dann auf OK .
Um nun zu überprüfen, ob der Squid-Server funktioniert, versuchen Sie, in Ihrem Browser auf eine beliebige Website zuzugreifen. Sie sehen einen Authentifizierungsdialog. Geben Sie den Squid-Benutzernamen und das Passwort ein, die Sie zuvor erstellt haben, und klicken Sie auf OK .
Jetzt sollten Sie auf die angeforderte Website zugreifen können.
Versuchen Sie nun, auf eine andere Website zuzugreifen, die Sie mithilfe der Zugriffsliste blockiert haben. Der Browser zeigt die folgende Seite mit der Meldung „Der Proxy-Server verweigert Verbindungen“.
Das ist alles, was dazu gehört! In diesem Artikel haben Sie gelernt, wie Sie den Squid-Proxyserver auf einem Linux-System konfigurieren. Wir haben gerade die grundlegenden Konfigurationen besprochen. Mit dem Squid-Proxyserver können Sie noch viel mehr tun. Weitere Informationen finden Sie in der offiziellen Dokumentation.