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

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

    Опрос

    gismeteo.ru
    Погода на Яндексе
    pogoda.ru
    meteonova.ru
    по телевизору
    за окном
    в газете
    а че его смотреть?
    в другом месте
    по счетчику гейгера



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

    Архив новостей
    Февраль 2021 (3)
    Январь 2021 (1)
    Ноябрь 2020 (2)
    Июль 2020 (2)
    Июнь 2020 (3)
    Май 2020 (1)

    Информация
    Контроллер домена (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, Home Assistant, Linux, log, Monster, ogf3, RDP, Template, VBS, w2k8, windows, WSH, бумага, бумажный самолетик, верстка, иструкция, Карты, кино, Навигация, оригами, программа, рецензия, рецепт, скрипт, фигуры, шаблон, Яндекс, яндекс-карты

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