Установка ejabberd на FreeBSD

Опубликовал 23 июля 2011 РІ СЂСѓР±СЂРёРєРµ FreeBSD. Комментарии: РћРґРёРЅ комментарий   Просмотров: 1 просмотров

Решился на днях поднять jabber сервер. Штука довольно полезная, но мне она понадобилась не для того, чтобы развлечь скучающих юзверей и не для внутрикорпоративного обмена сообщениями. Решился наконец организовать какой-нибудь мониторинг за сетью, используя zabbix/nagios. На почту алерты приходят не совсем оперативно, вот и подумалось, а почему бы не организовать jabber сервак. Реагировать на падение сервера будем быстрее :)

Попробовал сперва Openfire. РЎ РЅРёРј что-то РЅРµ заладилось, СЃ полпинка РЅРµ завелось. Нашёл РґСЂСѓРіРѕРіРѕ кондидата РЅР° важное место быть сервером – ejabberd. РЎ РЅРёРј РІСЃС‘ РєСѓРґР° проще, Рє тому же РјРЅРµ хитрых заморочек РЅРµ требуется. Больших нагрузок тоже РЅРµ предвидется. Так что быстренько ставим Рё выпускаем РІ продакшн. РЇ привяжу Рє mysql для более менее структурирование хранения инфы Рѕ пользователях/глобальных настроек Рё прочего.

cd /usr/ports/net-im/ejabberd && make install clean

Отмечаем компилировать с ODBC. Он потянет за собой erlang, который можно собрать отдельно из портов, использую erlang-lite, дабы ничего лишнего не тянуть за собой. Также потребуется поддержка mysql для erlang

cd /usr/ports/databases/erlang-mysql && make install clean

После успешной инсталляции всего ПО идем настраивать ejabberd. Не забываем создать базу данных и пользователя.

mysql> create database jabber;
mysql> grant all on jabber.* to [email protected] identified by 'jab';
mysql> set password for 'jab'@'localhost'=PASSWORD('[email protected]');
mysql> flush privileges;

Также необходимо создать структуру базы. sql файлик берём из архива /usr/ports/distfiles/ejabberd. Темплейт mysql.sql естественно.

Первым делом необходимо сгенерировать ssl сертификат

openssl req -new -x509 -nodes -newkey rsa:1024 -days 3650
-keyout privatekey.pem -out server.pem
cat privatekey.pem >> server.pem
rm privatekey.pem
mv server.pem ssl.pem

Теперь подправим inetrc, описывающий конфигурацию хостов

{file, hosts, «/etc/hosts»}.
{file, resolv, «/etc/resolv.conf»}.
% сначала ищем записи в hosts, а затем обращаемся к DNS
{lookup, [file, dns]}.

Рсамый РѕСЃРЅРѕРІРЅРѕР№ конфиг файл – ejabberd.cfg

{loglevel, 4}.
{hosts, ["jabber.host.ru"]}.
{listen,
[
{5222, ejabberd_c2s, [
%%
%% If TLS is compiled in and you installed a SSL
%% certificate, specify the full path to the
%% file and uncomment this line:
%%
%%{certfile, "/path/to/ssl.pem"}, starttls,
{access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536}
]},
%%
%% To enable the old SSL connection method on port 5223:
%%
%%{5223, ejabberd_c2s, [
%%В В В В В В В В В В В В В В В В В В В  {access, c2s},
%%В В В В В В В В В В В В В В В В В В В  {shaper, c2s_shaper},
%%В В В В В В В В В В В В В В В В В В В  {certfile, "/path/to/ssl.pem"}, tls,
%%В В В В В В В В В В В В В В В В В В В  {max_stanza_size, 65536}
%%В В В В В В В В В В В В В В В В В В  ]},
{5269, ejabberd_s2s_in, [
{shaper, s2s_shaper},
{max_stanza_size, 131072}
]},
%%
%% ejabberd_service: Interact with external components (transports, …)
%%
%%{8888, ejabberd_service, [
%%В В В В В В В В В В В В В В В В В В В В В В В  {access, all},
%%В В В В В В В В В В В В В В В В В В В В В В В  {shaper_rule, fast},
%%В В В В В В В В В В В В В В В В В В В В В В В  {ip, {127, 0, 0, 1}},
%%В В В В В В В В В В В В В В В В В В В В В В В  {hosts, ["icq.example.org", "sms.example.org"],
%%В В В В В В В В В В В В В В В В В В В В В В В В  [{password, "secret"}]
%%В В В В В В В В В В В В В В В В В В В В В В В  }
%%В В В В В В В В В В В В В В В В В В В В В В  ]},
%%
%% ejabberd_stun: Handles STUN Binding requests
%%
%%{{3478, udp}, ejabberd_stun, []},
{5280, ejabberd_http, [
%%{request_handlers,
%% [
%%В  {["pub", "archive"], mod_http_fileserver}
%% ]},
captcha,
http_bind,
http_poll,
web_admin
]}
]}.
{s2s_certfile, «/usr/local/etc/ejabberd/ssl.pem»}.
{auth_method, odbc}.
{odbc_server, {mysql, «localhost», «jabber», «jab», «jabber»}}.
{shaper, normal, {maxrate, 1000}}.
{shaper, fast, {maxrate, 50000}}.
{max_fsm_queue, 1000}.
{acl, admin, {user, «admin», «jabber.host.ru»}}.
{acl, local, {user_regexp, «»}}.
{access, max_user_sessions, [{10, all}]}.
{access, max_user_offline_messages, [{5000, admin}, {100, all}]}.
{access, local, [{allow, local}]}.
{access, c2s, [{deny, blocked},
{allow, all}]}.
{access, c2s_shaper, [{none, admin},
{normal, all}]}.
{access, s2s_shaper, [{fast, all}]}.
{access, announce, [{allow, admin}]}.
{access, configure, [{allow, admin}]}.
{access, muc_admin, [{allow, admin}]}.
{access, muc_create, [{allow, local}]}.
{access, muc, [{allow, all}]}.
{access, pubsub_createnode, [{allow, local}]}.
{access, register, [{allow, all}]}.
{language, «en»}.
{modules,
[
{mod_adhoc,В В В  []},
{mod_announce, [{access, announce}]}, % recommends mod_adhoc
{mod_caps,В В В В  []},
{mod_configure,[]}, % requires mod_adhoc
{mod_disco,В В В  []},
%%{mod_echo,В В  [{host, "echo.localhost"}]},
{mod_irc,В В В В В  []},
{mod_http_bind, []},
%%{mod_http_fileserver, [
%%В В В В В В В В В В В В В В В В В В В В В В  {docroot, "/var/www"},
%%В В В В В В В В В В В В В В В В В В В В В В  {accesslog, "/var/log/ejabberd/access.log"}
%%В В В В В В В В В В В В В В В В В В В В В  ]},
{mod_last,В В В В  []},
{mod_muc,В В В В В  [
%%{host, "[email protected]@"},
{access, muc},
{access_create, muc_create},
{access_persistent, muc_create},
{access_admin, muc_admin}
]},
%%{mod_muc_log,[]},
{mod_offline,В  [{access_max_user_messages, max_user_offline_messages}]},
{mod_ping,В В В В  []},
{mod_privacy,В  []},
{mod_private,В  []},
%%{mod_proxy65,[]},
{mod_pubsub,В В  [
{access_createnode, pubsub_createnode},
{ignore_pep_from_offline, true}, % reduces resource comsumption, but XEP incompliant
%%{ignore_pep_from_offline, false},В  % XEP compliant, but increases resource comsumption
{last_item_cache, false},
{plugins, ["flat", "hometree", "pep"]}В  % pep requires mod_caps
]},
{mod_register, [
%%
%% After successful registration, the user receives
%% a message with this subject and body.
%%
{welcome_message, {"Welcome!",
"Hi.nWelcome to this XMPP server."}},
%%
%% When a user registers, send a notification to
%% these XMPP accounts.
%%
%%{registration_watchers, ["[email protected]"]},
{access, register}
]},
{mod_roster,В В  []},
%%{mod_service_log,[]},
{mod_shared_roster,[]},
{mod_stats,В В В  []},
{mod_time,В В В В  []},
{mod_vcard,В В В  []},
{mod_version,В  []}
]}.

Конфиг дефолтный. Подправил только хост и данные для коннекта с mysql.

Добавляем ejabberd_enable=»YES» РІ rc.conf Рё стартуем демон

/usr/local/etc/rc.d/ejabberd start

 

Поделись:
  • Добавить ВКонтакте заметку РѕР± этой странице
  • РњРѕР№ РњРёСЂ
  • Facebook
  • Twitter
  • LiveJournal
  • MySpace
  • Р’ закладки Google
  • Google Buzz
  • Яндекс.Закладки
  • LinkedIn
  • Technorati
  • del.icio.us
  • Digg
  • БобрДобр
  • Memori.ru
  • МоёМесто.ru
  • Сто закладок
  • Blogger
  • Блог Li.СЂСѓ
  • Блог РЇ.СЂСѓ
  • Одноклассники

Метки:
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Загрузка ... Р—агрузка ...

К записи Один комментарий

неплохая статья, спасибо



Оставить комментарий или два

RSS

rss Подпишитесь на RSS для получения обновлений.

Add to Google Reader or Homepage

Подписаться на рассылку E-Mail:

РћРїСЂРѕСЃ

Статьи на какую тему Вам более интересны?

Загрузка ... Р—агрузка ...
  • РђСЂС…РёРІ РѕРїСЂРѕСЃРѕРІ