Ejabberd + Samba без OpenLDAP

Есть домен на Самбе, OpenLDAP отсутствует. То есть Samba вполне полноценно прикидывается NT-доменом. А как подружить это теперь с ejabberd, чтоб не заводить пользователей ещё и в Jabber? Может, у кого пример конфига завалялся.

Опубликовано evgeny_veresk@j... в пн, 2010-08-09 12:58. categories [ ]
Изображение пользователя kostix@jabber.ru.

Re: Ejabberd + Samba без OpenLDAP

Если самба у тебя прикидывается именно доменом, то LDAP там обязан быть в том или ином виде — не бывает виндовых доменов без LDAP. Вот и сделай в ejabberd аутентификацию средствами этого LDAP'а.

Ну, или ты перепутал одноранговую сеть с доменом. Тогда вопрос задан некорректно.

--
JID для связи: xmpp:kostix@007spb.ru

AD - это тоже LDAP,

AD - это тоже LDAP, только в реализации MS. Тут всё понятно. А вот такая настройка не работает:

LDAP.LOCAL - домен, root - админ, все ползователи домена должны быть в Jabber.

{host_config, "im.ldap.local", [
{auth_method, ldap},
{ldap_servers, ["10.0.0.10"]}, % List of LDAP servers
{ldap_port, 389},
{ldap_uidattr, "sAMAccountName"}, % LDAP attribute that holds user ID
{ldap_group, "CN=Domain Users,dc=ldap,dc=local"},
{ldap_base, "dc=ldap,dc=local"}, % Base of LDAP directory
{ldap_rootdn, "CN=root,dc=ldap,dc=local"},
{ldap_password, "password"}
]}.

Говорит при этом, что на 389 порту нет никого:

=ERROR REPORT==== 2010-08-10 13:00:52 ===
E(<0.261.0>:eldap:914) : LDAP connection failed on 10.0.0.10:389
Reason: econnrefused

Поменял

Поменял стандартный LDAP-порт на microsoft-ds:

{host_config, "im.ldap.local", [
{auth_method, ldap},
{ldap_servers, ["10.0.0.10"]}, % List of LDAP servers
{ldap_port, 445}, %389
{ldap_uidattr, "sAMAccountName"}, % LDAP attribute that holds user ID
{ldap_group, "CN=Domain Users,dc=ldap,dc=local"},
{ldap_base, "dc=ldap,dc=local"}, % Base of LDAP directory
{ldap_rootdn, "CN=root,dc=ldap,dc=local"},
{ldap_password, "password"}
]}.

Теперь ругается по-другому:

=INFO REPORT==== 2010-08-10 13:09:06 ===
I(<0.509.0>:ejabberd_c2s:568) : ({socket_state,tls,{tlssock,#Port<0.436>,#Port<0.438>},<0.508.0>}) Failed authentication for

Изображение пользователя xram@jabber.ru.

Re: Поменял

Открывай снифер и смотри чо там у тебя за пакеты летают. LDAP отлично сниффится wireshark'ом например.

Изображение пользователя kostix@jabber.ru.

Re: Поменял

Ну, лично мне не нравится

{ldap_rootdn, "CN=root,dc=ldap,dc=local"},

с двух сторон:

  1. Выше у тебя написано {ldap_group, "CN=Domain Users,dc=ldap,dc=local"}, — логично предположить, что и root должен находиться в каком-нибудь OU, а не напрямую в корне дерева. Возможно, поэтому и не проходит аутентификация, что начальная привязка не удаётся. Чтобы решить эту проблему более просто, с Windows AD можно использовать конструкцию с "@", например, {ldap_rootdn, "root@ldap.local"}; возможно, и здесь покатит.
  2. По умолчанию все пакеты LDAP ходят по сети в открытом виде. Поэтому нужно либо постараться заюзать TLS в LDAP, либо как минимум завести отдельную учётку в LDAP, которой не разрешено ничего, кроме чтения дерева, и юзать её для начальной привязки. Не надо там юзать root.

Ну и да, Wireshark позволяет увидеть более чем наглядно что происходит при аутентификации. Снимать дамп на сервере можно обычным tcpdump'ом (при помощи ключа -w), а смотреть полученный файл на десктопе Wireshark'ом.

--
JID для связи: xmpp:kostix@007spb.ru

>>> По умолчанию

>>> По умолчанию все пакеты LDAP ходят по сети в открытом виде
{ldap_encrypt, none},
Должно помочь, вроде.

>>>{ldap_rootdn, "root@ldap.local"}
Не помогло

>>>Ну и да, Wireshark позволяет увидеть более чем наглядно что происходит при аутентификации.
jabber, как и домен, работают в OpenVZ. Впрочем, заходить винде в домен это не мешает ваще никак. Как и авторизоваться в jabber без домена.

Вот что даёт лог:

I(<0.509.0>:ejabberd_c2s:568) : ({socket_state,tls,{tlssock,#Port<0.436>,#Port<0.438>},<0.508.0>}) Failed authentication for

Изображение пользователя kostix@jabber.ru.

Re: Поменял

Quote:
>>>Ну и да, Wireshark позволяет увидеть более чем наглядно что происходит при аутентификации.
jabber, как и домен, работают в OpenVZ. Впрочем, заходить винде в домен это не мешает ваще никак. Как и авторизоваться в jabber без домена.

Вот что даёт лог:

I(<0.509.0>:ejabberd_c2s:568) : ({socket_state,tls,{tlssock,#Port<0.436>,#Port<0.438>},<0.508.0>}) Failed authentication for

Выглядит так, что наши слова про сниффер, tcpdump и wireshark не просеялись. Впечатление такое, что тут ты ответил на вопрос, который никто не задавал.

--
JID для связи: xmpp:kostix@007spb.ru