Меню Рубрики

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

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

Рассмотрим установку сервера ejabberd на компьютеры под управлением ОС Windows в стандартной конфигурации для использования в локальной сети с открытым доступом из Интернет и с использованием службы DynDNS.

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

Первым делом скачайте программу-установщик на свой компьютер, сделать это можно на официальном сайте Process One на странице загрузки. После скачивания запустите файл и приступайте к установке.

Установка сервера

После запуска установщика первым делом появится диалог выбора языка. Выберите русский и нажмите «OK«. Запустится мастер установки, который поможет выполнить Вам все необходимые шаги. Во время работы мастера Вам придется ответить на следующие вопросы:

  • Принятие лицензионного соглашения. Ejabberd распространяется на условиях лицензии GPL.
  • Каталог для установки программы. Здесь будут находиться основные исполняемые файлы сервера и файлы конфигурации, а также база данных пользовательских аккаунтов под названием Mnesia.
  • Доменное имя сервера. Как уже говорили выше, пусть это будет myjabber.ath.cx.
  • Логин администратора. Вместе с доменным именем он составит Jabber ID администратора сервера.
  • Пароль администратора.
  • Вариант конфигурации сервера. Кластеры используются только на высоконагруженных серверах, поэтому отвечаем «Нет«.

После ответа на эти вопросы начнется процесс установки, во время которого будут выполнены основные настройки сервера. После установки сервер займет на диске около 15 Мб. Для окончания установки осталось выполнить лишь несколько шагов.

Источник

Ejabberd + передача файлов + «засланец»

Здравствуйте, уважаемое сообщество. Новый опыт, новая статья и новая попытка вскарабкаться на Хабр. Я эникейщик и для себе подобных решил написать очерк про установку и настройку сервера обмена сообщениями, ну и небольшой бонус напоследок.

Сразу оговорюсь, что интеграция с AD не рассмотрена, т.к. практического опыта нет.

Конфигурация железа:

Intel® Pentium® 4 CPU 2.40GHz
768 Mb RAM
HDD 40 Gb
ОС: Debian 6

В качестве сервера выбран ejabber (по сравнению с openfiler не такой требовательный к ресурсам)

Устанавливаем:
sudo aptitude install ejabberd

Настройки хранятся в файле /etc/ejabberd/ejabberd.cfg
Хочу заметить, что настройки в файле очень хорошо прокомментированы разработчиками.

sudo mcedit /etc/ejabberd/ejabberd.cfg

1. Находим и раскомментируем следующую строку:
override_local.

И прописываем свои данные для ejabberd-администратора

3. Секция ACCESS RULES и строка:

В комментариях сказано, что эта строка отвечает за самостоятельную регистрацию пользователей Если необходима возможность создания нового пользователя из клиентской программы, то приводим строку к виду:
]>

Я эту возможность не использую, потому у меня строка выглядит так:

4. Секция DEFAULT LANGUAGE

прописываем язык по умолчанию ru:

5. Настроим такую полезную вещь как общий ростер (все контора сразу в списке у каждого пользователя)
находим и расскоментируем:

Передача файлов:

При таких настройках пользователи смогут прекрасно обмениваться не только сообщениями, но и файлами (при условии использования одинаковых клиентских программ, но об этом ниже), НО, проблема появилась тогда, когда я попытался передать файл человеку, который присоединился к серверу «снаружи». Поясню на примере: наш ejabberd-сервер в локальной сети — 192.168.100.100/ejabberd.local и он же в интернете (или другой локальной сети) 55.55.55.55/example.com — при таком раскладе пересылка файлов между пользователями из разных сетей не работала. Так вот если у вас сервер так же будет располагаться на шлюзе, то необходимо настроить следующее:

*Примечание:
host, name и hostname я специально заполнял внешним ip-адресом, когда настраивал, с тех пор так и осталось;
ip 0.0.0.0 — после этой строки ejabberd начнёт слушать на всех сетевых интерфейсах

Отлично, с конфигом, кажется, закончили. Осталось чуть.

Регистрируем учётную запись администратора ejabberd-сервера:

sudo ejabberdctl register XXX Example.com PASSWORD

sudo /etc/init.d/ejabberd restart

Администрируется сервер по адресу: наш_сервер:5280/admin
*Примечание:
логин вводим полностью, т.е. xxx@example.com и пароль, заданный на предыдущем шаге.

С помощью этой панели выполняются операции с сервером/пользователями/группами и прочее.
Переходим в раздел Virtual Hosts/название нашего сервера/группы общих контактов
Создаём группу
Название: Наша контора
Описание: Наша контора
Члены: собакаallсобака (значок собаки превращается в ссылку в предпросмотре, так что подстраховываюсь)
* если нужны определённые пользователи, то они перечисляются по порядку через пробел (vasya@example.com nadya@example.com)
Видимые группы: Наша контора

Всё норм, ejabberd готов к приему пользователей.
Пара слов о клиентских программах.
Я пробовал несколько программ, но остановился на Psi plus. Не навязываю, но советую присмотреться. Не ахти какой «корпоративный стиль», но своё дело знает туго.
*Примечание: для передачи файлов между всеми, необходимо в настройках аккаунта (Другое/Передача данных/Прокси сервер) указать внешний ip адрес ejabberd-сервера (в нашем примере 55.55.55.55)

Итак, сервер настроен, клиенты подключены, всё ок.

Засланец

Пришло время для бонуса, на который я недавно наткнулся.
Создадим специальный аккаунт (zaslanetc@example.com с паролем password) на нашем сервере. Все сообщения, которые поступят от определенного пользователя будут выполнены на том компьютере, с которого залогинился «Засланец», а результат выслан в ответном сообщении.
Суперпользы такой финт не несёт, но порцию положительных эмоций получите запросто.

Это тот случай, когда подготовка оказалась сложнее самой реализации. Тренировался на рабочем компьютере с
ubuntu 13.04
Необходимо установить ruby
Оказалось, что версии выше 1.8.7 (как позже выяснилось) капризничают, поэтому её я и поставил.
Устанавливал по этому руководству (nodejs — не надо, наша версия 1.8.7)
Затем устанавливаем «гемы»

gem install xmpp4r-simple
gem install session

и пишем скрипт/засланца

sudo mcedit zaslanetc.rb

#!/usr/bin/env ruby
require ‘rubygems’
require ‘xmpp4r-simple’
require ‘session’
#sh, в котором выполняются команды
@sh = Session::new
# Подключение к ejabberd-серверу
bot = Jabber::Simple.new(‘zaslanetc@example.com’, ‘password’)
while true
# Ожидаем сообщение
bot.received_messages do |msg|
# Проверка, что отправитель, кто надо отправитель
if msg && msg.from.to_s.include?(‘vasya@example.com’)
# Выполняем команды в сеансе sh
stdout, stderr = @sh.execute(msg.body) if msg.body
# Отправляем в ответном сообщении вывод команды
bot.deliver(msg.from, «\n» + stdout.chomp) unless stdout.empty?
# Отправляем ошибки
bot.deliver(msg.from, «\n» + stderr.chomp) unless stderr.empty?
end
end
end

Запускаем:
ruby zaslanetc.rb

при получении засланцем сообщения от vasya@example.com, он «пытается» выполнить это сообщение, а результат отправляет Васе в чат. При получении сообщения от кого-либо другого, он прикидывается ветошью и не реагирует. Натуральный засланец!

Всем спасибо за внимание, пока пока!

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Источник

Ставим корпоративный Jabber-сервер

Сегодня мы будем устанавливать и настраивать корпоративный Jabber-сервер.

Подготовка

Установку будем производить на операционную систему CentOS 7, момент установки ОС я здесь описывать не буду – он достаточно тривиален.

Нам потребуется внешний IP-адрес и домен (для примера я напишу везде litl-admin.ru, но сервер по факту на другом домене). Если сервер корпоративный, через Интернет-шлюз, то понадобится делать проброс порта на шлюзе (согласно портам, указанным в конфиге). Ну и как всегда, я считаю, что для этих целей дешевле и проще арендовать выделенный сервер, например вот этот, чем собирать своё железо в стойку и мучиться с его обслуживанием.

Настройки файрволла

# firewall-cmd —zone=public —add-port=5280/tcp —permanent
# firewall-cmd —zone=public —add-port=5222/tcp —permanent
# firewall-cmd —zone=public —add-port=5269/tcp —permanent
# firewall-cmd –reload

Я остановил свой выбор на сервере EJabberd, который обладает достаточной гибкостью. Также, определился, что данные буду хранить в базе MySQL, а не в файлах, поэтому предварительно установим MySQL на CentOS 7.

Создаём базу под EJabberd

Качаем схему для базы:

> CREATE DATABASE ejabberd;

> GRANT ALL ON ejabberd.* TO ‘ejabberd’@’localhost’ IDENTIFIED BY ‘ejabberdpassword’;
> QUIT;

Загружаем в MySQL схему:

# mysql -h localhost -D ejabberd -u ejabberduser -p

Качаем дистрибутив

Находим нужный нам дистрибутив и копируем ссылку. У нас CentOS – последователь RedHat, поэтому качаем RPM Package.

Устанавливаем EJabberd

Загружаем по полученной ссылке пакет:

# wget https://www.process-one.net/downloads/downloads-action.php?file=/ejabberd/18.06/ejabberd-18.06-0.x86_64.rpm -O ejabberd.rpm

# rpm -ihv ejabberd.rpm

и следуем простым инструкциям. Когда сервер будет установлен, следуем в каталог /opt/ejabberd-18.06/.

Нас интересуют два каталога: bin и conf. В первом лежат исполняемые файлы, во втором, соответственно, конфиги.

Открываем конфиг ejabberd.yml и правим следующие параметры:

hosts:
## Домен нашего сервера
— «litl-admin.ru»
.
listen:

port: 5222
## IP нашего сервера
ip: «192.168.1.99»
.
## храним юзеров в базе
auth_method: sql
## храним пароли в виде хеша (по умолчанию в plain-text)
auth_password_format: scram
.
## параметры доступа к базе данных
sql_type: mysql
sql_server: «localhost»
sql_database: «ejabberd»
sql_username: «ejabberd»
sql_password: «ejabberdpassword»
.
## логин администратора
acl:
admin:
user:
— «admin@litl-admin.ru»

Кажись в конфиге я больше ничего не менял пока.

# /opt/ejabberd-18.06/bin/ejabberdctl register «admin» «litl-admin.ru» «adminpass»

Теперь можно постучать на веб-интерфейс http://192.168.1.99:5280/admin:

Базовая настройка сервера

После входа в веб-интерфейс перед нами открывается такая картина: Сейчас я выполню только первичную настройку. Более детально будем делать позже. Итак, переходим в раздел “Вирутальные хосты”, открываем наш хост [1]. Переходим в раздел “Пользователи” [2].

Создаём нужное количество пользователей [3]:

Теперь переходим в раздел “Группы общих контактов”, чтобы сделать список абонентов, доступный каждому. Вообще, тут довольно гибкая система. К слову, контакты тут называются “ростер”. Соответственно, модуль называется mod_shared_roster.

Создадим группу, дадим ей имя типа “groupname” [2]:

И зайдём в созданную группу по ссылке: Здесь у нас отображается название группы [1], заголовок, который будет видим в списке контактов [2]. Перечислим пользователей в разделе “Члены” [3]. И теперь напишем название группы в раздел [4], чтобы члены группы видели эту же группу (общий список контактов). Вот именно подобная настройка и даёт огромную гибкость в настройке. Т.е. можно сделать контакты, которые будут видеть одних юзеров, но те юзеры не будут видеть эти контакты. Т.е. поле [4] должно совпадать с полем [1].

Сохраняем настройки и пробуем подключиться к нашему серверу.

Подключение к серверу

Так как задача ставилась таким образом, что основной пласт юзеров будет работать из-под мобильных устройств, то надо было протестировать и отладить в первую очередь под ними. Под Android я использовал Xabber.

А под Winodws – Psi+:

Что осталось сделать

  1. Наладить передачу файлов — сделано;
  2. Многопользовательские чаты;
  3. Сохранение логов бесед в виде HTML;
  4. Выпуск сертификатов для TLS — сделано;

Статья будет дополняться по ходу дела. Удачи всем!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Установка edge на windows 10
  • Установка dude server windows
  • Установка dreamscene на windows 7
  • Установка django python windows
  • Установка diagbox на windows 7 x64