Сделать стартовойДобавить в закладки  
Главная страничка Главная страничка
В номере:

Выходит с 17 июля 2008 г. цена договорная

Опрос

Windows Mobile
Symbian
Android
iPhone
Linux
другая
не знаю
у меня обычный телефон



Календарь
«    Май 2009    »
ПнВтСрЧтПтСбВс
 123
45678910
11121314151617
18192021222324
25262728293031

Архив новостей
Июнь 2020 (3)
Май 2020 (1)
Март 2020 (1)
Сентябрь 2019 (1)
Август 2019 (2)
Июль 2019 (2)

Информация
Контроллер домена (PDC) на samba+openLDAP
OS, мобильные OS » Linux
автор: dimon, опубликовано: 18 мая 2009

Черновик! Не все операции завершены и описаны


Задача: Перенастроить контроллер домена (PDC) на sambe на использование openLDAP + samba
Серверная ОС – CentOS 5.2
Рабочие станции комплектуются ОС MS Windows XP.

Сервер имеет два сетевых интерфейса:
внешний: eth0 xxx.xxx.xxx.xxx
внутренний: eth1 192.168.1.1/255.255.255.0

1. Устанавливаем yum install openldap-servers openldap-clients gcc nss_ldap

2. Копируем схемы самбы в openldap:
[root@dsrv]# cp /usr/share/doc/samba-3.0.28/LDAP/samba.schema /etc/openldap/schema/samba.schema


3. Копируем smbldap-tools
[root@dsrv]# cp /usr/share/doc/samba-3.0.28/LDAP/smbldap-tools-0.9.2 /etc/smbldap-tools


Если их там нет, то лезем на сайт https://gna.org/projects/smbldap-tools/ и качаем нужную нам версию:

[root@dsrv install]# wget http://download.gna.org/smbldap-tools/packages/smbldap
-tools-0.9.5.tgz
--15:41:20-- http://download.gna.org/smbldap-tools/packages/smbldap-tools-0.9.5
.tgz
Resolving download.gna.org... 78.40.121.79
Connecting to download.gna.org|78.40.121.79|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 303131 (296K) [application/x-tar]
Saving to: `smbldap-tools-0.9.5.tgz'

100%[=======================================>] 303,131 4.22K/s in 38s

15:41:59 (7.70 KB/s) - `smbldap-tools-0.9.5.tgz' saved [303131/303131]

[root@dsrv install]#
[root@dsrv install]# tar zxvf smbldap-tools-0.9.5.tgz
smbldap-tools-0.9.5/
smbldap-tools-0.9.5/ChangeLog
smbldap-tools-0.9.5/smbldap-passwd
smbldap-tools-0.9.5/TODO
smbldap-tools-0.9.5/smbldap-groupadd
smbldap-tools-0.9.5/smbldap-tools.spec
smbldap-tools-0.9.5/smbldap.conf
smbldap-tools-0.9.5/smbldap-populate
smbldap-tools-0.9.5/INFRA
smbldap-tools-0.9.5/smbldap-userinfo
smbldap-tools-0.9.5/smbldap-usershow
smbldap-tools-0.9.5/README
smbldap-tools-0.9.5/smbldap-useradd
smbldap-tools-0.9.5/FILES
smbldap-tools-0.9.5/doc/
smbldap-tools-0.9.5/doc/smb.conf
smbldap-tools-0.9.5/doc/slapd.conf
smbldap-tools-0.9.5/doc/smbldap-tools.html
smbldap-tools-0.9.5/doc/migration_scripts/
smbldap-tools-0.9.5/doc/migration_scripts/smbldap-migrate-pwdump-accounts
smbldap-tools-0.9.5/doc/migration_scripts/smbldap-migrate-unix-groups
smbldap-tools-0.9.5/doc/migration_scripts/smbldap-migrate-pwdump-groups
smbldap-tools-0.9.5/doc/migration_scripts/smbldap-migrate-unix-accounts
smbldap-tools-0.9.5/doc/smbldap-tools.pdf
smbldap-tools-0.9.5/smbldap-userlist
smbldap-tools-0.9.5/smbldap_bind.conf
smbldap-tools-0.9.5/smbldap_tools.pm
smbldap-tools-0.9.5/COPYING
smbldap-tools-0.9.5/smbldap-groupdel
smbldap-tools-0.9.5/smbldap-groupshow
smbldap-tools-0.9.5/Makefile
smbldap-tools-0.9.5/smbldap-userdel
smbldap-tools-0.9.5/INSTALL
smbldap-tools-0.9.5/smbldap-usermod
smbldap-tools-0.9.5/configure.pl
smbldap-tools-0.9.5/CONTRIBUTORS
smbldap-tools-0.9.5/smbldap-groupmod
[root@dsrv install]#


Даем права на исполнение скриптам (если их нету):

[root@dsrv smbldap-tools]# ll
total 224
-rw-r--r-- 1 root root 428 Jan 3 2006 smbldap_bind.conf
-rw-r--r-- 1 root root 7785 Jan 3 2006 smbldap.conf
-rw-r--r-- 1 root root 5987 Jan 3 2006 smbldap-groupadd
-rw-r--r-- 1 root root 2473 Jan 3 2006 smbldap-groupdel
-rw-r--r-- 1 root root 8881 Jan 3 2006 smbldap-groupmod
-rw-r--r-- 1 root root 2005 Jan 3 2006 smbldap-groupshow
-rw-r--r-- 1 root root 10294 Jan 3 2006 smbldap-passwd
-rw-r--r-- 1 root root 14995 Jan 3 2006 smbldap-populate
-rw-r--r-- 1 root root 28729 Jan 3 2006 smbldap_tools.pm
-rw-r--r-- 1 root root 3988 Jan 3 2006 smbldap-tools.spec
-rw-r--r-- 1 root root 20969 Jan 3 2006 smbldap-useradd
-rw-r--r-- 1 root root 3244 Jan 3 2006 smbldap-userdel
-rw-r--r-- 1 root root 7633 Jan 3 2006 smbldap-userinfo
-rw-r--r-- 1 root root 18968 Jan 3 2006 smbldap-usermod
-rw-r--r-- 1 root root 1958 Jan 3 2006 smbldap-usershow
[root@dsrv smbldap-tools]# chmod u+x smbldap-*
[root@dsrv smbldap-tools]# ll
total 224
-rw-r--r-- 1 root root 428 Jan 3 2006 smbldap_bind.conf
-rw-r--r-- 1 root root 7785 Jan 3 2006 smbldap.conf
-rwxr--r-- 1 root root 5987 Jan 3 2006 smbldap-groupadd
-rwxr--r-- 1 root root 2473 Jan 3 2006 smbldap-groupdel
-rwxr--r-- 1 root root 8881 Jan 3 2006 smbldap-groupmod
-rwxr--r-- 1 root root 2005 Jan 3 2006 smbldap-groupshow
-rwxr--r-- 1 root root 10294 Jan 3 2006 smbldap-passwd
-rwxr--r-- 1 root root 14995 Jan 3 2006 smbldap-populate
-rw-r--r-- 1 root root 28729 Jan 3 2006 smbldap_tools.pm
-rwxr--r-- 1 root root 3988 Jan 3 2006 smbldap-tools.spec
-rwxr--r-- 1 root root 20969 Jan 3 2006 smbldap-useradd
-rwxr--r-- 1 root root 3244 Jan 3 2006 smbldap-userdel
-rwxr--r-- 1 root root 7633 Jan 3 2006 smbldap-userinfo
-rwxr--r-- 1 root root 18968 Jan 3 2006 smbldap-usermod
-rwxr--r-- 1 root root 1958 Jan 3 2006 smbldap-usershow


4. Правим /etc/openldap/slapd.conf
Добавляем строки (подключаем файлы схем):

include /etc/openldap/schema/samba.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/openldap.schema


ищем строку access to attrs и приводим блок к виду (при необходимости добавляем):
access to attrs=userPassword
by self write
by dn = "uid=root,dc=sclad,dc=lan" write
by anonymous auth
by * none

таким образом, определим доступ к атрибуту пароль пользователя. Сам пользователь имеет право записи, анонимному пользователю предоставляется возможность пройти аутентификацию (после этого он представляет уже другой объект и доступа к паролям анонимного пользователя не происходит, как можно было бы подумать) а пользователь с контекстом "uid=root,dc=sclad,dc=lan" имеет право на запись. Другие же пользователи доступа к паролю не имеют никакого. Т.е. другими словами никто, кроме администратора и самого пользователя не имеют доступа к паролю.

добавляем блок:
access to *
by self write
by dn="uid=root,dc=spec,dc=lan" write
by anonymous auth
by * none

доступ к остальным полям базы LDAP – сам пользователь может читать атрибуты, а пользователь с контекстом root может писать всё что угодно, а анонимному пользователю предоставляется возможность пройти аутентификацию, остальные ничего не могут.

с помощью проги slappasswd генерим пароль root
и исправляем строки:

database bdb
suffix "dc=sclad,dc=lan"
rootdn "cn=root,dc=sclad,dc=lan"
rootpw {SSHA}Sm…MSm

здесь
database - тип базы данных
suffix - основной суффикс БД (к этому я вернусь немного ниже)
rootdn – описание объекта root
rootpw - это поле содержит пароль администратора объекта root (то есть всей БД LDAP), используем в зашифрованном виде – сгенерированный slappasswd

добавляем строки:
index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq

Таким образом, мы определяем первичные и вторичные индексы БД, что может ускорить поиск по БД

loglevel 256

Этот ключ устанавливает slapd уровень отладки.

Текущие уровни отладки:
-1 включает всю отладочную информацию
0 без отладки
1 трассировать вызовы функций
2 отладка обработки пакетов
4 тщательная отладочная трассировка
8 управление соединением
16 печать принятых и отправленных пакетов
32 обработка фильтров поиска
64 обработка конфигурационного файла
128 обработка списка контроля доступа
256 регистрировать статистику соединения/обработки/результатов
512 регистрировать статистику отправленных элементов
1024 печать коммуникаций с shell механизмом базы данных
2048 печать отладки анализа элемента

Для того чтобы увидеть логи ЛДАП-а мы так же должны добавить в файл /etc/syslog.conf следующее:

# логи LDAP-сервера:
local4.* /var/log/ldap.log


5. Копируем параметры базы LDAP
сp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG


Назначаем права на папку
chown -R ldap:ldap /var/lib/ldap


После того как вы настроили OpenLDAP, запустите его командой и посмотрим, слушает ли он порты:

[root@dsrv openldap]# service ldap start
Checking configuration files for slapd: config file testing succeeded
[ OK ]
Starting slapd: [ OK ]
[root@dsrv openldap]# netstat -nap | grep slapd
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 9985/slapd
tcp 0 0 :::389 :::* LISTEN 9985/slapd
unix 2 [ ] DGRAM 27715 9985/slapd


6. Правим /etc/ldap.conf, исправляя строки:
# Сервер LDAP - ip адрес сервера или его
# имя, находящееся в /etc/hosts, или в DNS на удалённом узле
host 127.0.0.1

# Основной суфикс, должен совпадать с суфиксом в slapd.conf
base dc=sclad,dc=lan

# Версия протокола
ldap_version 3

# Это root и его пароль
rootbinddn cn=root,dc=sclad,dc=lan
rootpw {SSHA}Sm…MSm

# Порт, на котором работает LDAP
port 389

# Область поиска
scope one

# Время ожидпния при поиске
timelimit 30

# Timeout подключения к LDAP серверу
bind_timelimit 10

# Если не удалось подключиться к LDAP,
# То не пытаться переподключиться
bind_policy soft

# nss_ldap закроет подключение, если сервер
# не ответит в указонное в idle_timelimit время
idle_timelimit 3600

nss_initgroups_ignoreusers root,ldap,named,avahi,haldaemon,dbus,radvd,tomcat,radiusd,news,mailman

# Базовые dn для поиска различных объектов, one - это область поиска.
# Данные параметры используются nss.
nss_base_passwd ou=Users,dc=sclad,dc=lan?one
nss_base_passwd ou=Computers,dc=sclad,dc=lan?one
nss_base_shadow ou=Users,dc=sclad,dc=lan?one
nss_base_group ou=Group,dc=sclad,dc=lan?one

# persist -- не отключаться от LDAP сервера
# oneshot -- отключаться после каждого запроса
#nss_connect_policy persist


7. Копируем ldap.conf или делаем ссылку
[root@dsrv]# cp /etc/ldap.conf /etc/openldap/ldap.conf


8. Создаем файл /etc/ldap.secret и в него пишем пароль в открытом виде, задаем права на файл:

[root@dsrv etc]# touch ldap.secret
[root@dsrv etc]# chmod 600 ldap.secret
[root@dsrv etc]# echo "very_secret_passwort" >> ldap.secret
[root@dsrv etc]# ll | grep ldap.secret
-rw------- 1 root root 9 Mar 20 17:21 ldap.secret


Причем very_secret_passwort – это тот же пароль, который генерили в 6 пункте (в конце пароля должен стоять символ возврата каретки). Права на файл все же лучше выставить такие - root:root 400.

9. Заполняем базу:

Теперь нужно создать корневой объект нашего дерева. Создадим файл base.ldif с таким содержанием:
dn: dc=sclad,dc=ru
objectClass: dcObject
objectClass: organization
objectClass: top
dc:sclad
o:sclad


Теперь добавим эту запись в ldap:
[root@dsrv openldap]# ldapadd -x -D "cn=root,dc=sclad,dc=lan" -W -f base.ldif
Enter LDAP Password:
adding new entry "dc=sclad,dc=lan"

[root@dsrv openldap]#


Параметры запуска:
-x : не использовать sasl
-D "dn" : под каким пользователем подключаться
-W : запросить ввод пароля
-w : указать пароль в командной строке
-f file : имя файла из которого брать информацию о добавляемом объекте.

Далее для работы с samba требуется поместить в ldap следующую древовидную схему:

dn: dc=sclad,dc=lan
|
+-dn: ou=Users,dc= sclad,dc=lan
|
+-dn: ou=Groups,dc= sclad,dc=lan
|
+-dn: ou=Computers,dc= sclad,dc=lan

Т.е. внутри главного контейнера dc=sclad,dc=lan создаются ещё три: Users - для хранения пользовательских аккаунтов, Group - группы, Computers - аккаунты компьютеров в домене.

Получаем следующий ldif-файл newentry.ldif:

dn: ou=Users,dc=sclad,dc=lan
objectClass: organizationalUnit
ou: Users

dn: ou=Groups,dc=sclad,dc=lan
objectClass: organizationalUnit
ou: Groups

dn: ou=Computers,dc=sclad,dc=lan
objectClass: organizationalUnit
ou: Computers

dn: ou=Idmap,dc=sclad,dc=lan
objectClass: organizationalUnit
ou: Idmap


Хочу обратить внимание, что между блоками описания различных объектов дерева необходима пустая строка, чтобы утилита ldapadd корректно их разделяла.

Добавим записи в ldap:
[root@dsrv openldap]# ldapadd -x -D "cn=root,dc=sclad,dc=lan" -W -f newentry.ldif
Enter LDAP Password:
adding new entry "ou=Users,dc=sclad,dc=lan"

adding new entry "ou=Groups,dc=sclad,dc=lan"

adding new entry "ou=Computers,dc=sclad,dc=lan"

adding new entry "ou=Idmap,dc=sclad,dc=lan"

[root@dsrv openldap]#


На этом этапе уже можно подключиться к лдап-серверу и посмотреть, что же мы имеем.
Я использовал утилиту LDAP Admin:
Контроллер домена (PDC) на samba+openLDAP


Описание настройки LDAP Admin:

10. Включаем авторизацию по лдап authconfig --enableldap --update
Проверяем в /etc/nsswitch.conf:

passwd: files ldap
shadow: files ldap
group: files ldap


11. После того как мы настроим samba на работу с лдап-ом нам нужно будет изменить SID root-a в ldap-е на такой же какой у нас был в sambe. Поэтому посмотрим и запишем SID root-a в samba в файл sid_root_smb:

[root@dsrv samba]# pdbedit -Lw root -v
Unix username: root
NT username:
Account Flags: [U ]
User SID: S-1-5-21-2564309360-712306396-2862245629-1000
Primary Group SID: S-1-5-21-2564309360-712306396-2862245629-513
Full Name: root
Home Directory: scladroot
HomeDir Drive:
Logon Script: logon.bat
Profile Path:
Domain: SCLAD
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: never
Kickoff time: never
Password last set: Tue, 14 Apr 2009 12:22:58 MSD
Password can change: Tue, 14 Apr 2009 12:22:58 MSD
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[root@dsrv samba]# pdbedit -Lw root -v > sid_root_smb


12. Правим /etc/samba/smb.conf
конфиг исходный – см в статье в него добавляем строки:

# Поддержка wins
wins support = Yes
# Используем dns proxy
dns proxy = Yes

# Сетевые параметры
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=4096 SO_RCVBUF=4096
# Синхронизировать время с доменом
# time server = Yes

####### Параметры LDAP #######

# Пароли храним в LDAP
passdb backend = ldapsam:ldap://127.0.0.1/
# Определяем админовский dn. Пароль к нему должен добавляться
# непосредственно smbpasswd -w. После смены dn админа пароль тоже надо
# сменить
ldap admin dn = cn=root,dc=sclad,dc=lan
# Определяем суффикс базы данных ldap
ldap suffix = dc=sclad,dc=lan
# Группы в контейнере ou=groups
ldap group suffix = ou=Groups
# Пользователи храняться в контейнере ou=users
ldap user suffix = ou=Users
# Контейнер для машин пользователей
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Idmap
# Запрещаем удалять объекты
ldap delete dn = No
# Отключаем поддержку SSL
#ldap ssl = off

# скрипты для добавления юзеров и групп (юзается в usermgr от nt4)
add user script = /etc/smbldap-tools/smbldap-useradd -m "%u"
add machine script = /etc/smbldap-tools/smbldap-useradd -t 0 -w "%u"
add group script = /etc/smbldap-tools/smbldap-groupadd -p "%g"
add user to group script = /etc/smbldap-tools/smbldap-groupmod -m "%u" "%g"
delete user script = /etc/smbldap-tools/smbldap-userdel "%u"
delete user from group script = /etc/smbldap-tools/smbldap-groupmod -x "%u" "%g"
delete group script = /etc/smbldap-tools/smbldap-groupdel "%g"
set primary group script = /etc/smbldap-tools/smbldap-usermod -g '%g' '%u'


ldap suffix - это основной суффикс БД. В определении системы директорий существует так называемый корневой объект root. Суффикс определяет этот объект. Вообще существует 2 стандарта LDAP имен для скелета дерева:
- метод для глобальных сетей - имеет подобный вид и описывает URL адрес: person.domain.com (cn=person,dc=domain,dc=com)
- метод для глобальных сетей - описывает организацию (вообще-то этот вид является стандартным) и имеет следующий вид: person.organization_unit.organization.country (cn=person,ou=otd1,o=lab,c=RU)
Выбор метода зависит от конкретного назначения LDAP и особого значения не имеет. Обычно в компаниях применяется второй способ построения скелета дерева. Я же использую интернет наименование для краткости.

13. Перезагружаем службы (чтобы применить новые конфиги):
[root@dsrv openldap]# service ldap start
Checking configuration files for slapd: config file testing succeeded
[ OK ]
Starting slapd: [ OK ]
[root@dsrv openldap]# service winbind restart

Shutting down Winbind services: [ OK ]
Starting Winbind services: [ OK ]
[root@dsrv openldap]# service smb restart
Shutting down SMB services: [ OK ]
Shutting down NMB services: [ OK ]
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]


14. Устанавливаем ldap admin password (даем самбе права на чтение ldap базы):
[root@dsrv /]# smbpasswd -w very_secret_passwort


15. Устанавливаем перловые модули нужные для smbldap-tools
[root@dsrv ~]# perl -MCPAN -e shell

/usr/lib/perl5/5.8.8/CPAN/Config.pm initialized.



Are you ready for manual configuration? [yes] n



cpan> install Net::LDAP



/usr/bin/make install -- OK

cpan> install Crypt::SmbHash



/usr/bin/make install -- OK

cpan> install Unicode::MapUTF8



/usr/bin/make install -- OK



16. Конфигурируем smbldap-tools:

16.1. Смотрим SID домена - его нужно будет указать при конфигурировании /etc/smbldap-tools/configure.pl
[root@dsrv samba]# net getlocalsid DSRV
SID for domain DSRV is: S-1-5-21-93199991-951995455-3406427012
[root@dsrv /]# net rpc getsid
Password:
Could not connect to server DSRV
The username or password was not correct.
Storing SID S-1-5-21-93199991-951995455-3406427012 for Domain SCLAD.LAN in secrets.tdb
[root@dsrv /]#


16.2. Запускаем скрипт и отвечаем на вопросы:
[root@dsrv samba]# /etc/smbldap-tools/configure.pl
Use of $# is deprecated at /etc/smbldap-tools/configure.pl line 314.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
smbldap-tools script configuration
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Before starting, check
. if your samba controller is up and running.
. if the domain SID is defined (you can get it with the 'net getlocalsid')

. you can leave the configuration using the Crtl-c key combination
. empty value can be set with the "." character
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Looking for configuration files...

Samba Configuration File Path [/etc/samba/smb.conf] >

The default directory in which the smbldap configuration files are stored is shown.
If you need to change this, enter the full directory path, then press enter to continue.
Smbldap-tools Configuration Directory Path [/etc/smbldap-tools/] >



-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Use of uninitialized value in concatenation (.) or string at /etc/smbldap-tools/configure.pl line 314, line 34.
backup old configuration files:
/etc/smbldap-tools/smbldap.conf->/etc/smbldap-tools/smbldap.conf.old
/etc/smbldap-tools/smbldap_bind.conf->/etc/smbldap-tools/smbldap_bind.conf.old
writing new configuration file:
/etc/smbldap-tools/smbldap.conf done.
/etc/smbldap-tools/smbldap_bind.conf done.


За “…” скрывается куча вопросов. Скрипт генерит файлы конфигурации /etc/smbldap-tools/smbldap.conf и /etc/smbldap-tools/smbldap_bind.conf, которые используются следующим скриптом.

16.3. Запускаем скрипт и задаем новый пароль (я использовал тот же самый):
[root@dsrv samba]# /etc/smbldap-tools/smbldap-populate
Populating LDAP directory for domain SCLAD.LAN (S-1-5-21-93199991-951995455-3406427012)
(using builtin directory structure)

entry dc=sclad,dc=lan already exist.
entry ou=Users,dc=sclad,dc=lan already exist.
entry ou=Groups,dc=sclad,dc=lan already exist.
entry ou=Computers,dc=sclad,dc=lan already exist.
entry ou=Idmap,dc=sclad,dc=lan already exist.
adding new entry: uid=root,ou=Users,dc=sclad,dc=lan
adding new entry: uid=nobody,ou=Users,dc=sclad,dc=lan
adding new entry: cn=Domain Admins,ou=Groups,dc=sclad,dc=lan
adding new entry: cn=Domain Users,ou=Groups,dc=sclad,dc=lan
adding new entry: cn=Domain Guests,ou=Groups,dc=sclad,dc=lan
adding new entry: cn=Domain Computers,ou=Groups,dc=sclad,dc=lan
adding new entry: cn=Administrators,ou=Groups,dc=sclad,dc=lan
adding new entry: cn=Account Operators,ou=Groups,dc=sclad,dc=lan
adding new entry: cn=Print Operators,ou=Groups,dc=sclad,dc=lan
adding new entry: cn=Backup Operators,ou=Groups,dc=sclad,dc=lan
adding new entry: cn=Replicators,ou=Groups,dc=sclad,dc=lan
entry sambaDomainName=SCLAD.LAN,dc=sclad,dc=lan already exist. Updating it...

Please provide a password for the domain root:
Changing UNIX and samba passwords for root
New password:
Retype new password:
[root@dsrv samba]#


Можно заметить, что скрипт ругнулся на уже существующие записи, которые мы создали вручную выше.

17. Введем наш сервер в наш же домен:
[root@dsrv samba]# net rpc join -S DSRV
Password:
Joined domain SCLAD.LAN.
You have new mail in /var/spool/mail/root
[root@dsrv samba]#


18. Теперь необходимо изменить SID root-a в LDAP-e на такой же какой используется в sambe.
Выше мы смотрели и даже записали SID root-a в sambe.
При использовании схемы с LDAP нам потребуется поместить в LDAP учётную запись пользователя root и задать для неё nt-пароль. Важно, что у пользователя root аттрибуты sambaSID, sambaPrimaryGroupSID должны иметь вид:

sambaSID: DOMAINSID-1000
sambaPrimaryGroupSID: DOMAINSID-1001

Связано это с тем, что ldapsam использует специальный алгоритм для связи uid с sid:

rid='2*uidNumber+1000'
primaryGroup='2*uidNumber+1001'

Посмотрим SID root-a в LDAP-e:
[root@dsrv ~]# ldapsearch -x -D "cn=root,dc=sclad,dc=lan" -W -b 'dc=sclad,dc=lan' 'cn=root'
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base with scope subtree
# filter: cn=root
# requesting: ALL
#

# root, Users, sclad.lan
dn: uid=root,ou=Users,dc=sclad,dc=lan
cn: root
sn: root
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: sambaSamAccount
objectClass: posixAccount
objectClass: shadowAccount
gidNumber: 0
uid: root
uidNumber: 0
homeDirectory: /home/root
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
sambaHomePath: DSRVroot
sambaHomeDrive: Z:
sambaProfilePath: DSRVprofilesroot
sambaPrimaryGroupSID: S-1-5-21-93199991-951995455-3406427012-512
sambaSID: S-1-5-21-93199991-951995455-3406427012-500
loginShell: /bin/false
gecos: Netbios Domain Administrator
sambaLMPassword: A800BDD34ABDA30D944E2DF489A880E4
sambaAcctFlags: [U]
sambaNTPassword: 1D374EB0B2FEB239A7643E37950D2C15
sambaPwdLastSet: 1239956579
sambaPwdMustChange: 1243844579
userPassword:: e1NTSEF9Z0RteU1JZHpoSzF3WXUzdXhkYWFPK2JUV1ZSd01tMUs=
shadowLastChange: 14351
shadowMax: 45

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
[root@dsrv log]# net getlocalsid DSRV
SID for domain DSRV is: S-1-5-21-93199991-951995455-3406427012



Т.е. SID root-a в samba:

User SID: S-1-5-21-2564309360-712306396-2862245629-1000
Primary Group SID: S-1-5-21-2564309360-712306396-2862245629-513
ldap
sambaPrimaryGroupSID: S-1-5-21-93199991-951995455-3406427012-512
sambaSID: S-1-5-21-93199991-951995455-3406427012-500


Странно – здесь мы наблюдаем не только rid не правильные, но и даже отличающиеся DOMAINSID. Видимо на одной из стадий установки была допущена ошибка. Нужно будет проверить при аналогичной установке!

В общем, нам нужно установить для root-a:
sambaPrimaryGroupSID: S-1-5-21-93199991-951995455-3406427012-512
sambaSID: S-1-5-21-93199991-951995455-3406427012-1000


т.е. подменить только sambaSID. Для этого создадим следующий ldif-файл rootedit.ldif:
dn: uid=root,ou=Users,dc=sclad,dc=lan
changetype: modify
replace: sambaSID
sambaSID: S-1-5-21-93199991-951995455-3406427012-1000


Для добавления информации в базу воспользуйтесь командой:
[root@dsrv openldap]# ldapmodify -x -D "cn=root,dc=sclad,dc=lan" -W -f rootedit.ldif
Enter LDAP Password:
modifying entry "uid=root,ou=Users,dc=sclad,dc=lan"

[root@dsrv openldap]#


И посмотрим, что же у нас получилось:
[root@dsrv openldap]# ldapsearch -x -D "cn=root,dc=sclad,dc=lan" -W -b 'dc=sclad,dc=lan' 'cn=root'
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base with scope subtree
# filter: cn=root
# requesting: ALL
#

# root, Users, sclad.lan
dn: uid=root,ou=Users,dc=sclad,dc=lan
cn: root
sn: root
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: sambaSamAccount
objectClass: posixAccount
objectClass: shadowAccount
gidNumber: 0
uid: root
uidNumber: 0
homeDirectory: /home/root
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
sambaHomePath: DSRVroot
sambaHomeDrive: Z:
sambaProfilePath: DSRVprofilesroot
sambaPrimaryGroupSID: S-1-5-21-93199991-951995455-3406427012-512
loginShell: /bin/false
gecos: Netbios Domain Administrator
sambaLMPassword: A800BDD34ABDA30D944E2DF489A880E4
sambaAcctFlags: [U]
sambaNTPassword: 1D374EB0B2FEB239A7643E37950D2C15
sambaPwdLastSet: 1239956579
sambaPwdMustChange: 1243844579
userPassword:: e1NTSEF9Z0RteU1JZHpoSzF3WXUzdXhkYWFPK2JUV1ZSd01tMUs=
shadowLastChange: 14351
shadowMax: 45
sambaSID: S-1-5-21-93199991-951995455-3406427012-1000

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
[root@dsrv openldap]#


Мы видим, что sambaSID изменился на нужный.

Если бы это был новый сервер, то на этом можно было бы и закончить.
Однако, у нас уже есть рабочая система с учетсками юзеров, компов и групп в самбе. Их то и нужно перенести в лдап.


18. Необходимо перенести всё из самбы

 
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Чтобы Вам были доступны все функции Вам необходимо либо зарегистрироваться, либо зайти на сайт под своим именем.

Другие новости по теме:

  • Настройка DNS (BIND)
  • Миграция с Linux (samba+LDAP) на Windows Server 2003 Active Directory
  • Восстановление пароля root-а на Линуксе
  • Контроллер домена (PDC) на sambe
  • Настройка кэширующего прокси-сервера с модулем статистики


  • Комментарии:

    Оставить комментарий

    #1 написал: hhhyuooo (18 мая 2009 15:17)
    Спасибо за подаренные хорошие эмоции...
    #2 написал: dimon (18 мая 2009 15:35)
    ?


     
    Информация
     
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


    Поиск по сайту:


    Облако тегов
    Android, Arduino, backup, CentOS, cmd, css, div, DLE, DLE хаки, domoticz, dzvents, event, Linux, log, LUA, Monster, ogf3, RDP, Template, VBS, w2k8, windows, WSH, бумага, бумажный самолетик, верстка, иструкция, Карты, кино, Навигация, оригами, программа, рецензия, рецепт, скрипт, фигуры, шаблон, Яндекс, яндекс-карты

    Показать все теги
    Реклама
    раскрутка сайта бесплатно
    Главная страница | Регистрация | Добавить новость | Новое на сайте | Статистика | Поддержка | Правила ресурса Copyright © 2005-2018 by dimon - all right reserved!
    Тираж:           экземпляров.   Дизайн, верстка by dimon