Při výběru vlastního Jabber (XMPP) serveru jsem se rozmýšlel mezi servery
Nakonec jsem se rozhodl pro ejabberd, jelikož není, na rozdíl od Openfire a tigase, napsán v Javě, ale v jazyce Erlang, který je také multiplatformní. Multiplatformnost pro mne byla jednou z hlavních podmínek, jelikož jsem nevěděl, na jakém OS server poběží. Dalším plusem byla početná a aktivní komunita, solidní dokumentace, přítomnost již ve zdrojích a velké množství funkcí.
Budeme instalovat verzi ze zdrojů.
sudo aptitude install ejabberdPo instalaci se bude ejabberd snažit ihned spustit, ale to se mu nepovede, pokud nemáme správně nastaveny soubory /etc/hosts a /etc/hostname.
Tyto soubory musí vypadat podobně jako následující:
/etc/hosts127.0.0.1 localhost<veřejná IP> jabber jabber.<doména>.cz info.<jiná-doména>.cz# The following lines are desirable for IPv6 capable hosts::1 ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allroutersff02::3 ip6-allhosts/etc/hostnamejabberDalším krokem je konfigurace jabber serveru.
Pro základní nastavení doporučuji v Debian systémech využít dpkg-reconfigure ejabberd
Průvodce se zeptá na:
Server je tak nastavený a další konfiguraci můžeme provádět buď přes webové rozhraní http://<adresa-serveru>:5280/admin
login je kompletní jabber ID uživatele admin, které jsme vytvořili
nebo přímo v konfiguračním souboru /etc/ejabberd/ejabberd.cfg a pomocí konfigurační utility ejabberdctl.
Server v tomto nastavení nepřijímá registrace přes jabber klienty!
Pokud bychom při instalaci ejabberd neměli správně nastaveny soubory /etc/hosts a /etc/hostname, musíme znovu vygenerovat SSL certifikát (pokud jej chceme používat). Certifikát by totiž platil pro jinou doménu, než chceme a jabber klient by nám to dal patřičně najevo.
Po nastavení konfiguračních souborů vygenerujeme, takzvaný "Self-Signed" certifikát následujícím způsobem.
su -cd /etc/ejabberd/cp ejabberd.pem ejabberd.pem.origopenssl req -new -x509 -newkey rsa:1024 -days 3650 -keyout privkey.pem -out server.pemopenssl rsa -in privkey.pem -out privkey.pemcat privkey.pem >> server.pemrm privkey.pemmv server.pem ejabberd.pemexitPři prvním vyvolání openssl budeme dotázáni na sadu dotazů, mezi kterými bude Common Name (eg, YOUR name) []:. Na tento dotaz musíme odpovědět plným doménovým jménem serveru, na kterém chceme jabber server provozovat. Nastavovali jsme jej do /etc/hosts například jako jabber.<doména>.cz.
Heslo, které nastavíme při generování server.pem musí být stejné jako to pro privkey.pem.
Nyní nám bude klient hlásit pouze, že je certifikát podepsán sám sebou, což je v pořádku, jelikož jsme o vytvoření certifikátu nepožádali certifikační autoritu (např. Verisign), ale vytvořili jsme jej my. Certifikát tak uživateli říká "Jsem ten, kdo tvrdím, že jsem.", oproti "Verisign říká, že jsem ten, kdo tvrdím, že jsem.".
Nejjednodušší způsob je přes webové rozhraní > Virtual Hosts > [vybrat hostitele] > Uživatelé > Přidat uživatele
Webové rozhraní > Virtual Hosts > [vybrat hostitele] > Uživatelé > Skupiny pro sdílený seznam kontaktů.
Do pole se vyplňuje "systémový" název skupiny, na který se můžeme odkazovat v nastavení ostatních sdílených rosterů. Název by nejspíše neměl obsahovat speciální znaky. Po vytvoření skupiny a jejím rozkliknutí se objeví další pole:
Po restartování serveru nastavený modul sdíleného rosteru přes webové rozhraní zmizí. Aby zůstal po restartu serveru, a byl přístupný i pro další nově vytvořené virtuální hostitele, musí se v konfiguračním souboru /etc/ejabberd/ejabberd.cfg, v sekci {modules, odkomentovat řádek s {mod_shared_roster,[]},.