Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


ejabberd

[ ejabberd ] Openfire ]


Bei 'ejabberd' handelt es sich um einen freien (unter GPLv2) 'Jabber/XMPP'-Server, welcher in der exotischen Programmiersprache 'Erlang/OTP' programmiert ist. 'Erlang' ist eine auf Hochverfügbarkeit und Fehlertoleranz ausgelegte Programmiersprache. 'ejabberd' ist sowohl für den professionellen Einsatz, als auch für den privaten Gebrauch geeignet. So nutzen einige große bekannte Instant-Messaging-Anbieter oder auch z.B. die 'Jabber-Foundation' diese sehr mächtige und stabile Server-Software. Mehrere 'ejabberd'-Systeme können sich zu Clustern zusammenschalten und sich so die Rechenleistung aufteilen. Der Server ist für die Plattformen Linux, Windows und MAC OS verfügbar. 'ejabberd' kann über die Kommandozeile oder auch über eine eigene Web-Interface leicht kontrolliert bzw. administriert werden. Auch werden unterschiedliche bekannte Datenbanken unterstützt, aber auch ein Betrieb ohne zusätzlicher externer Datenbank ist möglich. Weiterhin kann sich 'ejabberd' mit entsprechenden Gateways, mit anderen Instant-Messaging-Systemen verbinden und sich austauschen.

Auf der vorliegenden Seite wird gezeigt wie ein 'ejabberd'-Server, z.B. für das eigenen lokale Netz, unter Debian-Linux realisiert werden kann, dabei wird eine minimale triviale Installation ohne Cluster aufgezeigt.

Installation/Konfiguration von 'ejabberd'

Die eigentliche Installation von 'ejabberd' unter Debian kann recht einfach aus dem Repositorie geschehen:

apt-get install ejabberd

Bei der Installation sollten alle weiteren Abhängigkeiten zu anderen Paketen aufgelöst werden, auch wird die Programmiersprache 'Erlang', die für 'ejabberd' zwingend benötigt wird mitinstalliert.

Nach der Installation ist 'ejabberd' zu konfigurieren, die Konfigurationsdatei 'ejabberd.cfg' befindet sich in Verzeichnis '/etc/ejabberd/' und kann mit einen einfachen Text-Editor bearbeitet werden. Die Konfigurationsdatei ist im Syntax der Sprache 'Erlang' gehalten und ist für den Anfang etwas gewöhnungsbedürftig, so werden z.B. Kommentare mit dem '%'-Zeichen eingeleitet. Bei Änderungen der Konfiguration ist der Server neu zu starten.
Für eine einfache triviale Konfiguration empfiehlt es sich jedoch die Basiskonfiguration mit dem Debian-spezifischem Kommando:

dpkg-reconfigure ejabberd

durchzuführen. Nach dem Aufruf des Kommandos kommt es zur textbasierten Kommunikation, bei der folgende Fragen beantwortet werden müssen:

  • Der Name Ihres Ejabberd-Servers:                              'xmpp.eusterholz.tld'
  • Der Name eines privilegierten Kontos für Ejabberd:            'admin'
  • Das Kennwort für das Administratorkonto:                      'secret'
  • Wiederholen Sie das Passwort zur Vermeidung von Fehleingaben: 'secret'

Bei der Frage nach dem Namen des 'ejabberd'-Server sollte ein Name benutzt werden, der von den nutzenden IM-Clients auch sicher über eine Namens-Auflösung erreicht werden kann.

Auch wurde bei der Installation ein Zertifikat für die gesicherte Übertragung erstellt. Das Zertifikat 'ejabber.pem' liegt im Verzeichnis '/etc/ejabberd/'. Da es sich um ein nicht signiertes Zertifikat handelt kann es im Zusammenspiel mit einigen Clients zu einer entsprechenden Warnung kommen.

In der Default-Konfiguration ist 'ejabberd' für einen sofortigen Einsatz konzipiert, d.h. es sollten nun schon möglich sein, sich nun mit einem 'Jabber/XMPP'-Client mit dem Server zu registrieren und zu verbinden.

Mit dem Script '/etc/init.d./ejabberd' kann der Dienst, wie bei anderen Diensten auch, kontrolliert werden. Die Datenbank von 'ejabberd' befindet sich im Verzeichnis: '/var/lib/ejabberd'.

'ejabberd' via Web-Interface

Als einen erster Test, ob der 'ejabberd'-Server generell funktioniert, kann versucht werden sich mit dem Web-Interface zu verbinden. Dazu ist einfach die URL: 'http://<ejabberd-server>:5280/admin' in einem Browser einzugeben:

Bevor mit dem Web-Interface gearbeitet werden kann, ist zuvor eine Authentifizierung notwendig. Bezogen auf die oben gemachten Eingaben, sollte der Zugang als Benutzer: 'admin@xmpp.eusterholz.tld' mit dem Passwort 'secret' gelingen. Mittels der Web-Oberfläche kann nun der Server mainteniert werden, auch können Informationen wie z.B. Statistiken abgerufen werden.

'ejabberd' via Konsole

Mit dem im 'ejabberd'-Paket enthaltenen Konsolenprogramm 'ejabberdctl' lässt sich der 'ejabberd'-Server auf der Konsole steuern und kontrollieren. Der Server kann gestartet und gestoppt werden, sowie können Benutzer angelegt oder gelöscht werden. Auch kann die interne Datenbank gesichert und wiederhergestellt werden und Informationen über Benutzer ausgegeben werden. Hierzu der Syntax für die Anwendung von 'ejabberdctl':

ejabberdctl [--node node] command [options]

Hier eine Übersicht einiger verfügbaren Kommandos:

  • status                           Abfrage des Status von ejabberd
  • stop                             Stoppen des ejabberd-servers
  • restart                          Neustart des ejabberd-servers
  • register user server password    Registrieren eines Benutzers
  • unregister user server           Löschen eines Benutzers
  • backup file                      Speichern der Datenbank in eine Backup-Datei
  • restore file                     Widerherstellen der Datenbank aus einer Backup-Datei
  • dump file                        'dump' von der Datenbank in eine Backup-Text-Datei
  • load file                        'restore' von der Backup-Text-Datei zurück in die Datenbank
  • connected-users                  Ausgabe aller Benutzer die mit dem Server verbunden sind

Weitere Kommandos von 'ejabberdctl' können auf den Manualseiten und in der Dokumentation nachgelesen werden.

Anmerkungen

'Ejabberd'-Ports

Beim Betrieb eines 'ejabberd'-Servers sind folgende Ports von Interesse:

  • '5222' eingehend, für Client-Verbindungen unverschlüsselt oder TLS-verschlüsselt
  • '5223' eingehend, für SSL-verschlüsselte Clientverbindungen (veraltet)
  • '5269' ein- und ausgehend, für Verbindungen zu anderen Servern
  • '5280' eingehend, für Client-Verbindungen über HTTP-Polling (nützlich für Webapplikationen)

Damit sichergestellt ist, dass die Clients den 'ejabberd'-Server erreichen können, müssen eventuell noch Firewalls und Router entsprechend konfiguriert werden.

Registrierung der Benutzer (automatisch/manuell).

Soll es nicht möglich sein, dass Benutzer sich automatisch mit dem 'ejabberd'-Server registrieren können, ist folgende Änderung in der Konfigurationsdatei notwendig:

Auszug aus: /etc/ejabberd/ejabberd.cfg (ca. Zeile: 38)

...

% Every username can be registered via in-band registration:
%{access, register, [{allow, all}]}.

% None username can be registered via in-band registration:
{access, register, [{deny, all}]}.

...

Das '%'-Zeichen muss von einer in die andere Zeile gesetzt werden. Nach einem Neustart des 'ejabberd', sollte nun nur noch der Administrator in der Lage sein neue Benutzerzugänge anzulegen.

Weitere Infos

Homepage: ejabberd http://www.ejabberd.im/
Dokumentation zu ejabberd http://www.process-one.net/en/ejabberd/docs/
Tutorials bezüglich ejabberd http://www.ejabberd.im/tutorials
Manualseiten zu: ejabberd man ejabberd
Manualseiten zu: ejabberdctl man ejabberdctl
System-Dokumentation: ejabberd /usr/share/doc/ejabberd

Home ] [ ejabberd ] Openfire ]

letzte Änderung: 27. April 2008

 

Copyright © 2004 Norbert Eusterholz