Einführung
Systemadministratoren verwenden den Squid-Proxy, um ihre Inhaltsbereitstellung zu erweitern. Squid Proxy ermöglicht es einem Server ausdrücklich, häufig besuchte Webseiten zwischenzuspeichern.
Wie? Wenn ein Benutzer eine Webseite oder Datei sucht, geht die Anfrage an den Proxy-Server – das Vermittlungsgerät zwischen dem Desktop-Computer und dem Internet. Der Proxy-Server zieht die Ressource und leitet sie an den Benutzer weiter, indem er die neuen Daten zwischenspeichert und sie für zukünftige Anfragen an denselben Server verwendet.
In diesem Handbuch erfahren Sie, wie Sie einen Squid-Proxyserver unter CentOS 7 einrichten, konfigurieren und installieren
Voraussetzungen
- CentOS-Betriebssystem
- Zugriff auf ein Terminalfenster/eine Befehlszeile (Strg-Alt-T)
- Ein CentOS-Nutzer mit Root- oder Sudo-Berechtigungen
- Das Yum-Paket-Installationsprogramm , standardmäßig enthalten
- Ein Texteditor wie vim
Schritte zum Installieren von Squid Proxy auf CentOS
Schritt 1:CentOS-Software-Repositories aktualisieren
Stellen Sie sicher, dass Sie mit der neuesten Softwareversion arbeiten, indem Sie Ihre Repositories aktualisieren.
Starten Sie ein Terminalfenster und geben Sie Folgendes ein:
sudo yum -y update
Schritt 2:Squid-Paket auf CentOS installieren
Um Squid zu installieren, geben Sie Folgendes ein:
yum -y install squid
Starten Sie nun Squid, indem Sie folgenden Befehl eingeben:
systemctl start squid
So richten Sie einen automatischen Start beim Booten ein:
systemctl enable squid
Überprüfen Sie den Status des Dienstes, verwenden Sie:
systemctl status squid
Im Beispiel unten sehen wir, dass der Status „Aktiv“ ist.
Konfigurieren des Squid-Proxy-Servers
Die Squid-Konfigurationsdatei finden Sie unter /etc/squid/squid.conf.
1. Öffnen Sie die Datei in Ihrem bevorzugten Texteditor (vim wurde in diesem Beispiel verwendet}:
sudo vi /etc/squid/squid.conf
2. Navigieren Sie zur http_port-Option . Normalerweise ist dies so eingestellt, dass es auf Port 3218 lauscht . Dieser Port überträgt normalerweise TCP-Verkehr. Wenn Ihr System für Datenverkehr auf einem anderen Port konfiguriert ist, ändern Sie ihn hier:
Sie können den Proxy-Modus auch auf transparent setzen wenn Sie verhindern möchten, dass Squid Ihre Anfragen und Antworten ändert.
Ändern Sie es wie folgt:
http_port 1234 transparent
3. Navigieren Sie zu http_access deny all Option.
Es ist derzeit so konfiguriert, dass der gesamte HTTP-Datenverkehr blockiert wird und kein Webdatenverkehr zugelassen wird, wie unten gezeigt.
Ändern Sie dies wie folgt:
http_access allow all
4. Starten Sie den Squid-Dienst neu, indem Sie Folgendes eingeben:
sudo systemctl restart squid
Squid-Client konfigurieren
Der Squid-Proxy-Server ist jetzt konfiguriert. Um den Client-Server zu konfigurieren, wechseln Sie zu Ihrem Client-Rechner und öffnen Sie Ihren Webbrowser.
Wenn Sie Firefox verwenden, finden Sie die Proxy-Einstellungen unter:
Menü> Optionen> Netzwerkeinstellungen> Einstellungen
Wählen Sie das Optionsfeld für die manuelle Proxy-Konfiguration aus.
Verwenden Sie die IP-Adresse für das System, das Ihren Squid-Proxy hostet.
Besuchen Sie zum Testen https://whatismyipaddress.com/ip-lookup. Ihre IP-Adresse wird als IP-Adresse des Proxy-Servers angezeigt.
Erstellen Sie eine Zugriffskontrollliste (ACL)
Für Verbindungen außerhalb des lokalen Netzwerks des Proxy-Servers müssen Sie die Access Control Lists (ACL) konfigurieren. Dies kann erforderlich sein, wenn Sie die Fehlermeldung „Verbindung verweigert“ erhalten.
Um dieses Problem zu lösen, fügen Sie einfach einen neuen ACL-Eintrag zu Ihrer Liste sicherer Ports hinzu.
Bearbeiten Sie die /etc/squid/squid.conf Datei noch einmal. Fügen Sie wie folgt eine neue Zeile hinzu:
acl localnet src 192.166.0.10
Dadurch wird eine Regel erstellt, die es dem System nur unter dieser IP-Adresse erlaubt, sich zu verbinden.
Kommentieren Sie die Zeile, um die Regel zu identifizieren. Text nach dem #-Zeichen wird von Squid ignoriert.
acl localnet src 192.166.0.10 # test computer
Sie können einen Bereich von IP-Adressen wie folgt angeben:
acl localnet src 192.166.0.10/30
Squid-Proxy-Ports öffnen
Um einen bestimmten Port zu öffnen, fügen Sie Folgendes hinzu:
acl Safe_ports port 123 # Custom port
Starten Sie Squid neu, um die Änderungen zu speichern:
systemctl restart squid
Proxy-Authentifizierung einrichten
Squid bietet neben der Unterstützung anderer Arten der Authentifizierung eine einfache Authentifizierung.
Installieren Sie zuerst httpd-tools mit folgendem Befehl:
yum -y install httpd-tools
Erstellen Sie bei installiertem Tool die neue Datei:
touch /etc/squid/passwd && chown squid /etc/squid/passwd
Um das Passwort zu erstellen, verwenden Sie diesen Befehl:
htpasswd /etc/squid/passwd newuser
Tauschen Sie das ‘ aus newuser‘ mit Ihrem Benutzernamen.
Das System fordert Sie auf, ein Passwort für „neuer Benutzer“ einzugeben und zu bestätigen.
Starten Sie den Proxy-Dienst neu und öffnen Sie Ihren Browser erneut, indem Sie Folgendes einfügen:
systemctl restart squid
Bearbeiten Sie die /etc/squid/squid.conf Datei, und fügen Sie die folgenden Befehlszeilen 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
Wenn Sie sich von nun an mit dem Linux-Proxyserver verbinden, werden Sie aufgefordert, Ihren Benutzernamen und Ihr Passwort einzugeben. Jede nicht authentifizierte Person wird durch eine Fehlermeldung gestoppt.
So blockieren Sie Websites mit Squid Proxy
1. Erstellen und bearbeiten Sie eine neue Textdatei /etc/squid/blocked.acl durch Eingabe von:
sudo vi /etc/squid/blocked.acl
2. Fügen Sie in dieser Datei die zu blockierenden Websites hinzu, beginnend mit einem Punkt:
.facebook.com
.twitter.com
Der Punkt gibt an, dass alle Unterseiten der Hauptseite blockiert werden sollen.
3. Öffnen Sie die /etc/squid/squid.conf Datei erneut:
sudo vi /etc/squid/squid.conf
4. Fügen Sie direkt über Ihrer ACL-Liste die folgenden Zeilen hinzu:
acl blocked_websites dstdomain “/etc/squid/blocked.acl”
http_access deny blocked_websites