Installation des Squid-Proxy-Servers unter Ubuntu 20.04

Squid ist eine voll funktionsfähige Linux-basierte Proxy-Anwendung, die hauptsächlich zum Filtern von Datenverkehr, Sicherheit und DNS-Lookups verwendet wird. Sie wird auch verwendet, um die Leistung des Webservers durch Zwischenspeichern von Ressourcen zu verbessern. Einfach ausgedrückt ist ein Squid-Server ein Computer, der als Vermittler zwischen einem Desktop-Computer und dem Internet fungiert und eingehende Client-Anforderungen an einen Server umleitet, auf dem Daten zum leichteren Abruf gespeichert werden. Er unterstützt mehrere Protokolle, darunter HTTP, FTP, TLS, SSL, Internet Gopher und HTTPS.

In diesem Tutorial zeigen wir Ihnen, wie Sie einen Squid-Proxyserver auf einem Ubuntu 20.04-Server installieren und einrichten.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 20.04 läuft.
  • Der Server wird mit einem Root-Passwort konfiguriert.

Erste Schritte

Bevor Sie beginnen, müssen Sie Ihre Systempakete auf die neueste Version aktualisieren. Sie können sie mit dem folgenden Befehl aktualisieren:

apt-get update -y

Sobald alle Pakete aktualisiert sind, starten Sie Ihr System neu, um die Änderungen zu übernehmen.

Squid-Proxy installieren

Standardmäßig ist das Squid-Paket im Standard-Repository von Ubuntu 20.04 verfügbar. Sie können es mit dem folgenden Befehl installieren:

apt-get install squid -y

Sobald Squid installiert ist, können Sie den Status des Squid-Dienstes mit dem folgenden Befehl überprüfen:

systemctl status squid

Sie sollten die folgende Ausgabe erhalten:

? squid.service - Squid Web Proxy Server
     Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-08-23 12:00:24 UTC; 11s ago
       Docs: man:squid(8)
    Process: 49265 ExecStartPre=/usr/sbin/squid --foreground -z (code=exited, status=0/SUCCESS)
    Process: 49282 ExecStart=/usr/sbin/squid -sYC (code=exited, status=0/SUCCESS)
   Main PID: 49283 (squid)
      Tasks: 4 (limit: 2353)
     Memory: 16.4M
     CGroup: /system.slice/squid.service
             ??49283 /usr/sbin/squid -sYC
             ??49285 (squid-1) --kid squid-1 -sYC
             ??49287 (logfile-daemon) /var/log/squid/access.log
             ??49288 (pinger)

Aug 23 12:00:24 ubuntu2004 squid[49285]: Max Swap size: 0 KB
Aug 23 12:00:24 ubuntu2004 squid[49285]: Using Least Load store dir selection
Aug 23 12:00:24 ubuntu2004 squid[49285]: Set Current Directory to /var/spool/squid
Aug 23 12:00:24 ubuntu2004 squid[49285]: Finished loading MIME types and icons.
Aug 23 12:00:24 ubuntu2004 squid[49285]: HTCP Disabled.
Aug 23 12:00:24 ubuntu2004 squid[49285]: Pinger socket opened on FD 14
Aug 23 12:00:24 ubuntu2004 squid[49285]: Squid plugin modules loaded: 0
Aug 23 12:00:24 ubuntu2004 squid[49285]: Adaptation support is off.
Aug 23 12:00:24 ubuntu2004 squid[49285]: Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 12 flags=9
Aug 23 12:00:25 ubuntu2004 squid[49285]: storeLateRelease: released 0 objects

Standardmäßig lauscht Squid auf Port 3128. Sie können dies mit dem folgenden Befehl überprüfen:

netstat -plunt | grep 3128

Sie sollten die folgende Ausgabe sehen:

tcp6       0      0 :::3128                 :::*                    LISTEN      50017/(squid-1)

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

IP-basierte Authentifizierung einrichten

Es gibt mehrere Möglichkeiten, wie Sie den Zugriff des Clients auf das Internet einschränken können. In diesem Abschnitt werden wir Squid so einrichten, dass es sich anhand der IP-Adresse des Clients authentifiziert.

Sie können dies tun, indem Sie die Standardkonfigurationsdatei von Squid bearbeiten:

nano /etc/squid/squid.conf

Fügen Sie die folgende Zeile am Anfang der Datei ein:

acl client1 src 192.168.10.10
acl client2 src 192.168.10.11
http_access allow client1 client2

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Starten Sie dann den Squid-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart squid

Wo:

  • client1 und client2 ist der Name, der die Client-Computer identifiziert hat.
  • 192.168.10.10 und 192.168.10.11 ist die IP-Adresse des Client-Rechners.

Jetzt können nur noch Computer, die mit IP 192.168.168.10.10 und 192.168.10.11 konfiguriert sind, auf das Internet zugreifen.

Benutzerbasierte Authentifizierung einrichten

Sie können Squid auch so einrichten, dass die Authentifizierung basierend auf Benutzer und Passwort erfolgt. Dazu müssen Sie das Apache-Utils-Paket in Ihrem System installieren.

Führen Sie den folgenden Befehl aus, um das Apache-Utils-Paket zu installieren:

apt install apache2-utils -y

Erstellen Sie nach der Installation einen ersten Benutzer mit folgendem Befehl:

htpasswd /etc/squid/passwd client1

Sie werden gebeten, ein Passwort wie unten gezeigt zu setzen:

New password: 
Re-type new password: 
Adding password for user client1

Erstellen Sie anschließend einen zweiten Benutzer mit dem folgenden Befehl:

htpasswd /etc/squid/passwd client2

Stellen Sie Ihr Passwort wie unten gezeigt ein:

New password: 
Re-type new password: 
Adding password for user client2

Anschließend können Sie beide Benutzer mit dem folgenden Befehl überprüfen:

cat /etc/squid/passwd

Sie sollten die folgende Ausgabe erhalten:

client1:$apr1$CPlx8eVt$NJq3CT/hzfDCnAZRypIq5/
client2:$apr1$XYxQ2npc$IW0Nqjp15O5WYCo/wCFlB0

Als nächstes öffnen Sie die Squid-Standardkonfigurationsdatei:

nano /etc/squid/squid.conf

Entfernen Sie die ersten drei Zeilen, die Sie im vorigen Abschnitt hinzugefügt haben, und fügen Sie die folgenden Zeilen am Anfang der Datei hinzu:

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd
acl ncsa_users proxy_auth REQUIRED
http_access allow ncsa_users

Speichern und schließen Sie die Datei. Starten Sie dann den Squid-Proxy-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart squid

Nun müssen Sie Benutzername und Passwort angeben, um auf das Internet zugreifen zu können.

Kombinierte Authentifizierung einrichten

Sie können auch einen Squid einrichten, um einen Client auf der Grundlage der IP-Adresse und des Benutzernamens / Passworts zu authentifizieren.

Öffnen Sie die Squid-Standardkonfigurationsdatei:

nano /etc/squid/squid.conf

Suchen Sie die folgenden Zeilen, die Sie im vorherigen Abschnitt hinzugefügt haben:

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd
acl ncsa_users proxy_auth REQUIRED
http_access allow ncsa_users

Und, ersetzen Sie sie durch die folgenden Zeilen:

acl client1 src 192.168.10.10
acl client2 src 192.168.10.11
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd
acl ncsa_users proxy_auth REQUIRED
http_access allow client1 client2 ncsa_users

Speichern und schließen Sie die Datei, wenn Sie fertig sind, dann starten Sie den Squid-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart squid

Einrichten von Squid zur Anonymisierung des Verkehrs

Als nächstes müssen Sie einige Regeln hinzufügen, um Client-IP-Adressen von den Servern zu maskieren, die Verkehr von Ihrem Squid-HTTP-Proxy empfangen.

Sie können dies tun, indem Sie die Standardkonfigurationsdatei von Squid bearbeiten:

nano /etc/squid/squid.conf

Fügen Sie die folgenden Zeilen am Anfang der Datei hinzu:

forwarded_for off
request_header_access Allow allow all
request_header_access Authorization allow all
request_header_access WWW-Authenticate allow all
request_header_access Proxy-Authorization allow all
request_header_access Proxy-Authenticate allow all
request_header_access Cache-Control allow all
request_header_access Content-Encoding allow all
request_header_access Content-Length allow all
request_header_access Content-Type allow all
request_header_access Date allow all
request_header_access Expires allow all
request_header_access Host allow all
request_header_access If-Modified-Since allow all
request_header_access Last-Modified allow all
request_header_access Location allow all
request_header_access Pragma allow all
request_header_access Accept allow all
request_header_access Accept-Charset allow all
request_header_access Accept-Encoding allow all
request_header_access Accept-Language allow all
request_header_access Content-Language allow all
request_header_access Mime-Version allow all
request_header_access Retry-After allow all
request_header_access Title allow all
request_header_access Connection allow all
request_header_access Proxy-Connection allow all
request_header_access User-Agent allow all
request_header_access Cookie allow all
request_header_access All deny all

Speichern und schließen Sie die Datei, wenn Sie fertig sind, und starten Sie dann den Squid-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart squid

Squid-Proxy verifizieren

Als nächstes müssen Sie Ihren Proxy-Server in Ihrem Mozilla-Webbrowser definieren.

Gehen Sie zum Client-System, öffnen Sie den Mozilla-Webbrowser und klicken Sie auf Bearbeiten => Einstellungen wie unten gezeigt:

Squid-Proxy prüfen

Klicken Sie auf den Abschnitt Netzwerkeinstellungen und klicken Sie auf die Einstellungen. Sie sollten die folgende Seite sehen:

Proxy-Server-Konfiguration

Wählen Sie die Optionsschaltfläche Manuelle Proxy-Konfiguration, geben Sie die IP-Adresse Ihres Squid-Servers in das Feld HTTP-Host und 3128 in das Feld Port ein, aktivieren Sie das Kontrollkästchen Diesen Proxy-Server für alle Protokolle verwenden und klicken Sie auf die Schaltfläche OK, um die Einstellungen zu speichern.

Nun ist Ihr Browser so konfiguriert, dass er das Internet über den Squid-Proxy durchsucht.

Um dies zu überprüfen, geben Sie die URL https://www.whatismyip.com/ ein. Sie werden gebeten, einen Benutzernamen und ein Passwort einzugeben, wie unten dargestellt:

Authentifizierung am Proxy-Server

Geben Sie Ihren Squid-Proxy-Server-Benutzernamen und Ihr Passwort ein, die Sie zuvor erstellt haben, und klicken Sie auf die Schaltfläche OK. Sie sollten die folgende Seite sehen:

Axxess Website durch Tintenfisch-Proxy

Auf der obigen Seite sollten Sie die IP-Adresse Ihres Squid-Servers anstelle der IP-Adresse Ihres Client-Computers sehen.

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben den Squid-Proxyserver auf dem Ubuntu 20.04-Server erfolgreich installiert und konfiguriert. Sie können den Squid-Proxy auch so konfigurieren, dass er die spezifische Website basierend auf dem Wort, der Domäne und den IPs einschränkt. Weitere Informationen finden Sie in der offiziellen Dokumentation von Squid.

Das könnte dich auch interessieren …