Der Beweis

Telekolleg Internet

Jabber

Hier möchte ich mal etwas Licht ins Dunkle bringen, was Jabber eigentlich so ist, wie es funktioniert, und warum man es unbedingt benützen sollte. Viel Spaß beim Lesen, bei Fehlern, oder Unklarheiten, schreibt mir eine Mail an friidis [ädd] der-beweis [pünkt] de (meinen GnuPG Schlüssel gibt es hier), oder schreibt mir eine Jabber Nachricht an friidis [ädd] jabber [pünkt] ulm [pünkt] ccc [pünkt] de

Inhalt:

Jabber Logo

1. – Übersicht zu Jabber

Jabber (meist auch XMPP genannt) ist ein quelloffenes Netzwerkprotokoll für Instant Messaging, das seit 1998 aus Frust gegenüber der proprietären Instant Messanger wie AIM/ICQ/MSN/Y!M entwickelt wurde. Da Jabber Open Source ist, gibt es nicht den Jabberclient, und den Jabberserver, den man sich herunterläd, installiert und anmeldet, und dann hat man Jabber, nein man sucht sich eher einen Client und Server aus, der einem am bestengefällt und kann dann aber mit Leuten auf anderen Jabber Servern problemlos kommunizieren. Auch ist es möglich über Jabber mithilfe von sogenannten Transports (manchmal auch Gateways genannt) mit Mitgliedern von anderen Instant Messaging Systemen zu Chatten. Weiterhin sind aufgrund der Quelloffenheit und Flexibilität von Jabber verschiedenste Verwendungszwecke denkbar: zum Beispiel Jabberclients die auf dem Handy laufen, E-Mails über Jabber schreiben und einiges mehr ist möglich. Eine Funktion für Audio- und Videochats wird inzwischen in manche Clients auch mit eingebaut.

1.1 – Vergleich mit anderer IM-Software

Man kann Jabber eigentlich kaum mit den herkömmlichen Instant Messaging Systemen vergleichen, da es im Endeffekt weiter über die Schnittmenge von AIM/ICQ/MSN/Y!M hinausgeht, dennoch orientiert es sich auch an diesen. Es gibt bei den meisten Jabberclients einen ähnlichen Aufbau, mit einer Kontaktliste (Roster genannt) in der man die Kontakte (JID) verwaltet , mit Chatfenstern, und eventuell auch Multi-User Chats (MUC, ähnlich wie IRC). Dateitransfers sind natürlich auch möglich. Somit erklärt sich die Funktionsweise der Jabberclients meist von selbst, wenn man schon einmal ICQ oder ähnliches benützt hat. Weiterhin setzt Jabber nicht auf einen großen, zentralen Server, sondern auf viele kleine, damit die Angriffsfläche gegen das gesamte Jabbernetzwerk besonders niedrig ist, und man das gesamte Jabber Netzwerk nicht einfach an einer zentralen Stelle abschalten kann. Weiterhin kann man Chats zusätzlich zur normalen Client zu Server Verschlüsselung zwischen den einzelnen Usern extra verschlüsseln.

2. – Wie funktioniert Jabber

2.1 – Begriffserklärungen

- JID:
Eine JID ist eine ID (Jabber User Identifier), unter der man erreichbar bist (ähnlich wie die ICQ Nummer, oder der Screen Name bei AIM). Sie ist ähnlich wie eine E-Mail Adresse aufgebaut, und zwar so:

beispiel@server.xy
(Der User Beispiel ist auf dem Jabberserver server.xy)

- Ressource:
Eine Ressource ist ein Anhang an die JID, die spezifiziert, welchen Client man explizit erreichen will.
Im Klartext bedeutet dies: Wenn der User beispiel gleichzeitig mit seinem Computer und mit seinem Laptop online ist, sehen die Leute seinen Kontakt einerseits als beispiel@server.xy/computer und andererseits als beispiel@server.xy/laptop . Die Ressource kann vom Benutzer individuell eingestellt werden (laptop könnte auch unterwegs heißen, oä).
Meldet man sich nur mit einem Client an, erscheint die Ressource nicht, da es ja nur einen Client zu erreichen gibt

- Priority:
Die Priority ist ein Zahlenwert, der bestimmt wie wichtig ein Client bei gleichzeitiger Aktivität mit einem anderen Client auf dem selben Jabberaccount zu verhalten hat. Die Priority wird vom Benutzer festgelegt, und der Zahlenbereich geht von ca. -100 bis ca. +100, wobei die Regel gilt: Je höher die Nummer, desto wichtiger der Client. (Bei negativen Zahen nehmen die Clients nur Nachrichten an, die explizit an ihre Ressource geschickt wird, sonst wird die Nachricht verworfen, oder weitergeleitet.) Dies hat den Vorteil, dass man bestimmen kann, an welchen Client die Jabbernachricht deines gegenüber eher ankommt, wenn keine spezielle Ressource vom Versender angegeben wird.
Beispiel: Der User Beispiel ist wieder einmal auf seinen beiden Computern online, also sieht sein Gegenüber: beispiel@server.xy/computer und beispiel@server.xy/laptop. Der User Beispiel hat nun dem Client auf dem Laptop die Priorität 5 zugewießen, und dem Computer die Priorität 3. Wenn nun ein Benutzer eine Nachricht an beispiel@server.xy ohne Ressource schickt kommt sie beim Benutzer Beispiel auf dem Laptop an, da er die höhere Priority hat.

- Transport:
Ein Transport (manchmal auch Gateway genannt) ist ein Service, der von manchen Jabberserver Betreibern zusätzlich angeboten wird, und eine Verbindung zu AIM/ICQ/MSN/Y!M zulässt. Vorraussetzung dafür ist, dass man für den jeweiligen Dienst ein Konto benötigt, da sich der Transport mit z.B. deiner ICQ Nummer bei ICQ anmeldet, und deine ICQ Kontakte dich wie gewohnt in ihrer Kontaktliste sehen, und deine ICQ Kontakte in deinem Roster dann als Jabberkontakte erscheinen.
Ein ICQ Kontakt über einen Jabbertransport sieht ungefähr so aus: 123456@icq.transport.xy.
Der Transport leitet dann die Nachrichten aus ICQ nach Jabber weiter, und umgekehrt. Somit ist es ohne weiteres möglich auf Jabber umzusteigen, ohne dass man seine ehemaligen Kontakte verliert.

2.2 – Veranschaulichung

Jabber Network small
Das Bild, nochmal etwas größer: Jabber Network big

Na, alles klar? So schwer ist es nicht, dieses Bild soll ja nur mal eine Übersicht geben.
Server: Wir haben in der Mitte den Jabberserver server1, der mit dem anderen Jabberserver drüber, server2, verbunden ist. Nebenbei han der server1 noch einen ICQ Transport im Angebot.
Jabber User: Also können alice und bob über server1 kommunizieren, und wenn carol bob erreichen möchte, dann geht die Nachricht von ihr durch server2, dann durch server1 und landet dann bei bob. Möchte carol an alice eine Nachricht schreiben, und möchte, dass sie bei alice auf dem notebook ankommt, dann schreibt sie ihre Nachricht an alice@server1/mobile.
Transports: Möchte jetzt bob seinen Freund dave erreichen, der noch kein jabber benützt, dann meldet sich bob mit seiner ICQ Nummer am Transport an, woraufhin dave als Jabberkontakt in bobs Roster (Kontaktliste) erscheint, und bob in daves Kontaktliste wie gehabt online kommt.

Somit wäre doch mal alles im prinzip erklärt, oder?

3. – Was braucht man für Jabber

Für Jabber braucht man nicht viel, man braucht nur einen Client, und einen Jabberaccount auf einem Jabberserver. Eventuell einen Transport, für den Kontakt in andere Instant Messaging Systeme. Und das war eigentlich schon die Hauptsache.
Generell muss man zu Jabberservern sagen, sucht euch größere aus, die schon etwas länger existieren, dort haben die User meist ein bisschen mehr Ahnung und können euch eher helfen, und bei Clients müsst ihr ein paar ausprobieren, bis ihr den findet, der euch am meisten gefällt.

3.1 – Praktisches Beispiel an Psi

Ein paar Videos zum einrichten von Psi findet ihr auf der-beweis.de/psi. Viel Spaß beim Videos schauen, es ist möglich, dass ihr 2 mal auf den Play-Button drücken müsst, damit die Videos abspielen.

Zum Video Tutorial

getPSI

4. – Kleine Tipps und Helferlein

Hier ein paar kleine Tipps, die euch das Leben mit Jabber leichter machen, und noch vieles mehr, das isch in diesem Tutorial nicht ansprechen wollte, da es sonnst den Ramen sprengen würde..

4.1 – Mehr Infos zu Jabber

Massig Info findet ihr auf jabber.org,
im Jabbertutorial auf der Raven-Homepage,
Yet another Jabber FAQ bei Missis Notitzblog,
im Wikipedia Artikel über Jabber,
Auf dem Weblog von fh (jetzt auch auf Englisch auf stream:stream),
in der /dev/radio Sendung vom CCC Ulm (mp3, ogg) über Jabber,
in der Chaosradio Sendung (Mitmach Wiki zur Folge) vom CCC Berlin (mp3, ogg) über Jabber,
im Jabber Showcase Vortrag von fh auf dem 23. Chaos Communication Congress (Vortrag als Video, und als Audio),
und im Chaosseminar des CCC Ulms über Jabber (Slides, Video, Audio).
Wie ihr eure Chats in Psi mit GnuPG verschlüsseln könnt erfahrt ihr auf bitsploit.
Ein bisschen mehr in die Technik kann man sich bei O’Reilly einlesen.

4.2 – Jabberserver

Gute Jabberserver sind zum Beispiel jabber.ccc.de, jabber.ulm.ccc.de, swissjabber.ch, amessage.de & jabber.org
Eine Liste von öffentlichen Jabberservern, an denen ihr euch einfach anmelden könnt, findet ihr auf jabber.org

Wie gesagt, es ist besser, wenn man sich einen Server aussucht, der etwas größer ist, da man schnelleren support bekommen kann,andererseits muss man damit auch rechnen, dass bei einem größeren Server die wahrscheinlichkeit höher ist, dass dieser überlastet sein könnte.

4.3 – Jabber Transports

Jabber Transports gibt es eigentlch viele, und auch für viele Netzwerke. Leider sind manche nur für die eigene Benutzergruppe zugänglich, andere sind chronisch überlastet.. Also gilt es die guten, wenig benutztn Transports zu finden.. Hier stelle ich mal eine Liste von guten Jabber Transports zusammen, mit denen ich gute Erfahrungen gemacht habe:

- aszlig.net (AIM/ICQ/IRC/Mail/MSN/Y!)
- headcounter.org (AIM/ICQ/IRC/Mail/MSN/Y!)
- schokokeks.org (AIM/GG/ICQ/IRC/MSN/SMS/Y!)
- gajim.org (ICQ/IRC/MSN)

Leider ändert sich im Umfeld der Jabber Transports immer sehr schnell etwas, so dass diese Liste nicht immer aktuell sein kann.. Dennoch hilft es mit der Service Discovery verschiedene Jabberserver abzusuchen, so findet man auch eine Menge Transports! Viel Spaß.

4.4 – Jabberclients

Es gibt für Jabber nicht den einen Jabberclient, nein, es gibt eine ganze Menge davon. So kann man problemlos den Client wechseln, falls der alte nichtmehr gefallen sollte. Aus dem riesigen Angebot von Clients möchte ich euch ein paar Empfehlungen geben, denn unter einigen guten Clients gibts leider auch einige, die schlecht programmiert sind, die Entwicklung eingeschlafen ist, oder die leicht menschenunverständlich sind..

- Windows:
Jabber auf Windows ist kein Problem, gibt es dort ein paar gute Clients: PSI, Spark, Pidgin (ehemals Gaim), Pandion, und Exodus. Unterstützen sie doch alle alles was man so fürs Jabbern benötigt.
- Mac OS:
Leider gibt es noch für Mac OS sehr wenige Jabberclients, dennoch gibt es immerhin: PSI, Spark, und Adium, (Adium kann ich nicht wirklich empfehlen, da er Jabber nur mäßig bis schlecht unterstützt), und mit iChat lässt sich auch noch Jabbern, wenn auch leider nur sehr begrenzt.
- Linux:
Für Linux gibts wohl die meisten Clients, dennoch würde ich euch auch PSI empfehlen, nicht schlecht ist noch Gajim, wer auf einen Multiprotokoll Client steht kann auch Gaim benutzen (heißt seit neuesten Pidgin), Tkabber schaut auch nicht schlecht aus, genauso wie Kopete.

Weiterhin gibt es auf jabber.org eine ausführliche Liste über Jabberclients, wie auch in der Wikipedia.
Nach einer gewissen Zeit wird jeder seinen Client finden, der ihm persönlich am meisten liegt, man muss nur ein bisschen rumprobieren.

4.5 – Jabber Roster Utility

Jabber-Roster Utility in php – Macht euch das Leben leichter, bei derVerwaltung der Jabber Kontaktliste, z.B. bei einem Transportwechsel. Liste in einen Texteditor kopieren, den alten Transport durch den neuen ersetzen lassen, alten Transport mit – entfernen, Kontaktliste aktualisieren, fertig. (Wer das nicht verstanden hat, der liest sich die Dokumentation vom Jabber Roster Utility lieber selbst durch..) Das Jabber Roster Utility habe ich hier selbst gehostet, als Backup und so..

4.6 – JWChat

Unterwegs auf einem Computer, der keinen Jabber Client installiert hat? Kein Problem mit dem Web Chat Frontend von JWChat.org.

5. – Fazit

Jabber ist leider noch ein Nerdspielzeug, überzeugt aber in fast allem gegenüber den herkömmlichen Instant Messaging Systemen. Jabber ist zuverlässiger, einfacher, nicht so nervig, und viel transparenter gegenüber dem User, als die herkömmlichen Systeme, die einen meist alleine lassen. selbst das gaze Potential von Jabber ist noch lange nicht ausgenützt, und dadurch dass Jabber Open Source ist könntest du selbst Jabber nach deinen Wünschen anpassen.
Leider ist Jabber wegen seinem Nerdstatus und wegen seiner noch geringen Verbreitung reichlich unsexy.. Im Gegensatz dazu, was macht denn ICQ oder MSN so supergeil? Die nervigen Fehlermeldungen? Dass von Zeit zu Zeit alle Kontakte aus der Liste verschwinden? Oder ist es die Werbung, die städig blinkt, und einem am konzentrieren hindert? Wohl kaum !?!
Ich fände es schön, wenn ich einigen Leuten, die hier diesen Text gelesen haben, ich mal in Jabber antreffen würde. Und noch schöner wärs, wenn ich sie öfters als nur ein- bis zweimal treffen würde, am besten regelmäßig.

Schön, dass ihr so weit gekommen seid, falls es noch Fragen geben sollte (was ich nicht hoffe..), oder irgendwas unklar sein sollte, schreibt mir eine Mail an friidis [ädd] der-beweis [pünkt] de, oder schreibt eine Jabber Nachricht an friidis [ädd] jabber [pünkt] ulm [pünkt] ccc [pünkt] de

Weiterhin viel Spaß beim Jabbern!

CC 2.0 de by-nc-sa

Dieser Text ist unter der Creative Commons Lizenz (2.0 de by-nc-sa) gestellt, genauso wie die von mir erstellten Bilder. Die Rechte der anderen Inhalte liegen beim jeweiligen Verfasser. Mehr Informationen finden sie im Impressum.

4 Responses to “Jabber”

  1. Stutzl Says:

    Ich habe diesen Artikel auf meiner Jabber-Seite verlinkt, um den Neulingen Jabber näher bringen zu lassen. Dieser Artikel deckt einfach alles wichtige ab, daher der Link.

    Ich betreibe derzeit einen Jabber-Server mit Transports zu den 4 “Großmächten”, noch auf einem guten vServer. Das wird sich bald ändern, je nach Benutzeranzahl und Auslastung des Servers.

    Beste Grüße vom Bodensee

    Stephan (Stutzl)

  2. peleg Says:

    cool geschrieben, werde es auch benutzen um neulingen einen ersten überblick geben zu können…

  3. Sixtus Says:

    Danke für eure positiven Antworten! Freut mich sehr!

  4. Mit xmpphp über Jabber ICQ Kontaktieren | www.coding-blog.com Says:

    [...] Nun habe ich einen Weg gefunden, wie es trotzdem gehen könnte. Man erstellt sich einen Jabber-Account bei einem Anbieter (z.B. aszlig.net) welcher das Verbinden zu ICQ zulässt und nimmt einen Jabber-Client wie z.B. gajim und fügt dort seine ICQ-Kontakte ein. Diese heißen dann zwar nicht mehr bspw. 32532453 sondern 32532453@icq.headhunter.org (Info: z.B. hier) [...]

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>