Ohne großen Grund dafür wollte ich heute ausprobieren, mir einen eigenen Chat Server aufzusetzen, der in Verbindung mit iOS, Android und OSX Apps ähnlich fungiert wie z.B. Whats App oder der Facebook Messanger. Nach kurzer Recherche stößt man in erster Linie auf XMPP und damit verbunden u. A. auf Prosody. Da mein Server ohnehin ein Ubuntu Linux Server ist und es dafür bereits fertige Pakete gibt, war es also naheliegend dort anzusetzen um einen Versuch zu wagen. Hier also das Rezept für den eigenen XMPP Chat und Messaging (IM) Server:

Zutaten:

- Ubuntu 14 Server (z.B.) 
- SSL Zertifikat (optional aber empfohlen) 
- Clients für Endgeräte

- Nachrichten (OSX) 
- Adium (OSX) 
- Monal (iOS) 
- ChatSecure (iOS) 
- JabMe (iOS) 
- Conversations (Android) 

- Etwa 30 Minuten Zeit, alles einzurichten 

Installieren des Servers

... denkbar einfach.

Prosody installieren:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install prosody

und schon wird Prosody mit samt der Abhängigkeiten installiert. Sobald erledigt, müssen wir uns nur noch an die Konfiguration wagen - aber auch diese ist weit weniger tragisch als man erwarten möchte. Alle Einstellungen befinden sich in einer einzigen Datei, welche wir gleich mal im Editor öffnen wollen. Ich verwende VIM - aber das kann ja jeder halten wie er will:

Prosody konfigurieren

vim /etc/prosody/prosody.cfg.lua

Die entscheidenden Stellen, die geändert werden sollten sind:

Administrator Account benennen: admins = {"someUserName@domain.tld" } Das SSL Zertifikat benennen: ```ssl = { key = "/etc/prosody/certs/pathToKey.key"; certificate = "/etc/prosody/certs/pathToCert.crt"; protocol = "sslv23"; dhparam = "/etc/prosody/certs/pathToPEMFile.pem"; }

>Sollte Euer Zertifikat kein Intermediate Cert benötigen, könnt ihr die letzte Zeile auch weglassen! - TiPP: Sorgt bitte selbst dafür das die keys und certs die entsprechenden Rechte haben (und nicht mehr als notwendig) und geschützt sind! Hier gibt es weitere Infos über die Zertifikate: Prosody bzgl. Zertifikate

Virtuellen Host eintragen:

VirtualHost "myDomain.tld" VirtualHost "xmpp.myDomain.tld" VirtualHost "example.com" enabled = false -- Remove this line to enable this host

    -- Assign this host a certificate for TLS, otherwise it would use the one
    -- set in the global section (if any).
    -- Note that old-style SSL on port 5223 only supports one certificate, and will always
    -- use the global one.
    ssl = {
            key = "/etc/prosody/certs/example.com.key";
            certificate = "/etc/prosody/certs/example.com.crt";
    } 

Das Konfigfile speichern und Prosody neu starten:

```prosodyctl restart ```

User hinzufügen:

prosodyctl useradd username@yourDomain.tld

// password

// retype password


Und schon solltet Ihr euch mit einem der Clients anmelden können :)
Das ist ja einfach *g

Sollte es Probleme geben könnt ihr live das Log auf dem Server betrachten:

tail -f /var/log/prosody/prosody.log


Die Ausgabe sollte etwa wie folgt aussehen:

Apr 02 08:44:01 c2s1cce500 info Client disconnected: closed Apr 02 08:44:03 c2s1bce620 info Client connected Apr 02 08:44:04 c2s1bce620 info Authenticated as ################## Apr 02 08:44:04 s2sout1d91ce0 info Out of connection options, can't connect to ##### Apr 02 08:53:01 c2s1bce620 info Client disconnected: closed Apr 02 08:53:05 c2s1d4ac80 info Client connected Apr 02 08:53:05 c2s1d4ac80 info Authenticated as ###################



usw...

Previous Post Next Post