Samba Domain :: проблема ввода WinXP

Настройка сетевых служб, маршрутизации, фаерволлов. Проблемы с сетевым оборудованием.
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
paulzey_
проходил мимо

Samba Domain :: проблема ввода WinXP

Непрочитанное сообщение paulzey_ » 2007-03-29 15:09:39

Здравствуйте.

Preface.
Мне очень понравились статьи на этом сайте и комьюнити в форуме, поэтому я задаю свой вопрос здесь. В целом, единственные вменяемые и доходчивые статьи были обнаружены только тут.

Synopsis.
Занимаюсь созданием Samba PDC. С третьей попытки, путём микширования различных описаний + "Samba-3 by Example" + "The Official Samba-3 HOWTO and Reference Guide" удалось запустить сервер (samba + ldap).
В заключительной фазе машина [Windows 2002 Service Pack 2 2600] не может войти в домен.

Description.
На данном этапе выдаётся ошибка "Именам пользователей не сопоставлены коды защиты данных". Помощь Google по данному вопросу ничтожна. В основном, это kb324383 [Устранение неполадок, которые приводят к регистрации событий с кодом 1202 (SCECLI)], что помогает мало.

Пользователь успешно находится в ldap (смена логина/пароля выдаёт ошибку), прав у пользователя хватает (запуск от пользователя guest - "не хватает доступа").
Расшаренные ресурсы подключаются нормально, со всеми правами.

В логах samba видно, что:
- ldap доступен;
- netbios имена разрешаются;
- пользователь существует и может производить такую операцию.

По мнению microsoft, проблема в групповых политиках.
В интернете удалось выцепить, что проблема возможна, если у DC не совпадают DNS и netbios имена. Попытка устранения ни к чему не привела.

В каком направлении стоит продолжить поиск? Может быть есть какие-либо специализированные ресурсы?

Спасибо за внимание.

На всякий случай выкладываю сокращённую (без комментариев) текущую версию smb.conf:

Код: Выделить всё

# Global parameters
[global]
        dos charset = cp866
        unix charset = cp-1251
        display charset = cp-1251
        workgroup = MARM.CWT
        server string = Our Server
        interfaces = 192.168.0.2/255.255.255.0
        password server = 192.168.0.2:389
        passdb backend = ldapsam:ldap://192.168.0.2/
        passwd program = /bin/passwd %u
        log level = 3 passdb:5 auth:10 winbind:2
        log file = /var/log/samba/log.%m
        max log size = 500
        name resolve order = hosts lmhosts wins bcast
        time server = Yes
        load printers = No
        add machine script = /home/samba/add_machine.pl %m
        logon script = /home/samba/proxy.vbs
        logon path = \\%L\Profiles\%U\%m\%a
        logon drive = S:
        logon home = \\%L\Profiles\%U\%m\%a
        domain logons = Yes
        os level = 255
        preferred master = Yes
        domain master = Yes
        dns proxy = No
        wins support = Yes
        ldap admin dn = "cn=root,o=smb,dc=marm,dc=cwt"
        ldap group suffix = ou=groups
        ldap machine suffix = ou=computers
        ldap suffix = o=smb,dc=marm,dc=cwt
        ldap ssl = no
        ldap user suffix = ou=users
        idmap uid = 16777216-33554431
        idmap gid = 16777216-33554431
        winbind use default domain = Yes
        admin users = admin
        hosts allow = 192.168.0., 127.

[IPC$]
        path = /tmp
        hosts allow = 192.168.0.0/24, 127.0.0.1

[homes]
        comment = Home Directories
        read only = No
        browseable = No

[netlogon]
        comment = Network Logon Service
        path = /home/samba/netlogon/
        guest ok = Yes
        browseable = No
        share modes = No

[Profiles]
        path = /home/samba
        path = /home/samba
        create mask = 0600
        directory mask = 0700
        guest ok = Yes
        browseable = No

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35056
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-03-29 16:43:14

в микрософт домене такое было когда были удалены полльзователи а вот права на какие-то оснастки у них остались....
========
так нужен ldap?
у меня на системных узерах 2003 со свисом втыкалась в домен...
Убей их всех! Бог потом рассортирует...

paulzey
проходил мимо
Сообщения: 9
Зарегистрирован: 2007-04-02 10:49:12

Непрочитанное сообщение paulzey » 2007-04-02 11:12:53

Последовал совету, и чисто из любопытства попробовал поднять samba без ldap, на системных учётках. Что очень удивительно - всё заработало само и сразу. Без каких-либо доводок.

Сейчас буду diff-ать smb.conf. Если накопаю что-нибудь интересное - обязательно скажу.

Кстати, столкнулся с парой странностей.
Первая - useradd не хочет создавать учётку для машины (вида "machine$"), мотивируя тем, что символ '$' в имени недопустим. Интересно, это особенность моей машины, моих рук, или просто другая версия? (Сам я, если честно, на ASPLinux). Излечилось это просто и банально - ручной правкой /etc/passwd.

Вторая - явный косяк с моей стороны. Очень-очень долго (более получаса убил) на выяснение, почему команда
[root@videoserv ~]# net groupmap add ntgroup="Domain Admins" unixgroup=computers type=d rid=512
выдаёт
"adding entry for group Domain Admins failed!"
Оказывается, головой иногда полезно думать, и man'ы читать тоже. Почему-то у меня на момент настройки уже были записи вида
Domain Admins (S-1-5-21-399905029-2402145102-1584260459-512) -> -1
и после замены add на modify всё прошло успешно.. Вот до чего доводит пятничный вечер при больной голове.

Кстати, совсем нигде нет собранных ошибок (с возможными вариантами решения) о том, почему не запускается ldap, samba не соединяется с ним, windows не входит в samba-domain и пр. Информация всплывает изредка, в рассылках или на каких-то форумах.. Я думаю, что соответствующая статья поправила бы положение. Если буду жив и не сильно занят, соберу все свои траблы в одну кучку, попытаюсь структурировать. Может быть, кому-нибудь ещё пригодится. :)
Configure complete, now type 'make' and pray.

Аватара пользователя
serge
майор
Сообщения: 2131
Зарегистрирован: 2006-07-30 15:34:14
Откуда: Саратов
Контактная информация:

Непрочитанное сообщение serge » 2007-04-02 22:30:31

:) Молодца! Умение читать в нужный момент нужный ман не всем дается)))

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35056
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-04-03 12:49:11

учётки машин добавляются сами при ввведении их в домен.
Убей их всех! Бог потом рассортирует...

paulzey
проходил мимо
Сообщения: 9
Зарегистрирован: 2007-04-02 10:49:12

Непрочитанное сообщение paulzey » 2007-04-03 17:04:16

Сами-то они добавляются.. Только вот команда useradd (которая есмь сердце скрипта добавления) не хочет работать с такими именами.

В скрипте стоит:

Код: Выделить всё

/usr/sbin/useradd $1 -d /home/samba/profiles/computers -s /sbin/nologin -m -g computers -c $1 >> /tmp/`basename $0`.log
Которая разворачивается до:

Код: Выделить всё

/usr/sbin/useradd user$ -d /home/samba/profiles/computers -s /sbin/nologin -m -g computers -c user1$
При этом, команда отказывается выполняться, мотивируя:

Код: Выделить всё

useradd: invalid user name 'user$'
Это не так страшно, поскольку всегда можно сделать

Код: Выделить всё

echo "user$:x:504:502:guest:/home/samba/profiles/computers:/sbin/nologin" >> /etc/passwd
Теперь о главном, ради чего всё затевалось. :)
Отчасти ребята из microsoft были правы - действительно коды защиты (как я предполагаю, под этим локализаторы имели ввиду "security identifiers" == SIDs) были несопоставимы. До ужаса обидно, что причина была банальна - в одном месте был случайно добавлен старым отладочным скриптом (он ещё не умел делать net getlocalsid) SID машины (в ldap-записи), который отличался от всех остальных параметрами X, Y, Z (S-1-5-21-X-Y-Z-RID). |:] |:] |:]
/* На этом месте /me начал бить себя по голове, говоря при этом что-то про её квадратность */
Судя по всему, windows этот факт переварить не смогла, потому и ругалась.

Всем спасибо за внимание. :)

Обязательно постараюсь свести все свои ошибки в таблицу и привести на общее рассмотрение. :)
Configure complete, now type 'make' and pray.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35056
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-04-03 19:52:49

вообще-то те скрипты, что выложены у меня нормально работают...
и машина сама заводится.
Убей их всех! Бог потом рассортирует...

paulzey
проходил мимо
Сообщения: 9
Зарегистрирован: 2007-04-02 10:49:12

Непрочитанное сообщение paulzey » 2007-04-04 10:54:00

# offtopic mode on
lissyara писал(а):вообще-то те скрипты, что выложены у меня нормально работают...
Я ни в коей мере не критикую и не обвиняю. :)

Коли дистриб кривой - неча на документацию ругаться.

Код: Выделить всё

[root@cwtserver ~]# uname -a
Linux cwtserver 2.6.9-1.667asp #1 Fri Nov 12 22:29:40 EET 2004 i686 athlon i386 GNU/Linux
И там, увы, есть ограничение на имя пользователя.
Ради вящего интереса поискал исходники shadow (4.0.3) [шли с дистрибутивом].
В исходнике useradd.c упоминалась функция check_user_name(), в которой вызывалась good_name(). На первый взгляд, там есть строчка

Код: Выделить всё

(*name == '$' && *(name+1) == NULL)))
позволяющая включать знак '$' в конец имени.. Но не всё так просто.
Добрые люди вдобавок положили патч с примерно таким содержимым:

Код: Выделить всё

-               if (!((*name >= 'a' && *name <= 'z') ||
-                   (*name >= '0' && *name <= '9') ||
-                   *name == '_' || *name == '-' ||
-                   (*name == '$' && *(name+1) == NULL)))
+               if (!(  (*name >= 'a' && *name <= 'z')
+                    || (*name >= 'A' && *name <= 'Z')
+                    || (*name >= '0' && *name <= '9')
+                    || *name == '_' || *name == '.' || *name == '-'))
Точка теперь - легальный символ, а знак доллара - нет.
Обидно. Особенно стоит учесть то, что всё ставили из бинарников, а там вариант с применённым патчем.
# offtopic mode off
Configure complete, now type 'make' and pray.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35056
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Непрочитанное сообщение Alex Keda » 2007-04-04 12:07:33

дык - поставь правильный дистриб %)
Убей их всех! Бог потом рассортирует...