Installieren und Konfigurieren von Squid Proxy unter Ubuntu 20.04

Squid ist ein vollwertiger Caching-Proxy, der gängige Netzwerkprotokolle wie HTTP, HTTPS, FTP und mehr unterstützt. Er kann verwendet werden, um die Leistung des Webservers durch das Zwischenspeichern wiederholter Anfragen zu verbessern, den Webverkehr zu filtern und auf geografisch eingeschränkte Inhalte zuzugreifen.

In dieser Anleitung wird erklärt, wie Sie einen Squid-Proxy unter Ubuntu 20.04 einrichten und die Webbrowser Firefox und Google Chrome für die Verwendung konfigurieren.

Squid unter Ubuntu installieren

Das Squid-Paket ist in den Standard-Repositories von Ubuntu 20.04 enthalten. Um es zu installieren, führen Sie die folgenden Befehle als sudo-Benutzer aus:

sudo apt updatesudo apt install squid

Nach Abschluss der Installation wird der Squid-Dienst automatisch gestartet. Um dies zu überprüfen, überprüfen Sie den Status des Dienstes:

sudo systemctl status squid

Die Ausgabe wird in etwa so aussehen:

● squid.service - Squid Web Proxy Server Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-10-23 19:02:43 UTC; 14s ago Docs: man:squid(8)...

Konfiguration von Squid

Der Squid-Dienst kann durch Bearbeiten der Datei /etc/squid/squid.conf konfiguriert werden. Die Konfigurationsdatei enthält Kommentare, die beschreiben, was jede Konfigurationsoption bewirkt. Sie können Ihre Konfigurationseinstellungen auch in separaten Dateien ablegen, die mit der Direktive „include“ in die Hauptkonfigurationsdatei eingebunden werden können.

Bevor Sie Änderungen vornehmen, wird empfohlen, die ursprüngliche Konfigurationsdatei zu sichern:

sudo cp /etc/squid/squid.conf{,.orginal}

Um mit der Konfiguration Ihrer Squid-Instanz zu beginnen, öffnen Sie die Datei in Ihrem Texteditor:

sudo nano /etc/squid/squid.conf

Standardmäßig ist squid so eingestellt, dass es auf Port 3128 an allen Netzwerkschnittstellen des Servers lauscht.

Wenn Sie den Port ändern und eine lauschende Schnittstelle festlegen möchten, suchen Sie die Zeile, die mit http_port beginnt, und geben Sie die IP-Adresse der Schnittstelle und den neuen Port an. Wenn keine Schnittstelle angegeben wird, lauscht Squid auf allen Schnittstellen.

/etc/squid/squid.conf
# Squid normally listens to port 3128http_port IP_ADDR:PORT

Squid auf allen Schnittstellen und auf dem Standardport laufen zu lassen, sollte für die meisten Benutzer in Ordnung sein.

Squid ermöglicht es Ihnen, mithilfe von Zugriffskontrolllisten (ACLs) zu steuern, wie die Clients auf die Webressourcen zugreifen können. Standardmäßig ist der Zugriff nur vom localhost erlaubt.

Wenn alle Clients, die den Proxy verwenden, eine statische IP-Adresse haben, ist die einfachste Möglichkeit, den Zugriff auf den Proxy-Server zu beschränken, eine ACL zu erstellen, die die erlaubten IPs einschließt. Andernfalls können Sie squid so einstellen, dass es eine Authentifizierung verwendet.

Anstatt die IP-Adressen in die Hauptkonfigurationsdatei aufzunehmen, erstellen Sie eine neue dedizierte Datei, die die erlaubten IPs enthält:

/etc/squid/allowed_ips.txt
192.168.33.1# All other allowed IPs

Nachdem dies geschehen ist, öffnen Sie die Hauptkonfigurationsdatei und erstellen eine neue ACL mit dem Namen allowed_ips (erste hervorgehobene Zeile) und erlauben den Zugriff auf diese ACL mit der Direktive http_access (zweite hervorgehobene Zeile):

/etc/squid/squid.conf
# ...acl allowed_ips src "/etc/squid/allowed_ips.txt"# ...#http_access allow localnethttp_access allow localhosthttp_access allow allowed_ips# And finally deny all other access to this proxyhttp_access deny all

Die Reihenfolge der http_access Regeln ist wichtig. Stellen Sie sicher, dass Sie die Zeile vor http_access deny all einfügen.

Die http_access-Direktive funktioniert ähnlich wie die Firewall-Regeln. Squid liest die Regeln von oben nach unten, und wenn eine Regel zutrifft, werden die Regeln darunter nicht verarbeitet.

Wenn Sie Änderungen an der Konfigurationsdatei vornehmen, müssen Sie den Squid-Dienst neu starten, damit die Änderungen wirksam werden:

sudo systemctl restart squid

Squid-Authentifizierung #

Wenn die Beschränkung des Zugriffs auf Basis der IP für Ihren Anwendungsfall nicht funktioniert, können Sie Squid so konfigurieren, dass es ein Back-End zur Authentifizierung von Benutzern verwendet. Squid unterstützt Samba, LDAP und HTTP basic auth.

In dieser Anleitung verwenden wir basic auth. Es ist eine einfache Authentifizierungsmethode, die in das HTTP-Protokoll eingebaut ist.

Um ein verschlüsseltes Passwort zu erzeugen, verwenden Sie das openssl-Tool. Der folgende Befehl fügt das USERNAME:PASSWORD-Paar an die /etc/squid/htpasswd-Datei an:

printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd

Um beispielsweise einen Benutzer „josh“ mit dem Passwort „P@ssvv0rT“ zu erstellen, würden Sie ausführen:

printf "josh:$(openssl passwd -crypt 'P@ssvv0rd')\n" | sudo tee -a /etc/squid/htpasswd
josh:QMxVjdyPchJl6

Der nächste Schritt besteht darin, die HTTP-Basisauthentifizierung zu aktivieren und die Datei mit den Benutzeranmeldedaten in die Squid-Konfigurationsdatei aufzunehmen.

Öffnen Sie die Hauptkonfiguration und fügen Sie Folgendes hinzu:

sudo nano /etc/squid/squid.conf
/etc/squid/squid.conf
# ...auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswdauth_param basic realm proxyacl authenticated proxy_auth REQUIRED# ...#http_access allow localnethttp_access allow localhosthttp_access allow authenticated# And finally deny all other access to this proxyhttp_access deny all

Die ersten drei hervorgehobenen Zeilen erstellen eine neue ACL mit dem Namen authenticated, und die letzte hervorgehobene Zeile erlaubt den Zugriff für authentifizierte Benutzer.

Starten Sie den Squid-Dienst neu:

sudo systemctl restart squid

Firewall konfigurieren

Um die Squid-Ports zu öffnen, aktivieren Sie das Profil UFW‚Squid‘:

sudo ufw allow 'Squid'

Wenn Squid auf einem anderen, nicht standardmäßigen Port läuft, zum Beispiel 8888, können Sie den Verkehr auf diesem Port mit zulassen: sudo ufw allow 8888/tcp.

Browser für die Verwendung von Proxy konfigurieren

Nachdem Sie Squid eingerichtet haben, müssen Sie im letzten Schritt Ihren bevorzugten Browser für die Verwendung konfigurieren.

Firefox

Die folgenden Schritte sind für Windows, macOS und Linux gleich.

  1. Klicken Sie in der oberen rechten Ecke auf das Hamburger-Symbol , um das Menü von Firefox zu öffnen:

  2. Klicken Sie auf den ⚙ Preferences Link.

  3. Scrollen Sie nach unten zum Abschnitt Network Settings und klicken Sie auf die Schaltfläche Settings....

  4. Ein neues Fenster wird geöffnet.

    • Wählen Sie das Optionsfeld Manual proxy configuration.
    • Geben Sie Ihre Squid-Server-IP-Adresse in das Feld HTTP Host und 3128 in das Feld Port ein.
    • Markieren Sie das Kontrollkästchen Use this proxy server for all protocols.
    • Klicken Sie auf die Schaltfläche OK, um die Einstellungen zu speichern.
    Firefox Squid Proxy

An dieser Stelle, ist Ihr Firefox konfiguriert, und Sie können über den Squid-Proxy im Internet surfen. Um dies zu überprüfen, öffnen Sie google.com, geben Sie „what is my ip“ ein und Sie sollten die IP-Adresse Ihres Squid-Servers sehen.

Um zu den Standardeinstellungen zurückzukehren, gehen Sie zu Network Settings, wählen Sie den Use system proxy settings Radioknopf und speichern Sie die Einstellungen.

Es gibt auch einige Plugins, die Ihnen helfen können, die Proxy-Einstellungen von Firefox zu konfigurieren, wie z. B. FoxyProxy.

Google Chrome #

Google Chrome verwendet die Standard-Proxy-Einstellungen des Systems. Anstatt die Proxy-Einstellungen des Betriebssystems zu ändern, können Sie entweder ein Addon wie SwitchyOmega verwenden oder den Webbrowser Chrome über die Kommandozeile starten.

Um Chrome mit einem neuen Profil zu starten und sich mit dem Squid-Server zu verbinden, verwenden Sie den folgenden Befehl:

Linux :

/usr/bin/google-chrome \ --user-data-dir="$HOME/proxy-profile" \ --proxy-server="http://SQUID_IP:3128"

macOS :

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \ --user-data-dir="$HOME/proxy-profile" \ --proxy-server="http://SQUID_IP:3128"

Windows :

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^ --user-data-dir="%USERPROFILE%\proxy-profile" ^ --proxy-server="http://SQUID_IP:3128"

Das Profil wird automatisch erstellt, wenn es nicht existiert. Auf diese Weise können Sie mehrere Instanzen von Chrome gleichzeitig ausführen.

Um zu bestätigen, dass der Proxyserver richtig funktioniert, öffnen Sie google.com, und geben Sie „what is my ip“ ein. Die in Ihrem Browser angezeigte IP sollte die IP-Adresse Ihres Servers sein.

Fazit

Squid ist einer der beliebtesten Proxy-Caching-Server. Er verbessert die Geschwindigkeit des Webservers und kann Ihnen helfen, den Zugriff der Benutzer auf das Internet einzuschränken.

Wir haben Ihnen gezeigt, wie Sie Squid unter Ubuntu 20.04 installieren und konfigurieren und Ihren Browser für die Verwendung einrichten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.