11.5. Web-Proxy für Caching und Policy Management/Virenscan#

Die Proxy-Integration ermöglicht die Verwendung eines Web-Caches zur Verbesserung der Performance und Kontrolle des Datenverkehrs. Sie basiert auf dem bewährten Proxy-Server Squid und unterstützt die Protokolle HTTP, FTP und HTTPS.

Ein Proxy-Server nimmt Anfragen nach Internetinhalten entgegen und prüft, ob diese Inhalte bereits in einem lokalen Cache vorhanden sind. Ist dies der Fall, werden die angefragten Daten aus dem lokalen Cache bereitgestellt. Sind die Daten noch nicht vorhanden, werden die Inhalte vom jeweiligen Webserver abgerufen und in den lokalen Cache eingefügt. Hierdurch können die Antwortzeiten für die Anwender sowie das Transfervolumen über den Internetzugang verringert werden.

Einige weiterführende Funktionen der Proxy-Dienste - wie etwa die Kaskadierung von Proxy-Servern - werden in Extended IP and network management documentation [14] beschrieben.

11.5.1. Installation#

Squid kann mit der Applikation Proxyserver / Webcache (Squid) aus dem Univention App Center installiert werden. Alternativ kann das Softwarepaket univention-squid installiert werden. Weitere Informationen finden sich in Installation weiterer Software.

Der Dienst wird mit für den Betrieb ausreichenden Standardeinstellungen konfiguriert, sodass eine sofortige Verwendung möglich ist. Der Port, auf dem der Dienst erreichbar ist, kann nach eigenen Wünschen konfiguriert werden (siehe Zugriffsport), voreingestellt ist Port 3128.

Werden Änderungen an der Konfiguration vorgenommen, muss Squid neu gestartet werden. Dies kann entweder über das UMC-Modul Systemdienste oder auf der Kommandozeile erfolgen:

$ systemctl restart squid

Neben den in diesem Dokument beschriebenen Konfigurationsmöglichkeiten über Univention Configuration Registry können in der Datei /etc/squid/local.conf auch beliebige weitere Squid-Optionen gesetzt werden.

11.5.2. Caching von Webseiten#

Squid ist ein Caching proxy, d.h. zuvor schon einmal angefragte Inhalten können aus einem Cache zur Verfügung gestellt werden ohne erneut vom jeweiligen Webserver geladen zu werden. Dies reduziert das Datenaufkommen über die Internetanbindung und kann zu einer schnelleren Beantwortung von HTTP-Anfragen führen.

In manchen Umgebungen ist diese Caching-Funktionalität allerdings nicht notwendig oder muss bei kaskadierten Proxys nicht bei allen aktiviert sein. Für diese Szenarien kann die Caching-Funktion des Squid mit der Univention Configuration Registry Variable squid/cache deaktiviert werden, indem diese auf den Wert no gesetzt wird. Anschließend muss Squid neu gestartet werden.

11.5.3. Protokollierung von Zugriffen#

Sämtliche Zugriffe, die über den Proxy-Server vorgenommen werden, werden in der Logdatei /var/log/squid/access.log erfasst. Anhand dieser Logdatei ist es möglich, nachzuvollziehen auf welche Webseiten zugegriffen wurde.

11.5.4. Einschränkung des Zugriffs auf erlaubte Netzwerke#

Standardmäßig darf nur aus lokalen Netzwerken auf den Proxy-Server zugegriffen werden. Ist z.B. an dem Rechner, auf dem Squid installiert wurde, ein Netzwerkinterface mit der Adresse 192.0.2.10 und der Netzmaske 255.255.255.0 vorhanden, dürfen nur Rechner aus dem Netzwerk 192.0.2.0/24 auf den Proxy-Server zugreifen. Weitere Netzwerke können über die Univention Configuration Registry Variable squid/allowfrom angegeben werden. Dabei muss die CIDR-Notation verwendet werden, mehrere Netzwerke sind durch Leerzeichen zu trennen.

Beispiel:

$ univention-config-registry set squid/allowfrom="192.0.2.0/24 192.0.3.0/24"

Nach einem Neustart von Squid ist jetzt der Zugriff aus den Netzwerken 192.0.2.0/24 und 192.0.2.0/24 erlaubt. Durch Angabe von all kann der Zugriff auch aus allen Netzen erlaubt werden.

11.5.5. Konfiguration der verwendeten Ports#

11.5.5.1. Zugriffsport#

Standardmäßig ist der Web-Proxy über den Port 3128 erreichbar. Ist ein anderer Port gewünscht, kann dieser über die Univention Configuration Registry Variable squid/httpport konfiguriert werden. Bei Verwendung von Univention Firewall muss zusätzlich die Paketfilterkonfiguration angepasst werden.

11.5.5.2. Erlaubte Ports#

In der Standardkonfiguration leitet Squid nur Anfragen von Clients weiter, die an die Netzwerkports 80 (HTTP), 443 (HTTPS) oder 21 (FTP) gerichtet werden. Die Liste der erlaubten Ports kann über die Univention Configuration Registry Variable squid/webports geändert werden, mehrere Angaben sind dabei durch Leerzeichen zu trennen.

Beispiel:

$ univention-config-registry set squid/webports="80 443"

Durch diese Einstellung wird nur noch der Zugriff auf die Ports 80 und 443 (HTTP und HTTPS) erlaubt.

11.5.6. Benutzer-Authentifizierung am Proxy#

Oftmals ist es notwendig, dass nur bestimmte Benutzer Zugriff auf Webseiten erhalten sollen. Squid ermöglicht die benutzerbezogene Zugriffsregelung über Gruppenmitgliedschaften. Um eine Überprüfung der Gruppenmitgliedschaft zu ermöglichen, ist es hierbei erforderlich, dass eine Anmeldung des Benutzers am Proxy-Server durchgeführt wird.

Vorsicht

Um zur verhindern, dass nicht autorisierte Benutzer trotzdem Webseiten abrufen können, sind weitere Maßnahmen erforderlich, damit diese Benutzer nicht am Proxy-Server vorbei auf das Internet zugreifen können. Dies kann z.B. erreicht werden, in dem in der Firewall alle HTTP-Anfragen mit Ausnahme des Proxys unterbunden werden.

Proxy-Authentifizierung und die damit erst mögliche Überprüfung der Gruppenzugehörigkeiten muss zuerst aktiviert werden. Dafür werden drei verschiedene Mechanismen angeboten:

LDAP Server Authentifizierung

Die Authentifizierung erfolgt direkt gegen den LDAP-Server. Dazu müssen die Univention Configuration Registry Variable squid/basicauth auf yes gesetzt und Squid neu gestartet werden.

NTLM Authentifizierung

Die Authentifizierung wird über die NTLM-Schnittstelle durchgeführt. Benutzer, die an einem Windows-Client angemeldet sind, müssen dann beim Zugriff auf den Proxy keine weitere Authentifizierung durchführen. Um NTLM-Authentifizierung zu aktivieren, müssen die Univention Configuration Registry Variable squid/ntlmauth auf yes gesetzt und Squid neu gestartet werden.

Kerberos Authentifizierung

Die Authentifizierung erfolgt über 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 im Rahmen der Domänenanmeldung erhalten haben. Um Kerberos-Authentifizierung zu aktivieren muss das Paket univention-squid-kerberos auf jedem Proxyserver installiert werden. Anschließend müssen die Univention Configuration Registry Variable squid/krb5auth auf yes gesetzt und Squid neu gestartet werden.

Bei Verwendung von NTLM-Authentifizierung wird standardmäßig für jede HTTP-Anfrage eine NTLM-Authentifizierung durchgeführt. Wird beispielsweise die Webseite <https://www.univention.de/> aufgerufen, werden neben der eigentlichen HTML-Seite auch weitere Unterseiten und Bilder nachgeladen. Die NTLM-Authentifizierung kann domänenbezogenen zwischengespeichert werden: Wird die Univention Configuration Registry Variable squid/ntlmauth/keepalive auf yes gesetzt, wird für nachgelagerte HTTP-Anfragen derselben Domäne keine weitere NTLM-Authentifizierung durchgeführt. Bei Problemen mit lokalen Benutzerkonten kann es helfen, diese Variable auf no zu setzen.

In der Grundeinstellung können alle Benutzer auf den Proxy zugreifen. Mit der Univention Configuration Registry Variable squid/auth/allowed_groups kann der Zugriff auf eine oder mehrere Gruppen beschränkt werden. Bei Angabe mehrerer Gruppen sind diese durch ein Semikolon zu trennen.