LINUX.ORG.RU

Вышел ejabberd 1.0.0


0

0

После трех лет разработки вышла знаковая версия 1.0.0 отличного Jabber-сервера ejabberd, написанного на Erlang .

Главная особенность этой версии - полная поддержка XMPP.

Кроме того:

  • поддержка шифрования соединений сервер-сервер;
  • усовершенствованная поддержка виртуальных серверов (в частности можно указывать разные сертификаты SSL);
  • усовершенствованная поддержка ODBC (в частности можно хранить информацию о пользователях во внешней базе данных);
  • поддержка PostgreSQL без промежуточного слоя ODBC;
  • интерфейс переведен на 9 языков;
  • расширена документация;
  • исправлено много ошибок.

    >>> Release notes

  • anonymous

    Проверено: Shaman007 ()

    отличная, отличная новость.

    AlexGor
    ()

    С MySQL кто-нибудь заводил?

    Sorcerer ★★★★★
    ()

    Типерь stpeter перенесиот наканецта jabber.org на ежаббирд! Русская жаба -- самая большая жаба в мире!

    anonymous
    ()

    Это просто великолепно, а что там по поводу LDAP и Active Directory. А jabber.ru ещё на 0.9.9 alpha.

    timur_dav ☆☆☆☆☆
    ()

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

    golodranez ★★★★
    ()
    Ответ на: комментарий от wt

    > cd /etc/init.d > sudo cp whatever (sshd, например. Или httpd) ejabberd > sudo vi ejabberd > sudo chkconfig ...

    > в чем трудность-то?

    Сразу видно, что ты ни разу не видел ejabberd.

    anonymous
    ()
    Ответ на: комментарий от realloc

    >трех лет разработки вышла знаковая версия 1.0.0 отличного Jabber-сервера ejabbe rd, написанного на Erlang .

    Кто там выступал, что писать на всяком ацтое вроде Лиспа и прочего быстро и удобно? ;-)

    anonymous
    ()
    Ответ на: комментарий от anonymous

    поясните логику?

    неотстои версии 2.3.1 и 2.0.10(это то что из свободных) до сих пор не имеют той функциональности что у ejabberd, а работа с 15к онлайн пользователей даже теоретически не рассматривается.

    anonymous
    ()

    Господа обьясните мне,я такое Erlang!?

    И как на нем писать можно? Я зашел на сайт а там Ericsson Computer Science Laboratory.

    anonymous
    ()

    во всяком случае сыпаться из-за всякой ерунды вроде перестал, что не может не радовать.

    anonymousv
    ()
    Ответ на: комментарий от anonymous

    >Кто там выступал, что писать на всяком ацтое вроде Лиспа и прочего быстро и удобно? ;-)

    ты вообще сопля мезозойная знаешь возможности erlang-а?

    убей себя немедленно апстену.

    anonymous
    ()
    Ответ на: комментарий от anonymous

    >>Кто там выступал, что писать на всяком ацтое вроде Лиспа и прочего быстро и удобно? ;-)

    >ты вообще сопля мезозойная знаешь возможности erlang-а?

    >убей себя немедленно апстену.

    Опа! Анонимус из кайнозоя? Привет неандерталец!

    anonymous
    ()
    Ответ на: комментарий от anonymous

    гы, это все хорошо... Но вот меня, простого ананимуса, мучает вопрос, аж спать не могу, - как автор (который, тем не менее, жжот) набрел на этот erlang? Что могло побудить русскава чилавека песать на этом erlang'e? Jabber-сервер?! :)

    anonymous
    ()
    Ответ на: комментарий от anonymous

    > Господа обьясните мне,я такое Erlang!?

    Язык программирования и виртуальная машина, ориентированные на параллелелизм. Если в объектно-ориентированных языках все является взаимодействующими между собой объектами, то в ErLang все является обменивающимися сообщениями процессами. Благодаря этому можно написать программу, запустить ее сразу на нескольких компьютерах, да еще и проапгрейдить без остановки (ежели умеючи). С учетом появления массовых многоядерных процессоров и распространением кластеров подобные языки очень перспективны.

    asso_w
    ()
    Ответ на: комментарий от asso_w

    Я лично с ерланга тащусь просто. Красивый язык. Даже как-то начал симулятор мозга писать, но потом некогда стало и забросил.

    Zmacs
    ()

    Так мне так никто и не ответил, его кто-нибудь к AD прикручивал? И ещё интересует LDAP, а то он периодически пользователей отказывался принимать. Точнее, авторизация растягивалась на 5 минут, а после всё налаживалось (случалось всё с периодичностью раз в 1-2 дня). С DNS проблемы маловероятны.

    timur_dav ☆☆☆☆☆
    ()
    Ответ на: комментарий от anonymous

    Анонимус, скачай 0.5 версию ejabberd-а и узри как всё было наворочено.

    Ejabberd - был и есть один из самых-самых, оцтои на С и жабе сосут лапу. Алексей - мегамозг, респект.

    bmc
    ()
    Ответ на: комментарий от timur_dav

    >Так мне так никто и не ответил, его кто-нибудь к AD прикручивал?

    да. к ad прикручивается. правда, для более-менее приличной интеграции придётся патчить vcard_ldap. тогда получишь все радости жизни, типа ad auth + vcards из той же самой ad.

    AlexGor
    ()
    Ответ на: комментарий от asso_w

    >Язык программирования и виртуальная машина, ориентированные на параллелелизм. Если в объектно-ориентированных языках все является взаимодействующими между собой объектами, то в ErLang все является обменивающимися сообщениями процессами. Благодаря этому можно написать программу, запустить ее сразу на нескольких компьютерах, да еще и проапгрейдить без остановки (ежели умеючи). С учетом появления массовых многоядерных процессоров и распространением кластеров подобные языки очень перспективны.

    А жаба фсе равно лучче!

    anonymous
    ()
    Ответ на: комментарий от timur_dav

    На ldap работает авторизация и mod_ldap_vcard и пока нормально, хотя конечно же главное что я ждал от этого релиза - это mod_shared_roster

    anonymous
    ()
    Ответ на: комментарий от anonymous

    Под слакой не запускается, вываливается по таймауту :(

    anonymous
    ()
    Ответ на: комментарий от anonymous

    Как? Как настроить mod_ldap_vcard? Алексей отписывается, мол в конфиге есть пример, но не работает оно.
    Да и mod_shared_roster очень надо...

    anonymous
    ()
    Ответ на: комментарий от anonymous

    Конфиг в студию (чтобы понять как это - правильно)

    anonymous
    ()

    Интересная новость, интересует - а mysql он поддерживает, ибо не хочется ставить ещё один сервак. Умеет ли оно хранить историю сообщений на сервере, в т.ч. для icq/msn транспортов, ибо это наиболее ценно. И ещё, странно, проект в .ru хостится, а по русски - не строки. Я конечно прочту и так, но, всё-таки, есть там альтернатива албанскому? ;-)

    Atrus
    ()
    Ответ на: комментарий от timur_dav

    итак, сначала про ad auth. поскольку ad по сути тот же ldap, только сильно изуродованный, то:

    {auth_method, ldap}. {ldap_servers, ["pdc.domain"]}. {ldap_uidattr, "sAMAccountName"}. {ldap_rootdn, "ejabberd@domain"}. {ldap_base, "OU=organization,DC=somain"}. {ldap_password, "ejabberd_pass" }.

    где.

    pdc.domain - domain controller; ldap_rootdn - имя спец. учётной записи для ejabberd; ldap_base - база поиска; ldap_password - пароль спец. учётной записи для ejabberd.

    после этих манипуляций, заработает аутентификация в ad.

    вопрос второй.

    как заполнять vcards из того же самого ad.

    если этот вопрос тоже интересует, оставляй мыло, расскажу подробнее.

    AlexGor
    ()
    Ответ на: комментарий от AlexGor

    Спасибо AlexGor!
    Я правда не тот человек которому ты отвечал - но и мне помогло! :)
    А может - по аналогии и про vcard from AD - тоже прямо сюда? Глядишь еще кто спасибо скажет ...
    Все лучше чем бесконечная война Linix vs BSD vs Solaris vs W*ws и Java vs C++ vs PHP vs Lisp. :)

    anonymous
    ()
    Ответ на: комментарий от timur_dav

    А как бы заставить его работать фактически с одним виртуальным хостом,но смотрящим сразу в 3 сети?

    anonymous
    ()
    Ответ на: комментарий от AlexGor

    Пожалуйтса на prof_alex[at]mail.ru примерчик про vcard и ldap...

    anonymous
    ()

    Если у вас нормальный дистрибутив, то вот с этим моим конфигом у вас все заработает правильно (перед этим надо корректно настроить LDAP :)
    Тут будет LDAP auth и LDAP VCard (правда, для этого нужен патченный mod_vcard_ldap, Алексей неправильно ищет аттрибуты там, в последнем 0.9.9-alpha полумесячной давности оно не было исправлено, не знаю, как в релизе, если что, пишите на akornilov@gmail.com, там три буквы исправить надо) и логи всего трафика будуту отправляться специальной программе bandersnatch с web-мордой (как настроить ее правильно - отдельный вопрос, пишите, если что) и выход в IRC и все такое прочее. Прекрасный сервер, но не доделал никто полноценную поддержку LDAP и LDAP vCard для Shared Roster, в erlang-е разбираться нет времени, поэтому выбрал Jive Messenger :)
    --
    hiddenman
    ===============

    {acl, admin, {user, "admin1", "jabber.domain.com"}}.
    {acl, admin, {user, "admin2", "jabber.domain.com"}}.
    {acl, local, {user_regexp, ""}}.
    {access, configure, [{allow, admin}]}.
    {access, register, [{allow, all}]}.
    {welcome_message,
    {"Welcome!",
    "Welcome to Jabber Service hosted on ejabberd server. "
    "For information about Jabber visit http://jabber.org"}}.
    {registration_watchers, ["admin1@jabber.domain.com"]}.
    {access, announce, [{allow, admin}]}.
    {access, c2s, [{deny, blocked},
    {allow, all}]}.
    {shaper, normal, {maxrate, 1000}}.
    {shaper, fast, {maxrate, 50000}}.
    {access, c2s_shaper, [{none, admin},
    {normal, all}]}.
    {access, s2s_shaper, [{fast, all}]}.
    {access, muc_admin, [{allow, admin}]}.
    {access, muc, [{allow, all}]}.
    {access, local, [{allow, local}]}.
    {auth_method, ldap}.
    {ldap_servers, ["ldap.domain.com"]}. % List of LDAP servers
    {ldap_uidattr, "uid"}. % LDAP attribute that holds user ID
    {ldap_base, "dc=jabber,dc=domain,dc=com"}. % Base of LDAP directory
    {ldap_rootdn, "cn=admin,dc=jabber,dc=domain,dc=com"}.
    {ldap_password, "password"}.
    {host, "jabber.domain.com"}.
    {language, "ru"}.
    {listen,
    [{5222, ejabberd_c2s, [{access, c2s},
    {shaper, c2s_shaper}]},
    {5526, ejabberd_service, [{ip, {10, 2, 0, 3}},
    {access, all},
    {hosts, ["bandersnatch.jabber.domain.com"],
    [{password, "password"}]}]},
    {5269, ejabberd_s2s_in, [{shaper, s2s_shaper}]},
    {5555, ejabberd_service, [{ip, {10, 2, 0, 3}},
    {access, all},
    {hosts, ["icq.jabber.domain.com", "sms.jabber.domain.com"], [{password, "password"}]}]},
    {5557, ejabberd_service, [{ip, {10, 2, 0, 3}},
    {access, all},
    {host, "msn.jabber.domain.com", [{password, "password"}]}]},
    {5558, ejabberd_service, [{ip, {10, 2, 0, 3}},
    {access, all},
    {host, "yahoo.jabber.domain.com", [{password, "password"}]}]},
    {5280, ejabberd_http, [http_poll, web_admin]}
    ]}.
    {outgoing_s2s_port, 5269}.
    {modules,
    [
    {mod_register, [{access, register}]},
    {mod_roster, []},
    {mod_privacy, []},
    {mod_configure, []},
    {mod_configure2, []},
    {mod_disco, [{extra_domains, ["users.jabber.org"]}]},
    {mod_stats, []},
    {mod_vcard_ldap, []},
    {mod_offline, []},
    {mod_echo, []},
    {mod_private, []},
    {mod_shared_roster, []},
    {mod_service_log,[{loggers, ["bandersnatch.jabber.domain.com"]}]},
    {mod_irc, [{hostname,"irc.jabber.domain.com"}]},
    {mod_muc, [{access, muc},
    {access_create, muc},
    {access_admin, muc_admin}]},
    {mod_pubsub, []},
    {mod_time, []},
    {mod_last, []},
    {mod_version, []}
    ]}.

    anonymous
    ()
    Ответ на: комментарий от anonymous

    >А может - по аналогии и про vcard from AD - тоже прямо сюда? Глядишь еще кто спасибо скажет ...

    итак, основные проблемы с vcards из AD следующие:
    1. нестандартные имена атрибутов в AD;
    2. отсутсвие фильтра, для выборки только "живых" пользователей, т.е. тех, у кого !objectClass=computer, !description=hidden, !userAccountControl=какое-то число, objectCategory=person.

    у меня для "неживого" пользователя userAccountControl=66050.

    далее. как определяется jid и nick, спец. аттрибутов для которых в ad нет.

    jid=sAMAccountName@domain;
    nick=CN.

    впрочем, это всё можно регулировать.

    косовато (к сожалению, не знаю erlang, да и вообще не разработчик) запатченный mod_vcard_ldap (обозвал его mod_vcard_ad), можно взять тут:

    http://immo.ru/temp/mod_vcard_ad.erl

    собирается он следующим образом:
    просто кладётся в дерево исходников ejabberd. т.е. ejabberd-%version/src.

    некоторые параметры для ldap изменены. было ldap_*, стало ad_*. параметры следующие:
    ad_servers;
    ad_rootdn;
    ad_password;
    ad_uidattr;
    ad_base.

    к сожалению, возможность рулить фильтрами из конфига, не реализована. но, при желании можно поправить исходник в этом месте:

    search(LServer, Data) ->
    FilterDef = make_filter(Data),
    FilterPerson = eldap:equalityMatch("objectCategory", "person"),
    FilterComp = eldap:equalityMatch("objectClass", "computer"),
    FilterHidden = eldap:equalityMatch("description", "hidden"),
    FilterLive = eldap:equalityMatch("userAccountControl", "66050"),
    Filter = eldap:'and'([
    FilterDef,
    FilterPerson,
    eldap:'not'(FilterComp),
    eldap:'not'(FilterHidden),
    eldap:'not'(FilterLive)]),
    Base = ejabberd_config:get_local_option(ad_base),
    UIDAttr = ejabberd_config:get_local_option(ad_uidattr),
    case eldap:search("mod_vcard_ad",[{base, Base},
    {filter, Filter},
    {attributes, []}]) of
    #eldap_search_result{entries = E} ->
    [X || X <- E,
    ejabberd_auth:is_user_exists(
    ldap_get_value(X, UIDAttr), LServer)];
    _ ->
    ?ERROR_MSG("~p", ["Bad search"])
    end.

    для аутентификации в AD параметры ldap нужно оставить раскомментированными.

    для того, чтобы модуль заработал, в ejabberd.cfg добавляем:
    {mod_vcard_ad, []},

    вроде всё.

    AlexGor
    ()
    Ответ на: комментарий от AlexGor

    обновил mod_vcard_ad.erl и выложил там же mod_auth_ad.erl и ejabberd_auth-alt-msad.patch

    теперь это всё работает с ejabberd 1.0.

    все ldap_* в конфиге нужно заменить на ad_*. auth_method тоже ad вместо ldap.

    {auth_method, ad}.
    {ad_servers, ["controller.domain"]}.
    {ad_uidattr, "sAMAccountName"}.
    {ad_rootdn, "ejabberd@domain"}.
    {ad_base, "dc=domain,dc=org"}.
    {ad_password, "ejabberd_pass" }.

    AlexGor
    ()
    Ответ на: комментарий от AlexGor

    я попытался настроить ejabberd с ldap аутентификацией из базы Communigate Pro 4.3.8
    
    Судя по логам CGP, ejabberd успешно регистрируется на ldap сервере CGP а вот при попытке аутентифицировать передает только имя (uname@mydomain.ru) без пароля.
    
    Может кто-то победил сию проблему?
    .........
    {host_config, "fox.jb.local", [
               {auth_method, ldap},
               {ldap_servers, ["172.17.10.212"]},
               {ldap_rootdn, "adm"},
               {ldap_uidattr, "uid"},
               {ldap_password, "********"},
               {ldap_base, "cn=mydomain.ru"}
    .........
    .........
    > 09:50:58.72 5 LDAP-03442([172.17.0.10]) inp: SEQ(32) 02 01 03 60 1B 02 01 03 04
    14 75 69 64 3D 73 75 68 2C 63 6E 3D 75 64 6D 65 6E 65 2E 72 75 80 00
    > 09:50:58.72 4 LDAP-03442([172.17.0.10]) BINDing as 'myname@mydomain.ru'
    > 09:50:58.72 1 ACCOUNT(myname) incorrect password. Login attempt(LDAP) from [172.17.
    0.10]
    > 09:51:00.74 1 LDAP-03442([172.17.0.10]) BIND failed: incorrect password or accou
    nt name
    > 09:51:00.74 5 LDAP-03442([172.17.0.10]) out: 30 2E 02 01 03 61 29 0A 01 31 04 00
     04 22 69 6E 63 6F 72 72 65 63 74 20 70 61 73 73 77 6F 72 64 20 6F 72 20 61 63 6
    3 6F 75 6E 74 20 6E 61 6D 65
    > 09:55:58.64 3 LDAP-03443([172.17.0.10]) request reading failed. Error Code=read
    time-out
    > 09:55:58.64 2 LDAP-03443([172.17.0.10]) 'adm@mydomain.ru' disconnected ([172.17.0.
    10:57880])
    .........

    anonymous
    ()
    Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.