Инструменты пользователя

Инструменты сайта


net:samba-pdc-ldap

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

net:samba-pdc-ldap [2014/01/19 21:53]
127.0.0.1 внешнее изменение
net:samba-pdc-ldap [2015/07/01 12:31] (текущий)
root
Строка 1: Строка 1:
 +====== Контроллер домена на базе samba с хранением учетных записей в OpenLDAP ======
  
 +
 +===== Введение =====
 +C ростом организации рано или поздно перед каждым администратором возникает вопрос о централизованном хранении и управлении учетными записями. Данная статья посвящена настройке Samba 3 в качестве основного контроллера домена (PDC), все записи о пользователях будут храниться в LDAP-каталоге. Преимущества подобной организации очевидны - упрощение управления пользователями,​ возможность делегирования полномочий по управлению пользователями в домене,​ повышение отказоустойчивости системы,​ простота переноса и восстановления после отказа аппаратного обеспечения,​ возможность интеграции с LDAP других сервисов - svn, jabber, squid, postfix/​exim,​ proftpd и т.п. и т.д.
 +
 +----
 +<​html><​br></​html>​
 +Все дальнейшие настройки мы будем производить согласно следующей схеме LDAP каталога.
 +
 +<​diagram>​
 +|Left| ​                ​|Left=sys-adm.local
 +| |!|
 +| |)|-|-|Center| ​      ​|Center{text-align:​left;​}=ou=Users
 +| |!| | |  |!|
 +| |!| | |  |)|-|-|Right|Right{text-align:​left;​}=ou=Department1
 +| |!| | |  |!| | | |!|
 +| |!| | |  |!| | | |`|-|Right|Right{text-align:​left;​}=uid=user1
 +| |!| | |  |!|
 +| |!| | |  |)|-|-|Center|Center=...
 +| |!| | |  |!|
 +| |!| | |  |`|-|-|Right|Right{text-align:​left;​}=ou=Department100
 +| |!| | |  | | | | |!|
 +| |!| | |  | | | | |`|-|Right|Right{text-align:​left;​}=uid=user100
 +| |!| | |  | |
 +| |)|-|-|Center| ​      ​|Center{text-align:​left;​}=ou=Groups
 +| |!| | |  |!|
 +| |!| | |  |)|-|-|Left|Left{text-align:​left;​}=cn=Domain Admins|
 +| |!| | |  |!|
 +| |!| | |  |)|-|-|Left|Left{text-align:​left;​}=cn=Domain Users|
 +| |!| | |  |!|
 +| |!| | |  |`|-|-|Left|Left{text-align:​left;​}=cn=Domain Guests|
 +| |!| | |  | |
 +| |`|-|-|Center| ​      ​|Center{text-align:​left;​}=ou=Computers
 +| | | | |  |!|
 +| | | | |  |)|-|-|Right|Right{text-align:​left;​}=uid=workstation1$
 +| | | | |  |!|
 +| | | | |  |)|-|-|Center|Center=...
 +| | | | |  |!|
 +| | | | |  |`|-|-|Right|Right{text-align:​left;​}=uid=workstation100$
 +</​diagram>​
 +<​html><​br></​html>​
 +
 +----
 +
 +
 +===== Предварительные настройки системы =====
 +
 +Итак, в нашем распоряжении имеется следующая система: ​
 +<cli>
 +# cat /​etc/​redhat-release
 +CentOS release 5.8 (Final)
 +
 +# uname -r
 +2.6.18-308.4.1.el5
 +</​cli>​
 +
 +Подключаем репозитарии [[http://​fedoraproject.org/​wiki/​EPEL|EPEL]] и [[http://​repoforge.org/​|RPMForge]]
 +<cli>
 +# wget http://​dag.wieers.com/​rpm/​packages/​RPM-GPG-KEY.dag.txt
 +# rpm --import RPM-GPG-KEY.dag.txt
 +# wget http://​pkgs.repoforge.org/​rpmforge-release/​rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
 +
 +# rpm -K rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
 +rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm:​ (sha1) dsa sha1 md5 gpg OK
 +
 +# rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
 +Preparing... ​               ###########################################​ [100%]
 +   ​1:​rpmforge-release ​      ###########################################​ [100%]
 +
 +# wget http://​ftp.tlk-l.net/​pub/​mirrors/​fedora-epel/​RPM-GPG-KEY-EPEL
 +# rpm --import RPM-GPG-KEY-EPEL
 +# wget http://​ftp.tlk-l.net/​pub/​mirrors/​fedora-epel/​5/​x86_64/​epel-release-5-4.noarch.rpm
 +
 +# rpm -K epel-release-5-4.noarch.rpm
 +epel-release-5-4.noarch.rpm:​ (sha1) dsa sha1 md5 gpg OK
 +
 +# rpm -ivh epel-release-5-4.noarch.rpm
 +Preparing... ​               ###########################################​ [100%]
 +   ​1:​epel-release ​          ###########################################​ [100%]
 +</​cli>​
 +
 +Обновляем систему
 +<cli>
 +# yum update
 +</​cli>​
 +
 +Редактируем файл <color #​006500>​**/​etc/​hosts**</​color>​ и настраиваем корректное имя нашего хоста
 +<cli>
 +# cat /etc/hosts
 +127.0.0.1 localhost localhost.localdomain
 +192.168.127.2 pdc pdc.sys-adm.local
 +</​cli>​
 +
 +Настраиваем демон ntp для [[system:​ntpd|синхронизации времени]]. После выполнения всех предварительных настроек можно приступать к установке samba.
 +
 +===== Сборка и установка samba-3.4.x =====
 +
 +<​note>​По личному опыту могу сказать,​ что samba-3.4.x на момент написания статьи является наиболее надежной из всех веток. Поэтому именно эту версию samba мы и будем собирать. В принципе вам никто не запрещает использовать любую из веток, а на данный момент это - samba-3.4.x,​ samba-3.5.x,​ samba-3.6.x. Данная система работает у меня в production более 2х лет, за все время работы не было ни единого сбоя или нештатной ситуации. Если у вас уже установлена необходимая версия samba, то вы можете пропустить этот шаг и перейти непосредственно к настройке системы.</​note>​
 +
 +Устанавливаем пакеты,​ необходимые для сборки samba.
 +
 +<cli>
 +# yum install rpm-build.x86_64 pam-devel.x86_64 readline-devel.x86_64 libacl-devel.x86_64 openldap-devel.x86_64
 +# yum install krb5-devel.x86_64 cups-devel.x86_64 autoconf gcc-c++.x86_64 which.x86_64 make.x86_64
 +</​cli>​
 +
 +Скачиваем исходный код samba с официального сайта и запускаем сборку пакета.
 +<cli>
 +# cd /tmp
 +# wget http://​samba.org/​samba/​ftp/​stable/​samba-3.4.17.tar.gz
 +# tar zxf samba-3.4.17.tar.gz
 +# cd samba-3.4.17/​packaging/​RHEL
 +# sh makerpms.sh --target=x86_64
 +Supported RPM version [4.4.2.3]
 +/​tmp/​samba-3.4.17/​packaging/​RHEL /​tmp/​samba-3.4.17/​packaging/​RHEL
 +/​tmp/​samba-3.4.17/​packaging/​RHEL
 +/​tmp/​samba-3.4.17/​packaging/​RHEL /​tmp/​samba-3.4.17/​packaging/​RHEL
 +Creating samba-3.4.17.tar.bz2 ... Done.
 +/​tmp/​samba-3.4.17/​packaging/​RHEL
 +setup/
 +...
 +...
 +...
 +Wrote: /​usr/​src/​redhat/​SRPMS/​samba-3.4.17-1.src.rpm
 +Wrote: /​usr/​src/​redhat/​RPMS/​x86_64/​samba-3.4.17-1.x86_64.rpm
 +Wrote: /​usr/​src/​redhat/​RPMS/​x86_64/​samba-client-3.4.17-1.x86_64.rpm
 +Wrote: /​usr/​src/​redhat/​RPMS/​x86_64/​samba-common-3.4.17-1.x86_64.rpm
 +Wrote: /​usr/​src/​redhat/​RPMS/​x86_64/​samba-swat-3.4.17-1.x86_64.rpm
 +Wrote: /​usr/​src/​redhat/​RPMS/​x86_64/​samba-doc-3.4.17-1.x86_64.rpm
 +Executing(%clean):​ /bin/sh -e /​var/​tmp/​rpm-tmp.3392
 ++ umask 022
 ++ cd /​usr/​src/​redhat/​BUILD
 ++ cd samba-3.4.17
 ++ rm -rf /​var/​tmp/​samba-3.4.17-root
 ++ exit 0
 +Executing(--clean):​ /bin/sh -e /​var/​tmp/​rpm-tmp.3392
 ++ umask 022
 ++ cd /​usr/​src/​redhat/​BUILD
 ++ rm -rf samba-3.4.17
 ++ exit 0
 +makerpms.sh:​ Done.
 +</​cli>​
 +
 +После того, как пакеты успешно собрались устанавливаем их.
 +<cli>
 +# cd /​usr/​src/​redhat/​RPMS/​x86_64/​x86_64/​
 +# rpm -ivh samba-3.4.17-1.x86_64.rpm samba-common-3.4.17-1.x86_64.rpm samba-client-3.4.17-1.x86_64.rpm samba-doc-3.4.17-1.x86_64.rpm
 + ​Preparing... ​              ###########################################​ [100%]
 +   ​1:​samba-common ​          ###########################################​ [ 25%]
 +   ​2:​samba ​                 ###########################################​ [ 50%]
 +   ​3:​samba-client ​          ###########################################​ [ 75%]
 +   ​4:​samba-doc ​             ###########################################​ [100%]
 +</​cli>​
 +
 +Копируем схему samba.schema в каталог OpenLDAP. Для корректной работы LDAP сервера у вас в системе должны быть установлены следующие пакеты - **openldap-servers** и **openldap-clients**
 +<cli>
 +# cp /​usr/​share/​doc/​samba-doc-3.4.17/​LDAP/​samba.schema /​etc/​openldap/​schema/​samba.schema
 +</​cli>​
 +
 +<​note>​Вы так же можете произвести процедуру сборки samba на любой машине с аналогичной версией ОС и установить готовые пакеты на контроллере домена. Я обычно собираю подобного рода пакеты на виртуальной машине,​ чтобы не засорять production сервера не нужными пакетами.</​note>​
 +
 +===== Настройка LDAP каталога =====
 +Собственно вся настройка LDAP каталога сводится к редактированию файла <color #​006500>​**/​etc/​openldap/​slapd.conf**</​color>​.
 +<​code>​
 +# Подключаем стандартные схемы. Порядок подключений схем имеет значение!
 +include ​        /​etc/​openldap/​schema/​core.schema
 +include ​        /​etc/​openldap/​schema/​cosine.schema
 +include ​        /​etc/​openldap/​schema/​inetorgperson.schema
 +include ​        /​etc/​openldap/​schema/​nis.schema
 +include ​        /​etc/​openldap/​schema/​samba.schema
 +
 +# Задаем путь для pid файла
 +pidfile ​        /​var/​run/​openldap/​slapd.pid
 +argsfile ​       /​var/​run/​openldap/​slapd.args
 +
 +# Определяем настройки хранения данных
 +# Значение для поля rootpw генерируем с помощью команды:​ slappasswd -h {SSHA}
 +database ​       bdb
 +suffix ​         "​dc=sys-adm,​dc=local"​
 +rootdn ​         "​cn=root,​dc=sys-adm,​dc=local"​
 +rootpw ​         {SSHA}2n7rOetD0z6RoWG2zZ9Cuvw5thEnPZVh
 +
 +# Указываем обязательное использование протокола v3 и запрещаем анонимный доступ к нашему каталогу
 +# LDAPv3 - требуем,​ чтобы при любом обращении к DIT использовались процедуры 3-ей версии протокола LDAP.
 +# authc  - требуем,​ чтобы при любом обращении к DIT, перед тем как выполнить какую-либо операцию с каталогом, ​
 +# была пройдена LDAP-аутентификация. Использование этого значения также подразумевает неявное использование ​
 +# ключевого слова bind.
 +require LDAPv3 authc
 +
 +# Задаем уровень логирование и путь к log файлу
 +# 256 0x100 stats статистика соединений/​операций/​результатов
 +# 32 0x20 filter обработка поисковых фильтров
 +# 256 + 32 = 288
 +loglevel 288
 +logfile /​var/​log/​ldap.log
 +
 +# Определяем несколько базовых ACL
 +access to attrs=userPassword,​sambaNTPassword,​sambaLMPassword
 +    by self write
 +    by anonymous auth
 +    by * none
 +
 +access to *
 +    by self read
 +    by users read
 +    by anonymous auth
 +    by * none
 +
 +# Путь ​
 +directory ​      /​var/​lib/​ldap
 +
 +# Индексы,​ для ускорения поиска
 +index objectClass ​          eq
 +index cn                    pres,sub,eq
 +index sn                    pres,sub,eq
 +index uid                   ​pres,​sub,​eq
 +index displayName ​          ​pres,​sub,​eq
 +index uniqueMember ​         eq
 +index uidNumber ​            eq
 +index gidNumber ​            eq
 +index memberUID ​            eq
 +index sambaSID ​             eq
 +index sambaPrimaryGroupSID ​ eq
 +index sambaDomainName ​      eq
 +index sambaGroupType ​       eq
 +index sambaSIDList ​         eq
 +index default ​              sub
 +</​code>​
 +
 +Производим небольшие настройки базы данных
 +<cli>
 +# cp /​etc/​openldap/​DB_CONFIG.example /​var/​lib/​ldap/​DB_CONFIG
 +# mkdir /​var/​lib/​ldap/​{db,​logs}
 +# chown -R ldap:ldap /​var/​lib/​ldap/​
 +</​cli>​
 +
 +Редактируем файл <color #​006500>​**/​var/​lib/​ldap/​DB_CONFIG**</​color>​
 +<​code>​
 +# $OpenLDAP: pkg/​ldap/​servers/​slapd/​DB_CONFIG,​v 1.1.2.4 2007/12/18 11:51:46 ghenry Exp $
 +# Example DB_CONFIG file for use with slapd(8) BDB/HDB databases.
 +#
 +# See the Oracle Berkeley DB documentation
 +#   <​http://​www.oracle.com/​technology/​documentation/​berkeley-db/​db/​ref/​env/​db_config.html>​
 +# for detail description of DB_CONFIG syntax and semantics.
 +#
 +# Hints can also be found in the OpenLDAP Software FAQ
 +#       <​http://​www.openldap.org/​faq/​index.cgi?​file=2>​
 +# in particular:
 +#   <​http://​www.openldap.org/​faq/​index.cgi?​file=1075>​
 +
 +# Note: most DB_CONFIG settings will take effect only upon rebuilding
 +# the DB environment.
 +
 +# one 0.25 GB cache
 +set_cachesize 0 268435456 1
 +
 +# Data Directory
 +set_data_dir db
 +
 +# Transaction Log settings
 +set_lg_regionmax 262144
 +set_lg_bsize 2097152
 +set_lg_dir logs
 +
 +# Note: special DB_CONFIG flags are no longer needed for "​quick"​
 +# slapadd(8) or slapindex(8) access (see their -q option).
 +</​code>​
 +
 +Для того, чтобы OpenLDAP писал все сообщения в определенный файл, настраиваем соответствующим образом syslog. Редактируем файл <color #​006500>​**/​etc/​syslog.conf**</​color>​ и добавляем следующую строку в конец файла, после чего перезапускаем демон, предварительно создав сам log файл.
 +<​code>​
 +local4.* ​                                               /​var/​log/​ldap.log
 +</​code>​
 +
 +<cli>
 +# touch /​var/​log/​ldap.log
 +# chmod 640 /​var/​log/​ldap.log
 +
 +# service syslog restart
 +Shutting down kernel logger: ​                              ​[ ​ OK  ]
 +Shutting down system logger: ​                              ​[ ​ OK  ]
 +Starting system logger: ​                                   [  OK  ]
 +Starting kernel logger: ​                                   [  OK  ]
 +</​cli>​
 +
 +И последний момент,​ который нам необходимо сделать,​ это добавить одну строку в конец файла <color #​006500>​**/​etc/​sysconfig/​ldap**</​color>​
 +<​code>​
 +SLAPD_OPTIONS="​-4"​
 +</​code>​
 +
 +Таким образом наш демон slapd будет слушать только IPv4 адреса. Теперь у нас все готово к запуску OpenLDAP. Запускаем демон и добавляем его запуск при старте системы.
 +<cli>
 +# service ldap start
 +Starting slapd: ​                                           [  OK  ]
 +
 +# chkconfig --level 35 ldap on
 +</​cli>​
 +
 +При этом в log файле должны появиться такие записи
 +<cli>
 +# cat /​var/​log/​ldap.log
 +May 23 10:16:44 pdc slapd[7256]:​ @(#) $OpenLDAP: slapd 2.3.43 (Feb 22 2012 16:01:18) $     ​mockbuild@builder10.centos.org:/​builddir/​build/​BUILD/​openldap-2.3.43/​openldap-2.3.43/​build-servers/​servers/​slapd
 +May 23 10:16:45 pdc slapd[7257]:​ slapd starting
 +</​cli>​
 +
 +===== Настройка nsswitch на работу с LDAP каталогом =====
 +
 +Устанавливаем пакет nss_ldap
 +<cli>
 +# yum install nss_ldap.x86_64
 +</​cli>​
 +
 +Редактируем файл <color #​006500>​**/​etc/​nsswitch.conf**</​color>​ и настраиваем поиск пользователей в LDAP каталоге. Так же поиск компьютеров будет производиться с помощью wins сервера.
 +<​code>​
 +passwd: ​    files ldap
 +shadow: ​    files ldap
 +group: ​     files ldap
 +
 +hosts: ​     files dns wins
 +</​code>​
 +
 +Все остальные строки оставляем без изменений. Таким образом при поиске пользователей,​ групп и их паролей система так же будет обращаться в LDAP каталог. Для того, чтобы система знала к какому именно LDAP каталогу обращаться и где искать необходимую информацию нам необходимо настроить nss_ldap. Редактируем файл <color #​006500>​**/​etc/​ldap.conf**</​color>​. Настройки производим в соответствии с нашей структурой (см схему выше).
 +<​code>​
 +# Адрес нашего OpenLDAP сервера
 +host 127.0.0.1
 +#uri ldap://​localhost/​
 +
 +# База для поиска в LDAP каталоге
 +base dc=sys-adm,​dc=local
 +
 +
 +# Так как у нас запрещены анонимные подключения,​ указываем пользователя и его пароль
 +binddn cn=root,​dc=sys-adm,​dc=local
 +bindpw 1234567
 +
 +# Версия LDAP протокола и номер порта
 +ldap_version 3
 +port 389
 +
 +# Область поиска
 +scope sub
 +bind_policy soft
 +
 +# Задаем лимиты
 +timelimit 120
 +bind_timelimit 120
 +sizelimit 500
 +idle_timelimit 3600
 +
 +# Указываем фильтры для поиска пользователей,​ групп и паролей
 +nss_base_passwd ​          ​ou=Users,​dc=sys-adm,​dc=local?​sub
 +nss_base_shadow ​          ​ou=Users,​dc=sys-adm,​dc=local?​sub
 +nss_base_group ​           ou=Groups,​dc=sys-adm,​dc=local?​sub
 +nss_base_passwd ​          ​ou=Computers,​dc=sys-adm,​dc=local?​sub
 +nss_connect_policy ​    ​persist
 +
 +# При определении членства в группах исключаем следующих пользователей из поиска.
 +nss_initgroups_ignoreusers ​  ​root,​ldap,​named,​avahi,​haldaemon,​dbus,​radvd,​tomcat,​radiusd,​news,​mailman,​nscd,​gdm
 +</​code>​
 +
 +===== Установка и настройка smbldap-tools =====
 +
 +smbldap-tools набор скриптов на perl значительно облегчающих работу с доменом,​ а именно создание,​ модификацию и удаление записей пользователей/​групп/​компьютеров.
 +
 +<​note>​К сожалению в CentOS 5.8 идет старая версия модуля perl-LDAP а именно perl-LDAP-0.33-3.fc6,​ для корректной работы smbldap-tools необходима версия не ниже 0.34. Поэтому мы соберем необходимую нам версию,​ а именно {{:​srpms:​perl-LDAP-0.34-6.src.rpm|perl-LDAP-0.34-6}}</​note>​
 +
 +<cli>
 +# cd /tmp
 +# wget http://​wiki.sys-adm.org.ua/​_media/​srpms/​perl-LDAP-0.34-6.src.rpm
 +# rpm -ivh perl-LDAP-0.34-6.src.rpm
 +   ​1:​perl-LDAP ​             ###########################################​ [100%]
 +
 +# cd /​usr/​src/​redhat/​SPECS/​
 +# rpmbuild -ba perl-LDAP.spec
 +Executing(%prep):​ /bin/sh -e /​var/​tmp/​rpm-tmp.59364
 ++ umask 022
 ++ cd /​usr/​src/​redhat/​BUILD
 ++ cd /​usr/​src/​redhat/​BUILD
 ++ rm -rf perl-ldap-0.34
 ++ /bin/gzip -dc /​usr/​src/​redhat/​SOURCES/​perl-ldap-0.34.tar.gz
 ++ tar -xf -
 +...
 +...
 +...
 +Wrote: /​usr/​src/​redhat/​SRPMS/​perl-LDAP-0.34-6.src.rpm
 +Wrote: /​usr/​src/​redhat/​RPMS/​noarch/​perl-LDAP-0.34-6.noarch.rpm
 +Executing(%clean):​ /bin/sh -e /​var/​tmp/​rpm-tmp.8427
 ++ umask 022
 ++ cd /​usr/​src/​redhat/​BUILD
 ++ cd perl-ldap-0.34
 ++ rm -rf /​var/​tmp/​perl-LDAP-0.34-6-root-root
 ++ exit 0
 +</​cli>​
 +
 +Обновляем пакет
 +<cli>
 +# rpm -Uvh /​usr/​src/​redhat/​SRPMS/​perl-LDAP-0.34-6.src.rpm
 +   ​1:​perl-LDAP ​             ###########################################​ [100%]
 +</​cli>​
 +
 +Теперь устанавливаем сам smbldap-tools с [[http://​gna.org/​projects/​smbldap-tools|официального сайта]]
 +<cli>
 +# yum install perl-Crypt-SmbHash perl-Digest-SHA1
 +# cd /tmp
 +# wget http://​download.gna.org/​smbldap-tools/​packages/​el5/​smbldap-tools-0.9.8-1.el5.noarch.rpm
 +# rpm -ivh smbldap-tools-0.9.8-1.el5.noarch.rpm
 +Preparing... ​               ###########################################​ [100%]
 +   ​1:​smbldap-tools ​         ###########################################​ [100%]
 +</​cli>​
 +
 +После того, как мы успешно установили smbldap-tools переходим непосредственно к настройке. Для этого редактируем два файла: <color #​006500>​**/​etc/​smbldap-tools/​smbldap_bind.conf**</​color>​ и <color #​006500>​**/​etc/​smbldap-tools/​smbldap.conf**</​color>​
 +
 +<​code>​
 +# $Id$
 +#
 +# /​etc/​smbldap-tools/​smbldap_bind.conf
 +#
 +############################​
 +# Credential Configuration #
 +############################​
 +# Notes: you can specify two differents configuration if you use a
 +# master ldap for writing access and a slave ldap server for reading access
 +# By default, we will use the same DN (so it will work for standard Samba
 +# release)
 +
 +# Указываем dn и пароль с которым мы будем подключаться к LDAP каталогу.
 +masterDN="​cn=root,​dc=sys-adm,​dc=local"​
 +masterPw="​1234567"​
 +
 +# В случае,​ если у вас несколько LDAP серверов,​ указываем данные для подключения на slave.
 +slaveDN="​cn=root,​dc=sys-adm,​dc=local"​
 +slavePw="​1234567"​
 +</​code>​
 +
 +<​code>​
 +# $Id$
 +#
 +# /​etc/​smbldap-tools/​smbldap.conf
 +#
 +#  This code was developped by IDEALX (http://​IDEALX.org/​) and
 +#  contributors (their names can be found in the CONTRIBUTORS file).
 +#
 +#                 ​Copyright (C) 2001-2002 IDEALX
 +#
 +#  This program is free software; you can redistribute it and/or
 +#  modify it under the terms of the GNU General Public License
 +#  as published by the Free Software Foundation; either version 2
 +#  of the License, or (at your option) any later version.
 +#
 +#  This program is distributed in the hope that it will be useful,
 +#  but WITHOUT ANY WARRANTY; without even the implied warranty of
 +#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ​ See the
 +#  GNU General Public License for more details.
 +#
 +#  You should have received a copy of the GNU General Public License
 +#  along with this program; if not, write to the Free Software
 +#  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 +#  USA.
 +
 +#  Purpose :
 +#       . be the configuration file for all smbldap-tools scripts
 +
 +##############################################################################​
 +#
 +# General Configuration
 +#
 +##############################################################################​
 +
 +# SID нашего домена
 +SID="​S-1-5-21-206255134-223837211-2022137911"​
 +
 +# Имя домена.
 +sambaDomain="​SYSADM"​
 +
 +##############################################################################​
 +#
 +# LDAP Configuration
 +#
 +##############################################################################​
 +
 +# Адрес и порт для slave LDAP сервера
 +# Ex: slaveLDAP=127.0.0.1
 +slaveLDAP="​127.0.0.1"​
 +slavePort="​389"​
 +
 +# Адрес и порт для master LDAP сервера
 +masterLDAP="​127.0.0.1"​
 +masterPort="​389"​
 +
 +# Если установлена 1 будет использоваться шифрованное соединение с использованием start_tls
 +# на 389 порту. Но так как в нашем случае samba и OpenLDAP находятся на одном сервере,​
 +# то использовать TLS нет смысла
 +ldapTLS="​0"​
 +
 +# Если установлена 1 будет использоваться шифрованное соединение на 636 порту (ldaps)
 +# Но так как в нашем случае samba и OpenLDAP находятся на одном сервере,​
 +# то использовать SSL нет смысла
 +ldapSSL="​0"​
 +
 +# Проверка сертификата сервера,​ если такой задан и используется
 +verify="​none"​
 +
 +# Так как мы не используем шифрование,​ то значения следующих 3х параметров не имеют значения для нас
 +# Root CA сертификат
 +cafile="/​etc/​smbldap-tools/​ca.pem"​
 +
 +# Сертификат сервера
 +clientcert="/​etc/​smbldap-tools/​smbldap-tools.example.com.pem"​
 +
 +# private key сервера
 +clientkey="/​etc/​smbldap-tools/​smbldap-tools.example.com.key"​
 +
 +# LDAP Suffix. см структуру LDAP каталога в начале статьи
 +suffix="​dc=sys-adm,​dc=local"​
 +
 +# Указываем путь, где будут храниться пользователи
 +usersdn="​ou=Users,​${suffix}"​
 +
 +# Указываем путь, где будут храниться компьютеры
 +computersdn="​ou=Computers,​${suffix}"​
 +
 +# Указываем путь, где будут храниться группы
 +groupsdn="​ou=Groups,​${suffix}"​
 +
 +# Указываем путь, где будут храниться Idmap записи (используется,​ если samba является domain member server)
 +idmapdn="​ou=Idmap,​${suffix}"​
 +
 +# Указываем путь, где будут храниться группы следующие значение uidNumber и gidNumber,
 +# используемые при создании новых пользователей и групп
 +sambaUnixIdPooldn="​sambaDomainName=${sambaDomain},​${suffix}"​
 +
 +# Область поиска по умолчанию
 +scope="​sub"​
 +
 +# Хеш используемый для хранения паролей
 +# Возможные значения:​ CRYPT, MD5, SMD5, SSHA, SHA, CLEARTEXT
 +password_hash="​SSHA"​
 +
 +# Если password_hash установлен в CRYPT, устанавливаем формат salt
 +password_crypt_salt_format="​$1$%.8s"​
 +
 +##############################################################################​
 +#
 +# Unix Accounts Configuration
 +#
 +##############################################################################​
 +
 +# Задаем шел по умолчанию
 +userLoginShell="/​sbin/​nologin"​
 +
 +# Домашняя папка
 +userHome="/​home/​%U"​
 +
 +# Маска используемая при создании домашней папки
 +userHomeDirectoryMode="​700"​
 +
 +# Gecos
 +userGecos="​System User"
 +
 +# GID используемый по умолчанию при создании пользователей
 +defaultUserGid="​513"​
 +
 +# GID используемый по умолчанию при создании компьютеров
 +defaultComputerGid="​515"​
 +
 +# Skel dir
 +skeletonDir="/​etc/​skel"​
 +
 +# Treat shadowAccount object or not
 +shadowAccount="​1"​
 +
 +# Время жизни пароля в днях
 +# defaultMaxPasswordAge="​45"​
 +
 +##############################################################################​
 +#
 +# SAMBA Configuration
 +#
 +##############################################################################​
 +
 +# UNC путь к домашней папке пользователя. Если задать пустым,​ то будет использоваться
 +# значение 'logon home' из файла smb.conf
 +userSmbHome=""​
 +
 +# UNC путь к профилю пользователя. Если задать пустым,​ то будет использоваться
 +# значение 'logon path' из файла smb.conf
 +userProfile=""​
 +
 +# Имя диска, используемое при подключении домашней папки во время входа пользователя
 +userHomeDrive="​W:"​
 +
 +# Имя скрипта,​ выполняемого при входе пользователя на компьютер
 +userScript="​logon.bat"​
 +
 +# Имя домена,​ добавляемое к имени пользователя при использовании smbldap-useradd -M
 +mailDomain="​example.com"​
 +
 +##############################################################################​
 +#
 +# SMBLDAP-TOOLS Configuration (default are ok for a RedHat)
 +#
 +##############################################################################​
 +
 +# При значении 0 запрещает использование команды /​usr/​bin/​smbpasswd,​ а вместо нее
 +# использовать библиотеку Crypt::​SmbHash,​ которая является более предпочтительной
 +with_smbpasswd="​0"​
 +smbpasswd="/​usr/​bin/​smbpasswd"​
 +
 +# При значении 0 запрещает использование команды /​usr/​sbin/​slappasswd,​ а вместо нее
 +# использовать библиотеки Crypt::, которые являются более предпочтительными.
 +with_slappasswd="​0"​
 +slappasswd="/​usr/​sbin/​slappasswd"​
 +</​code>​
 +
 +После того, как мы настроили smbldap-tools можно переходить к инициализации LDAP каталога.
 +
 +===== Инициализация LDAP каталога =====
 +Чтобы инициализировать наш LDAP каталог и создать минимально необходимую структуру,​ мы воспользуемся командой smbldap-populate.
 +
 +<cli>
 +# smbldap-populate -a sysadm-da -g 10000 -l 11111 -r 10000 -u 10000
 +Populating LDAP directory for domain SYSADM (S-1-5-21-206255134-223837211-2022137911)
 +(using builtin directory structure)
 +
 +adding new entry: dc=sys-adm,​dc=local
 +adding new entry: ou=Users,​dc=sys-adm,​dc=local
 +adding new entry: ou=Groups,​dc=sys-adm,​dc=local
 +adding new entry: ou=Computers,​dc=sys-adm,​dc=local
 +adding new entry: ou=Idmap,​dc=sys-adm,​dc=local
 +adding new entry: sambaDomainName=SYSADM,​dc=sys-adm,​dc=local
 +adding new entry: uid=sysadm-da,​ou=Users,​dc=sys-adm,​dc=local
 +adding new entry: uid=nobody,​ou=Users,​dc=sys-adm,​dc=local
 +adding new entry: cn=Domain Admins,​ou=Groups,​dc=sys-adm,​dc=local
 +adding new entry: cn=Domain Users,​ou=Groups,​dc=sys-adm,​dc=local
 +adding new entry: cn=Domain Guests,​ou=Groups,​dc=sys-adm,​dc=local
 +adding new entry: cn=Domain Computers,​ou=Groups,​dc=sys-adm,​dc=local
 +adding new entry: cn=Administrators,​ou=Groups,​dc=sys-adm,​dc=local
 +adding new entry: cn=Account Operators,​ou=Groups,​dc=sys-adm,​dc=local
 +adding new entry: cn=Print Operators,​ou=Groups,​dc=sys-adm,​dc=local
 +adding new entry: cn=Backup Operators,​ou=Groups,​dc=sys-adm,​dc=local
 +adding new entry: cn=Replicators,​ou=Groups,​dc=sys-adm,​dc=local
 +
 +Please provide a password for the domain sysadm-da:
 +Changing UNIX and samba passwords for sysadm-da
 +New password: *******
 +Retype new password: *******
 +</​cli>​
 +
 +Как видно из вывода команды,​ она создает все необходимые OU (Organization Unit), а так же группы и двух пользователей nobody (гость) и sysadm-da (администратор домена). Ключи -u и -g задают начальные uid/gid соответственно для вновь создаваемых пользователей и групп. Параметр -a задает имя администратора домена,​ по умолчанию используется root. Теперь мы можем посмотреть информацию о пользователе sysadm-da
 +
 +<cli>
 +# smbldap-usershow sysadm-da
 +dn: uid=sysadm-da,​ou=Users,​dc=sys-adm,​dc=local
 +objectClass:​ top,​person,​organizationalPerson,​inetOrgPerson,​sambaSamAccount,​posixAccount,​shadowAccount
 +uid: sysadm-da
 +cn: sysadm-da
 +sn: sysadm-da
 +gidNumber: 0
 +uidNumber: 0
 +homeDirectory:​ /​home/​sysadm-da
 +sambaLogonTime:​ 0
 +sambaLogoffTime:​ 2147483647
 +sambaKickoffTime:​ 2147483647
 +sambaPwdCanChange:​ 0
 +sambaHomePath:​ \\PDC\home
 +sambaHomeDrive:​ W:
 +sambaProfilePath:​
 +sambaPrimaryGroupSID:​ S-1-5-21-206255134-223837211-2022137911-512
 +sambaSID: S-1-5-21-206255134-223837211-2022137911-500
 +loginShell: /​sbin/​nologin
 +gecos: Netbios Domain Administrator
 +sambaLMPassword:​ 0AFA9EFC9DE20294AAD3B435B51404EE
 +sambaAcctFlags:​ [U]
 +sambaNTPassword:​ 8F4BC1891E1050BDB614E72625AC2D7B
 +sambaPwdLastSet:​ 1337698672
 +sambaPwdMustChange:​ 1341586672
 +userPassword:​ {CRYPT}0qaZvNIQMvD5.
 +shadowLastChange:​ 15482
 +shadowMax: 45
 +</​cli>​
 +
 +Утилиты id/getent также должны видеть этого пользователя
 +<cli>
 +# id sysadm-da
 +uid=0(root) gid=0(root) groups=0(root),​512(Domain Admins)
 +
 +# getent passwd sysadm-da
 +sysadm-da:​x:​0:​0:​Netbios Domain Administrator:/​home/​sysadm-da:/​sbin/​nologin
 +</​cli>​
 +
 +Если вы откроете LDAP каталог в любом LDAP редакторе,​ в моем случае это [[http://​directory.apache.org/​studio/​|Apache Directory Studio]], то должны будете увидеть следующую структуру
 +
 +{{ :​system:​pdc-ldap-dit.png?​direct | DIT (Directory Information Tree)}}
 +
 +Создаем учетную запись компьютера PDC в домене
 +<cli>
 +# smbldap-useradd -W -g 515 PDC
 +
 +# smbldap-usershow PDC$ 
 +dn: uid=PDC$,​ou=Computers,​dc=sys-adm,​dc=local
 +cn: PDC$
 +uid: PDC$
 +uidNumber: 10000
 +gidNumber: 515
 +homeDirectory:​ /​nonexistent
 +loginShell: /​sbin/​nologin
 +description:​ Computer
 +gecos: Computer
 +objectClass:​ posixAccount,​account,​sambaSamAccount
 +sambaLogonTime:​ 0
 +sambaLogoffTime:​ 2147483647
 +sambaKickoffTime:​ 2147483647
 +sambaPwdCanChange:​ 0
 +sambaPwdMustChange:​ 2147483647
 +sambaPwdLastSet:​ 1337774553
 +sambaAcctFlags:​ [W          ]
 +sambaSID: S-1-5-21-206255134-223837211-2022137911-10001
 +sambaPrimaryGroupSID:​ S-1-5-21-206255134-223837211-2022137911-515
 +displayName:​ PDC$
 +sambaDomainName:​ SYSADM
 +</​cli>​
 +
 +Ну а теперь собственно можно переходить к заключительному этапу настройке системы,​ а именно - настройка samba.
 +
 +===== Настройка samba =====
 +
 +Редактируем основной конфигурационный файл самбы <color #​006500>​**/​etc/​samba/​smb.conf**</​color>​
 +<​code>​
 +[global]
 +
 +    # Общие настройки сервер
 +    workgroup = SYSADM
 +    server string = Primary Domain Controller
 +    netbios name = PDC
 +    security = user
 +
 +    # Отключаем все, что связанно с печатью
 +    load printers = no
 +    show add printer wizard = no
 +    printcap name = /dev/null
 +    disable spoolss = yes
 +    ​
 +    # Путь к профилю,​ так как мы не используем перемещаемые профили,​ то оставляем пустым
 +    logon path =
 +    # Путь к домашней папке пользователя,​ которая будет мапиться на диск, указанный в 'logon drive'
 +    logon home = \\PDC\%U
 +    # Имя сетевого диска, для подключения домашней папки
 +    logon drive = W:
 +    # Имя скрипта,​ выполняемое при заходе на компьютер
 +    logon script = logon.bat
 +
 +    # Путь log файла и его максимальный размер в килобайтах
 +    log file = /​var/​log/​samba/​samba.log
 +    max log size = 50000
 +
 +    # Включаем использование шифрованных паролей
 +    encrypt passwords = yes
 +    ​
 +    # Вызов wbinfo -u и wbinfo -g будет возвращать список доменных пользователей и групп соответственно
 +    winbind enum groups = yes
 +    winbind enum users = yes
 +    ​
 +    # Добавляет имя домена к имени пользователя,​ т.е. если мы указали user1,
 +    # то имя будет трактоваться как SYSADM\\user1
 +    winbind use default domain = yes
 +
 +    # Указываем,​ где хранить idmap преобразования
 +    idmap backend = ldap:"​ldap://​127.0.0.1/"​
 +    ldap idmap suffix = ou=Idmap
 +
 +    # Диапазон для маппинга uid/gid соответственно
 +    idmap uid = 10000-50000
 +    idmap gid = 10000-50000
 +
 +    # Необходимые опции для полноценной работы с LDAP бекэндом
 +    ldapsam:​trusted = yes
 +    ldapsam:​editposix = yes
 +    ​
 +    # Синхронизируем LDAP пароли с NT и LM хешами (sambaLMPassword/​sambaNTPassword)
 +    # При изменении пароля через windows он будет автоматически синхронизирован с LDAP.
 +    ldap passwd sync = yes
 +    ​
 +    # Удаляем полностью dn
 +    ldap delete dn = yes
 +
 +    # Указываем,​ где LDAP хранит информацию о пользователях,​ группах и компьютерах
 +    ldap suffix = dc=sys-adm,​dc=local
 +    ldap user suffix = ou=Users
 +    ldap group suffix = ou=Groups
 +    ldap machine suffix = ou=Computers
 +    ​
 +    # DN (Distinguished Name) используемой самбой при доступе к LDAP каталогу
 +    ldap admin dn = "​cn=root,​dc=sys-adm,​dc=local"​
 +    ​
 +    # Указываем самбе, что всю информацию о пользователях и группах мы храним в LDAP каталоге
 +    passdb backend = ldapsam:"​ldap://​127.0.0.1/"​
 +    ​
 +    # Отключаем использование SSL
 +    ldap ssl = off
 +
 +    enable privileges = yes
 +       
 +    # Наш сервер будет master browser, а так же будет выполнять роль доменного мастера
 +    # и logon сервера.
 +    os level = 128
 +    local master = yes
 +    domain master = yes
 +    preferred master = yes
 +    domain logons = yes
 +
 +    # Указываем что наш сервер будет выполнять роль WINS сервера
 +    wins support = yes
 +
 +    # Так как наш PDC является wins сервером,​ включаем данный функционал
 +    dns proxy = yes
 +    ​
 +    # Сервер является источником синхронизации времени
 +    time server = yes
 +
 +    # Используем NTLMv2
 +    client ntlmv2 auth = yes
 +    # Запрещаем отправлять пароль в чистом виде, если сервер не поддерживает шифрование
 +    client plaintext auth = no
 +
 +    # Отключаем использование старых методов аутентификации
 +    lanman auth = no
 +    lm announce = no
 +
 +    # Время неактивности в минутах,​ после чего соединение считается мертвым и закрывается.
 +    deadtime = 15
 +
 +    # Задаем кодировки
 +    display charset = utf8
 +    unix charset = utf8
 +    dos charset = cp866
 +
 +    # Уровень информативности в log файлах
 +    log level  = 3
 +
 +    # Наш сервер не является DFS сервером
 +    host msdfs  = no
 +    ​
 +    # Скрипты для модификаций учетных записей
 +    add user script = /​usr/​sbin/​smbldap-useradd -a -m "​%u"​
 +    add machine script = /​usr/​sbin/​smbldap-useradd -w '​%u'​ -g 515
 +    add group script = /​usr/​sbin/​smbldap-groupadd -a "​%g"​
 +    add user to group script = /​usr/​sbin/​smbldap-groupmod -m "​%u"​ "​%g"​
 +    delete user from group script = /​usr/​sbin/​smbldap-groupmod -x "​%u"​ "​%g"​
 +    set primary group script = /​usr/​sbin/​smbldap-usermod -g "​%g"​ "​%u"​
 +    delete user script = /​usr/​sbin/​smbldap-userdel -r "​%u"​
 +    delete group script = /​usr/​sbin/​smbldap-groupdel "​%g"​
 +    rename user script = /​usr/​sbin/​smbldap-usermod -r '​%unew'​ '​%uold'​
 +    ​
 +    # Тюнинг сокета
 +    socket options = TCP_NODELAY SO_SNDBUF=8192 SO_RCVBUF=8192 SO_KEEPALIVE
 +
 +[home]
 +    comment = Home Directories
 +    path = /home/%U
 +    read only = no
 +    public = no
 +    writable = yes
 +    create mask = 0600
 +    browseable = no
 +    directory mask = 0700
 +    ​
 +[netlogon]
 +   ​comment = Network Logon Service
 +   path = /​var/​lib/​samba/​netlogon
 +   guest ok = yes
 +   ​writable = yes
 +   write list = "​@SYSADM\Domain admins"​
 +   ​browseable = no
 +
 +[IPC$]
 +   path = /tmp
 +</​code>​
 +
 +Задаем пароль для доменного пользователя,​ которого мы указали в ldap admin dn
 +<cli>
 +# smbpasswd -w 1234567
 +Setting stored password for "​cn=root,​dc=sys-adm,​dc=local"​ in secrets.tdb
 +</​cli>​
 +
 +<​note>​Так как пароль сохраняется в файле secrets.tdb,​ то после смены пользователя,​ указанного в ldap admin dn, необходимо будет ввести новый пароль с помощью этой же команды.</​note>​
 +
 +Сохраняем доменный SID
 +<cli>
 +# net getdomainsid
 +SID for local machine PDC is: S-1-5-21-3476215178-4255336796-2547748680
 +SID for domain SYSADM is: S-1-5-21-206255134-223837211-2022137911
 +</​cli>​
 +
 +Запускаем samba
 +<cli>
 +# service smb start
 +Starting SMB services: ​                                    ​[ ​ OK  ]
 +Starting NMB services: ​                                    ​[ ​ OK  ]
 +</​cli>​
 +
 +Необходимо подождать около минуты,​ пока пройдут выборы. Узнать о том, что наш PDC стал локальным и доменным мастер браузером можно с помощью следующей команды
 +<cli>
 +# nmblookup '​SYSADM#​1b'​ '​SYSADM#​1c'​
 +added interface eth0 ip=192.168.127.2 bcast=192.168.127.255 netmask=255.255.255.0
 +Socket opened.
 +querying SYSADM on 192.168.127.255
 +Got a positive name query response from 192.168.127.2 ( 192.168.127.2 )
 +192.168.127.2 SYSADM<​1b>​
 +querying SYSADM on 192.168.127.255
 +Got a positive name query response from 192.168.127.2 ( 192.168.127.2 )
 +192.168.127.2 SYSADM<​1c>​
 +</​cli>​
 +
 +После этого запускаем winbind
 +<cli>
 +# service winbind start
 +Starting Winbind services: ​                                ​[ ​ OK  ]
 +</​cli>​
 +
 +Вводим наш сервер в домен. В принципе в параметре -U можно указать любого пользователя,​ у которого есть право на добавление компьютеров в домен.
 +<cli>
 +# net rpc join -U sysadm-da MEMBER
 +Enter sysadm-da'​s password:
 +Joined domain SYSADM.
 +</​cli>​
 +
 +После добавления PDC в домен у учетной записи PDC$ должен появиться новый атрибут sambaNTPassword
 +<cli>
 +# smbldap-usershow PDC$ 
 +dn: uid=PDC$,​ou=Computers,​dc=sys-adm,​dc=local
 +cn: PDC$
 +uid: PDC$
 +uidNumber: 10000
 +gidNumber: 515
 +homeDirectory:​ /​nonexistent
 +loginShell: /bin/false
 +description:​ Computer
 +gecos: Computer
 +objectClass:​ posixAccount,​account,​sambaSamAccount
 +sambaLogonTime:​ 0
 +sambaLogoffTime:​ 2147483647
 +sambaKickoffTime:​ 2147483647
 +sambaPwdCanChange:​ 0
 +sambaPwdMustChange:​ 2147483647
 +sambaSID: S-1-5-21-206255134-223837211-2022137911-10001
 +sambaPrimaryGroupSID:​ S-1-5-21-206255134-223837211-2022137911-515
 +displayName:​ PDC$
 +sambaDomainName:​ SYSADM
 +sambaNTPassword:​ 51A8827A71C511FF556408867FB3330F
 +sambaPwdLastSet:​ 1337889271
 +sambaAcctFlags:​ [S          ]
 +</​cli>​
 +
 +Проверяем информацию о домене
 +<cli>
 +# net rpc info -U sysadm-da
 +Enter sysadm-da'​s password:
 +Domain Name: SYSADM
 +Domain SID: S-1-5-21-206255134-223837211-2022137911
 +Sequence number: 1337889347
 +Num users: 2
 +Num domain groups: 4
 +Num local groups: 0
 +</​cli>​
 +
 +Производим базовые проверки
 +<cli>
 +# wbinfo -p
 +Ping to winbindd succeeded
 +
 +# wbinfo -t
 +checking the trust secret for domain SYSADM via RPC calls succeeded
 +
 +# wbinfo -i sysadm-da
 +sysadm-da:​*:​0:​0:​sysadm-da:/​home/​sysadm-da:/​bin/​false
 +
 +# wbinfo -g | grep "​domain"​
 +domain admins
 +domain users
 +domain guests
 +domain computers
 +</​cli>​
 +
 +Проверяем аутентификацию через демон winbind
 +<cli>
 +# wbinfo -a sysadm-da%1234567
 +plaintext password authentication succeeded
 +challenge/​response password authentication succeeded
 +</​cli>​
 +
 +Проверяем преобразование SID -> uid и uid -> SID
 +<cli>
 +# wbinfo --name-to-sid=SYSADM\\sysadm-da
 +S-1-5-21-206255134-223837211-2022137911-500 User (1)
 +
 +# wbinfo --sid-to-uid=S-1-5-21-206255134-223837211-2022137911-500
 +0
 +</​cli>​
 +
 +Добавляем запуск самбы при старте системы
 +<cli>
 +# chkconfig --level 35 smb on
 +# chkconfig --level 35 winbind on
 +</​cli>​
 +
 +===== Тестирование samba =====
 +В качестве теста попробуем ввести две машины в наш новый домен, одна из них будет Windows XP Professional SP3, а вторая Windows 7 Professional SP1. Для Win7 мы создадим учетную запись командой,​ в то время как для Win XP запись создатся автоматически.
 +
 +Собственно процедура ввода в домен Windows XP стандартная. В свойствах ситемы на вкладке '​Имя компьютера'​ выбираем Изменить и в появившемся диалоговом окне вводит имя домена,​ в нашем случае SYSADM
 +
 +{{ :​net:​pdc_ldap-1.png?​direct |}}
 +
 +После нажатия конпки Ok появится диалоговое окно с запросом учетных данных пользователя,​ обладающего правами на добавление компьютера в домен, в нашем случае это пользователь sysadm-da, который является администратором домена и был создан автоматически при выполнении скрипта smbldap-populate.
 +
 +{{ :​net:​pdc_ldap-2.png?​direct |}}
 +
 +После того, как компьютер будет успешно добавлен на экране отобразится соответствующее информационное окно
 +
 +{{ :​net:​pdc_ldap-3.png?​direct |}}
 +
 +После этого необходимо перезагрузить компьютер и при вводе логина и пароля в поле '​Вход в' выбрать наш домен
 +
 +{{ :​net:​pdc_ldap-4.png?​direct |}}
 +
 +Если посмотреть свойства системы,​ то будет видно, что компьютер теперь является участником домена
 +
 +{{ :​net:​pdc_ldap-5.png?​direct |}}
 +
 +Если открыть '​Мой компьютер',​ то будет виден подключенный сетевой диск с домашней папкой пользователя.
 +
 +{{ :​net:​pdc_ldap-6.png?​direct |}}
 +
 +В сетевом окружении должен быть виден наш домен SYSADM
 +
 +{{ :​net:​pdc_ldap-7.png?​direct |}}
 +
 +Внутри которого должны быть видны 3 компьютера - pdc, windows xp и windows 7
 +
 +{{ :​net:​pdc_ldap-8.png?​direct |}}
 +
 +А так выглядят утилиты User Manager и Server Manager соответственно из архива srvtools.zip
 +
 +{{ :​net:​pdc_ldap-9.png?​direct |}}
 +
 +{{ :​net:​pdc_ldap-10.png?​direct |}}
 +
 +Ниже привожу аналогичные свойства,​ но только для Windows 7. Как я уже писал выше, для компьютера на базе Windows 7 мы создадим учетную запись сами, из командной строки
 +
 +<cli>
 +# smbldap-useradd -W -g 515 Win7
 +# smbldap-usershow Win7$ 
 +dn: uid=Win7$,​ou=Computers,​dc=sys-adm,​dc=local
 +cn: Win7$
 +uid: Win7$
 +uidNumber: 10001
 +gidNumber: 515
 +homeDirectory:​ /​nonexistent
 +loginShell: /bin/false
 +description:​ Computer
 +gecos: Computer
 +objectClass:​ posixAccount,​account,​sambaSamAccount
 +sambaLogonTime:​ 0
 +sambaLogoffTime:​ 2147483647
 +sambaKickoffTime:​ 2147483647
 +sambaPwdCanChange:​ 0
 +sambaPwdMustChange:​ 2147483647
 +sambaAcctFlags:​ [W          ]
 +sambaSID: S-1-5-21-206255134-223837211-2022137911-10003
 +sambaPrimaryGroupSID:​ S-1-5-21-206255134-223837211-2022137911-515
 +displayName:​ Win7$
 +sambaDomainName:​ SYSADM
 +sambaNTPassword:​ 5E415440CC8A65306EF7A88D88D8B3C3
 +sambaPwdLastSet:​ 1338147705
 +
 +# smbldap-usershow WINXPSP3$ ​
 +dn: uid=WINXPSP3$,​ou=Computers,​dc=sys-adm,​dc=local
 +uid: WINXPSP3$
 +sambaSID: S-1-5-21-206255134-223837211-2022137911-10002
 +sambaAcctFlags:​ [W          ]
 +objectClass:​ sambaSamAccount,​account,​posixAccount
 +cn: WINXPSP3$
 +uidNumber: 10000
 +gidNumber: 513
 +homeDirectory:​ /​home/​SYSADM/​SMB_workstations_home
 +loginShell: /bin/false
 +sambaNTPassword:​ DFFC9CCB77ABA78CA5F1DEB0E69E8AEB
 +sambaPwdLastSet:​ 1338046413
 +</​cli>​
 +
 +Как видно из вывода,​ запись для компьютера Win7 содержит намного больше полей, чем для WINXPSP3. В принципе обе записи являются рабочими,​ но я предпочитаю создавать записи для рабочих станций из командной строки.
 +
 +{{ :​net:​pdc_ldap-11.png?​direct |}}
 +
 +{{ :​net:​pdc_ldap-12.png?​direct |}}
 +
 +{{ :​net:​pdc_ldap-13.png?​direct |}}
 +
 +{{ :​net:​pdc_ldap-14.png?​direct |}}
 +
 +На этом настройку можно считать завершенной.
 +
 +<note important>​Перед тем, как вводить в домен машины под управлением Windows 7, вам необходимо добавить в реестр данные с файла samba3-win7.reg,​ который доступен в конце статьи. После внесения данных в реестр,​ необходимо перегрузить компьютер и после этого выполнять процедуру ввода в домен, которая аналогична процедуре для Windows XP.</​note>​
 +
 +===== Windows 8 =====
 +В связи со скорым выходом новой ОС Windows 8 решил проверить работу данной ОС в домене samba. Как и ожидалось никаких проблем с вводом Windows 8 в домен не оказалось. Для теста использовалась Windows 8 Consumer Preview. Ниже привожу несколько скриншотов
 +
 +{{ :​net:​pdc_ldap-15.png?​direct |}}
 +
 +{{ :​net:​pdc_ldap-16.png?​direct |}}
 +
 +{{ :​net:​pdc_ldap-17.png?​direct |}}
 +
 +{{ :​net:​pdc_ldap-18.png?​direct |}}
 +
 +{{ :​net:​pdc_ldap-19.png?​direct |}}
 +
 +===== Примечание =====
 +Сегодня,​ в первые за 5 лет использования в качестве КД samba, столкнулся с невозможностью зайти на компьютер под доменой учетной записью. При попытке входа на рабочую станцию выдается сообщение с ошибкой - "**The local Session Manager service failed the logon. Data area passed to a system call is too small**"​. Немного поискав в интернете обнаружил,​ что я не одинок - https://​bugzilla.samba.org/​show_bug.cgi?​id=7343 . А здесь собственно дается [[http://​social.technet.microsoft.com/​Forums/​en/​w7itprogeneral/​thread/​738de1c9-494a-43ac-bef9-b03804ce43ca|пояснение]] - если в двух словах,​ то длина учетной записи,​ а в нашем случае длина поля uid, должна быть меньше 20 символов.
 +
 +===== Дополнительные файлы =====
 +  * {{:​net:​samba3-win7.reg| Файл реестра,​ необходимый для ввода Windows 7 в домен samba}}
 +  * {{:​net:​srvtools.zip| GUI утилиты,​ необходимые для управление пользователями и доменом}}
net/samba-pdc-ldap.txt · Последние изменения: 2015/07/01 12:31 — root