Astra linux ejabberd настройка

Установка ejabberd под Linux

Рассмотрим установку сервера ejabberd на компьютеры под управлением одного из дистрибутивов GNU/Linux для использования в локальной сети с открытым доступом из Интернет и с использованием службы DynDNS.

Предполагается, что у Вас уже установлена операционная система, настроен доступ в Интернет, а доменное имя на DynDNS (допустим, это будет myjabber.ath.cx) указывает на внешний адрес Вашего компьютера (либо тот, который доступен из Вашей локальной сети, если Вы настраиваете сервер без возможности подключения к нему из Интернета).

Ejabberd может быть установлен на ваш сервер различными способами. Опишу три по убыванию предпочтительности:

  1. Установка из репозитория/портов. Идеальный по оптимизации и самый простой вариант.
  2. Сборка из исходного кода. Если этого пакета нет в репозиториях к вашему дистрибутиву, но очень хочется, чтобы сервер был оптимизированным и работал без ошибок — засучиваем рукава и переходим к соответствующему разделу. Тут вам понадобятся некоторые знания о Linux и/или помощь гуру.
  3. Предварительно собранные бинарные файлы с инсталлятором. Вариант весьма прост, но вряд ли оптимизирован именно под ваш дистрибутив.

Далее подробно рассмотрены эти варианты.

Содержание

Установка из репозитория

Дистрибутивов Linux великое множество, и нет никакой возможности рассмотреть детали установки в каждом из них. Упомянем наиболее популярные (предполагается наличие прав root):

openSuSE 11.4

Сначала подключим репозиторий, посвящённый программам обмена сообщениями:

Потом установим сервер:

Fedora

По умолчанию нужный репозиторий обычно подключен.

Debian-based дистрибутивы (Debian, *Ubuntu и другие)

Ejabberd входит в основную ветку репозитория, поэтому для установки просто скомандуйте:

Gentoo

Для установки ejabberd в Gentoo GNU/Linux выполните команды

Сборка из исходников

Рассмотрим сборку stable-версии ejabberd-2.0.5.

Для начала нужно, чтобы на сервере был установлен компилятор gcc и необходимые библиотеки (включая devel-части). Проверьте, есть ли у вас:

  • GNU Make
  • GNU C compiler (GCC)
  • libexpat 1.95 или выше
  • OpenSSL 0.9.6 или выше
  • Zlib 1.2.3
  • GNU Iconv 1.8 или выше
  • flex/yacc

В разных дистрибутивах проверка и установка делается разными способами. Дистрибутивов много, описывать каждый смысла не имеет. Если вы не знаете, как это сделать на вашем сервере, обратитесь к документации или гуру по данному дистрибутиву.

Для простоты операций будем работать пользователем root в его домашнем каталоге. Не забудьте потом прибраться.

Итак, нам нужен исходный код ejabberd. Идём на официальный сайт и выбираем, что нужно. Лучше выбирать stable версию, но если вы очень любите новые фишки и не боитесь нестабильной работы, то берите beta, testing или SVN версии.

Я выбрал stable-версию 2.0.5 и скачал её:

Конечно же, у вас есть эта удобнейшая утилита — wget. 😉

Ещё нам понадобится свеженький Erlang — это компилятор языка, на котором написан ejabberd. Если Erlang есть в вашем репозитории, то лучше воспользоваться им. Если нет — покажу, как собрать его из исходных кодов.

Как программист, не удержусь от пояснения, зачем было использовать этот с виду громоздкий и неудобный язык. Он громоздок и неудобен действительно лишь с виду, для написания программ вроде hello world, однако предоставляет прекрасный инструментарий многопоточного и распределённого программирования. Это позволит вам единожды написанную и собранную программу использовать на огромных кластерах, состоящих из машин любой архитектуры, в которые будет проще простого добавить новые вычислительные мощности. Даже Java не обладает подобными возможностями. Именно поэтому ejabberd считается одним из самых быстрых и масштабируемых серверов протокола XMPP.

Читайте также:  Wifite установка linux mint

Но довольно лирики.

Если у вас наличествуют все инструменты, библиотеки и исходные коды, приступим.

Создадим временный каталог для наших сборок:

erlang

В моём случае скачанный архив называется otp_src_R13B01.tar.gz. Распаковываем его во временный каталог:

Переходим в каталог и собираем erlang:

Конечно же, следим за процессом, а не просто набираем команды. Программа сборки может сообщить об ошибке, но не каждый error или warning означает неисправимую ошибку. Например, процесс конфигурирования (команда configure) может сообщить, что не нашла компилятора java, библиотек odbc и wx, но это не является ошибкой. Просто соответствующие части erlang-а будут отключены. Перечисленные библиотеки нам не понадобятся для работы ejabberd.

После сборки вернёмся в домашний каталог командой cd.

ejabberd

В моём случае архив называется ejabberd-2.0.5.tar.gz. Распаковываем его во временный каталог:

Переходим в каталог с исходниками и собираем ejabberd:

После всех этих манипуляций все нужные файлы разложены согласно традициям UNIX/Linux. Конфиги, в частности,- в /etc/ejabberd. Скрипт запуска — /sbin/ejabberdctl — отрабатывает команду start, что позволяет сразу добавить в rc.d, хотя лучше всё же написать правильный скрипт управления службой согласно правилам вашего дистрибутива.

Установка готовых бинарников

Рассмотрим установку stable-версии 2.0.5 для 32-битного Linux. Для начала нужно скачать инсталлятор:

Далее следуйте указаниям программы установки.

Настройка

А дальше надо настроить сервер: что делать при загрузке, какие модули использовать, какие порты прослушивать, и т.п.

Настройка сервера сводится к редактированию файла конфигурации /etc/ejabberd/ejabberd.cfg (путь показан на примере Debian GNU/Linux, в других дистрибутивах или при самостоятельной сборке из исходных кодов путь может отличаться). Откройте этот файл от пользователя root в любом удобном для Вас текстовом редакторе, после чего найдите следующие строки:

В первом параметре задается Jabber ID администратора, а во втором — доменное имя сервера. Приведите эти строки примерно к такому виду:

В данном случае JID администратора задан admin@myjabber.ath.cx, а имя сервера, как уже условились выше — myjabber.ath.cx.

Теперь в том же файле найдите строки

и замените deny на allow — без этого пользователи сервера не смогут регистрироваться напрямую из своего Jabber-клиента.

Сохраните изменения и перезапустите ejabberd командой

Источник

Как установить Jabber в Ubuntu 18.04

Несмотря на обилие современных мессенджеров вроде Telegram, WhatsApp, Viber и других, многие компании отдают предпочтение проверенным и независимым решениям. Да, тот же Telegram функционально почти идеален, но его «тёрки» с РКН резко уменьшают возможности его применения, ведь нужно поднимать VPN или использовать прокси. Потому «в седле» остаётся Jabber.

На этой платформе есть немало корпоративных чатов, однако для их работы неизбежно требуется серверная часть, которую зачастую разворачивают на собственных мощностях компании. Потому сегодня речь пойдёт о том, как установить и настроить Jabber-сервер на Ubuntu 18.04.

Установка Jabber-сервера в Ubuntu 18.04

Этот вариант сервера наиболее универсален на сегодня. Он поддерживает кластеризацию и имеет высокую отказоустойчивость. При этом разработчики ещё и снабдили его всеми способами установки под Linux вообще и Ubuntu в частности. Рассмотрим их по порядку.

Читайте также:  Сопроцессор драйвер windows 10 32 bit

Вариант 1. Установка eJabberd с помощью скрипта (рекомендуется разработчиками)

Идём на официальный сайт ejabberd и скачиваем файл Linux x86 64-bits Intel Installer (прямая ссылка на него).

Можно это сделать в браузере или в терминале. В последнем случае вводим такую команду:

wget https://www.process-one.net/downloads/downloads-action.php?file=/ejabberd/18.06/ejabberd-18.06-linux-x86_64-installer.run -P /home/user/Downloads/ -O installer.run

Папку можете указать свою, NewFileName — ваше имя файла.

Назначаем ему права на выполнение:

sudo chmod +x ejabberd-18.06-linux-x86_64-installer.run

Затем переходим в папку, где он лежит (в терминале через cd или в файловом менеджере) и запускаем файл на выполнение (в терминале — ./ejabberd-YY.MM-linux-x86_64-installer.run, в файловом менеджере — двойной клик).

Дальше почти классический Windows-way — выбираем язык (русский есть), кликаем кнопку Forward (да, русский есть, но кнопки не перевели), вводим нужные данные и запускаем установку.




По окончании её на рабочем столе появляются два ярлыка: «Запустить eJabberd» и «Остановить eJabberd».

Запускаем сервер первым симлинком (в терминале — ./bin/ejabberdctl). Затем в браузере вводим адрес:

Вводим имя и пароль и попадаем в админку. Там уже можно добавлять и удалять пользователей, создавать группы и прочее. Если во время установки что-то пошло не так, можно просто удалить каталог eJabberd. Он находится по адресу, который вы указали при установке. В моём случае это /home/user/ejabberd-18.06/. Там же есть скрипт удаления.

Вариант 2. Установка eJabberd из репозитория

Это нужно на случай, если установка идёт на Ubuntu без графической среды. Для установки открываем терминал и вводим команду:

sudo apt install ejabberd

Вводим пароль, подтверждаем У и ждём. Процесс установки недолгий, минута-две.

Добавляем пользователя с правами администратора:

sudo ejabberdctl register admin localhost PASSWORD

sudo ejabberdctl register admin 192.168.10.170 PASSWORD

После установки необходимо сконфигурировать сервер. В терминале вводим:

sudo nano /etc/ejabberd/ejabberd.yml

Это файл конфигурации сервера, в нём выполняются все настройки. Добавляем адрес, на котором будет «крутиться» сервер. В нашем случае это localhost. Если нужен внешний адрес, указываем и его.

Указываем, что администрировать его будет пользователь admin:

Добавим поддержку русского зыка:

После этого записываем изменения Ctrl + O и закрываем Ctrl + X. После чего перезапускаем сервер. На всякий случай можно и демона перезапустить.

sudo service ejabberd restart

sudo /etc/init.d/ejabberd restart

Открываем браузер и идём по адресу:

Там вводим логин и пароль, после чего попадаем в админку.

Вариант 3. Установка eJabberd из deb-пакета

Ещё один способ установки. На сей раз из штатного deb-пакета. Причём, скажу сразу, что нормально установить его с помощью Ubuntu Software или Gdebi не получится. Только терминал, только хардкор!

Скачиваем его с сайта. Или в браузере, или с помощью терминала:

wget https://www.process-one.net/downloads/downloads-action.php?file=/ejabberd/18.06/ejabberd_18.06-0_amd64.deb -P /home/user/Downloads/ -O ejabberd.deb

Затем в терминале переходим в папку с пакетом:

И запускаем установку:

sudo dpgk -i ejabberd_18.06-0_amd64.deb

В процессе на рабочем столе появятся ярлычки запуска и остановки сервера. Важно! При такой установке она производится в папку opt, а не etc как при установке из репозитория. Наиболее важные папки там — bin и conf. В первой находятся пусковые файлы, во второй — настройки.

Как и ранее, открываем файл ejabberd.yml, но с учётом пути:

Читайте также:  Windows on britain weather

sudo nano /opt/ejabberd/conf/ejabberd.yml

Вводим там, как и ранее:

Указываем, что администрировать его будет пользователь admin:

Добавим поддержку русского зыка:

sudo ejabberdctl register admin localhost PASSWORD

sudo service ejabberd restart

sudo /etc/init.d/ejabberd restart

Открываем браузер и идём по адресу:

Там вводим логин и пароль, после чего попадаем в админку.

Вариант 4. Установка Prosody

Ещё один сервер для Jabber. Для начала устанавливаем сервер базы данных MySQL. В терминале вводим:

sudo apt install mysql-server

Нажимаем У, соглашаясь с установкой. Затем устанавливаем сам Prosody. Его можно установить напрямую из репозитория Ubuntu 18.04, однако последняя версия расположена в отдельном репозитории. В терминале вводим:

Этим мы переходим в режим суперпользователя. Рекомендуется некоторые операции выполнять в нём, поскольку обычный режим sudo иногда не срабатывает.

wget https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add –

echo deb http://packages.prosody.im/debian $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/prosody.list

Затем устанавливаем сам сервер:

apt update && apt install prosody lua-dbi-mysql lua-sql-mysql lua-sec

После добавляем данные в базу:

create user ‘prosody’@’localhost’ identified by ‘prosodypasswort’;

create database prosody;

grant all on prosody.* to ‘prosody’@’localhost’;

Всё, мы добавили записи в базу и вышли из режима суперпользователя (ибо правило «не работай под root’ом» никто не отменял).

Настройка производится в одном файле. Он находится в /etc/prosody/ и называется prosody.cfg.lua. В терминале вводим:

sudo nano /etc/prosody/prosody.cfg.lua

В открывшемся файле редактируем нужные нам параметры. После этого сохраняем их Ctrl + O и закрываем файл Ctrl + X.

Устанавливаем пакет Mercurial, он потребуется для клонирования на локальный сервер модулей Prosody из репозитория.

sudo apt install mercurial

hg clone https://hg.prosody.im/prosody-modules/ prosody-modules

Меняем разрешения для папок и файлов, чтобы система могла получить доступ к модулям:

chgrp -R prosody prosody-modules

chmod -R 770 prosody-modules

Затем перезапускаем сервер:

sudo prosodyctl restart

После этого в браузере должна стать доступна страница

Вариант 5. Установка Openfire

Сначала устанавливаем Java. В терминале выполняем:

sudo add-apt-repository ppa:webupd8team/java

sudo apt update

sudo apt install oracle-java8-set-default

Это установит Java-машину на Ubuntu. Затем скачиваем Openfire с сайта. Это можно сделать в браузере или через терминал.

Во втором случае вводим:

wget -O openfire_4.2.3_all.deb https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4.2.3_all.deb

После скачивания в терминале переходим в папку, куда мы скачали пакет. По умолчанию это Downloads. Вводим:

И выполняем команду:

sudo dpkg -i openfire_4.2.3_all.deb

Важно! Через штатный установщик и Gdebi нормально не ставится, потому лучше через терминал.

Соглашаемся с предложениями (переход по пунктам в терминальном режиме осуществляется кнопкой Tab).

Выбираем русский язык и прочие настройки. По окончании вводим данные для админа системы и авторизуемся с ними.


Открываем браузер и вводим адрес вида:

В моём случае это IP виртуальной машины, в вашем может быть иной адрес, обычно совпадающий с адресом сервера. 9090 — стандартный порт, на который стучится админ. 9091 — защищённый порт. Рекомендуется их сменить.

Выводы

В целом, установка Jabber-сервера не должна вызвать особых затруднений. Есть решения для разных задач. Тот же eJabberd максимально универсален и не требует ничего лишнего, однако это наиболее объёмный и монструозный инструмент. Prosody попроще и полегче, однако базу к нему придётся ставить отдельно. Наконец, Openfire хотя и крутится на Java, но при этом в настроенном виде весьма неплох, а также не пугает собственно процессом конфигурации. Всё делается в браузере.

Источник

Оцените статью