Автор Тема: Обсуждение статьи "Установка Samba PDC + LDAP на Debian Squeeze"  (Прочитано 38805 раз)

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 433
    • Просмотр профиля
Оставляйте свои замечания и комментарии к статье Евгения Верещагина "Установка Samba PDC + LDAP на Debian Squeeze" (http://pro-ldap.ru/art/vereschagin/20110617/).
« Последнее редактирование: 23 Январь 2012, 14:20:57 от egor »

nuxster

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Доброго времени суток!
Руководствуясь данной статьей попробовал поднять у себя PDC, столкнулся со следующими проблемами:
1. при вводе команды net getlocalsid, получаю
[2012/02/21 00:12:21.660644,  0] lib/smbldap.c:1151(smbldap_connect_system)
  failed to bind to server ldap://127.0.0.1/ with dn="cn=admin,dc=domain.dc=loc" Error: Invalid credentials
  (unknown)
SID for domain PDC-SRV is: S-1-5-21-2948941063-695425324-3840074760

2. в логах самбы постоянно появляется сообщение
[2012/02/21 00:15:57.942851,  0] lib/smbldap.c:1151(smbldap_connect_system)
  failed to bind to server ldap://127.0.0.1/ with dn="cn=admin,dc=domain.dc=loc" Error: Invalid credentials
  (unknown)
[2012/02/21 00:15:57.949868,  1] lib/smbldap.c:1330(another_ldap_try)
  Connection to LDAP server failed for the 1 try!
[2012/02/21 00:15:58.961618,  1] lib/smbldap.c:1330(another_ldap_try)
  Connection to LDAP server failed for the 2 try!
[2012/02/21 00:15:59.967927,  1] lib/smbldap.c:1330(another_ldap_try)
  Connection to LDAP server failed for the 3 try!
[2012/02/21 00:16:00.975097,  1] lib/smbldap.c:1330(another_ldap_try)
  Connection to LDAP server failed for the 4 try!
[2012/02/21 00:16:01.980749,  1] lib/smbldap.c:1330(another_ldap_try)
  Connection to LDAP server failed for the 5 try!
[2012/02/21 00:16:02.985289,  1] lib/smbldap.c:1330(another_ldap_try)
  Connection to LDAP server failed for the 6 try!
[2012/02/21 00:16:03.996391,  1] lib/smbldap.c:1330(another_ldap_try)
  Connection to LDAP server failed for the 7 try!
[2012/02/21 00:16:05.008172,  1] lib/smbldap.c:1330(another_ldap_try)
  Connection to LDAP server failed for the 8 try!
[2012/02/21 00:16:06.019568,  1] lib/smbldap.c:1330(another_ldap_try)
  Connection to LDAP server failed for the 9 try!
[2012/02/21 00:16:07.024842,  1] lib/smbldap.c:1330(another_ldap_try)
  Connection to LDAP server failed for the 10 try!
[2012/02/21 00:16:08.029819,  1] lib/smbldap.c:1330(another_ldap_try)
  Connection to LDAP server failed for the 11 try!
[2012/02/21 00:16:09.045671,  1] lib/smbldap.c:1330(another_ldap_try)
  Connection to LDAP server failed for the 12 try!
[2012/02/21 00:16:10.052835,  1] lib/smbldap.c:1330(another_ldap_try)
  Connection to LDAP server failed for the 13 try!
[2012/02/21 00:16:11.058953,  1] lib/smbldap.c:1330(another_ldap_try)
  Connection to LDAP server failed for the 14 try!
[2012/02/21 00:16:12.065569,  1] lib/smbldap.c:1330(another_ldap_try)
  Connection to LDAP server failed for the 15 try!
[2012/02/21 00:16:13.088857,  1] lib/smbldap.c:1330(another_ldap_try)
  Connection to LDAP server failed for the 1 try!
...

3. в syslog
Feb 21 00:23:48 pdc-srv slapd[1446]: slapd starting
Feb 21 00:24:25 pdc-srv slapd[1446]: connection_read(13): no connection!
Feb 21 00:25:38 pdc-srv slapd[1446]: connection_read(13): no connection!

Сам slapd стартует без ошибок и пользователи в ldap заводятся баз проблем и войти в систему под пользователем из ldap-а тоже можно без проблем.
Вроде как пишут, что такая штука может возникать если забыть сделать smbpasswd -W, но я не забыл и несколько раз перепроверил все места где должен быть хеш пароля и где пароль в открытом виде.
Может есть у кого мысли по данному вопросу?
Спасибо!
« Последнее редактирование: 21 Февраль 2012, 00:24:15 от nuxster »

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 433
    • Просмотр профиля
Здравствуйте!
  failed to bind to server ldap://127.0.0.1/ with dn="cn=admin,dc=domain.dc=loc" Error: Invalid credentials
     (unknown)
Судя по строкам логов, Вы ошиблись в файле smb.conf, вместо
ldap admin dn = cn=admin,dc=domain.dc=locнужно написать
ldap admin dn = cn=admin,dc=domain,dc=locто есть точку заменить на запятую. Возможно, после этого придётся снова выполнить smbpasswd -W
Будьте внимательнее!

Егор

nuxster

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Да, действительно проблема была именно в этом!
Большое спасибо!
Теперь надо разобраться с kerberos.

nuxster

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Еще заметил такую штуку, включенная в домен XP при входе пользователя в систему ругается на невозможность скопировать серверную часть перемещаемого профиля. В конфиге самбы все, что касается перемещаемых профилей закоментированно.

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 433
    • Просмотр профиля
Здравствуйте!
Еще заметил такую штуку, включенная в домен XP при входе пользователя в систему ругается на невозможность скопировать серверную часть перемещаемого профиля. В конфиге самбы все, что касается перемещаемых профилей закоментированно.
Честно говоря, не сталкивался с необходимостью отключать перемещаемый профиль. По идее, в smb.conf нужно указать:
logon path = то есть не комментировать и не пропускать этот параметр, а именно указать его с пустым значением, поскольку значение по умолчанию у него не пустое. Посмотреть значение по умолчанию можно так:
testparm -s -v | grep 'logon path'Ещё нужно убедиться, что в LDAP-каталоге в записях пользователей не задан атрибут sambaProfilePath. Сделать это можно так:
ldapsearch -LLL -x -D 'cn=admin,dc=domain,dc=loc' -W -b 'dc=domain,dc=loc' 'sambaProfilePath=*'Если команда ничего не вернёт, значит путь к профилю у пользователей не задан, а если вернёт -- значит при логине будет попытка загружать профиль из этого самого пути. Соответственно, нужно удалить эти атрибуты.

Егор
« Последнее редактирование: 22 Февраль 2012, 13:14:38 от egor »

Вереск

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
1. Спасибо за разъяснения к моей же статье. На моём форуме ManualPages никто не пишет :-( Тока за статьями ходють и боты в коменты пишут.

2. Пробовал баловаться с опцией logon path =, и так и сяк - не помогает, зараза. Или грузит переносимый профиль, или орёт на его недоступность. Плюс ко всему, припоминаю что раньше (FreeBSD 4.x + Samba 2.x) чтоб не грузился переносимый профиль, вручную отключали и делали его локальным на каждой отдельной установке винды. Единственно что - про атрибуты не подумал, надо попробовать будет.

3. В данный момент статью о Samba PDC переписываю и расширяю: решил включить подготовку DNS\DHCP, попробовать настройку через cn=config и приделать SDC (для удалённог филиала). Если кому интересно поучаствовать в написании, ссыль тут: http://manualpages.pro/node/103

SnowAnger

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Проверим, подхватила ли система смену в nsswitch.conf:

# getent passwd
# getent group

А если не подхотила, а в syslog такая хрень

nslcd[1148]: [45e146] ldap_result() failed: No such object

как быть?! не могу ничего нарыть =((

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 433
    • Просмотр профиля
Здравствуйте! Если slapd ответил 'No such object' -- значит он работает, что уже неплохо =) . Поскольку вы используете демон nslcd, то скорее всего ошибка где-то в файле настроек /etc/nslcd.conf (в Debian он должен называться /etc/nss-ldapd.conf), посмотрите параметры base, scope и filter. Если не поможет, опубликуйте свои файлы /etc/nslcd.conf и /etc/nsswitch.conf (без строк-комментариев), попробуем разобраться.

Да, чуть не забыл: почитайте http://arthurdejong.org/nss-pam-ldapd/setup и http://arthurdejong.org/nss-pam-ldapd/nslcd.conf.5.

Егор
« Последнее редактирование: 01 Ноябрь 2012, 02:23:40 от egor »

SnowAnger

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
ну в принципе я это победил,

теперь вот что не могу войти в домен

root@pdcserver:/var/log# net rpc join
Enter root's password:
Creation of workstation account failed
Unable to join domain

То же самое с винды
Хотя в системе нет машин с таким именем совсем так как это вапще первый вход

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 433
    • Просмотр профиля
Здравствуйте! Для диагностики проблемы маловато информации -- хотелось бы увидеть, что при попытке ввода машины в домен сыпется в лог samba (log level в smb.conf должен быть как минимум 3).
В статье Верещагина в smb.conf на добавление машины прописан скрипт smbldap-useradd -w %u, теоретически машина должна прописываться автоматически, посмотрите, добавилась ли её учётка:
# pdbedit -L | grep '[$]'
Если нет, попробуйте добавить её руками, посмотреть на что ругается скрипт:
# smbldap-useradd -w alex-eth
Наконец, применили ли Вы reg-файл, который описан в статье Верещагина к своей Win 7 (Win Server 2008)? Кстати с семёркой может работать только samba 3.2.12, более ранние версии не будут работать.

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

Егор

SnowAnger

  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
root@pdcserver:/var/log/samba# cat log.alex-eth
[2012/11/01 10:04:51.119698,  0] lib/util_sock.c:474(read_fd_with_timeout)
[2012/11/01 10:04:51.119963,  0] lib/util_sock.c:1441(get_peer_addr_internal)
  getpeername failed. Error was Конечная точка передачи не подсоединена
  read_fd_with_timeout: client 0.0.0.0 read error = Соединение сброшено другой стороной.
[2012/11/01 10:05:04.510772,  0] lib/util_sock.c:474(read_fd_with_timeout)
[2012/11/01 10:05:04.511018,  0] lib/util_sock.c:1441(get_peer_addr_internal)
  getpeername failed. Error was Конечная точка передачи не подсоединена
  read_fd_with_timeout: client 0.0.0.0 read error = Соединение сброшено другой стороной.
[2012/11/01 10:06:04.509063,  0] lib/util_sock.c:474(read_fd_with_timeout)
[2012/11/01 10:06:04.509317,  0] lib/util_sock.c:1441(get_peer_addr_internal)
  getpeername failed. Error was Конечная точка передачи не подсоединена
  read_fd_with_timeout: client 0.0.0.0 read error = Соединение сброшено другой стороной.
[2012/11/01 10:40:22.475426,  0] lib/util_sock.c:474(read_fd_with_timeout)
[2012/11/01 10:40:22.475579,  0] lib/util_sock.c:1441(get_peer_addr_internal)
  getpeername failed. Error was Конечная точка передачи не подсоединена
  read_fd_with_timeout: client 0.0.0.0 read error = Соединение сброшено другой стороной.
[2012/11/01 11:59:21.360927,  0] lib/util_sock.c:474(read_fd_with_timeout)
[2012/11/01 11:59:21.369916,  0] lib/util_sock.c:1441(get_peer_addr_internal)
  getpeername failed. Error was Конечная точка передачи не подсоединена
  read_fd_with_timeout: client 0.0.0.0 read error = Соединение сброшено другой стороной.
[2012/11/01 12:01:51.358343,  0] lib/util_sock.c:474(read_fd_with_timeout)
[2012/11/01 12:01:51.358604,  0] lib/util_sock.c:1441(get_peer_addr_internal)
  getpeername failed. Error was Конечная точка передачи не подсоединена
  read_fd_with_timeout: client 0.0.0.0 read error = Соединение сброшено другой стороной.
[2012/11/01 12:04:13.193950,  0] lib/util_sock.c:474(read_fd_with_timeout)
[2012/11/01 12:04:13.195516,  0] lib/util_sock.c:1441(get_peer_addr_internal)
  getpeername failed. Error was Transport endpoint is not connected
  read_fd_with_timeout: client 0.0.0.0 read error = Connection reset by peer.
[2012/11/01 12:07:19.191974,  0] lib/util_sock.c:474(read_fd_with_timeout)
[2012/11/01 12:07:19.192246,  0] lib/util_sock.c:1441(get_peer_addr_internal)
  getpeername failed. Error was Конечная точка передачи не подсоединена
  read_fd_with_timeout: client 0.0.0.0 read error = Соединение сброшено другой стороной.
[2012/11/01 12:12:01.188164,  0] lib/util_sock.c:474(read_fd_with_timeout)
[2012/11/01 12:12:01.188430,  0] lib/util_sock.c:1441(get_peer_addr_internal)
  getpeername failed. Error was Конечная точка передачи не подсоединена
  read_fd_with_timeout: client 0.0.0.0 read error = Соединение сброшено другой стороной.
[2012/11/01 12:13:01.187797,  0] lib/util_sock.c:474(read_fd_with_timeout)
[2012/11/01 12:13:01.188023,  0] lib/util_sock.c:1441(get_peer_addr_internal)
  getpeername failed. Error was Конечная точка передачи не подсоединена
  read_fd_with_timeout: client 0.0.0.0 read error = Соединение сброшено другой стороной.
[2012/11/01 12:52:24.493330,  0] lib/util_sock.c:474(read_fd_with_timeout)
[2012/11/01 12:52:24.493575,  0] lib/util_sock.c:1441(get_peer_addr_internal)
  getpeername failed. Error was Конечная точка передачи не подсоединена
  read_fd_with_timeout: client 0.0.0.0 read error = Соединение сброшено другой стороной.

то не то ! рег фаил выполнил

руками когда выполняешь  smbldap-useradd -w alex-eth ругани не какой нет, но при этом ничего и не заводится
хотя юзеры заводятся все ок
сам сервер PDC в домен тоже ввел
root@pdcserver:/var/log/samba# pdbedit -L | grep '[$]'
pdcserver$:1001:Computer

Samba version 3.5.6


еще есть вот такое в syslog

Nov  1 12:32:12 pdcserver slapd[1015]: SASL [conn=1034] Failure: realm changed: authentication aborted
Nov  1 12:32:13 pdcserver slapd[1015]: SASL [conn=1035] Failure: realm changed: authentication aborted
Nov  1 12:52:10 pdcserver slapd[1015]: SASL [conn=1042] Failure: realm changed: authentication aborted
Nov  1 12:52:10 pdcserver slapd[1015]: SASL [conn=1043] Failure: realm changed: authentication aborted
« Последнее редактирование: 01 Ноябрь 2012, 11:11:41 от SnowAnger »

egor

  • Администратор
  • Старожил
  • *****
  • Сообщений: 433
    • Просмотр профиля
Здравствуйте! Я тут поковырялся чуть-чуть в интернете и выяснил, что скрипт smbldap-useradd с аргументом -w создаёт LDAP-запись trusted account машины без объектного класса sambaSAMAccount и соответствующих атрибутов, а при вводе мащины в домен samba должна сама дописывать в эту запись то, что ей требуется. Но, как видно, так происходит не всегда =), вообще поведение samba от версии к версии меняется, поэтому предсказать, какие из старых возможностей будут работать в новой версии проблематично =). Ну да ладно.

Есть хорошая новость -- в  smbldap-tools версии 0.9.8 и выше в скрипте smbldap-useradd появился аргумент -W, который добавляет sambaSAMAccount с нужными атрибутами сразу при создании записи, поэтому вход машины в домен должен происходить нормально. Если у Вас более ранняя версия, нужно обновиться.

Сначала удалите запись из каталога:
# smbldap-userdel alex-eth$
Затем добавьте её:
# smbldap-useradd -W "alex-eth$"
Проверим:
pdbedit -L | grep '[$]'
alex-eth$:0123456789:alex-eth$

Ну и подправьте smb.conf:
add machine script = /usr/sbin/smbldap-useradd -W %u
По интеграции семёрки с samba можно почитать тут: http://wiki.samba.org/index.php/Windows7

Егор.