Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
wiki:руководство_по_ubuntu_server:сеть_windows:samba_as_domain_controller [2012/09/20 12:11] создано |
wiki:руководство_по_ubuntu_server:сеть_windows:samba_as_domain_controller [2012/09/20 17:24] (текущий) [Ссылки] |
||
---|---|---|---|
Строка 8: | Строка 8: | ||
=====Samba как контроллер домена===== | =====Samba как контроллер домена===== | ||
- | Although it cannot act as an Active Directory Primary Domain Controller (PDC), a Samba server can be configured to appear as a Windows NT4-style domain controller. A major advantage of this configuration is the ability to centralize user and machine credentials. Samba can also use multiple backends to store the user information. | + | Хотя он не может представлять из себя первичный контроллер домена (PDC) Active Directory, Samba сервер может быть настроен как контроллер домена Windows NT4. Основным преимуществом такой конфигурации является возможность централизовать учетные записи пользователей и машин. Кроме того Samba может использовать различные базы данных для хранения информации о пользователях. |
- | + | ||
- | Primary Domain Controller | + | |
- | Backup Domain Controller | + | |
- | Resources | + | |
====Первичный контроллер домена==== | ====Первичный контроллер домена==== | ||
- | This section covers configuring Samba as a Primary Domain Controller (PDC) using the default smbpasswd backend. | + | В этом разделе рассматривается настройка Samba в качестве первичного контроллера домена (PDC) с использованием **smbpasswd** в качестве хранилища данных. |
- | First, install Samba, and libpam-smbpass to sync the user accounts, by entering the following in a terminal prompt: | + | 1. Первым делом установим Samba и libpam-smbpass для синхронизации учетных записей пользователей, введя в терминале: |
+ | <code>sudo apt-get install samba libpam-smbpass</code> | ||
- | sudo apt-get install samba libpam-smbpass | + | 2. Далее настроим Samba редактированием /etc/samba/smb.conf. Режим безопасности следует установить **user**, а рабочую группу следует назвать в соответствии с именем вашей организации: |
+ | <code> | ||
+ | workgroup = EXAMPLE | ||
+ | ... | ||
+ | security = user | ||
+ | </code> | ||
- | Next, configure Samba by editing /etc/samba/smb.conf. The security mode should be set to user, and the workgroup should relate to your organization: | + | 3. В закомментированной секции %%"Domains"%% добавьте или раскомментируйте следующее: |
+ | <code> | ||
+ | domain logons = yes | ||
+ | logon path = \\%N\%U\profile | ||
+ | logon drive = H: | ||
+ | logon home = \\%N\%U | ||
+ | logon script = logon.cmd | ||
+ | add machine script = sudo /usr/sbin/useradd -N -g machines -c Machine -d /var/lib/samba -s /bin/false %u | ||
+ | </code> | ||
+ | <note>Если вы не собираетесь использовать перемещаемые профили (Roaming Profiles), оставьте опции **//logon home//** и **//logon path//** закомментированными.</note> | ||
- | workgroup = EXAMPLE | + | -- **domain logons**: заставляет сервис netlogon взаимодействовать с Samba как с контроллером домена. |
- | ... | + | -- **logon path**: помещает пользовательский профиль Windows в его домашний каталог. Также существует возможность настроить разделяемый ресурс **[profiles]**, поместив все профили в один каталог. |
- | security = user | + | -- **logon drive**: определяет локальный путь для домашнего каталога. |
+ | -- **logon home**: определяет местоположение домашнего каталога. | ||
+ | -- **logon script**: определяет сценарий, который должен быть выполнен один раз при входе пользователя. Сценарий должен быть помещен в разделяемый ресурс **[netlogon]**. | ||
+ | -- **add machine script**: сценарий, который будет автоматически запущен при создании доверительной учетной записи машины при добавлении рабочей станции в домен. | ||
+ | .. В этом примере требуется создать группу **machines** с использованием утилиты **addgroup**. Подробности смотрите в разделе [[wiki:руководство_по_ubuntu_server:безопасность:user_management#добавление_и_удаление_пользователей|Добавление и удаление пользователей]]. | ||
- | In the commented “Domains” section add or uncomment the following (the last line has been split to fit the format of this document): | + | 4. Раскомментируйте ресурс **[homes]** чтобы указать домашний каталог для входа: |
+ | <code> | ||
+ | [homes] | ||
+ | comment = Home Directories | ||
+ | browseable = no | ||
+ | read only = no | ||
+ | create mask = 0700 | ||
+ | directory mask = 0700 | ||
+ | valid users = %S | ||
+ | </code> | ||
- | domain logons = yes | + | 5. При настройке Samba в качестве доменного контроллера требуется настроить ресурс [netlogon]. Для включения ресурса раскомментируйте: |
- | logon path = \\%N\%U\profile | + | <code> |
- | logon drive = H: | + | [netlogon] |
- | logon home = \\%N\%U | + | comment = Network Logon Service |
- | logon script = logon.cmd | + | path = /srv/samba/netlogon |
- | add machine script = sudo /usr/sbin/useradd -N -g machines -c Machine -d | + | guest ok = yes |
- | /var/lib/samba -s /bin/false %u | + | read only = yes |
+ | share modes = no | ||
+ | </code> | ||
+ | <note>Оригинальный путь для ресурса **netlogon** /home/samba/netlogon, но по стандарту иерархии файловых систем (FHS) правильным расположением для данных, касающихся данной системы, является каталог /srv.</note> | ||
- | If you wish to not use Roaming Profiles leave the logon home and logon path options commented. | + | 6. Теперь создадим каталог netlogon и пустой (пока) файл сценария logon.cmd: |
+ | <code> | ||
+ | sudo mkdir -p /srv/samba/netlogon | ||
+ | sudo touch /srv/samba/netlogon/logon.cmd | ||
+ | </code> | ||
+ | Вы можете ввести любые обычные команды сценария входа для Windows в logon.cmd чтобы настроить клиентское окружение. | ||
- | domain logons: provides the netlogon service causing Samba to act as a domain controller. | + | 7. Перезапустим Samba чтобы запустить контроллер нового домена: |
+ | <code> | ||
+ | sudo restart smbd | ||
+ | sudo restart nmbd | ||
+ | </code> | ||
- | logon path: places the user's Windows profile into their home directory. It is also possible to configure a [profiles] share placing all profiles under a single directory. | + | 8. Наконец существует немного дополнительных команд, требуемых для установки соответствующих прав. |
- | logon drive: specifies the home directory local path. | + | С заблокированным по умолчанию суперпользователем (root), чтобы присоединить рабочую станцию к домену, системная группа должна отображаться на Windows группу **Domain Admins**. С использованием утилиты **net** в терминале введите: |
+ | <code>sudo net groupmap add ntgroup="Domain Admins" unixgroup=sysadmin rid=512 type=d</code> | ||
+ | <note>Замените **//sysadmin//** на ту группу, которая вам подходит. Кроме того, пользователь, используемый для присоединения к домену, должен входить в группу **sysadmin**, также как и в системную группу **admin**. Группа **admin** позволяет использовать команду sudo. | ||
- | logon home: specifies the home directory location. | + | Если пользователь пока не имеет учетных записей Samba, вы можете добавить их с помощью утилиты **smbpasswd**, заменив имя пользователя **//sysadmin//** на требуемое: |
+ | <code>sudo smbpasswd -a sysadmin</code> | ||
+ | </note> | ||
+ | Также требуется явно предоставить права группе **Domain Admins** чтобы позволить выполнять сценарий добавления машин (и других административных функций). Это может быть достигнуто выполнением команды: | ||
+ | <code> | ||
+ | net rpc rights grant -U sysadmin "EXAMPLE\Domain Admins" SeMachineAccountPrivilege \ | ||
+ | SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege \ | ||
+ | SeRemoteShutdownPrivilege | ||
+ | </code> | ||
- | logon script: determines the script to be run locally once a user has logged in. The script needs to be placed in the [netlogon] share. | + | Теперь вы имеете возможность присоединять клиентов Windows к домену таким же образом, как присоединяли их к NT4 домену на Windows сервере. |
- | + | ||
- | add machine script: a script that will automatically create the Machine Trust Account needed for a workstation to join the domain. | + | |
- | + | ||
- | In this example the machines group will need to be created using the addgroup utility see Adding and Deleting Users for details. | + | |
- | + | ||
- | Uncomment the [homes] share to allow the logon home to be mapped: | + | |
- | + | ||
- | [homes] | + | |
- | comment = Home Directories | + | |
- | browseable = no | + | |
- | read only = no | + | |
- | create mask = 0700 | + | |
- | directory mask = 0700 | + | |
- | valid users = %S | + | |
- | + | ||
- | When configured as a domain controller a [netlogon] share needs to be configured. To enable the share, uncomment: | + | |
- | + | ||
- | [netlogon] | + | |
- | comment = Network Logon Service | + | |
- | path = /srv/samba/netlogon | + | |
- | guest ok = yes | + | |
- | read only = yes | + | |
- | share modes = no | + | |
- | + | ||
- | The original netlogon share path is /home/samba/netlogon, but according to the Filesystem Hierarchy Standard (FHS), /srv is the correct location for site-specific data provided by the system. | + | |
- | + | ||
- | Now create the netlogon directory, and an empty (for now) logon.cmd script file: | + | |
- | + | ||
- | sudo mkdir -p /srv/samba/netlogon | + | |
- | sudo touch /srv/samba/netlogon/logon.cmd | + | |
- | + | ||
- | You can enter any normal Windows logon script commands in logon.cmd to customize the client's environment. | + | |
- | + | ||
- | Restart Samba to enable the new domain controller: | + | |
- | + | ||
- | sudo restart smbd | + | |
- | sudo restart nmbd | + | |
- | + | ||
- | Lastly, there are a few additional commands needed to setup the appropriate rights. | + | |
- | + | ||
- | With root being disabled by default, in order to join a workstation to the domain, a system group needs to be mapped to the Windows Domain Admins group. Using the net utility, from a terminal enter: | + | |
- | + | ||
- | sudo net groupmap add ntgroup="Domain Admins" unixgroup=sysadmin rid=512 type=d | + | |
- | + | ||
- | Change sysadmin to whichever group you prefer. Also, the user used to join the domain needs to be a member of the sysadmin group, as well as a member of the system admin group. The admin group allows sudo use. | + | |
- | + | ||
- | If the user does not have Samba credentials yet, you can add them with the smbpasswd utility, change the sysadmin username appropriately: | + | |
- | + | ||
- | sudo smbpasswd -a sysadmin | + | |
- | + | ||
- | Also, rights need to be explicitly provided to the Domain Admins group to allow the add machine script (and other admin functions) to work. This is achieved by executing: | + | |
- | + | ||
- | net rpc rights grant -U sysadmin "EXAMPLE\Domain Admins" SeMachineAccountPrivilege \ | + | |
- | SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege \ | + | |
- | SeRemoteShutdownPrivilege | + | |
- | + | ||
- | You should now be able to join Windows clients to the Domain in the same manner as joining them to an NT4 domain running on a Windows server. | + | |
====Резервный контроллер домена==== | ====Резервный контроллер домена==== | ||
- | With a Primary Domain Controller (PDC) on the network it is best to have a Backup Domain Controller (BDC) as well. This will allow clients to authenticate in case the PDC becomes unavailable. | + | При наличии первичного контроллера домена (PDC) в сети лучше всего иметь также и резервный контроллер домена (BDC). Это позволяет авторизоваться клиентам когда PDC становится недоступен. |
- | When configuring Samba as a BDC you need a way to sync account information with the PDC. There are multiple ways of accomplishing this scp, rsync, or by using LDAP as the passdb backend. | + | Когда вы настраиваете Samba в качестве BDC, вам требуется выбрать способ синхронизации учетных записей с PDC. Существует несколько вариантов достижения этого с помощью **scp**, **rsync** или использования **LDAP** в качестве базы **passdb**. |
- | Using LDAP is the most robust way to sync account information, because both domain controllers can use the same information in real time. However, setting up a LDAP server may be overly complicated for a small number of user and computer accounts. See Samba and LDAP for details. | + | Использование LDAP является наиболее правильным способом синхронизации учетных записей, поскольку оба контроллера домена смогут использовать одну и ту же информацию в режиме реального времени. Однако установка LDAP сервера может быть излишне сложной для небольшого количества учетных записей пользователей и компьютеров. Смотрите раздел [[wiki:руководство_по_ubuntu_server:авторизация_по_сети:samba_and_ldap|Samba и LDAP]] для уточнения деталей. |
- | First, install samba and libpam-smbpass. From a terminal enter: | + | 1. Сначала установим **samba** и **libpam-smbpass**. Введите в терминале: |
+ | <code>sudo apt-get install samba libpam-smbpass</code> | ||
- | sudo apt-get install samba libpam-smbpass | + | 2. Теперь отредактируем /etc/samba/smb.conf и снимем комментарий со следующих записей секции **[global]**: |
+ | <code> | ||
+ | workgroup = EXAMPLE | ||
+ | ... | ||
+ | security = user | ||
+ | </code> | ||
- | Now, edit /etc/samba/smb.conf and uncomment the following in the [global]: | + | 3.В закомментированной секции **Domains** снимите комментарии или добавьте записи: |
+ | <code> | ||
+ | domain logons = yes | ||
+ | domain master = no | ||
+ | </code> | ||
- | workgroup = EXAMPLE | + | 4. Убедитесь, что пользователь имеет права на чтение файлов в каталоге /var/lib/samba. Например, чтобы разрешить пользователям группы **admin** копировать файлы с помощью **scp**, введите: |
- | ... | + | <code>sudo chgrp -R admin /var/lib/samba</code> |
- | security = user | + | |
- | In the commented Domains uncomment or add: | + | 5. Далее синхронизируйте учетные записи пользователей, используя scp для копирования каталога /var/lib/samba с PDC: |
+ | <code>sudo scp -r username@pdc:/var/lib/samba /var/lib</code> | ||
+ | <note>Замените **//username//** на реальное имя пользователя, а **//pdc//** на сетевое имя или адрес вашего действующего PDC.</note> | ||
- | domain logons = yes | + | 6. Наконец, перезапустим Samba: |
- | domain master = no | + | <code> |
+ | sudo restart smbd | ||
+ | sudo restart nmbd | ||
+ | </code> | ||
- | Make sure a user has rights to read the files in /var/lib/samba. For example, to allow users in the admin group to scp the files, enter: | + | Вам надо проверить, что ваш резервный контроллер домена работает, остановив сервис Samba на PDC, и затем попытаться авторизоваться на Windows клиенте, входящем в домен. |
- | sudo chgrp -R admin /var/lib/samba | + | Другая вещь, о которой не стоит забывать: если вы настроили опцию **logon home** как каталог на PDC и он становится недоступен, доступ к домашнему каталогу пользователя также станет невозможным. Именно поэтому лучше настроить **logon home** расположенным на отдельном файловом сервере, отличном от PDC и BDC. |
- | + | ||
- | Next, sync the user accounts, using scp to copy the /var/lib/samba directory from the PDC: | + | |
- | + | ||
- | sudo scp -r username@pdc:/var/lib/samba /var/lib | + | |
- | + | ||
- | Replace username with a valid username and pdc with the hostname or IP Address of your actual PDC. | + | |
- | + | ||
- | Finally, restart samba: | + | |
- | + | ||
- | sudo restart smbd | + | |
- | sudo restart nmbd | + | |
- | + | ||
- | You can test that your Backup Domain controller is working by stopping the Samba daemon on the PDC, then trying to login to a Windows client joined to the domain. | + | |
- | + | ||
- | Another thing to keep in mind is if you have configured the logon home option as a directory on the PDC, and the PDC becomes unavailable, access to the user's Home drive will also be unavailable. For this reason it is best to configure the logon home to reside on a separate file server from the PDC and BDC. | + | |
====Ссылки==== | ====Ссылки==== | ||
- | For in depth Samba configurations see the Samba HOWTO Collection | + | -- Для более глубокого изучения настроек Samba смотрите [[http://samba.org/samba/docs/man/Samba-HOWTO-Collection/|Коллекцию ЧаВо по Samba]]. |
- | + | -- Это же руководство в [[http://www.amazon.com/exec/obidos/tg/detail/-/0131882228|печатном виде]]. | |
- | The guide is also available in printed format. | + | -- Хорошее руководство - [[http://www.oreilly.com/catalog/9780596007690/|Using Samba]] от O'Reilly. |
- | + | -- [[http://samba.org/samba/docs/man/Samba-HOWTO-Collection/samba-pdc.html|4 глава]] Коллекции ЧаВо по Samba раскрывает настройки первичного контроллера домена. | |
- | O'Reilly's Using Samba is also a good reference. | + | -- [[http://us3.samba.org/samba/docs/man/Samba-HOWTO-Collection/samba-bdc.html|5 глава]] Коллекции ЧаВо по Samba посвящена настройкам резервного контроллера домена. |
- | + | -- Страница [[https://help.ubuntu.com/community/Samba|Ubuntu Wiki Samba]]. | |
- | Chapter 4 of the Samba HOWTO Collection explains setting up a Primary Domain Controller. | + | |
- | + | ||
- | Chapter 5 of the Samba HOWTO Collection explains setting up a Backup Domain Controller. | + | |
- | + | ||
- | The Ubuntu Wiki Samba page. | + | |
---- | ---- |