Inhalt

10. Der SOCKS Proxy Server

10.1 Installation des Proxy Servers

Der SOCKS Proxy Server ist hier erhältlich:

sunsite.unc.edu:/pub/Linux/system/Network/misc/socks-linux-src.tgz

Im selben Verzeichnis ist auch eine Beispiel-Konfigurationsdatei mit folgendem Namen "socks-conf". Mit gzip und tar das Archiv auspacken und den Anweisungen im README folgen. Manche hatten Probleme beim kompilieren, einfach aufpassen ob die Makefiles passen.

Unbedingt zu beachten ist, daß der Proxy Server in der /etc/inet.d Datei eingetragen wird:

  socks  stream  tcp  nowait  nobody  /usr/local/etc/sockd  sockd

Damit wird der Server bei Anforderung gestartet.

10.2 Konfiguration des Proxy Servers

Das SOCKS Programm benötigt zwei verschiedene Konfigurationsdateien. Eine um den Zugriff zu erlauben (access file) und eine um die Anforderungen zum betreffenden Proxy Server zu leiten (routing file). Die Access Datei soll im Server installiert sein und die Routing Datei auf jedem Unix-Rechner. DOS-Rechner und MacIntosh-Rechner machen ihr eigenes Routing.

Die Access Datei

Mit SOCKS 4.2 Beta wird die Access Datei "sockd.conf" genannt. Diese Datei soll 2 Zeilen enthalten, eine Erlaubnis- (permit) und eine Ablehnungs- (deny) Zeile.

Jede Zeile hat drei Einträge.

Der Bezeichner ist entweder permit oder deny. Man soll beides haben, eine permit- und eine deny-Zeile.

Die IP-Adresse enthält eine 4 Byte Adresse in typischer IP-Notation, z.B. 192.168.2.0.

Der Adress-Modifizierer ist ebenso eine typische 4 Byte IP-Adresse. Sie arbeitet wie eine Netzmaske. Gehen wir davon aus, daß diese Zahl 32 Bit (Einsen und Nullen) entspricht. Ist das Bit eine Eins muß das entsprechende Bit der zu prüfenden Adresse zum entsprechenden Bit des IP-Adreß-Feldes passen.

Wenn zum Beispiel die Zeile so lautet:

    permit 192.168.2.23 255.255.255.255

werden nur die IP-Adressen zugelassen, bei denen jedes einzelne Bit passen muß. Bei 192.168.2.23 eben nur 192.168.2.23.

Bei folgender Zeile

    permit 192.168.2.0 255.255.255.0

wird jede Nummer innerhalb der Gruppe von 192.168.2.0 bis 192.168.2.255 zugelassen, eben eines kompletten Klasse-C Bereiches.

Folgende Zeile sollte man niemals zulassen:

    permit 192.168.2.0 0.0.0.0

Damit bekommt ohne Rücksicht jeder die Zulassung.

Aus diesem Grund wird nur jede Adresse durchgelassen die eine Erlaubnis hat, der Rest wird einfach abgewiesen. Damit jeder im Bereich 192.168.2.xxx zugelassen wird sind folgende Zeilen passend:

    permit 192.168.2.0 255.255.255.0
    deny 0.0.0.0 0.0.0.0

Wenn man das erste "0.0.0.0" in der deny-Zeile betrachtet ist zu beachten, daß bei einem Modifizierer von 0.0.0.0 die IP-Adresse nicht mehr wichtig ist. In diesem Fall ist 0.0.0.0 der Standard, da es einfacher zu tippen ist.

Es ist auch mehr als eine Zeile mit den beiden Möglichkeiten erlaubt.

Speziellen Anwendern kann der Zugriff erlaubt oder auch abgelehnt werden. Dies geschieht mit der ident Authentifizierung. Nicht alle Systeme unterstützen ident, unter anderem Trumpet Winsock. Aus diesem Grund wird hier nicht näher darauf eingegangen. Die Dokumentation zu SOCKS bietet hier selbst gute Unterstützung.

Die Routing Datei

Die Routing Datei in SOCKS wird leider "socks.conf" genannt. Warum wird sie "leider" so genannt? Sie unterscheidet sich kaum im Namen von der Access Datei und ist somit schnell verwechselt.

Die Aufgabe der Routing Datei ist den SOCKS-Clients mitzuteilen wann SOCKS zu benützen ist und wann nicht. Zum Beispiel wird bei einer Verbindung von 192.168.2.3 zu 192.168.2.1 der SOCKS Firewall nicht benützt, es wird direkt über Ethernet verbunden. Der Loopback, 127.0.0.1, wird automatisch definiert. Außerdem benötigt man SOCKS bei einer Verbindung zu sich selber auch nicht. Es gibt drei Einträge:

Mit deny wird SOCKS mitgeteilt wann eine Anforderung abgewiesen wird. Dieser Eintrag hat die selben drei Felder wie in sockd.conf: identifier, address und modifier. Da dies auch von sockd.conf, der Access-Datei, verwaltet wird, kann das modifier Feld 0.0.0.0 bleiben. Um sich selbst davon auszuschließen irgendeinen Rechner zu erreichen, kann man es hier tun.

Der direct Eintrag nennt die Adressen die SOCKS nicht benötigen. Das sind alle Adressen die ohne den Proxy Server erreicht werden können.

Im folgenden Beispiel

    direct 192.168.2.0 255.255.255.0

kann jeder direkt den anderen rechner im geschützten Netzwerk erreichen.

Der folgende sockd - Eintrag zeigt dem Computer welcher Host den SOCKS Server Dämon installiert hat:

  sockd @=<serverlist> <IP address> <modifier>

Zu beachten ist der @= Eintrag. Dies erlaubt die IP-Adressen einer Liste von Proxy-Servern einzutragen. In diesem Beispiel wird aber nur ein Proxy-Server verwendet. Man kann aber mehrere haben um die Last zu verteilen oder eine Sicherheits-Redundanz zu haben.

Das IP-Adreß und modifier Feld hat die selbe Form wie im vorigen Beispiel. Es müssen die Adressen bekannt gemacht werden die durch den Proxy-Server dürfen.

DNS hinterhalb des Firewalls

Einen Domain Name Service hinterhalb des Firewalls zu installieren ist eine einfache Aufgabe. Man muß lediglich den DNS auf dem Firewall-Computer installieren und alle Rechner hinterhalb des Firewalls diesen DNS benutzen lassen.

10.3 Arbeiten mit einem Proxy Server

Unix

Damit die Applikationen mit dem Proxy-Server arbeiten, müssen sie "SOCKSifiziert" werden. Man benötigt zwei verschiedene telnet, einen für direkte Kommunikation und einen für die Kommunikation mit dem Proxy-Server. Socks enthält eine Anleitung wie man ein Programm SOCKSifiziert und ein paar fertigen SOCKSifizierten Programmen. Wenn man eine SOCKSifizierte Version eines Programmes verwendet um innerhalb des LANs eine Verbindung aufzubauen, lenkt SOCKS automatisch zur Version für direkte Kommunikation um. Aus diesem Grund werden alle Programm im Netzwerk umbenannt und durch SOCKSifizierte Versionen ersetzt. "Finger" wird zu "finger.orig", "telnet" wird zu "telnet.orig", usw. Diese Änderungen müssen in die include/socks.h eingetragen werden.

Manche Programmen führen das Routing und die SOCKSifizierung selber durch, wie z.B. NetScape. Man kann mit NetScape einen Proxy-Server verwenden indem man die IP-Adresse des Servers in dem entsprechenden Feld der Netzwerkeinstellungen einträgt (in diesem Beispiel 192.168.2.1). Jede Applikation benötigt eine gewisse Umstellung, unabhängig davon wie es mit einen Proxy Server funktioniert.

MS Windows mit Trumpet Winsock

Trumpet Winsock hat schon eingebaute Proxy-Server Möglichkeiten. Im "setup" Menü gibt man die IP-Adresse des Servers ein, ebenso alle Adressen der Rechner, die man direkt erreichen kann. Trumpet leitet dann alle Pakete weiter.

Konfiguration des Proxy Servers zur Unterstützung von UDP-Paketen

Das SOCKS-Paket arbeitet nur mit TCP-Paketen, nicht mit UDP-Paketen. Das schränkt ein klein wenig den Nutzen ein. Viele nützliche Programme, wie talk und archie, benützen UDP. Es gibt ein Paket das von Tom Fitzgerald (fitz@wang.com) entwickelt wurde, um wie ein Proxy Server für UDP-Pakete zu funktionieren, genannt UDPrelay. Leider ist es zur Zeit nicht kompatibel zu Linux.

10.4 Nachteile mit Proxy Servern

Ein Proxy Server ist vor allem eine Sicherheits Einheit. Die Benutzung, um den Internetzugang mit limitierten IP-Adressen zu erweitern, hat viele Nachteile. Ein Proxy Server bietet guten Zugriff von innerhalb des geschützten Netzwerkes nach außen und läßt das LAN für Anwender von Außen komplett unerreichbar sein. Das bedeutet keine Server, Archie, Talk Verbindungen oder direktes Mailing zu den inneren Computern. Diese Nachteile können schwerwiegend sein, aber man soll folgendes beachten:

FTP bereitet ein weiteres Problem mit einem Proxy-Server. Bei Empfang oder Verwendung von ls öffnet der FTP-Server einen Socket auf dem Client-Rechner und reicht die Informationen durch. Ein Proxy-Server wird das nicht erlauben, darum wird FTP nicht sonderlich gut funktionieren.

Aufgrund des größeren Overheads arbeiten Proxy-Server relativ langsam. Die Allgemeinheit ist der Meinung daß sich das zukünftig ändert.

Grundsätzlich, wenn man IP-Adressen hat und die Sicherheit ist nicht das wichtigste, dann sollte man Proxy-Server und Firewalls nicht verwenden. Wenn keine ausreichende Anzahl an IP-Adressen vorhanden ist und die Sicherheit immer noch keine große Rolle spielt, dann ist ein IP-Emulator, wie Term, Slirp oder TIA, eine interessante Wahl.

Term ist erhältlich bei: sunsite.unc.edu und Slirp bei: blitzen.canberra.edu.au:/pub/slirp. TIA gibts bei marketplace.com.

Diese Pakete arbeiten schneller, erlauben bessere Verbindungen und bieten einen besseren Zugriff vom Internet ins private Netzwerk. Proxy-Server sind gut für Netzwerke mit vielen Computern die einen einfachen Zugriff zum Internet haben wollen mit nur einer einmaligen Konfiguration und mit wenig Arbeit im laufenden Betrieb.


Inhalt