In diesem umfassenden Leitfaden führen wir Sie durch den Prozess der Installation und Konfiguration des Squid Proxy-Servers auf einem Rocky Linux oder Alma Linux 9 Server. Wir decken alles ab, von der Erstkonfiguration bis zu fortgeschrittenen Konfigurationen und stellen sicher, dass Sie ein solides Verständnis davon haben, wie man Squid Proxy effektiv nutzen kann.
Voraussetzungen
Bevor wir mit dem Installations- und Konfigurationsprozess beginnen, müssen wir sicherstellen, dass alle notwendigen Voraussetzungen erfüllt sind. Sie benötigen:
- Einen Server, der entweder Rocky Linux 9 oder Alma Linux 9 ausführt.
- Ein Benutzerkonto, das keine Root-Rechte hat, aber über sudo-Rechte verfügt.
Stellen Sie sicher, dass Ihr System auf dem neuesten Stand ist, indem Sie den folgenden Befehl ausführen:
sudo dnf update
Außerdem müssen wir einige grundlegende Dienstprogrammpakete installieren. Obwohl einige von ihnen bereits installiert sein könnten, ist es gut, sicherzustellen, dass sie verfügbar sind:
sudo dnf install wget curl nano unzip yum-utils -y
Mit den erledigten Voraussetzungen können wir nun mit der Installation von Squid Proxy fortfahren.
Schritt 1 – Squid Proxy installieren
Um Squid Proxy zu installieren, müssen wir zuerst das Epel-Repository aktivieren. Führen Sie den folgenden Befehl aus, um das Repository zu installieren:
sudo dnf install epel-release
Sobald das Repository installiert ist, können wir mit der Installation von Squid Proxy fortfahren:
sudo dnf install squid
Um zu überprüfen, ob Squid Proxy erfolgreich installiert wurde, führen Sie den folgenden Befehl aus:
squid --version
Sie sollten die Squid Cache-Version und andere relevante Informationen sehen.
Als Nächstes müssen wir den Squid-Dienst aktivieren und starten:
sudo systemctl enable squid --now
Um den Status des Dienstes zu überprüfen, verwenden Sie den folgenden Befehl:
sudo systemctl status squid
Dies zeigt den aktuellen Status des Squid-Dienstes an und zeigt an, ob er läuft.
Schritt 2 – Squid Proxy konfigurieren
Jetzt, wo Squid Proxy installiert ist, ist es an der Zeit, es nach Ihren Bedürfnissen zu konfigurieren. Squid speichert seine Konfiguration in der Datei /etc/squid/squid.conf
. Lassen Sie uns zunächst einen Blick auf den Inhalt dieser Datei werfen:
sudo grep -vE "^#|^$" /etc/squid/squid.conf
Dieser Befehl filtert alle Kommentare und leeren Zeilen heraus und gibt Ihnen eine klare Sicht auf die Konfiguration.
2.1 Zugriffsrichtlinien für Squid konfigurieren
Access Control Lists (ACLs) definieren, wer Squid als Proxy in Ihrem lokalen Netzwerk nutzen darf. Um die ACLs zu konfigurieren, können wir Regeln zur Konfigurationsdatei hinzufügen. Um beispielsweise den Zugriff für Hosts im Subnetz 192.168.204.0/24
zu erlauben, fügen Sie die folgende ACL-Regel hinzu:
acl newlocalnet src 192.168.204.0/24
Um den Zugriff für diese ACL zu erlauben, fügen Sie die folgende Zeile unterhalb der Zeile http_access deny all
hinzu:
http_access allow newlocalnet
Denken Sie daran, dass Squid die Konfigurationsdatei von oben nach unten liest, so dass die Reihenfolge der Regeln wichtig ist.
2.2 Website-Blockierung
Squid Proxy ermöglicht es Ihnen, den Zugriff auf bestimmte Websites zu blockieren, indem Sie eine Liste von blockierten Domains erstellen. Um dies zu tun, erstellen Sie eine Datei, in der Sie die Domains speichern, die Sie blockieren möchten:
sudo nano /etc/squid/blocked-sites
Fügen Sie die Websites, die Sie blockieren möchten, in diese Datei ein, eine Domain pro Zeile. Zum Beispiel:
example.com example.net example.org
Speichern Sie die Datei und öffnen Sie dann die Squid-Konfigurationsdatei:
sudo nano /etc/squid/squid.conf
Fügen Sie die folgenden Zeilen in die Konfigurationsdatei ein:
acl blocked_sites dstdomain "/etc/squid/blocked-sites"
http_access deny blocked_sites
Dies wird den Zugriff auf jede Website, die in der Datei blocked-sites
aufgeführt ist, verweigern.
2.3 Blockieren von Downloads bestimmter Dateien
Neben der Blockierung von Websites kann Squid Proxy auch den Download bestimmter Dateitypen blockieren. Um dies zu erreichen, müssen wir eine Datei erstellen, in der wir die Dateierweiterungen speichern, die wir blockieren möchten:
sudo nano /etc/squid/blocked-filextensions
In dieser Datei listen Sie die Dateierweiterungen auf, die Sie blockieren möchten, eine Erweiterung pro Zeile. Zum Beispiel:
.exe(?.*)?$ .bat(?.*)?$ .tar(?.*)?$ .mp3(?.*)?$ .mp4(?.*)?$
Speichern Sie die Datei und öffnen Sie die Squid-Konfigurationsdatei:
sudo nano /etc/squid/squid.conf
Fügen Sie die folgenden Zeilen in die Konfigurationsdatei ein:
acl blockfiles urlpath_regex -i "/etc/squid/blocked-filextensions" http_access deny blockfiles
Dies wird den Download jeder Datei mit einer passenden Erweiterung verweigern.
2.4 Blockieren von Websites anhand von Schlüsselwörtern
Eine weitere Möglichkeit, den Zugriff auf Websites zu kontrollieren, besteht darin, sie auf der Grundlage von Schlüsselwörtern zu blockieren. Um dies zu implementieren, müssen wir eine Konfigurationsdatei erstellen, um die Schlüsselwörter zu speichern, die wir blockieren möchten:
sudo nano /etc/squid/banned-keywords
In dieser Datei führen Sie die Schlüsselwörter auf, die Sie blockieren möchten, ein Schlüsselwort pro Zeile. Zum Beispiel:
porn gamble ads movie
Speichern Sie die Datei und nehmen Sie die folgenden Änderungen in der Squid-Konfigurationsdatei vor:
acl keyword-ban url_regex "/etc/squid/banned-keywords" http_access deny keyword-ban
Dies wird den Zugriff auf jede Website verweigern, die ein blockiertes Schlüsselwort enthält.
2.5 Maskierung der IP-Adresse des Clients
Um den Verkehr zu anonymisieren und die IP-Adresse des Clients zu schützen, können wir Squid Proxy so konfigurieren, dass sie versteckt wird. Fügen Sie die folgenden Zeilen in die Squid-Konfigurationsdatei ein:
via off forwarded_for off
Diese Zeilen deaktivieren die Via
– und X-Forwarded-For
-Header und verhindern so, dass die IP-Adresse des Clients preisgegeben wird.
2.6 Ändern des Squid Proxy-Ports
Standardmäßig hört Squid Proxy auf Port 3128. Wenn Sie den Port ändern möchten, können Sie dies tun, indem Sie die Squid-Konfigurationsdatei ändern. Öffnen Sie die Datei zum Bearbeiten:
sudo nano /etc/squid/squid.conf
Suchen Sie die Zeile http_port 3128
und ersetzen Sie sie durch die gewünschte Portnummer. Zum Beispiel:
http_port 7035
Speichern Sie die Datei und validieren Sie die Konfiguration:
sudo squid -k parse
Dieser Befehl überprüft die Konfigurationsdatei auf eventuelle Fehler.
Schließlich starten Sie den Squid-Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl restart squid
2.7 Konfiguration von Firewall / SELinux
Wenn Sie den Standardport (3128) verwenden, müssen Sie ihn in der Firewall freigeben:
sudo firewall-cmd --add-service=squid --permanent sudo firewall-cmd --reload
Wenn Sie einen benutzerdefinierten Port aktiviert haben, verwenden Sie stattdessen die folgenden Befehle. Ersetzen Sie [port_number]
durch Ihre benutzerdefinierte Portnummer:
sudo firewall-cmd --permanent --add-port=[port_number]/tcp sudo firewall-cmd --reload
Sie müssen auch den benutzerdefinierten Port in SELinux mit dem folgenden Befehl freigeben:
sudo semanage port -a -t squid_port_t -p tcp[port_number]
Mit dem Squid Proxy-Server, der nach Ihren Spezifikationen konfiguriert ist, ist es an der Zeit, die Basisauthentifizierung für zusätzliche Sicherheit einzurichten.
Schritt 3 – Basisauthentifizierung für Squid einrichten
Um Squid Proxy so zu konfigurieren, dass es Authentifizierung akzeptiert, verwenden wir das htpasswd
-Dienstprogramm aus dem Apache-Tools-Paket. Installieren Sie das Paket, indem Sie den folgenden Befehl ausführen:
sudo dnf install httpd-tools
Erstellen Sie als nächstes ein Benutzername-Passwort-Paar mit dem folgenden Befehl:
sudo htpasswd -c /etc/squid/squid_passwd shapehost
Sie werden aufgefordert, das Passwort einzugeben und zu bestätigen.
Um sicherzustellen, dass Squid die Passwortdatei lesen kann, ändern Sie den Besitz der Datei auf den Squid-Benutzer:
sudo chown squid /etc/squid/squid_passwd
Jetzt, wo wir die Passwortdatei eingerichtet haben, müssen wir Squid so konfigurieren, dass es sie für die Authentifizierung verwendet. Öffnen Sie die Squid-Konfigurationsdatei:
sudo nano /etc/squid/squid.conf
Fügen Sie die folgenden Zeilen in die Konfigurationsdatei ein:
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/squid_passwd acl ncsa_users proxy_auth REQUIRED http_access allow ncsa_users
Diese Zeilen konfigurieren Squid so, dass es das Hilfsprogramm basic_ncsa_auth
verwendet und den Ort der Passwortdatei angibt.
Um die Authentifizierung zu aktivieren, starten Sie den Squid-Dienst neu:
sudo systemctl restart squid
Mit der Basisauthentifizierung können nur Benutzer mit gültigen Anmeldedaten auf den Squid Proxy-Server zugreifen.
Schritt 4 – Squid Proxy-Clients konfigurieren
Jetzt, wo Squid Proxy läuft, schauen wir uns an, wie wir Clients konfigurieren können, um sich mit dem Proxy-Server zu verbinden.
4.1 Systemweite Proxy-Konfiguration
Um Squid Proxy systemweit zu konfigurieren, können Sie eine Datei erstellen, die die Proxy-Konfiguration definiert. Öffnen Sie die Datei zum Bearbeiten:
sudo nano /etc/profile.d/squid.sh
Fügen Sie die folgenden Zeilen in die Datei ein und ersetzen Sie 192.168.205.10:7035
durch die IP-Adresse und den Port Ihres Squid Proxy-Servers:
PROXY_URL="192.168.205.10:7035" HTTP_PROXY=$PROXY_URL HTTPS_PROXY=$PROXY_URL FTP_PROXY=$PROXY_URL http_proxy=$PROXY_URL https_proxy=$PROXY_URL ftp_proxy=$PROXY_URL export HTTP_PROXY HTTPS_PROXY FTP_PROXY http_proxy https_proxy ftp_proxy
Speichern Sie die Datei und laden Sie sie, um die Änderungen zu übernehmen:
source /etc/profile.d/squid.sh
Um die Konfiguration zu überprüfen, können Sie den wget
-Befehl verwenden, um eine Anfrage an eine Website zu senden:
wget google.com
Wenn die Anfrage erfolgreich durchgeführt wird, bedeutet dies, dass die Proxy-Konfiguration funktioniert.
4.2 Proxy-Einstellung im Browser
Um Squid Proxy in Webbrowsern wie Firefox oder Chrome zu konfigurieren, können Sie Browser-Erweiterungen verwenden, die Proxy-Einstellungen unterstützen. Eine beliebte Erweiterung für Firefox ist “FoxyProxy Standard”, und für Chrome können Sie “Proxy SwitchOmega” verwenden.
Schauen wir uns an, wie man Squid Proxy mit der Erweiterung “FoxyProxy Standard” für Firefox konfiguriert.
- Installieren Sie die Erweiterung “FoxyProxy Standard” aus dem Firefox Add-ons Store.
- Sobald sie installiert ist, öffnen Sie die Erweiterungsoptionen, indem Sie auf das FoxyProxy-Symbol in der Firefox-Symbolleiste klicken und “Optionen” auswählen.
- In den FoxyProxy-Optionen klicken Sie auf die Schaltfläche “Hinzufügen”, um eine neue Proxy-Konfiguration zu erstellen.
- Geben Sie einen Namen für die Proxy-Konfiguration ein, die IP-Adresse und den Port Ihres Squid Proxy-Servers und gegebenenfalls Authentifizierungsinformationen.
- Aktivieren Sie die Option “Nicht für localhost und Intranet/private IP-Adressen verwenden”, um Konflikte mit lokalen Ressourcen zu vermeiden.
- Klicken Sie auf “Speichern”, um die Konfiguration zu speichern.
Mit der eingerichteten Proxy-Konfiguration können Sie nun das Web mit dem Squid Proxy-Server durchsuchen.
4.3 Verwendung von Squidclient
Wenn Sie den Squid Proxy-Server lieber von der Kommandozeile aus testen möchten, können Sie den Befehl squidclient
verwenden. Mit diesem Befehl können Sie Webanfragen stellen und die Antwort anzeigen. Hier ist ein Beispiel, wie Sie ihn verwenden können:
squidclient https://google.com
Dies sendet eine Anfrage an https://google.com
über den Squid Proxy-Server und zeigt die Antwort an.
Sie haben nun erfolgreich den Squid Proxy-Server auf Ihrem Rocky Linux oder Alma Linux 9 Server installiert und konfiguriert. Mit diesem Leitfaden haben Sie gelernt, wie Sie Zugriffsrichtlinien einrichten, Websites und Downloads blockieren, Client-IP-Adressen maskieren, den Squid Proxy-Port ändern, die Basisauthentifizierung konfigurieren und Proxy-Clients einrichten.
Für Unternehmen, die zuverlässige Cloud-Hosting-Lösungen benötigen, bietet Shape.host Dienstleistungen für Linux SSD VPS an. Mit Shape.host können Sie skalierbare und sichere Hosting-Infrastrukturen genießen, die durch Expertenunterstützung unterstützt werden. Besuchen Sie Shape.host, um mehr über ihre Dienstleistungen zu erfahren.