Loopback Filter

Aus JanaWiki
Wechseln zu: Navigation, Suche

Loopback-Filter für Jana (Version 0.2 vom 15.09.2004)

(Benötigt Jana Version 2.4.4 oder höher)


Überblick

Der Loopback-Filter verhindert den Zugriff auf die Administration und interne Jana-Befehle über den Proxy-Port (Standard 3128). Zusätzlich sind weitere sicherheitsrelevante Filterregeln definiert (siehe Abschnitt Features). Sinn macht der Filter natürlich nur dann, wenn Sie Jana als Proxy einsetzen.

Features

Mit dem Loopback-Filter läßt sich die Sicherheit einer Proxy-Installation deutlich erhöhen. Damit wird z.B. erschwert, dass sich Clients Zugriff auf Dienste "erschleichen" oder den Proxy "durchtunneln".

  • Hindert Clients am Zugriff auf lokal auf dem Server laufende Dienste durch den Proxy;
  • verhindert, dass Clients die Administration aufrufen, wenn diese nur an localhost gebunden ist;
  • blockiert CONNECT-Verbindungen (in der Konfiguration können Ziel-Ports freigegeben werden)
  • blockiert Zugriff auf spezielle Jana-Kommandos (siehe hier)

Alle Features können in der Konfigurationsdatei JanaLoopbackFilter.ini eingestellt werden.

Installation (ab Jana 2.4.4)

Laden Sie sich diese Zip-Datei (26 kB) mit der Filter-DLL herunter und entpacken Sie die Dateien in das Jana2-Verzeichnis.

Ändern Sie die Konfigurationsdatei JanaLoopbackFilter.ini mit einem beliebigen Text-Editor (z.B. notepad) entsprechend ihren Wünschen ab. Änderungen an der Konfiguration werden erst beim nächsten Start von Jana wirksam. Die Ini-Datei kann nur gefunden werden, wenn sie im Jana2-Verzeichnis liegt.

Binden Sie die DLL-Datei in der Jana-Administration unter "Servertypen -> Proxy" als ISAPI-Filter ein. Dazu tragen Sie den kompletten Pfad zur DLL-Datei ein, z.B. c:\programme\jana2\JanaLoopbackFilter.dll. Nach einem Jana-Neustart, sollte der Filter wirksam sein.

Konfiguration

In diesem Kapitel werden die einzelnen Konfigurations-Optionen, die sich in der Konfigurationsdatei JanaLoopbackFilter.ini einstellen lassen, erklärt. Damit die Datei beim Start des Filters gefunden wird, muss sie im Jana2-Verzeichnis liegen.

blockLoopBack

Dieser Option verdankt der Filter seinen Namen. Wenn sie aktiv ist, werden alle Aufrufe, die an den Proxy mit dem Host loopback oder 127.0.0.1 gerichtet werden, geblockt. Damit wird z.B. verhindert, dass ein nur lokal auf dem Proxy laufender HTTP-Server dem LAN zur Verfügung steht.

Empfehlung: 1 (aktiviert)

blockJanaAdmin

Wenn diese Option gesetzt ist, werden alle Zugriffe auf das Verzeichnis /jana-admin über den Proxy gesperrt. Falls die Administration im Netz verfügbar sein soll, so sollte sie in Jana an die entsprechende IP-Adresse gebunden werden und vom Client unter Umgehung des Proxys aufgerufen werden.

Empfehlung: 1 (aktiviert)

blockJanaActions

Der Jana-Proxy bietet Spezial-Befehle an, um z.B. das Abholen von Mails zu starten, oder um die DFÜ-Verbindung aufzubauen. Eine Übersicht über alle diese Befehle finden Sie hier. Diese Spezial-Befehle sollten kein Sicherheitsrisiko darstellen.

Empfehlung: 0 (deaktiviert)

blockEmptyHost

Alle Browser übergeben bei HTTP-Anfragen das sog. Host-Feld. Andere einfache Clients tun dies nicht. Der Filter kann solche Anfragen blocken.

Empfehlung: 0 (deaktiviert)

blockConnectPorts und allowConnectPort

Die HTTP-CONNECT-Methode erlaubt jedem Proxy-Client eine direkte Verbindung zu beliebigen Rechnern im Internet über den Proxy aufzubauen. CONNECT ist u.a. nötig für HTTPS. Somit könnten Clients, trotz vorgelagertem Proxy praktisch beliebige Daten über das Internet austauschen, oder etwa Firewalls umgehen (die ja nur die IP des Proxys sehen).

Mit dem Loopback-Filter kann die CONNECT-Methode komplett verboten (wenig sinnvoll) oder auf die nötigsten Ports eingeschränkt werden, womit die Gefahr des Missbrauchs deutlich verkleinert wird. Für jeden zulässigen Ziel-Port wird einfach eine Zeile mit allowConnectPort=xxx angefügt.

Empfehlung: blockConnectPorts=1 (aktiviert) und allowConnectPort=443 (Standard-Port für HTTPS)

Anmerkungen

Wer den Loopback-Filter einsetzt, sollte keinesfalls den SOCKS-Proxy oder das Telnet-Gateway von Jana an das LAN-Interface binden. Eine Bindung an localhost ist dank des Loopback-Filters unproblematisch.

Hintergrund: Der Loopback-Filter wird ausschließlich auf dem HTTP-Proxy aktiviert, sowohl der SOCKS-Proxy, als auch das Telnet-Gateway stellen aber ein ähnliches Risiko dar.


Selbst compilieren und Verändern des Filters

Benötigte Tools

Compilieren

Entpacken sie den Quelltext in ein beliebiges Verzeichnis.

Installieren Sie das Visual C++ Toolkit.

Beim Plattform SDK kann man nach dem Start des "Setup" wählen, welches SDK (software development kit) installiert werden sollen. Wir benötigen die "Core" und die "IIS" SDK und die Registrierung. Es kann sein, daß einige abhängige SDKs noch automatisch hinzugefügt werden.

Nach dem Installieren des Plattform SDK finden Sie im Startmenü -> Programme einen neuen Eintrag "Microsoft Platform SDK 2003". Öffnen Sie diesen Punkt und und gehen zum Menü "Visual Studio Registrierung", und Registrieren Sie das SDK.

Nun öffnen Sie die "Visual C++ Toolkit" Umgebung in dem Sie im Startmenü - > Programme das Menü "Microsoft Visual Toolkit 2003" öffnen und dort den Menüpunkt "Visual C++ Toolkit 2003 Command Prompt" auswählen. Es öffnet sich ein Befehlszeilenfenster, in dem Sie ins Verzeichnis der Quelldateien wechseln. Hier geben Sie nur noch "compile" ein. Danach sollte eine DLL-Datei und einige andere Dateien erstellt werden. Die erzeugte DLL können Sie dann, wie oben beschrieben, ins Jana-Verzeichnis kopieren, und in der Administration (unter Servertypen -> Proxy-Server) als ISAPI-Filter-DLL einbinden.


Kontakt

Thomas Hauck und Michael Walter haben diesen Filter geschrieben.

Bei Fragen, Problemen oder Feedback bitte im Jana-Forum anmelden und eine PN an mikew schreiben. Alternativ auch eine eMail an eiMichaelWalter [at] gmx [dot] de.


Weblinks