Website-Suche

So richten Sie den „Squid Proxy“-Server unter Ubuntu und Debian ein


Squid ist ein beliebter HTTP-Web-Proxyserver zum Zwischenspeichern und Weiterleiten, der von vielen Unternehmen zum Zwischenspeichern von Webseiten von einem Webserver verwendet wird, um die Geschwindigkeit des Webservers zu verbessern, Antwortzeiten zu verkürzen und die Netzwerkbandbreitennutzung zu reduzieren.

Lesen Sie auch: So erstellen Sie einen HTTP-Proxy mit Squid unter CentOS 7

In diesem Artikel erklären wir, wie man einen Squid-Proxyserver auf Ubuntu- und Debian-Distributionen installiert und als HTTP-Proxyserver verwendet.

So installieren Sie Squid unter Ubuntu

Bevor wir beginnen, sollten Sie wissen, dass für den Squid-Server keine Anforderungen gelten, die Menge der RAM-Auslastung jedoch je nach Clients, die über den Proxyserver im Internet surfen, unterschiedlich sein kann.

Das Squid-Paket kann über das Basis-Ubuntu-Repository installiert werden. Stellen Sie jedoch vorher sicher, dass Sie Ihre Pakete aktualisieren, indem Sie es ausführen.

sudo apt update

Sobald Ihre Pakete auf dem neuesten Stand sind, können Sie mit der Installation von Squid fortfahren und es beim Systemstart mit den folgenden Befehlen starten und aktivieren.

sudo apt -y install squid
sudo systemctl start squid
sudo systemctl enable squid

Zu diesem Zeitpunkt sollte Ihr Squid-Web-Proxy bereits ausgeführt werden und Sie können den Status des Dienstes mit überprüfen.

sudo systemctl status squid
Beispielausgabe
● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; generated)
   Active: active (running) since Tue 2018-12-04 06:42:43 UTC; 14min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 4 (limit: 1717)
   CGroup: /system.slice/squid.service
           ├─2761 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─2766 (squid-1) -YC -f /etc/squid/squid.conf
           ├─2768 (logfile-daemon) /var/log/squid/access.log
           └─2772 (pinger)

Dec 04 06:42:43 tecmint systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
Dec 04 06:42:43 tecmint squid[2708]:  * Starting Squid HTTP Proxy squid
Dec 04 06:42:43 tecmint squid[2708]:    ...done.
Dec 04 06:42:43 tecmint systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: will start 1 kids
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: (squid-1) process 2766 started

Im Folgenden finden Sie einige wichtige Speicherorte für Squid-Dateien, die Sie kennen sollten:

  • Squid-Konfigurationsdatei: /etc/squid/squid.conf
  • Squid-Zugriffsprotokoll: /var/log/squid/access.log
  • Squid-Cache-Protokoll: /var/log/squid/cache.log

Die Standardkonfigurationsdatei enthält einige Konfigurationsanweisungen, die konfiguriert werden müssen, um das Verhalten des Squid zu beeinflussen.

Öffnen Sie nun diese Datei zur Bearbeitung mit dem Vi-Editor und nehmen Sie die Änderungen wie unten gezeigt vor.

sudo vim /etc/squid/squid.conf

Jetzt können Sie nach den folgenden Zeilen suchen und diese nach Bedarf ändern. Im Vi-Editor können Sie nach diesen Zeilen suchen, indem Sie 'ESC' drücken und „/“ eingeben ” Schlüssel zum Schreiben der spezifischen Zeilen, nach denen gesucht werden soll.

  • http_port: Dies ist der Standardport für den HTTP-Proxyserver. Standardmäßig ist er 3128. Sie können ihn in einen beliebigen anderen Port ändern und diesen auch hinzufügen „transparent“-Tag am Ende der Zeile wie http_port 8888 transparent, damit sich der Squid-Proxy bei Bedarf wie ein transparenter Proxy verhält.
  • http_access deny all: Diese Zeile lässt niemanden auf den HTTP-Proxyserver zugreifen. Deshalb müssen Sie sie in http_accessallow all ändern, um Ihren Squid-Proxyserver verwenden zu können .
  • visible_hostname: Diese Direktive wird verwendet, um den spezifischen Hostnamen auf einen Squid-Server festzulegen. Sie können Squid einen beliebigen Hostnamen geben.

Nachdem Sie die oben genannten Änderungen vorgenommen haben, können Sie den Squid-Proxyserver mit dem Befehl neu starten.

sudo systemctl restart squid

Squid als HTTP-Proxy unter Ubuntu konfigurieren

In diesem Abschnitt zur Squid-Konfiguration erklären wir Ihnen, wie Sie Squid als HTTP-Proxy konfigurieren und zur Authentifizierung nur die Client-IP-Adresse verwenden.

Fügen Sie Squid-ACLs hinzu

Wenn Sie nur einer IP-Adresse den Zugriff auf das Internet über Ihren neuen Proxyserver erlauben möchten, müssen Sie in der Konfigurationsdatei eine neue ACL (Zugriffskontrollliste) definieren.

sudo vim /etc/squid/squid.conf

Die acl-Regel, die Sie hinzufügen sollten, lautet:

acl localnet src XX.XX.XX.XX

Dabei ist XX.XX.XX.XX die IP-Adresse des Client-Computers. Diese ACL sollte am Anfang des ACL-Abschnitts hinzugefügt werden, wie im folgenden Screenshot gezeigt.

Es empfiehlt sich immer, neben ACL einen Kommentar zu definieren, der beispielsweise beschreibt, wer diese IP-Adresse verwendet.

acl localnet src 192.168.0.102  # Boss IP address

Sie müssen den Squid-Dienst neu starten, damit die neuen Änderungen wirksam werden.

sudo systemctl restart squid

Offene Ports im Squid-Proxy

Standardmäßig sind in der Squid-Konfiguration nur bestimmte Ports zulässig. Wenn Sie weitere hinzufügen möchten, definieren Sie diese einfach wie gezeigt in der Konfigurationsdatei.

acl Safe_ports port XXX

Dabei ist XXX die Portnummer, die Sie zulassen möchten. Auch hier empfiehlt es sich, neben acl einen Kommentar zu definieren, der beschreibt, wofür der Port verwendet werden soll.

Damit die Änderungen wirksam werden, müssen Sie Squid noch einmal neu starten.

sudo systemctl restart squid

Squid-Proxy-Client-Authentifizierung

Damit sich Benutzer vor der Verwendung des Proxys authentifizieren können, müssen Sie die grundlegende HTTP-Authentifizierung in der Konfigurationsdatei aktivieren. Zuvor müssen Sie jedoch das Paket Apache2-utils mit dem folgenden Befehl installieren.

sudo apt install apache2-utils

Erstellen Sie nun eine Datei namens „passwd“, in der später der Benutzername für die Authentifizierung gespeichert wird. Squid wird mit dem Benutzer „Proxy“ ausgeführt, daher sollte die Datei diesem Benutzer gehören.

sudo touch /etc/squid/passwd
sudo chown proxy: /etc/squid/passwd
ls -l /etc/squid/passwd

Jetzt erstellen wir einen neuen Benutzer namens „tecmint“ und richten sein Passwort ein.

sudo htpasswd /etc/squid/passwd tecmint

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

Um nun die grundlegende HTTP-Authentifizierung zu aktivieren, öffnen Sie die Konfigurationsdatei.

sudo vim /etc/squid/squid.conf

Fügen Sie nach den Ports-ACLs die folgenden Zeilen hinzu:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_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

Speichern Sie die Datei und starten Sie Squid neu, damit die neuen Änderungen wirksam werden:

sudo systemctl restart squid

Blockieren Sie Websites auf Squid Proxy

Um den Zugriff auf unerwünschte Websites zu blockieren, erstellen Sie zunächst eine Datei mit dem Namen „blacklisted_sites.acl“, in der die auf der schwarzen Liste aufgeführten Websites gespeichert werden.

sudo touch /etc/squid/blacklisted_sites.acl

Fügen Sie nun beispielsweise die Websites hinzu, deren Zugriff Sie sperren möchten.

.badsite1.com
.badsite2.com

Der vorangehende Punkt weist Squid an, alle Verweise auf diese Websites zu blockieren, einschließlich www.badsite1, subsite.badsite1.com usw.

Öffnen Sie nun die Konfigurationsdatei von Squid.

sudo vim /etc/squid/squid.conf

Fügen Sie direkt nach den oben genannten ACLs die folgenden zwei Zeilen hinzu:

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

Speichern Sie nun die Datei und starten Sie Squid neu:

sudo systemctl restart squid

Blockieren Sie ein bestimmtes Schlüsselwort mit Squid

Um eine Liste mit Schlüsselwörtern zu blockieren, erstellen Sie zunächst eine Datei mit dem Namen „blockkeywords.lst“, in der die Schlüsselwörter auf der schwarzen Liste gespeichert werden.

sudo touch /etc/squid/blockkeywords.lst

Fügen Sie nun beispielsweise die Schlüsselwörter hinzu, deren Zugriff Sie sperren möchten.

facebook
instagram
gmail

Öffnen Sie nun die Konfigurationsdatei von Squid und fügen Sie die folgende Regel hinzu.

acl blockkeywordlist url_regex "/etc/squid/blockkeywords.lst"
http_access deny blockkeywordlist

Speichern Sie nun die Datei und starten Sie Squid neu:

sudo systemctl restart squid

Sobald alles richtig konfiguriert ist, können Sie jetzt Ihren lokalen Client-Webbrowser oder die Netzwerkeinstellungen Ihres Betriebssystems so konfigurieren, dass Ihr neu konfigurierter Squid-HTTP-Proxy verwendet wird.

Konfigurieren Sie den Client für die Verwendung von Squid Proxy

Um nun zu testen, ob Ihr Proxyserver funktioniert oder nicht, können Sie Firefox öffnen und zu Bearbeiten –> Einstellungen –> Erweitert –> Netzwerk –> Einstellungen gehen und „< „Manuelle Proxy-Konfiguration“ und geben Sie wie folgt die IP-Adresse und den Port Ihres Proxy-Servers ein, der für alle Verbindungen verwendet werden soll.

Sobald Sie alle erforderlichen Proxy-Details eingegeben haben, können Sie mit Ihrem Squid-Proxy-Server im Internet surfen. Sie können das Gleiche auch in jedem anderen Browser oder Programm Ihrer Wahl tun.

Um sicherzustellen, dass Sie mit Ihrem Proxyserver im Internet surfen, können Sie http://www.ipaddresslocation.org/ besuchen. In der rechten oberen Ecke muss die gleiche IP-Adresse wie Ihr Server angezeigt werden IP Adresse.

Weitere zusätzliche Konfigurationseinstellungen finden Sie in der offiziellen Squid-Dokumentation. Wenn Sie Fragen oder Kommentare haben, fügen Sie diese bitte im Kommentarbereich unten hinzu.