Inhaltsverzeichnis
Web-Proxy-Einstellungen und Proxies an der FHS
Übersicht
Proxy-Einstellungen und Web-Proxies können an der FHS u.a. für folgende Zwecke verwendet werden:
- Versorgung von PCs mit Windows-Updates (bzw. auch Updates für andere Betriebssysteme), auch wenn die PCs nur mit einer Public-IP (z.B. 192.168.x.y) ausgestattet sind. Ein Web-Proxy - z.B. squid - wird benotigt, dieser muss auf einem Server mit Internet-tauglicher IP-Adresse laufen.
- Einschränkung der mit dem Internet Explorer erreichbaren Webseiten, um nur bestimmte Browser zuzulassen. Es wird kein Web-Proxy benötigt. Da manche IE-Komponenten nicht nur vom IE selbst, sondern auch von anderer Software verwendet werden (z.B. Windows Update oder Aktivierung/Lizensierung einiger Softwareprodukte) müssen bestimmte Seiten für IE und IE-Komponenten erreichbar sein.
Für beide Zwecke wird ein Web-Server benötigt, um *.pac-Dateien an die Browser auszuliefern.
Installation squid
Der Web-Proxy wird benötigt, um PCs mit interner bzw. Public-IP mit Updates zu versorgen.
Squid kann unter Linux betrieben werden, die Fakultät ET lässt diesen Dienst auf einer vom RZ bereitgestellten virtuellen Maschine mitlaufen. Die Installation von squid erfolgte über das Paketmanagement.
Vor der Verwendung muss squid konfiguriert werden, insbesondere:
- Wo werden die Daten gespeichert, wieviel Speicherplatz verfügbar?
- Von welchen Clients darf squid genutzt werden für den Zugriff auf welche Server?
- Welchen Port soll squid verwenden?
Diese Angaben werden in /etc/squid/squid.conf konfiguriert. Die Konfiguration von squid ist u.a. in http://selflinux.org/selflinux/html/squid.html erläutert, diese Webseite diente auch als Ausgangspunkt für die Erstellung unserer squid.conf-Datei.
Konfigurations-Datei squid.conf
Zur Zugriffssteuerung werden zunächst acl-Objekte definiert. Enthält eine Regel mehrere Angaben (z.B. mehrere Quell-IP-Adressen oder mehrere Zieldomänen), so werden die Informationen oder-verknüpft.
Die Zeilen
acl mylocalnet src 192.168.101.0/24 # in-house public IP address acl pcpool src 192.0.2.101/32 192.0.2.102/32 192.0.2.103/32 acl pcpool src 192.0.2.104/32 192.0.2.105/32 192.0.2.106/32 acl pcpool src 192.0.2.107/32 192.0.2.108/32 192.0.2.109/32 acl pcpool src 192.0.2.110/32 192.0.2.221/32 192.0.2.222/32 acl pcpool src 192.0.2.223/32 192.0.2.224/32 192.0.2.225/32 acl pcpool src 192.0.2.226/32 192.0.2.227/32 192.0.2.228/32 acl pcpool src 192.0.2.229/32 192.0.2.230/32 192.0.2.231/32 acl pcpool src 192.0.2.232/32 192.0.2.233/32 192.0.2.234/32
geben vor, dass die bestimmte Quell-Adressen (Client-Adressen) über die ACLs „mylocalnet“ bzw. „pcpool“ angesprochen werden können.
Die ACL „pcpool“ wird hier nicht benutzt, diese Beispielregel soll lediglich verdeutlichen, wie mehrere einzelne IP-Adressen angegeben werden können.
Weitere acl-Objekte werden erstellt für Zieldomänen (d.h. Hostnamen, von denen Webinhalte abgerufen werden):
acl ms1 dstdomain .windowsupdate.com .microsoft.com .microsoft.nsatc.net acl ms1 dstdomain .microsoft.de acl msdnaa dstdomain .msdnaa.net .e-academy.com e5.onthehub.com acl fhs dstdomain .fh-schmalkalden.de
Die mit einem Punkt beginnenden Domänennamen lassen sowohl Hostnamen in der angegebenen Domäne als auch in Subdomänen zu.
Nach den acl-Objekten werden http_access-Objekte definiert, diese sollten nach dem Kommentar „INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS“ eingefügt werden:
http_access allow mylocalnet ms1 http_access allow mylocalnet msdnaa http_access allow mylocalnet fhs
Die Informationen in diesen Regeln werden und-verknüft. So sagt beispielsweise die erste Regel: „Wenn der Client eine IP-Adresse der ACL mylocalnet hat und Inhalte von einem in Regel ms1 konfigurierten Host abrufen möchte, dann gestatte dies.“.
Die http_access-Regeln werden in der aufgeführten Reihenfolge abgearbeitet. Die erste zutreffende Regel greift, die nachfolgenden Regeln werden dann nicht mehr betrachtet.
Die eingefügten Regeln müssen also vor der bereits vorhandenen letzten Regel
http_access deny all
eingefügt werden.
Die Konfigurationsoption „cache_dir“ legt fest, wo squid den Cache für die Webinhalte anlegt und wie groß der Cache ist:
cache_dir aufs /var/spool/squid 500 16 64
Im Beispiel werden maximal 500MB Plattenplatz verwendet, maximal 64MB werden im Hauptspeicher gehalten.
Unser squid läuft auf einer virtuellen Maschine und dient nur zum Windows-Update (bzw. sonstigen Betriebssystem-Update). Für diesen Zweck sollte die Cache-Größe und die Verwendung einer virtuellen Maschine ausreichen.
Web-Caching zur Erhöhung der Performance und ohne Eingrenzung der Web-Adressen würde höhere Cache-Größen erfordern und wegen schnellerer Schreibzugriffe auch richtige (d.h. nicht-virtualisierte) Hardware mit schnellen Festplatten.
Die Port-Nummer wird mit „http_port“ festgelegt:
http_port 3128
IP-Tables
Es müssen Zugriffe aus dem Netz 192.168.101.0/24 auf den lokalen Port 3128 dauerhaft zugelassen werden. Dazu werden die Kommandos
iptables -L -n iptables -I INPUT 24 -p tcp -m state --state NEW -m tcp --dport 3128 -s 192.168.101.0/24 -j ACCEPT /etc/init.d/iptables save iptables -L -n
ausgeführt. Der Zahlenwert 24 für die Nummer der Regel muss korrigiert werden. Dieser Zahlenwert gibt an, vor welcher Regel die neue Regel eingefügt wird. Die Zählung beginnt mit 1.
Squid starten
Mit
/etc/init.d/squid start
wird squid gestartet.
Mit
chkconfig --level=2345 squid on
wird der Daemon automatisch gestartet (beim Hochfahren) und beendet (beim Herunterfahren).
Proxy-Einstellungen, Beispiel 1: Windows-Updates für interne IP-Adressen
PAC-Datei erstellen
Auf einem Webserver wird eine Datei update.pac bereitgestellt:
function FindProxyForURL(url, host) { return "PROXY 192.0.2.33:3128; DIRECT"; }
Der Rückgabewert gibt die IP-Adresse und die Portnummer des squid-Servers an.
Die Datei wird auf einem Web-Server so bereitgestellt, dass sie mit der URL http://server.fakultaet.fh-schmalkalden.de/proxy-config/update.pac abgerufen werden kann.
Der Webserver server.fakultaet.fh-schmalkalden.de muss so konfiguriert werden, dass die Dateiendung *.pac mit dem Mime-Typ „application/x-ns-proxy-autoconfig“ verknüpft ist. Dies wurde in der Datei /etc/mime.types eingerichtet. Anschließend Web-Server neu starten.
Windows-Clients konfigurieren
Mit gpedit.msc wird
- Benutzerkonfiguration
- Windows-Einstellungen
- Internet Explorer-Wartung
- Verbindung
- Automatische Browserkonfiguration
konfiguriert:
- „Automatische Ermittlung von Konfigurationseinstellungen“ wird deaktiviert.
- „Automatische Konfiguration aktivieren“ wird aktiviert.
- „Automatische Konfiguration alle“ 10 „Minuten durchführen“.
- „Automatische Proxy-URL (JS-, JVS- oder PAC-Datei)“ wird auf http://server.fakultaet.fh-schmalkalden.de/proxy-config/update.pac gesetzt.
Unter
- Computerkonfiguration
- Administrative Vorlagen
- Windows-Komponenten
- Internet Explorer
wird Proxy-Einstellungen pro Computer vornehmen (anstelle von pro Benutzer) aktiviert.
Proxy-Einstellungen, Beispiel 2: Web-Surfen mit IE einschränken
PAC-Datei erstellen
Eine Datei „pcpool.pac“ wird erstellt.
var direct = "DIRECT"; var deny = "PROXY 127.0.0.1:9"; function FindProxyForURL(url, host) { var back = ""; back = deny; url = url.toLowerCase(); host = host.toLowerCase(); // Webseiten innerhalb der FHS if(dnsDomainIs(host, ".fh-schmalkalden.de")) { back = direct; } // Webseiten innerhalb der Fakultaet else if(isInNet(host, "192.0.2.0", "255.255.255.0")) { back = direct; } // Webseiten lokal auf PC else if(isInNet(host, "127.0.0.0", "255.0.0.0")) { back = direct; } // Dateien lokal auf PC (z.B. Online-Hilfen...) else if(shExpMatch(url, "file:*")) { back = direct; } else if(shExpMatch(url, "about:*")) { back = direct; } // Windows-Update, Microsoft Update else if(dnsDomainIs(host, ".microsoft.com")) { back = direct; } else if(dnsDomainIs(host, ".microsoft.nsatc.net")) { back = direct; } else if(dnsDomainIs(host, ".microsoft.de")) { back = direct; } // MSDN-AA else if(dnsDomainIs(host, ".e-academy.com")) { back = direct; } else if(dnsDomainIs(host, "e5.onthehub.com")) { back = direct; } // Aktivierung, Lizensierung, Online-Hilfen else if(dnsDomainIs(host, ".ni.com")) { back = direct; } else if(dnsDomainIs(host, ".mathworks.com")) { back = direct; } else if(dnsDomainIs(host, ".mathworks.de")) { back = direct; } return back; }
Diese Datei wird auf einem Webserver so bereitgestellt, dass sie als http://server.fakultaet.fh-schmalkalden.de/proxy-config/pcpool.pac abgerufen werden kann.
Der Webserver server.fakultaet.fh-schmalkalden.de muss so konfiguriert werden, dass die Dateiendung *.pac mit dem Mime-Typ „application/x-ns-proxy-autoconfig“ verknüpft ist. Dies wurde in der Datei /etc/mime.types eingerichtet. Anschließend Web-Server neu starten.
Die Funktion FindProxyForURL() gibt im Normalfall „127.0.0.1:9“ zurück. Damit sucht der IE auf dem lokalen PC auf TCP-Port 9 nach einem Proxy-Server. Es muss eine freie, nicht benutzte Port-Nummer ausgewählt werden. Da keine Verbindung zum angegebenen Proxy-Server hergestellt werden kann und eine Direktverbindung nicht gestattet wurde, werden die Webinhalte nicht abgerufen.
Lediglich für Server in ausgewählten Domänen wird „DIRECT“ zurückgegeben, damit wird dem IE eine direkte Verbindung erlaubt.
Windows-Clients konfigurieren
Mit gpedit.msc wird
- Benutzerkonfiguration
- Windows-Einstellungen
- Internet Explorer-Wartung
- Verbindung
- Automatische Browserkonfiguration
konfiguriert:
- „Automatische Ermittlung von Konfigurationseinstellungen“ wird deaktiviert.
- „Automatische Konfiguration aktivieren“ wird aktiviert.
- „Automatische Konfiguration alle“ 10 „Minuten durchführen“.
- „Automatische Proxy-URL (JS-, JVS- oder PAC-Datei)“ wird auf http://server.fakultaet.fh-schmalkalden.de/proxy-config/pcpool.pac gesetzt.
Unter
- Computerkonfiguration
- Administrative Vorlagen
- Windows-Komponenten
- Internet Explorer
wird Proxy-Einstellungen pro Computer vornehmen (anstelle von pro Benutzer) aktiviert.