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.
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.
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 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.
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.
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.
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.
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.
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.