Как настроить уютный Jabber сервер на Ubuntu Server 13.04 -=UPDATED=-

Привет всем, сегодня помимо уютного VPN сервера у нас в программе уютный Jabber сервер для своих нужд. Ну сами понимаете, иметь свой чат бывает полезно, будь-то внутренняя домашня сеть, офисная сеть или даже для общения между несколькими участниками через Интернет. В моем случае будет через интернет. Мы займемся настройкой не безизвестного сервера ejabberd, который как вы уже догадались использует популярный XMPP протокол. Настройка и установка будет производится на Ubuntu Server 13.04 но практически тоже самое вы сможете провернуть на CentOS\RHEL разница тут будет только в пакетном менеджере с помощью которого пакет будет установлен в систему. Небольшое примечание, для такого рода сервера, желательно использовать отдельный сервак, будь-то виртуальная машина на EC2 или ESXi или еще где. Причина проста, если кто-то взломает, то получит доступ только к серваку с Jabber, а не ко-всем остальным сервисам которые бегают в сети. Итак, как установить уютный Jabber сервер на Ubuntu Server 13.04 читаем под катом.

Установка ejabberd в Ubuntu Server 13.04

Обновляемся, меняем пароль руту и ставим пакет:

passwd root
aptitude update && aptitude upgrade
sudo apt-get install ejabberd
passwd root
aptitude update && aptitude upgrade
sudo apt-get install ejabberd

Готово!

Настраиваем сервер

Вся настройка осуществляется через файл /etc/ejabberd/ejabberd.cfg и что самое приятно можно настраивать и управлять сервачком через веб-морду.
В файле надо поправить буквально пару строк:

vim /etc/ejabberd/ejabberd.cfg
...
%% Admin user
{acl, admin, {user, "<here_admin_name>", "HERE_HOSTNAME_OF_SERVER"}}.
 
%% Hostname
{hosts, ["HERE_HOSTNAME"]}.
...
vim /etc/ejabberd/ejabberd.cfg
...
%% Admin user
{acl, admin, {user, "<here_admin_name>", "HERE_HOSTNAME_OF_SERVER"}}.

%% Hostname
{hosts, ["HERE_HOSTNAME"]}.
...

Готов. Рестартуем:

sudo service ejabberd restart
sudo service ejabberd restart

Теперь нужно открыть порты в файрволле, необходимые для корректной работы, на ваш вкус:

  • Port 5222 listens for c2s connections with STARTTLS, and also allows plain connections for old clients. < Этот порт слушает Джаббер>
  • Port 5223 listens for c2s connections with the old SSL.
  • Port 5269 listens for s2s connections with STARTTLS. The socket is set for IPv6 instead of IPv4.
  • Port 3478 listens for STUN requests over UDP.
  • Port 5280 listens for HTTP requests, and serves the HTTP Poll service. < Для админки>
  • Port 5281 listens for HTTP requests, using HTTPS to serve HTTP-Bind (BOSH) and the Web Admin as explained in section 4.3. The socket only listens connections to the IP address 127.0.0.1.

Делаем админа-юзера:

sudo ejabberdctl register admin-name servername.com password
sudo ejabberdctl register admin-name servername.com password

Теперь можно сходить на веб-морду:
http://servername.com:5280/admin

Выглдядит так:
morda
Там можно добавить пользователя и много чего еще сделать, чательно изучите админку. Для Windows можно скачать клиент Pandion запускаете клиент, воодите имя пользователя и пароль и чат готов.

client

Покавырявшись в конфиге, можно включить old SSL connection method:

  {5223, ejabberd_c2s, [
                        {access, c2s},
                        {shaper, c2s_shaper},
                        {max_stanza_size, 65536},
                     zlib,
                        tls, {certfile, "/etc/ejabberd/ejabberd.pem"}
                       ]},
 
  {5269, ejabberd_s2s_in, [
                           {shaper, s2s_shaper},
                           {max_stanza_size, 131072}
                          ]},
  {5223, ejabberd_c2s, [
                        {access, c2s},
                        {shaper, c2s_shaper},
                        {max_stanza_size, 65536},
                     zlib,
                        tls, {certfile, "/etc/ejabberd/ejabberd.pem"}
                       ]},

  {5269, ejabberd_s2s_in, [
                           {shaper, s2s_shaper},
                           {max_stanza_size, 131072}
                          ]},

Но не забудьте сменить настройки клиента:
ssl

На Android

Для Android хорошего клиента пока не нашел, но есть IM+ который в принцепе работает норм, настраиваем и чатимся через old ssl:
rsz_screenshot_2013-08-22-18-48-33

И собственно говоря сам чат:
rsz_screenshot_2013-08-22-18-49-30

ВНИМАНИЕ АПДЕЙТ

Крайне не надежный и не защищенный метод описан в этой статьей, по этому он КАТЕГОРИЧЕСКИ не подходит для связи между разными узлами в сети Интернет! Пожалуйста обратите внимание на скриншот анализатора трафика, запустив Wireshark я перехватил следующую информацию:

– IP-aдрес клиент и сервера
– Логин клиента
– Программу которую использует клиент
– ТЕЛО СООБЩЕНИЯ
– Порт

5gyL7FaTxSA