Delegate

- delegate-
Die eierlegende Wollmilchsau
| Ein kleines Vorwort | ||||||||||||||||
|
Delegate wurde im Jahre März 1994 als kleiner Proxy für das fast vergessende Internet Protokoll Gopher von Yutaka Sato aus Japan entwickelt.
Inzwischen ist er eine ausgewachsene Application der Proxys für fast alle Protokolle zur Verfügung stellen kann. * HTTP, FTP, POP, Telnet, Gopher, LDAP, Socks als ungebundene Proxys * NNTP, SMTP, Wais, X Window, LPR, ICP als gebundene Proxys Delegate kann als Protokoll Gateway für HTTP zu HTTPS, NNTP zu HTTPS oder FTP zu HTTP eingesetzt werden. Außerdem Cache er nicht nur HTTP, auch als FTP Cache kann er eingesetzt werden. Ein besonderes Feature ist das Tunneling von SSH zwischen zwei delegates. So das z.B. ein webbasierenes SSH getunnelt werden kann. Er kann Resolver Controll, das heißt er weiss wo er eine Namensauflösung zu suchen hat und er kann auch Routing, so das z.B. ssl Verbindungen nicht über unbekannte Routen gehen können. Ausserdem kann er als einfacherer Server für HTTP, FTP (read only), NNTP und DNS *missbraucht* werden. Es gibt noch viele andere Möglichkeiten die delegate kann, erwähnenswert wären da unter anderem ACCESS CONTROL, DATA CONVERSION, CONNECTION SHARING als Beispiele. Über die gesamten Möglichkeiten informiert man sich am besten hier --> http://www.delegate.org/delegate/features oder über die unterstützenden Standards hr --> http://www.delegate.org/delegate/RFC.html |
||||||||||||||||
| delegate kompilieren und installieren | ||||||||||||||||
|
Nach dem man sich die Resourcen von http://www.delegate.org/delegate/ gedownloadet hat,
entpackt man sich das Paket in einem Verzeichniss.
Dann wechselt man in das entstandene Verzeichniss delegate-xxx und dann gleich weiter ins Verzeichniss /src.
Hier muss im Makefile der Name des zukünftigen Administrators und das Password in Zeile 28 und 29 eingetragen werden.
Was mir aufgefallen ist, hier bitte keine Sonderzeichen benutzen.
Setzt man hier kein Password, kann der Deamon dann später von jedem gestartet werden.
Nicht vergessen das Password nach dem erfolgreichen Kompilieren wieder rauszulöschen. Danach wechselt man wieder ins Hauptverzeichniss von delegate und kompiliert das Ganze mit dem Kommando make. Da delegate außer einem C- Compiler und die dazugehörigen Bibliotheken keine Abhängigkeiten hat und er statisch kompiliert wird, kann er auch auf einem anderem System vom selben Type kompiliert werden. Das finde ich wichtig zu erwähnen, da es ja auf einem Application Gateway keinen Compiler geben sollte. Jetzt wird man nur noch nach der Email- Adresse des Admins gefragt, an diese Adresse gehen dann die Fehler - und Sicherheitsmeldungen. Nach erfolgreichem kompilieren befindet sich jetzt in Verzeichniss src/ eine ca. 1,3 Mb große File mit Namen delegatd. Das ist unserer Proxy. Mehr nicht ;) Jetzt noch kopieren der File delegated nach /sbin auf den Application Rechner. Default läuft der Daemon als nobody/nogroup. Mehr dazu im nächsten Abschnitt, den mit kompilieren und installieren sind wir jetzt fertig. |
||||||||||||||||
| delegate einsetzten | ||||||||||||||||
|
Die Beispielbeschreibung bezieht sich hier auf die Grundlagen für einen http und einem ftp Proxy.
Diese kann man im Grunde genommen auch für alle anderen Proxyarten benutzen.
Über die weiteren Optionen zu den Proxy's solltet ihr das Manual von delegate lesen.
Das beherrschen von IP - Netzwerken und seinen Protokollen ist Grundlage. Der Rechner hat zwei Interface ,eins mit einer öffentlichen IP und eins mit der IP 192.168.1.2. an diesem hängt ein Klasse C Netz. Als Beispiel gibt es die darin die Rechner 192.168.1.10, 192.168.1.20 und 192.168.1.30. Der bevorzugter DNS Server hat die IP 217.9.42.98. Um einen Http Proxy an den Start zu bekommen, muss man jetzt eigentlich nur noch folgendes in der Konsole eingeben: delegated -P192.168.1.2:3128 SERVER=http RELIABLE=192.168.1.0/24 RES_NS=217.9.42.98 ADMINPASS=xxx und entern. Und schon läuft am Interface mit der IP 192.168.1.2 am Port 3128 ein normaler Cache HTTP Proxy, der Anfragen aus dem Netz 192.168.1.0/24 entgegen nimmt und die nötige Namensauflösung am DNS Server mit der IP 217.9.42.98 vornimmt. Alle nötigen Unterverzeichnisse werden beim ersten Aufruf des Deamon selbständig angelegt. Diese befinden sich im Home- Verzeichniss des Users, also /var/lib/nobody/delegate. Mit einem delegated -P192.168.1.5:3128 -Fkill kann man den Proxy wieder abschalten. Ist doch ein Kinderspiel oder ? Jetzt starten wir noch einen zweiten Proxy, einen ftp Proxy. Dies erfolgt nach dem selben Schema, nur das der Port und das Protokoll anders sein sollte. delegated -P192.168.1.2:3131 SERVER=ftp RELIABLE=192.168.1.0/24 RES_NS=217.9.42.98 ADMINPASS=xxx Um den ftp Proxy zum Cachen zu überreden muss man dies explizit anstellen. Dies macht man mit dem Schalter : CACHE=do, dann noch am besten das Cache Verzeichniss angeben: CACHEDIR=/var/lib/nobody/delegate/cache zum Beispiel und schon werden die herunter geladenen Files gespeichert. ein ps -ax | grep delegate zeigt uns folgendes: xxx ? S 0:00 /sbin/delegated -{000}[RPM=0.00(0.0 0.0 0.0),IDLE=271s]-P192.168.1.5:3131 -- -- Zwei Unabhängige Proxys, einer an Port 3128 und einer an Port 3131, diese modulare Prinzip hat den Vorteil, das wenn einer ausfällt, der andere davon nicht betroffen ist. Im Home Verzeichniss /var/lib/nobody/delegate gibt es jetzt ein Verzeichniss cache, in diesem ein Verzeichniss http, dass das Cache Verzeichniss für den http Proxy ist. Hier werden alphabetisch nach URLs Verzeichnisse erzeugt, in denen dann die Files der Seiten zwischen gespeichert werden. Das selbe passiert auch wenn wir jetzt über den ftp-Proxy etwas downloaden. Damit diese Proxy's verwendet werden, muss entweder im entsprechenden Clienten der jeweilige Port angegeben werden oder jeweils transparente Proxy's eingerichtet werden. Man kann kann aber auch die Proxy's an die speziellen Ports binden. Wie um Beispiel einen FTP Proxy an Port 21 --> delegated -P192.168.1.0:21 SERVER=ftp ... |
||||||||||||||||
| Was man noch so alles machen kann | ||||||||||||||||
|
Man kann die ganzen Schalter auch in ein Conf- File schreiben. Der Aufruf sieht dann so aus: delegated +=http://server/path/of/parameters.txt In dieser File stehen dann nur die einzelnen Schalter und Optionen. Ich allerdings benutze ein normales Shellscript dafür, in dem dann alle zu startenen Proxy's und die jeweils notwendigen Parameter stehen. Hier noch ein paar speziellen Schaltern und Optionen von delegated.
|
||||||||||||||||
| Zum Schluss noch | ||||||||||||||||
|
Ich hoffe das diese kleine Einführung in einen der besten Proxy Server, den einen oder anderen die Scheu vor diesem nimmt.
Ich bin hier nur auf die, meiner Meinung nach, wichtigsten und zum Betrieb eines http/ftp Server notwendigstes Schalter und Optionen eingegangen.
Auf der Seite von delegate gibt es wie schon erwähnt, noch ?hundert? weiter Möglichkeiten wie man delegat einsetzten kann.
Wie zum Beispiel das Tunneln von verschiedenen Protokollen zwischen zwei delegates per ssl, was ja fast einem VPN gleichkommt.
Ein Projekt mit dem ich mich persönlich gerade befasse. Also viel Spass beim probieren und falls es Fragen gibt hier die Adresse der Mailinglist von delegate --> http://www.delegate.org/delegate/ml/delegate-en.html |
||||||||||||||||