7.12. Einen Web-Proxy-Dienst mit Squid bereitstellen#
Die Proxy-Integration von Nubus für UCS verwendet Squid als Web-Cache, um die Leistung zu verbessern und den Datenverkehr zu steuern. Sie unterstützt HTTP, FTP und HTTPS.
Ein Proxy-Server empfängt Anfragen nach Inhalten aus dem Internet und prüft, ob die angeforderten Inhalte in seinem lokalen Cache verfügbar sind. Er kann zwischengespeicherte Inhalte ausliefern oder Inhalte vom Webserver abrufen. Das Zwischenspeichern kann Antwortzeiten und Internetverkehr reduzieren.
Weitere Informationen zu Proxy-Diensten, einschließlich der Kaskadierung von Proxy-Servern, transparenter Proxys und der Integration von Virenscannern, finden Sie in Extended IP and network management documentation [11].
7.12.1. Installation#
Sie können Squid aus dem Univention App Center über die Anwendung Web proxy / web cache (Squid) installieren. Weitere Informationen zur Installation einer App finden Sie unter Anwendungen installieren.
Alternativ können Sie das Softwarepaket univention-squid installieren. Weitere Informationen finden Sie unter Paket-Installation und -Verwaltung.
Mit den Standardeinstellungen können Sie den Dienst sofort verwenden. Der Standardport für den Zugriff ist 3128. Sie können einen anderen Port konfigurieren; siehe Zugriffsport.
Siehe auch
- Univention App Center
für Informationen zum Univention App Center.
7.12.2. Zusätzliche Konfiguration und Neustart#
Starten Sie Squid neu, wenn Sie die Konfiguration ändern. Sie können Squid über das Verwaltungsmodul System services in der Management UI neu starten. Sie benötigen eine Berechtigung, um das Modul zu verwenden. Eine Anleitung finden Sie unter Systemdienste verwalten.
Alternativ können Sie Squid wie in Listing 7.32 gezeigt mit root-Berechtigungen über die Befehlszeile neu starten.
$ systemctl restart squid
Zusätzlich zu den Einstellungen der Univention Configuration Registry können Sie Konfigurationsoptionen für Squid in der Datei /etc/squid/local.conf setzen.
7.12.3. Zwischenspeichern von Webinhalten#
Squid kann zwischengespeicherte Inhalte ausliefern, ohne sie erneut vom Webserver abzurufen. Dies reduziert den eingehenden Internetverkehr und kann zu schnelleren Antworten auf HTTP-Anfragen führen.
In manchen Umgebungen ist das Zwischenspeichern nicht notwendig. In einer Proxy-Kaskade können Sie das Zwischenspeichern auf einzelnen Proxys deaktivieren. Setzen Sie dazu die UCR-Variable squid/cache auf no. Starten Sie anschließend Squid neu, wie in Listing 7.32 gezeigt.
7.12.4. Proxy-Zugriffe protokollieren#
Der Proxy-Server protokolliert Zugriffe über den Proxy in der Datei /var/log/squid/access.log. Anhand der Log-Datei können Sie nachvollziehen, auf welche Websites Benutzer zugegriffen haben.
7.12.5. Konfiguration der verwendeten Ports#
Sie können den Port konfigurieren, über den Clients eine Verbindung zu Squid herstellen, sowie die Zielports, die Squid für Client-Anfragen zulässt.
7.12.5.1. Zugriffsport#
Standardmäßig können Sie über Port 3128 auf den Web-Proxy zugreifen. Um einen anderen Port zu verwenden, konfigurieren Sie die UCR-Variable squid/httpport. Starten Sie anschließend Squid neu, wie in Listing 7.32 gezeigt.
Wenn Sie die Univention Firewall verwenden, stellen Sie sicher, dass deren Regeln für eingehende TCP-Verbindungen den ausgewählten Port für die vorgesehenen Clients zulassen. Weitere Informationen finden Sie unter Paketfilter mit Univention Firewall.
7.12.5.2. Zugelassene Ports#
Standardmäßig leitet Squid Client-Anfragen nur an die Ports 80 (HTTP), 443 (HTTPS) oder 21 (FTP) weiter. Sie können die zugelassenen Ports mit der UCR-Variable squid/webports ändern. Trennen Sie mehrere Einträge durch jeweils ein Leerzeichen. Fügen Sie vor dem ersten oder nach dem letzten Eintrag keine Leerzeichen hinzu.
Listing 7.33 zeigt, wie Sie die zugelassenen Ports festlegen. Führen Sie den Befehl mit root-Berechtigungen aus. Mit dieser Einstellung erlaubt der Proxy den Zugriff nur auf die Ports 80 und 443 (HTTP und HTTPS). Um die Einstellungen anzuwenden, müssen Sie Squid wie unter Zusätzliche Konfiguration und Neustart beschrieben neu starten.
$ univention-config-registry set squid/webports="80 443"
Siehe auch
- CIDR notation - Wikipedia
für weitere Informationen zur CIDR-Notation.
7.12.6. Zugriff auf zugelassene Netzwerke beschränken#
Standardmäßig ist der Proxy-Server nur aus lokalen Netzwerken erreichbar. Ein Computer, auf dem Squid läuft, hat beispielsweise eine Netzwerkschnittstelle mit der Adresse 192.0.2.10 und der Netzmaske 255.255.255.0. In diesem Fall können nur Computer im Netzwerk 192.0.2.0/24 auf den Proxy-Server zugreifen.
Sie können mit der UCR-Variable squid/allowfrom zusätzliche Netzwerke angeben. Verwenden Sie die CIDR-Notation und trennen Sie mehrere Netzwerke durch Leerzeichen.
Listing 7.34 zeigt, wie Sie den Zugriff aus zusätzlichen Netzwerken zulassen. Führen Sie den Befehl mit root-Berechtigungen aus. Nach dem Neustart von Squid können die Netzwerke 192.0.2.0/24 und 192.0.3.0/24 auf den Proxy zugreifen. Wenn Sie squid/allowfrom auf all setzen, können alle Netzwerke auf den Proxy zugreifen.
$ univention-config-registry set squid/allowfrom="192.0.2.0/24 192.0.3.0/24"
7.12.7. Benutzerauthentifizierung am Proxy#
Möglicherweise müssen Sie den Webzugriff auf bestimmte Benutzer beschränken. Squid ermöglicht es, den Benutzerzugriff anhand der Gruppenmitgliedschaft zu steuern. Um die Gruppenmitgliedschaft zu überprüfen, müssen sich Benutzer am Proxy-Server authentifizieren.
Vorsicht
Die Proxy-Authentifizierung allein hindert Benutzer nicht daran, den Proxy-Server zu umgehen und auf das Internet zuzugreifen. Um zu verhindern, dass unberechtigte Benutzer Websites öffnen, benötigen Sie zusätzliche Maßnahmen. Beschränken Sie den direkten Internetzugriff für den Datenverkehr, den Benutzer in Ihrer Umgebung über den Proxy leiten müssen, gegebenenfalls einschließlich HTTPS.
Aktivieren Sie zunächst die Proxy-Authentifizierung, um die Gruppenmitgliedschaft überprüfen zu können. Für die Proxy-Authentifizierung gibt es drei mögliche Verfahren:
- Authentifizierung am LDAP-Server
Um sich direkt am LDAP-Server zu authentifizieren, setzen Sie die UCR-Variable
squid/basicauthaufyesund starten Sie Squid neu.- NTLM-Authentifizierung
Die Authentifizierung verwendet die NTLM-Schnittstelle. Benutzer, die an einem Windows-Client angemeldet sind, müssen sich beim Zugriff auf den Proxy nicht erneut authentifizieren. Um die NTLM-Authentifizierung zu aktivieren, setzen Sie die UCR-Variable
squid/ntlmauthaufyesund starten Sie Squid neu.- Kerberos-Authentifizierung
Die Authentifizierung verwendet Kerberos. Benutzer, die an einem Windows-Client angemeldet sind, der Mitglied einer Samba/AD-Domäne ist, authentifizieren sich am Proxy mit dem Ticket, das sie bei der Anmeldung an der Domäne erhalten haben.
Um die Kerberos-Authentifizierung zu aktivieren, installieren Sie das Paket univention-squid-kerberos auf jedem Proxy-Server. Informationen zur Installation eines Pakets finden Sie unter Paket-Installation und -Verwaltung.
Setzen Sie anschließend die UCR-Variable
squid/krb5authaufyesund starten Sie Squid neu.
Squid ordnet eine erfolgreiche NTLM-Authentifizierung der TCP-Verbindung des Clients zu. Eine neue TCP-Verbindung erfordert eine erneute Authentifizierung.
Die UCR-Variable squid/ntlmauth/keepalive steuert die keep_alive-Einstellung von Squid für NTLM.
Standardmäßig können alle Benutzer auf den Proxy zugreifen. Um den Proxy-Zugriff auf eine oder mehrere Gruppen zu beschränken, aktivieren Sie ein Verfahren zur Proxy-Authentifizierung und setzen Sie die UCR-Variable squid/auth/allowed_groups auf die LDAP-Gruppennamen. Die Einstellung wird mit den cn-Werten der Gruppen abgeglichen.
Wenn Sie mehrere Gruppen angeben, trennen Sie sie durch Semikolons. Fügen Sie vor oder nach den Semikolons keine Leerzeichen hinzu. Starten Sie Squid neu, nachdem Sie die Einstellung geändert haben.