Домен/Windows: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
 
(не показано 28 промежуточных версий 3 участников)
Строка 1: Строка 1:
{{Stub}}
Использование домена для аутентификации компьютеров с Windows. ALT-домен можно использовать для следующих возможностей:
* аутентификация пользователей для входа в систему;
* предоставление файловых ресурсов (общего ресурса и домашней папки с сервера) без ввода дополнительного пароля;


Использование домена для аутентификации компьютеров с Windows.
{{Attention|Данная инструкция позволяет настроить Samba в качестве NT Domain для аутентификации Windows XP. Использование Samba в качестве полноценной замены Active Directory возможно после адаптации домена к [[Домен/SambaAsAD|Samba AD DC]]}}


<div style="border: 1px solid red;padding: 5px">
Примечание: в конфигурации по умолчанию не предусмотрена работа с профилями.
'''Внимание!''' Данная инструкция позволяет настроить Samba в качестве NT Domain для аутентификации Windows XP. Использование Samba в качестве замены Active Direcory возможно после появления стабильной версии Samba 4.</div>


Предполагается, что [[Домен|домен ALT Linux]] создан должным образом и работает.
Возможность ввода Windows в [[Домен|ALT-домен]] появилась с {{package|alterator-net-domain|0.4-alt13}} и {{package|ldap-user-tools|0.8.1-alt1}}.


= Настройка сервера =
= Настройка на сервере =


1. В секции {{term|[global]}} файла {{path|/etc/samba/smb.conf}} добавьте:
[[Centaurus:_домен|Создайте домен]] в модуле «Домен». При показе состояния домена в этом модуле показывается рабочая группа:
<source lang="ini">
Samba: OK (TEST.ALTLINUX)
local master = yes
preferred master = yes
domain master = yes
domain logons = yes
add user script = /usr/sbin/ldap-useradd "%u"
delete user script = /usr/sbin/ldap-userdel "%u"
add group script = /usr/sbin/ldap-groupadd -p "%g"
delete group script = /usr/sbin/ldap-userdel "%g"
add user to group script = /usr/sbin/ldap-groupmod -m "%u" "%g"
delete user from group script = /usr/sbin/ldap-groupmod -x "%u" "%g"
set primary group script = /usr/sbin/ldap-usermod -g "%g" "%u"
add machine script = /usr/sbin/ldap-useradd -w -i "%u"
ldap machine suffix = ou=Computers
encrypt passwords = yes</source>


Внимание! При использовании домена в Windows будет использоваться имя рабочей группы '''WORKGROUP''' (параметр {{term|workgroup}} в /etc/samba/smb.conf). Вы можете поменять его на имя ALT-домена:
{{Attention|Во избежание проблем с вводом Windows имя домена нужно делать ''не более 15 символов''[http://en.wikipedia.org/wiki/NetBIOS#NetBIOS_name].}}
<source lang=Bash>SMBDOMAIN="$(system-auth status | cut -f2 -d' ' | sed -e 's/dc=//g;s/,/./g;s/\(.*\)/\U\1/')"
sed -i "/^[global]$/a workgroup = ${SMBDOMAIN}" /etc/samba/smb.conf</source>


<div style="border: 1px solid red;padding: 5px">
В скобках показывается установленное имя домена для Windows.
'''Внимание!''' Во избежание проблем с вводом Windows имя рабочей группы нужно делать ''не более 15 символов''[http://en.wikipedia.org/wiki/NetBIOS#NetBIOS_name].</div>


Если хотите автоматически подключать общую папку (ресурс {{term|share}} на сервере как диск {{term|S:}}), то выполните следующее:
= Права доступа =
<source lang=Bash>echo "net use s: \\\\$(hostname -s)\share" | sed 's/$/\r/' > /etc/samba/netlogon.bat
sed -i "/^[global]$/a logon script = /etc/samba/netlogon.bat" /etc/samba/smb.conf</source>


2. Перезапустите службу smb и запустите службу nmb:
* Для того, чтобы завести пользователей в домен под Windows требуются права администратора домена. Эти права имеют пользователи, входящие в группу {{term|admins}} в модуле «Группы».
service smb restart
* Для пользователей, входящих в группу Domain Users (или группу {{term|users}} в LDAP) имеется доступ на диски
service nmb start
** S: общая папка на сервере (ресурс {{path|share}})
** Z: (домашняя папка пользователя на сервере с создаваемым подкаталогом {{path|profile}}).


Службу nmb нужно добавить в автоматический запуск:
По умолчанию в эту группу добавляются все новые пользователи.
chkconfig nmb on


3. Обновите ''ldap-user-tools'' до версии 0.8.0 или более позднее.
= Настройка на клиенте =


= Создание групп и выдача административных привилегий =
1. Нажмите правой кнопкой мыши по значку {{cmd|«Мой компьютер»}} и выберите пункт {{cmd|«Свойства»}} (быстро этот можно сделать, нажав {{cmd|Win+Pause}}).


1. Сначала нужно назначить пользователя-администратора. Для прав на выдачу привилегий у него должен быть uid равный 0. Тогда он может назначать привилегии через {{cmd|net rpc rights}}. Заведите временно пользователя в LDAP (например, admin), задайте ему пароль и поменяйте uidNumber так:
<center>[[Изображение:Windows-domain-1.png]]</center>
<source lang=Bash>ADMINUID="$(ldap-getent passwd admin uidNumber)"
echo "uidNumber:0" | ldap-usermod replace admin</source>


2. В LDAP создайте группы через веб-интерфейс или из командной строки:
2. В появившемся окне перейдите на вкладку {{cmd|«Имя компьютера»}} и нажмите кнопку {{cmd|«Изменить…»}}
ldap-groupadd Admins
ldap-groupadd Users
ldap-groupadd Guests
ldap-groupadd Computers


Эти группы понадобятся для привязки к группам домена согласно таблице:
<center>[[Изображение:Windows-domain-2.png]]</center>
{|class="standard"
!Группа LDAP
!Группа Windows
!Идентификатор в Windows
|-
|{{term|Admins}}||{{term|Domain Admins}}||512
|-
|{{term|Users}}||{{term|Domain Users}}||513
|-
|{{term|Guests}}||{{term|Domain Guests}}||514
|-
|{{term|Computers}}||{{term|Domain Computers}}||515
|}


Добавьте туда пользователей через веб-интерфейс или из командной строки:
3. В окне «Изменение имени компьютера» установите переключатель на пункт {{cmd|Является членом домена}} и введите имя домена (точное имя домена можно посмотреть у пункта Samba в разделе «Домен» Центра управления сервера ALT Linux). Затем нажмите кнопку {{cmd|«OK»}}.
echo 'memberUid:cas' | ldap-groupmod add Admins


3. Привяжите группы LDAP к группам домена
<center>[[Изображение:Windows-domain-3.png]]</center>
net groupmap add rid=512 ntgroup="Domain Admins" unixgroup=Admins
net groupmap add rid=513 ntgroup="Domain Users" unixgroup=Users
net groupmap add rid=514 ntgroup="Domain Guests" unixgroup=Guests
net groupmap add rid=515 ntgroup="Domain Computers" unixgroup=Computers


Проверка:
4. Для ввода компьютера в домен потребуется указать имя и пароль пользователя, имеющего права вводить в домен. На сервере это пользователи группы {{term|admins}}. Введите имя в поле «Пользователь» и пароль этого пользователя в поле «Пароль». Затем нажмите кнопку {{cmd|«OK»}}.
# net rpc group members 'Domain Admins' -Uadmin%12345
WORKGROUP\cas


''Примечание:'' Обратите внимание, пароль можно указывать у имени пользоватeля через «%».
<center>[[Изображение:Windows-domain-4.png]]</center>


4. Выдайте привилегии для группы {{term|Domain Admins}}:
5. При указании правильных данных появится диалоговое окно, подтверждающее регистрацию компьютера в домене.
net rpc rights grant "Domain Admins" SeMachineAccountPrivilege SePrintOperatorPrivilege \
SeAddUsersPrivilege SeDiskOperatorPrivilege SeRemoteShutdownPrivilege -Uadmin%12345


Проверка (просмотр всех привилегий по группам):
<center>[[Изображение:Windows-domain-5.png]]</center>
net rpc rights list accounts -Uadmin


''Примечание'': обратите внимание, что для заведения компьютера в домен нужно входить в группу с привилегией '''SeMachineAccountPrivilege'''.
6. '''Перезагрузитесь.'''


5. Чтобы не было коллизий с системным пользователем root, после операции по назначению группы и привилегий этого пользователя нужно удалить или восстановить его UID:
7. В окне входа нажмите кнопку {{cmd|«Параметры >>»}}
echo "uidNumber:$ADMINUID" | ldap-usermod replace admin


6. Проверяем вход в домен администратора cas:
<center>[[Изображение:Windows-domain-6.png]]</center>
# net join -Ucas%123
Joined domain WORKGROUP.


Примечание: проверять вход в домен на сервере следует от пользователя, входящего в группу 'Domain Admins'. Остальным это запрещено. Список зарегистрированных компьютеров можно посмотреть командой: <pre>ldap-getent ws</pre>
8. В выпадающем списке «Вход в» выберите свой домен.


Всё в порядке, можно вводить компьютеры с Windows в наш домен.
<center>[[Изображение:Windows-domain-7.png]]</center>
 
= Права доступа =


По умолчанию разрешено входить всех доступным пользователям. Посмотреть их список на сервере можно командой:
9. Введите имя зарегистрированного на сервере пользователя в поле «Пользователь» и пароль этого пользователя в поле «Пароль». Затем нажмите кнопку {{cmd|«OK»}}.
  # net sam list users


Для пользователей, входящих в группу Domain Users (или группу Users в LDAP) имеется доступ на диск Z: (домашняя папка пользователя на сервере с создаваемым подкаталогом {{path|profile}}).
<center>[[Изображение:Windows-domain-8.png]]</center>


Список входящих в эту группу:
При указании правильного имени пользователя и пароля вы войдёте в систему и можете работать.
# net sam listmem 'Domain Users'


= Ввод компьютера с Windows в домен =
= Вход в ALT-домен систем на Windows 7/8 =


{{todo|Сделать инструкцию со снимками экрана}}
Инструкция на сайте Samba: [http://wiki.samba.org/index.php/Windows7 http://wiki.samba.org/index.php/Windows7]


= Решение проблем =
Для входа в ALT-домен компьютеров под управлением Windows 7/8 запустите {{prg|regedit}}, найдите раздел параметров LanManWorkstation и добавьте два параметра (DWORD 32бита):


== Если что-то пошло не так... ==
<source lang="reg">[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters]
Если в результате экспериментов сломались привилегии или что-нибудь ещё, нужно очистить внутренние базы Samba. Выполните
"DNSNameResolutionRequired"=dword:00000000
rm -f /var/lib/samba/*.tdb
"DomainCompatibilityMode"=dword:00000001</source>
service smb restart


== Отладка Samba ==
[https://bugzilla.samba.org/attachment.cgi?id=4988&action=view Скачать файл .reg для установки этих параметров]
Полезно включить уровень отладки 5 в /etc/samba/smb.conf:
log level = 5


После этого необходимо перечитать конфигурацию:
'''Внимание!''' Перезагрузите Windows или перезапустите службу LanmanWorkstation после добавления этих параметров.
service smb reload


Подробный журнал работы Samba вы можете найти в файле {{path|/var/log/samba/log.main}}.
Если вы изменяли параметры Netlogon, проверьте, чтобы было установлено


== Смена имени сервера Samba ==
<source lang="reg">[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]
Так как при создании нового пользователя в домене для него прописывается SID, при смене имени сервера серверная часть SID меняется и пользователи со старыми SID уже недоступны, показывается примерно такое
RequireSignOrSeal = 1
# pdbedit -L
RequireStrongKey = 1</source>
sid S-1-5-21-694984405-1863599809-1435972588-11002 does not belong to our domain


При этом новые пользователи заводятся уже с правильным SID. Для исправления ситуации со старыми пользователями нужно выполнить следующий скрипт: <source lang=Bash>
После этого можно зарегистрироваться штатным способом.
nsid=$(net getlocalsid | cut -f2 -d: | tr -d ' ')
ldap-getent passwd \* uid SambaSID | sed 's/:.*-/ /' | while read u id;do echo "SambaSID:$nsid-$id" | ldap-usermod replace "$u";done</source>


После этого команда <pre>pdbedit -L</pre> должна показать имена всех пользователей.
Для снижения времени входа на Windows 7 рекомендуется поправить параметры:


== Нюансы реализации ==
<source lang="reg">[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]
# Для заведения компьютеров в домен недостаточно типа sambaSAMAccount, потребовалось добавить тип posixAccount (для поиска имени компьютера используется {{cmd|getent passwd}}, хотя это совершенно странно), заводить одноимённую группу и сделать её основной для posixAccount.
"SlowLinkDetectEnabled"=dword:00000000
# Для заведения доверенных компьютеров необходимо использовать {{cmd|ldap-useradd -w -i}}. Имя компьютера в таком случае содержит в конце символ {{term|$}}.
"DeleteRoamingCache"=dword:00000001
# Длина имени workgroup не должна превышать 15 символов (см. http://en.wikipedia.org/wiki/NetBIOS#NetBIOS_name)
"WaitForNetwork"=dword:00000000
"CompatibleRUPSecurity"=dword:00000001</source>


= Литература =
= Известные проблемы =
* [http://forum.altlinux.org/index.php/topic,3747.0.html Обсуждение ввода машин с Windows в домен ALT Linux]
# Для Windows 7/8 требуется добавлять дополнительные параметры в реестр
* [http://www.opennet.ru/base/net/samba_pdc_slackware.txt.html SAMBA PDC - установка, настройка, управление (Slackware)]
# Не реализована поддержка профилей [http://wiki.samba.org/index.php/Samba_%26_Windows_Profiles http://wiki.samba.org/index.php/Samba_%26_Windows_Profiles]
* [http://www.linux.org.ru/forum/admin/6798226 Samba PDC LDAP добавление компов в домен]
# При входе в домен с виндовых машин, открывается блокнот с файлом desktop.ini. Этот файл во всех меню "Пуск", запускается из автозагрузки. Блокнот не открывается только на той машине, с которой был произведёт первый вход в домен этого пользователя. [http://forum.altlinux.org/index.php/topic,3747.msg194041.html#msg194041]


{{todo|# Разобрать и автоматизировать заведение дополнительных параметров Samba
= Ссылки =
# <s>Доработать ldap-useradd -w -i</s>
* [[Домен/Windows/Manual|Настройка NT домена вручную]]
# <s>Убрать создаваемые компьютеры в alterator-ldap-users</s>
# Убрать создаваемые группы в alterator-ldap-users и alterator-ldap-groups
# Сделать скрипт по первичному заведению администраторов и групп
# Проверить на ввод компьютеры с Windows 7 и Windows 8
# Документировать изменения}}


[[Категория:Руководства]][[Категория:Домен]]
{{Category navigation|title=Домен|category=Домен|sortkey={{SUBPAGENAME}}}}

Текущая версия от 17:55, 2 июля 2015

Использование домена для аутентификации компьютеров с Windows. ALT-домен можно использовать для следующих возможностей:

  • аутентификация пользователей для входа в систему;
  • предоставление файловых ресурсов (общего ресурса и домашней папки с сервера) без ввода дополнительного пароля;
Внимание! Данная инструкция позволяет настроить Samba в качестве NT Domain для аутентификации Windows XP. Использование Samba в качестве полноценной замены Active Directory возможно после адаптации домена к Samba AD DC


Примечание: в конфигурации по умолчанию не предусмотрена работа с профилями.

Возможность ввода Windows в ALT-домен появилась с alterator-net-domain-0.4-alt13[1] и ldap-user-tools-0.8.1-alt1[2] .

Настройка на сервере

Создайте домен в модуле «Домен». При показе состояния домена в этом модуле показывается рабочая группа:

Samba: OK (TEST.ALTLINUX)
Внимание! Во избежание проблем с вводом Windows имя домена нужно делать не более 15 символов[3].


В скобках показывается установленное имя домена для Windows.

Права доступа

  • Для того, чтобы завести пользователей в домен под Windows требуются права администратора домена. Эти права имеют пользователи, входящие в группу admins в модуле «Группы».
  • Для пользователей, входящих в группу Domain Users (или группу users в LDAP) имеется доступ на диски
    • S: общая папка на сервере (ресурс share)
    • Z: (домашняя папка пользователя на сервере с создаваемым подкаталогом profile).

По умолчанию в эту группу добавляются все новые пользователи.

Настройка на клиенте

1. Нажмите правой кнопкой мыши по значку «Мой компьютер» и выберите пункт «Свойства» (быстро этот можно сделать, нажав Win+Pause).

Windows-domain-1.png

2. В появившемся окне перейдите на вкладку «Имя компьютера» и нажмите кнопку «Изменить…»

Windows-domain-2.png

3. В окне «Изменение имени компьютера» установите переключатель на пункт Является членом домена и введите имя домена (точное имя домена можно посмотреть у пункта Samba в разделе «Домен» Центра управления сервера ALT Linux). Затем нажмите кнопку «OK».

Windows-domain-3.png

4. Для ввода компьютера в домен потребуется указать имя и пароль пользователя, имеющего права вводить в домен. На сервере это пользователи группы admins. Введите имя в поле «Пользователь» и пароль этого пользователя в поле «Пароль». Затем нажмите кнопку «OK».

Windows-domain-4.png

5. При указании правильных данных появится диалоговое окно, подтверждающее регистрацию компьютера в домене.

Windows-domain-5.png

6. Перезагрузитесь.

7. В окне входа нажмите кнопку «Параметры >>»

Windows-domain-6.png

8. В выпадающем списке «Вход в» выберите свой домен.

Windows-domain-7.png

9. Введите имя зарегистрированного на сервере пользователя в поле «Пользователь» и пароль этого пользователя в поле «Пароль». Затем нажмите кнопку «OK».

Windows-domain-8.png

При указании правильного имени пользователя и пароля вы войдёте в систему и можете работать.

Вход в ALT-домен систем на Windows 7/8

Инструкция на сайте Samba: http://wiki.samba.org/index.php/Windows7

Для входа в ALT-домен компьютеров под управлением Windows 7/8 запустите regedit, найдите раздел параметров LanManWorkstation и добавьте два параметра (DWORD 32бита):

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters]
"DNSNameResolutionRequired"=dword:00000000
"DomainCompatibilityMode"=dword:00000001

Скачать файл .reg для установки этих параметров

Внимание! Перезагрузите Windows или перезапустите службу LanmanWorkstation после добавления этих параметров.

Если вы изменяли параметры Netlogon, проверьте, чтобы было установлено

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]
RequireSignOrSeal = 1
RequireStrongKey = 1

После этого можно зарегистрироваться штатным способом.

Для снижения времени входа на Windows 7 рекомендуется поправить параметры:

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System]
"SlowLinkDetectEnabled"=dword:00000000
"DeleteRoamingCache"=dword:00000001
"WaitForNetwork"=dword:00000000
"CompatibleRUPSecurity"=dword:00000001

Известные проблемы

  1. Для Windows 7/8 требуется добавлять дополнительные параметры в реестр
  2. Не реализована поддержка профилей http://wiki.samba.org/index.php/Samba_%26_Windows_Profiles
  3. При входе в домен с виндовых машин, открывается блокнот с файлом desktop.ini. Этот файл во всех меню "Пуск", запускается из автозагрузки. Блокнот не открывается только на той машине, с которой был произведёт первый вход в домен этого пользователя. [4]

Ссылки