Автор Тема: ALTLinux 5.0 Ковчег подключить LDAP адресную книгу в Thunderbird [решено]  (Прочитано 4755 раз)

Оффлайн bo4karev

  • Участник
  • *
  • Сообщений: 116
Здравствуйте, уважаемые форумчане!

Задача:
Сделать общую адресную книгу LDAP пользователям почтового клиента Thunderbird.

Дано:
- Altlinux 5.0 Ковчег на сервере, на нем "из коробки" DNS, LDAP
- почтовый клиент Thunderbird 3.1.3pre на машине клиента

Делалось/проверялось:
- в Thunderbird добавлена адресная книга LDAP, скрин (scr1.jpg) прилагаю
- хост сервера пингуется по имени ldap, в брандмауэре тоже открыт LDAP
- пользователи (пока 2) на сервере заведены через вэб-интерфейс
- служба slapd на сервере работает

Проблема:
- в добавленой адресной книге LDAP не видно пользователей (ввод пробела или имени не помогает)
- при попытке загрузить копию адресной книги в Thunderbird локально возникает "ошибка репликации" (scr2.jpg)

Плиз, хэлп
« Последнее редактирование: 10.11.2010 17:31:03 от Skull »

Оффлайн palex

  • Участник
  • *
  • Сообщений: 125
Если Ковчег и "из коробки", то добавление ou=People в описание корневого элемента поможет.
Полностью - ou=People,dc=mann-shroeder,dc=ru
Опять же, если мне не изменяет память, то "из коробки" пользователя можно не указывать.


Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 169
    • Домашняя страница
Вам нужно опубликовать LDAP-сервер. Для этого в файле /etc/sysconfig/ldap добавьте внешний IP сервера в параметр SLAPDURLLIST:
SLAPDURLLIST="'ldap://localhost/ ldap://10.1.0.18/ ldaps:///'"(в примере добавили доступ по обычному LDAP-протоколу к ldap://10.1.0.18/, адрес сервера можно узнать командой ip a).
После этого перезапустите службу:
service slapd restart
Андрей Черепанов (cas@)

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 20 169
    • Домашняя страница
Если Ковчег и "из коробки", то добавление ou=People в описание корневого элемента поможет.
Полностью - ou=People,dc=mann-shroeder,dc=ru
Опять же, если мне не изменяет память, то "из коробки" пользователя можно не указывать.
По умолчанию LDAP-сервер не поддерживает обычное соединение на внешних адресах.
Андрей Черепанов (cas@)

Оффлайн palex

  • Участник
  • *
  • Сообщений: 125
Если Ковчег и "из коробки", то добавление ou=People в описание корневого элемента поможет.
Полностью - ou=People,dc=mann-shroeder,dc=ru
Опять же, если мне не изменяет память, то "из коробки" пользователя можно не указывать.
По умолчанию LDAP-сервер не поддерживает обычное соединение на внешних адресах.
Согласен, про умолчальное поведение забыл. Посчитал уже разумеющимся разрешение соединений к ldap(как-то на автопилоте опубликование делаю).


Оффлайн bo4karev

  • Участник
  • *
  • Сообщений: 116
Клиент подключается к ldap-серверу из внутренней сети 172.16.0.0/16
Эта сеть указана как внутренняя в вэб интерфейсе ЦУП

Тем не менее, сделал, как сказали, добавил в файл /etc/sysconfig/ldap строку
SLAPDURLLIST="'ldap://localhost/ ldap://172.16.0.1/ ldaps:///'"

172.16.0.1 - адрес серверного интерфейса, смотрящего во внутреннюю сеть

и перезапустил службу slapd:
/sbin/service slapd restart

поставил в клиенте порт 389 (незащищенный) т.к. опубликован ldap, не ldaps
(впрочем защищенный тоже пробовал)

у клиента по-прежнему не читается ldap-адресная книга и возникает ошибка репликации  :(

Вариант базового DN ou=People,dc=mann-shroeder,dc=ru тоже не помог, ни с именем юзера, ни без

что еще посмотреть?




Оффлайн palex

  • Участник
  • *
  • Сообщений: 125
Порты ldap(s) точно открылись для внешних соединений? Попробуйте дать команду nmap 172.16.0.1 .(Предварительно nmap поставить, в Ковчеге он, емнип, по умолчанию не ставится - apt-get install nmap)
Если на выходе будет что-либо подобное -
PORT     STATE SERVICE
..........
389/tcp  open  ldap
636/tcp  open  ldapssl
..........
а книга не реплицируется, то нужно причину искать в формате обращения к DN(тоже долго не мог врубиться как правильно спросить).  Можно попробовать каким-нибудь ldapadmin-ом проверить подключение к базе как к таковой в анонимном режиме(dc=mann-shroeder,dc=ru) с винды, или с помощью ldapsearch с linux-а .
А по части /etc/sysconfig/ldap - можно даже без явного указания адреса оставить, главное нужную строчку открыть -
cat /etc/sysconfig/ldap
#SLAPDURLLIST="'ldaps:///'"
#SLAPDURLLIST="'ldap://localhost/ ldaps:///'"
SLAPDURLLIST="'ldap:/// ldaps:///'"
SLAPD_OPTIONS="-l DAEMON -s 6"
SLURPD_OPTIONS='-t /'

Оффлайн bo4karev

  • Участник
  • *
  • Сообщений: 116
apt-get install nmap - установился нормально, попросил вставить установочный CD  :)

[root@gateway ~]# nmap 172.16.0.1

Starting Nmap 5.00 ( http://nmap.org ) at 2010-11-10 10:00 MSK
Interesting ports on 172.16.0.1:
Not shown: 983 closed ports
PORT     STATE SERVICE
............
389/tcp  open  ldap
............
636/tcp  open  ldapssl
Nmap done: 1 IP address (1 host up) scanned in 0.59 seconds

В файле /etc/sysconfig/ldap тоже все как у Вас в примере (так из коробки стоит)

С клиента проверяю:
[sysadmin@sysadmin ~]$ mozldapsearch -b dc=mann-schroeder,dc=ru -v ""
mozldapsearch: started Wed Nov 10 11:36:13 2010

ldap_init( localhost, 389 )
filter pattern:
returning: ALL
filter is: (objectclass=*)
ldap_search: Can't connect to the LDAP server - Connection reset by peer
[sysadmin@sysadmin ~]$    


Это и значит что Base DN не нравится или другое что-то?  ???

« Последнее редактирование: 10.11.2010 11:36:53 от vladiboc »

Оффлайн palex

  • Участник
  • *
  • Сообщений: 125
Цитировать
Это и значит что Base DN не нравится или другое что-то?
Другое,  "не могу соединиться с ldap-сервером. соединение сброшено..."
Похоже, клиент не знает о существовании и где искать ldap-сервер.
Попробуйте иначе. Запустить браузер konqueror или любой другой, который понимает ldap://
В строке адреса ввести-  ldap://172.16.0.1/dc=mann-schroeder,dc=ru
и посмотреть вывод. Должно отобразить список файлов с расширением ldif. В этом списке будет присутствовать People.ldif, к которому потом и надо будет обращаться через ou=People,dc=..итд
Вобщем, для начала нужно выполнить анонимное подключение.
Если будет введен неверный DN, то выдаст что-нибудь типа "Ошибка сервера LDAP: No such object".
Пока лучше отказаться от мнемонических имен и использовать адреса(172.16.0.1), чтобы не заморачиваться еще и на разрешении имен, с ними позже разобраться..

Оффлайн bo4karev

  • Участник
  • *
  • Сообщений: 116
В предыдущем примере не был указан хост ldap сервера и ldapsearch искал его на localhost
простите, ступил  ;D

правильное обращение выдало все содержимое ldap-каталога:
[sysadmin@sysadmin ~]$ mozldapsearch -b "dc=mann-schroeder,dc=ru" -h ldap.mann-schroeder.ru -v ""
mozldapsearch: started Wed Nov 10 11:53:07 2010

ldap_init( ldap.mann-schroeder.ru, 389 )
filter pattern:
returning: ALL
filter is: (objectclass=*)
version: 1
dn: dc=mann-schroeder,dc=ru
objectClass: organization
objectClass: dcObject
dc: mann-schroeder
o: ru

dn: cn=ldaproot,dc=mann-schroeder,dc=ru
objectClass: organizationalRole
cn: ldaproot

dn: ou=People,dc=mann-schroeder,dc=ru
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=mann-schroeder,dc=ru
objectClass: organizationalUnit
ou: Group

dn: cn=audio,ou=Group,dc=mann-schroeder,dc=ru
objectClass: posixGroup
objectClass: top
objectClass: extensibleObject
cn: audio
gidNumber: 81
memberUid: sysadmin
memberUid: bochkarev

dn: cn=cdrom,ou=Group,dc=mann-schroeder,dc=ru
objectClass: posixGroup
objectClass: top
objectClass: extensibleObject
cn: cdrom
gidNumber: 22
memberUid: sysadmin
memberUid: bochkarev

dn: cn=cdwriter,ou=Group,dc=mann-schroeder,dc=ru
objectClass: posixGroup
objectClass: top
objectClass: extensibleObject
cn: cdwriter
gidNumber: 80
memberUid: sysadmin
memberUid: bochkarev

dn: cn=floppy,ou=Group,dc=mann-schroeder,dc=ru
objectClass: posixGroup
objectClass: top
objectClass: extensibleObject
cn: floppy
gidNumber: 71
memberUid: sysadmin
memberUid: bochkarev

dn: cn=proc,ou=Group,dc=mann-schroeder,dc=ru
objectClass: posixGroup
objectClass: top
objectClass: extensibleObject
cn: proc
gidNumber: 19
memberUid: sysadmin
memberUid: bochkarev

dn: cn=radio,ou=Group,dc=mann-schroeder,dc=ru
objectClass: posixGroup
objectClass: top
objectClass: extensibleObject
cn: radio
gidNumber: 83
memberUid: sysadmin
memberUid: bochkarev

dn: cn=scanner,ou=Group,dc=mann-schroeder,dc=ru
objectClass: posixGroup
objectClass: top
objectClass: extensibleObject
cn: scanner
gidNumber: 111
memberUid: sysadmin
memberUid: bochkarev

dn: cn=uucp,ou=Group,dc=mann-schroeder,dc=ru
objectClass: posixGroup
objectClass: top
objectClass: extensibleObject
cn: uucp
gidNumber: 14
memberUid: sysadmin
memberUid: bochkarev

dn: cn=wheel,ou=Group,dc=mann-schroeder,dc=ru
objectClass: posixGroup
objectClass: top
objectClass: extensibleObject
cn: wheel
gidNumber: 10

dn: cn=xgrp,ou=Group,dc=mann-schroeder,dc=ru
objectClass: posixGroup
objectClass: top
objectClass: extensibleObject
cn: xgrp
gidNumber: 112
memberUid: sysadmin
memberUid: bochkarev

dn: sambaDomainName=GATEWAY,dc=mann-schroeder,dc=ru
sambaDomainName: GATEWAY
sambaSID: S-1-5-21-3143478010-674134361-160815314
sambaAlgorithmicRidBase: 1000
objectClass: sambaDomain
sambaNextUserRid: 1000
sambaMinPwdLength: 5
sambaPwdHistoryLength: 0
sambaLogonToChgPwd: 0
sambaMaxPwdAge: -1
sambaMinPwdAge: 0
sambaLockoutDuration: 30
sambaLockoutObservationWindow: 30
sambaLockoutThreshold: 0
sambaForceLogoff: -1
sambaRefuseMachinePwdChange: 0

dn: cn=sysadmin,ou=Group,dc=mann-schroeder,dc=ru
objectClass: posixGroup
objectClass: top
objectClass: extensibleObject
cn: sysadmin
gidNumber: 5000

dn: uid=sysadmin,ou=People,dc=mann-schroeder,dc=ru
uid: sysadmin
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: sambaSamAccount
uidNumber: 5000
gidNumber: 5000
sambaAcctFlags: [U          ]
sambaSID: S-1-5-21-3143478010-674134361-160815314-11000
sambaPwdLastSet: 2147483647
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
sambaPwdMustChange: 0
sn: sysadmin
cn: sysadmin
homeDirectory: /home/sysadmin
loginShell: /bin/bash
mail: sysadmin@mann-schroeder.ru

dn: cn=bochkarev,ou=Group,dc=mann-schroeder,dc=ru
objectClass: posixGroup
objectClass: top
objectClass: extensibleObject
cn: bochkarev
gidNumber: 5001

dn: uid=bochkarev,ou=People,dc=mann-schroeder,dc=ru
uid: bochkarev
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: sambaSamAccount
uidNumber: 5001
gidNumber: 5001
sambaAcctFlags: [U          ]
sambaSID: S-1-5-21-3143478010-674134361-160815314-11002
sambaPwdLastSet: 2147483647
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
sambaPwdMustChange: 0
givenName:: 0JLQu9Cw0LTQuNGB0LvQsNCy
sn:: 0JHQvtGH0LrQsNGA0LXQsg==
cn:: 0JHQvtGH0LrQsNGA0LXQsiDQktC70LDQtNC40YHQu9Cw0LIg0K7RgNGM0LXQstC40Yc=
o:: 0J7QntCeICLQnNCw0L3QvSDQuCDQqNGA0ZHQtNC10YAg0KDRg9GB0YHQu9Cw0L3QtCI=
title:: 0YHQuNGB0YLQtdC80L3Ri9C5INCw0LTQvNC40L3QuNGB0YLRgNCw0YLQvtGA
telephoneNumber: 101
homeDirectory: /home/bochkarev
loginShell: /bin/bash
mail: bochkarev@mann-schroeder.ru
19 matches
[sysadmin@sysadmin ~]$

Конкуэрор при вводе строки ldap://172.16.0.1/dc=mann-schroeder,dc=ru
показал содержимое как положено, scr3.jpg
Также показывает по строке ldap://ldap.mann-schroeder.ru/dc=mann-schroeder,dc=ru

Вставляю это в Thunderbird, scr4.jpg

и получаю снова "ошибка репликации"  :(

« Последнее редактирование: 11.11.2010 19:42:55 от vladiboc »

Оффлайн bo4karev

  • Участник
  • *
  • Сообщений: 116
Ура! Получилось!

Раз ldap сервер подключается к машине клиента и в консоли и в браузере, значит проблема в Thunderbird
Попробовал подключить ldap-сервер в KaddressBook - получилось
Перенес те же настройки из KaddressBook в Thunderbird - ошибка репликации
Удалил эту ldap-адресную книгу из Thunderbird и создал другую, с тем же именем и теми же настройками.
И, о чудо и радость, "репликация выполнена", контакты видны

Уважаемые модераторы, добавьте пожалуйста смайлик с бубном   :)

Последний вопрос относительно Thunderbird.

Существует ли способ заставить Thunderbird показывать ldap-контакты сразу а не по нажатию
пробела в поле "Поиск" ?


« Последнее редактирование: 11.11.2010 19:44:09 от vladiboc »