So installieren und konfigurieren Sie Squid Proxy unter CentOS 7
Squid ist ein voll ausgestatteter Caching-Proxy, der gängige Netzwerkprotokolle wie HTTP, HTTPS, FTP und mehr unterstützt. Das Platzieren von Squid vor einem Webserver kann die Serverleistung erheblich verbessern, indem wiederholte Anforderungen zwischengespeichert, der Webverkehr gefiltert und auf geografisch eingeschränkte Inhalte zugegriffen wird.
In diesem Lernprogramm wird erläutert, wie Squid unter CentOS 7 eingerichtet und die Webbrowser Firefox und Google Chrome für die Verwendung des Proxys konfiguriert werden.
Installieren von Squid auf CentOS #
Das Squid-Paket ist in den Standard-Repositorys von CentOS 7 enthalten. Um es zu installieren, führen Sie den folgenden Befehl als sudo-Benutzer aus:
sudo yum install squid
Sobald die Installation abgeschlossen ist, starten und aktivieren Sie den Squid-Dienst:
sudo systemctl start squid
sudo systemctl enable squid
Um zu überprüfen, ob die Installation erfolgreich war, geben Sie den folgenden Befehl ein, der den Dienststatus ausgibt:
sudo systemctl status squid
● squid.service - Squid caching proxy Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-07-13 16:47:56 UTC; 12s ago...
Konfigurieren von Squid #
Squid kann durch Bearbeiten der Datei /etc/squid/squid.conf
konfiguriert werden. Zusätzliche Dateien mit Konfigurationsoptionen können mit der Direktive „include“ eingefügt werden.
Bevor Sie Änderungen vornehmen, sichern Sie die ursprüngliche Konfigurationsdatei mit dem Befehl cp
:
sudo cp /etc/squid/squid.conf{,.orginal}
Um die Datei zu bearbeiten, öffnen Sie sie in Ihrem Texteditor:
sudo nano /etc/squid/squid.conf
Standardmäßig ist Squid so konfiguriert, dass es Port 3128
auf allen Netzwerkschnittstellen des Servers überwacht.
Wenn Sie den Port ändern und eine Abhörschnittstelle 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 ist, wird Squid alle Schnittstellen überwachen.
# Squid normally listens to port 3128http_port IP_ADDR:PORT
Das Ausführen von Squid auf allen Schnittstellen und auf dem Standardport sollte für die meisten Benutzer in Ordnung sein.
Sie können den Zugriff auf den Squid-Server über die Zugriffssteuerungslisten (ACLs) steuern.
Standardmäßig erlaubt Squid den Zugriff nur von localhost und localnet.
Wenn alle Clients, die den Proxy verwenden, eine statische IP-Adresse haben, können Sie eine ACL erstellen, die die zulässigen IPs enthält.
Anstatt die IP-Adressen in der Hauptkonfigurationsdatei hinzuzufügen, erstellen wir eine neue dedizierte Datei, die die IPs enthält:
192.168.33.1# All other allowed IPs
Öffnen Sie anschließend die Hauptkonfigurationsdatei, erstellen Sie eine neue ACL mit dem Namen allowed_ips
(erste hervorgehobene Zeile) und erlauben Sie den Zugriff auf diese ACL mithilfe der Direktive http_access
(zweite hervorgehobene Zeile):
# ...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
hinzufügen.
Die Direktive http_access
funktioniert ähnlich wie die Firewallregeln. Squid liest die Regeln von oben nach unten, und wenn eine Regel übereinstimmt, werden die folgenden Regeln 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 #
Squid kann verschiedene Backends verwenden, einschließlich Samba, LDAP und HTTP Basic Auth, um Benutzer zu authentifizieren.
In diesem Beispiel konfigurieren wir Squid für die Verwendung von Basic auth. Es ist eine einfache Authentifizierungsmethode, die in das HTTP-Protokoll integriert ist.
Wir verwenden openssl
, um die Passwörter zu generieren, und hängen das username:password
-Paar mit dem Befehl tee
wie unten gezeigt an die /etc/squid/htpasswd
-Datei an:
printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd
Um beispielsweise einen Benutzer namens „mike“ mit dem Kennwort „Pz$lPk76
“ zu erstellen, würden Sie Folgendes ausführen:
printf "mike:$(openssl passwd -crypt 'Pz$lPk76')\n" | sudo tee -a /etc/squid/htpasswd
mike:2nkgQsTSPCsIo
Der nächste Schritt besteht darin, Squid so zu konfigurieren, dass die HTTP-Basisauthentifizierung aktiviert und die Datei verwendet wird.
Öffnen Sie die Hauptkonfiguration und fügen Sie Folgendes hinzu:
# ...auth_param basic program /usr/lib64/squid/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
Mit den ersten drei hervorgehobenen Zeilen erstellen wir eine neue ACL mit dem Namen authenticated
. Die letzte hervorgehobene Zeile ermöglicht den Zugriff auf authentifizierte Benutzer.
Starten Sie den Squid-Dienst neu:
sudo systemctl restart squid
Firewall konfigurieren #
Wenn Sie eine Firewall ausführen, müssen Sie Port 3128
öffnen. Führen Sie dazu die folgenden Befehle aus:
sudo firewall-cmd --permanent --add-port=3128/tcp
firewall-cmd --reload
Konfigurieren Ihres Browsers für die Verwendung von Proxy #
Nachdem Sie Squid eingerichtet haben, müssen Sie als letzten Schritt Ihren bevorzugten Browser für die Verwendung konfigurieren.
Firefox #
Die folgenden Schritte sind für Windows, macOS und Linux identisch.
-
Klicken Sie in der oberen rechten Ecke auf das Hamburger-Symbol
☰
, um das Firefox-Menü zu öffnen: -
Klicken Sie auf den Link
⚙ Preferences
. -
Scrollen Sie zum Abschnitt
Network Settings
und klicken Sie auf die SchaltflächeSettings...
. -
Es öffnet sich ein neues Fenster.
- Wählen Sie das Optionsfeld
Manual proxy configuration
. - Geben Sie Ihre Squid-Server-IP-Adresse in das Feld
HTTP Host
und3128
in das FeldPort
ein. - Aktivieren Sie das Kontrollkästchen
Use this proxy server for all protocols
. - Klicken Sie auf die Schaltfläche
OK
, um die Einstellungen zu speichern.
- Wählen Sie das Optionsfeld
Zu diesem Zeitpunkt 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 Ihre Squid-Server-IP-Adresse sehen.
Um zu den Standardeinstellungen zurückzukehren, gehen Sie zu Network Settings
, wählen Sie das Optionsfeld Use system proxy settings
und speichern Sie die Einstellungen.
Es gibt auch mehrere Plugins, mit denen Sie die Proxy-Einstellungen von Firefox wie FoxyProxy konfigurieren können.
Google Chrome #
Google Chrome verwendet die standardmäßigen System-Proxy-Einstellungen. Anstatt die Proxy-Einstellungen Ihres Betriebssystems zu ändern, können Sie entweder ein Addon wie switchyomegaoder Starten Sie den Chrome-Webbrowser über die Befehlszeile.
Um Chrome mit einem neuen Profil zu starten und eine Verbindung zum Squid-Server herzustellen, verwenden Sie den folgenden Befehl:
Linux :
/usr/bin/google-chrome \ --user-data-dir="$HOME/proxy-profile" \ --proxy-server="http://SQUID_IP:3128"
MAC OS :
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \ --user-data-dir="$HOME/proxy-profile" \ --proxy-server="http://SQUID_IP:3128"
Fenster :
"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 ordnungsgemäß 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 #
Sie haben gelernt, Squid unter CentOS 7 zu installieren und Ihren Browser für die Verwendung zu konfigurieren.
Squid ist einer der beliebtesten Proxy-Caching-Server. Es verbessert die Geschwindigkeit des Webservers und kann Ihnen helfen, den Benutzerzugriff auf das Internet einzuschränken.