SambaAD

Материал из Русский WINE
Перейти к: навигация, поиск

Контроллер домена

Введение

Начиная с версии 4.0 (выпущенной в 2012 г.) Samba может выступать в качестве контроллера домена (DC) Active Directory (AD). Samba может работать на функциональном уровне леса Windows Server 2008 R2, которого более чем достаточно для управления сложными предприятиями, использующих Windows 10/11 со строгими требованиями соответствия (включая NIST 800-171).

Если вы устанавливаете Samba в производственной среде, рекомендуется установить два или более контроллера домена для аварийного переключения, более подробную информацию о подготовке отказоустойчивого контроллера домена можно найти в другом месте на вики. В этой документации описывается, как настроить Samba в качестве основного контроллера домена для создания нового леса AD. Кроме того, используйте эту документацию при переносе домена Samba NT4 в Samba AD. Чтобы присоединить Samba в качестве дополнительного контроллера домена к существующему лесу AD, см. раздел Присоединение контроллера домена Samba к существующему домену Active Directory.

Samba как AD DC поддерживает только:

  • Интегрированный сервер LDAP в качестве серверной части AD.
  • Центр распространения ключей Heimdal Kerberos (KDC).
    • Samba обеспечивает экспериментальную поддержку MIT Kerberos KDC, предоставляемого вашей операционной системой, если вы запускаете Samba 4.7 или более позднюю версию и собранную с ключом --with-system-mitkrb5. В других случаях Samba использует Heimdal KDC, включенный в Samba.
  • Размещение и администрирование объектов групповой политики, которые будут использоваться для управления парком предприятия
Примечание: Установка Samba и связанная с этим подготовка контроллера домена не переводятся автоматически в функциональность групповой политики. Имейте это в виду и ожидайте обновления этого флага в smb.conf после подготовки


В этом руководстве предполагается, что планируется "чистая" установка Samba на свежеустановленную операционную систему. Важно отметить, что существует различие между установкой Samba и инициализацией Samba. В общем, весь процесс настройки контроллера домена Samba состоит из 5 относительно простых шагов. Эти шаги заключаются в следующем:

  • Установка Samba и сопутствующих пакетов
  • Удаление предварительно настроенных файлов конфигурации заполнителей Samba и Kerberos.
  • Инициализация Samba с помощью инструмента автоматической инициализации
  • Редактирование smb.conf по мере необходимости (включение групповой политики и/или других функций по мере необходимости)
  • Любая другая конфигурация среды на основе дистрибутива Unix/Linux.

Эта страница охватывает много информации об установке Samba как в системах Unix, так и в Linux. Процесс установки немного различается в зависимости от среды, поэтому на протяжении всего чтения следите за связанными веб-страницами на нескольких вкладках. В оставшейся части этого руководства используется следующий пример информации:

  • Имя хоста = DC1
  • Локальный IP-адрес контроллера домена = 10.99.0.1
  • Домен аутентификации = SAMDOM.EXAMPLE.COM
  • Домен верхнего уровня = EXAMPLE.COM

Подготовка к установке

Установка с нуля

Samba была установленна ранее

  • Если вы ранее запускали установку Samba на этом хосте:
    • Удалите существующий файл smb.conf. Чтобы найти путь к файлу введите:
# smbd -b | grep "CONFIGFILE"
   CONFIGFILE: /usr/local/samba/etc/samba/smb.conf
  • Удалите все файлы базы данных Samba, такие как *.tdbа и *.ldb файлы. Чтобы просмотреть папки, содержащие базы данных Samba введите:
# smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR"
  LOCKDIR: /usr/local/samba/var/lock/
  STATEDIR: /usr/local/samba/var/locks/
  CACHEDIR: /usr/local/samba/var/cache/
  PRIVATE_DIR: /usr/local/samba/private/

Начало работы с чистой средой помогает избежать путаницы и гарантирует, что никакие файлы из любой предыдущей установки Samba не будут смешаны с новой установкой контроллера домена.

  • Удалите существующий файл /etc/krb5.conf:
# rm /etc/krb5.conf

Установка Samba

См. документацию Вашего дистрибутива

Инициализация Samba Active Directory

В процессе подготовки Samba AD создаются базы данных AD и добавляются начальные записи, такие как учетная запись администратора домена и необходимые записи DNS. Samba поставляется со встроенным инструментом командной строки, который называется samba-tool который можно использовать для автоматической настройки вашего smb.conf при запуске в интерактивном режиме.

Если вы переносите домен Samba NT4 в AD, пропустите этот шаг и запустите классическое обновление Samba. Дополнительные сведения см. в разделе Миграция домена Samba NT4 в Samba AD (классическое обновление).


Команда samba-tool domain provision предоставляет несколько параметров для использования с интерактивной и неинтерактивной настройкой. Подробнее см.:

# samba-tool domain provision --help

Справочник по параметрам

Во время подготовки задайте следующие параметры:

Настройка интерактивного режима Параметр неинтерактивного режима Объяснение
--use-rfc2307 --use-rfc2307 Включает расширения NIS, необходимые для вкладки ADUC Unix Attributes.
Realm --realm Область Kerberos. Версия домена AD DNS в верхнем регистре. Например SAMDOM.EXAMPLE.COM.
Domain --domain Имя домена NetBIOS (Workgroup). Это может быть что угодно, но это должно быть одно слово длиной не более 15 символов и без точки. Рекомендуется использовать первую часть домена AD DNS. Например: samdom. Не используйте короткое имя хоста компьютеров.
Server Role --server-role Устанавливает роль контроллера домена DC.
DNS backend --dns-backend Устанавливает DNS-бэкенд. Первый контроллер домена в AD должен быть установлен с использованием серверной части DNS. Обратите внимание, что BIND9_FLATFILE не поддерживается и будет удален в будущей версии Samba.
DNS forwarder IP address недоступно Этот параметр доступен только при использовании SAMBA_INTERNAL DNS-бэкенде.
Administrator password --adminpass Устанавливает пароль администратора домена. Если пароль не соответствует требованиям сложности, подготовка завершается ошибкой. Дополнительные сведения см. в Microsoft TechNet: пароли должны соответствовать требованиям сложности.

Инициализация Samba AD в интерактивном режиме

Как указано выше, samba-tool при запуске в качестве маршрута (route) автоматически настроит ваш smb.conf для контроллера домена. Интерактивный режим не будет автоматически включать поддержку групповой политики. Однако это можно добавить позже, отредактировав вручную smb.conf. Откройте страницу групповой политики в новой вкладке для дальнейшего чтения.

Примечание: Установка Samba создаст файл smb.conf, который необходимо удалить перед запуском Provisioning Tool в интерактивном режиме, иначе произойдет сбой. В большинстве дистрибутивов Linux это можно сделать, выполнив: #mv /etc/samba/smb.conf /etc/samba/smb.conf.initial


При удаленном файле smb.conf, настройте Samba AD в интерактивном режиме, запустив команду:

# samba-tool domain provision --use-rfc2307 --interactive
Realm [SAMDOM.EXAMPLE.COM]: SAMDOM.EXAMPLE.COM
 Domain [SAMDOM]: SAMDOM
 Server Role (dc, member, standalone) [dc]: dc
 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: SAMBA_INTERNAL
 DNS forwarder IP address (write 'none' to disable forwarding) [10.99.0.1]: 8.8.8.8
Administrator password: Passw0rd
Retype password: Passw0rd
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=samdom,DC=example,DC=com
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container                                                                                                                                                                                        
Modifying users container                                                                                                                                                                                     
Adding computers container                                                                                                                                                                                    
Modifying computers container                                                                                                                                                                                 
Setting up sam.ldb data                                                                                                                                                                                       
Setting up well known security principals                                                                                                                                                                     
Setting up sam.ldb users and groups                                                                                                                                                                           
Setting up self join                                                                                                                                                                                          
Adding DNS accounts                                                                                                                                                                                           
Creating CN=MicrosoftDNS,CN=System,DC=samdom,DC=example,DC=com                                                                                                                                                
Creating DomainDnsZones and ForestDnsZones partitions                                                                                                                                                         
Populating DomainDnsZones and ForestDnsZones partitions                                                                                                                                                       
Setting up sam.ldb rootDSE marking as synchronized                                                                                                                                                            
Fixing provision GUIDs                                                                                                                                                                                        
A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf                                                                                                        
Setting up fake yp server settings                                                                                                                                                                            
Once the above files are installed, your Samba4 server will be ready to use                                                                                                                                   
Server Role:           active directory domain controller                                                                                                                                                     
Hostname:              DC1                                                                                                                                                                                    
NetBIOS Domain:        SAMDOM                                                                                                                                                                                 
DNS Domain:            samdom.example.com                                                                                                                                                                     
DOMAIN SID:            S-1-5-21-2614513918-2685075268-614796884

Инициализация Samba AD в неинтерактивном режиме

Для примера, для подготовки Samba AD в не-интерактивном режиме выполняется настройка со следующими параметрами:

  • Роль сервера: dc
  • Включение расширений NIS
  • Внутренний сервер DNS
  • Область Kerberos и зона AD DNS: samdom.example.com
  • Доменное имя NetBIOS: SAMDOM
  • Пароль администратора домена: Passw0rd
# samba-tool domain provision --server-role=dc --use-rfc2307 --dns-backend=SAMBA_INTERNAL --realm=SAMDOM.EXAMPLE.COM --domain=SAMDOM --adminpass=Passw0rd

Настройка бэкенда AD DNS

Пропустите эту часть если Вы настроили КД с DNS-бэкендом SAMBA_INTERNAL.

Настройте сервер BIND DNS и модуль BIND9_DLZ. Подробно смотрите в Настройка BIND DNS Server.

Запустите BIND DNS server. Например:

# systemctl start named

Для более подробной информации, см. документацию Вашего дистрибутива.

Настройка DNS Resolver-а

Члены домена в AD используют DNS для поиска служб, таких как LDAP и Kerberos. Для этого им необходимо использовать DNS-сервер, способный разрешать зону AD DNS.

На своем контроллере домена установите домен вашего DC в search и IP в параметре nameserver в файле /etc/resolv.conf. Например:

search samdom.example.com
nameserver 10.99.0.1

Создание обратной зоны DNS

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

# samba-tool dns zonecreate <Your-AD-DNS-Server-IP-or-hostname> 0.99.10.in-addr.arpa -U Administrator
Password for [administrator@SAMDOM.EXAMPLE.COM]:
Zone 0.99.10.in-addr.arpa created successfully

Если вам нужно более одной обратной зоны (при использовании нескольких подсетей), просто запустите приведенную выше команду еще раз, но с данными для другой подсети.

Обратная зона работает напрямую без перезапуска Samba или BIND.

Примечание: Вы должны запустить Samba AD DC, прежде чем сможете добавить обратную зону.



Настройка Kerberos

В AD Kerberos используется для аутентификации пользователей, компьютеров и служб.

Во время подготовки Samba создает файл конфигурации Kerberos для вашего контроллера домена. Скопируйте этот файл в конфигурацию Kerberos вашей операционной системы. Например:

# cp /usr/local/samba/private/krb5.conf /etc/krb5.conf

Не создавайте символическую ссылку на сгенерированный файл krb5.conf. В Samba 4.7 и более поздних версиях каталог /usr/local/samba/private/ больше не доступен для других пользователей, кроме пользователя root. Если файл представляет собой символическую ссылку, другие пользователи не смогут прочитать файл, и, например, динамические обновления DNS завершатся ошибкой, если вы используете BIND_DLZ как DNS-бэкенд.

Предварительно созданная конфигурация Kerberos использует записи ресурсов службы DNS (SRV) для обнаружения KDC.

Тестирование Вашего контроллера домена на Samba

Проверка Файлового сервера (по желанию)

Для вывода всех общих ресурсов предоставляемых DC:

До Samba 4.11.0:

$ smbclient -L localhost -N
Anonymous login successful
Domain=[SAMDOM] OS=[Unix] Server=[Samba x.y.z]

        Sharename       Type      Comment
        ---------       ----      -------
        netlogon        Disk      
        sysvol          Disk      
        IPC$            IPC       IPC Service (Samba x.y.z)
Domain=[SAMDOM] OS=[Unix] Server=[Samba x.y.z]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------

После Samba 4.11.0

smbclient -L localhost -N
Anonymous login successful

    Sharename       Type      Comment
    ---------       ----      -------
    sysvol          Disk      
    netlogon        Disk      
    IPC$            IPC       IPC Service (Samba 4.12.6-Debian)
SMB1 disabled -- no workgroup available
Примечание: Общие ресурсы netlogon и sysvol были созданы автоматически во время подготовки и должны существовать на контроллере домена


Для проверки подлинности подключитесь к ресурсу netlogon с помощью учетной записи администратора домена:

$ smbclient //localhost/netlogon -UAdministrator -c 'ls'
Enter Administrator's password: 
Domain=[SAMDOM] OS=[Unix] Server=[Samba x.y.z]
 .                                   D        0  Tue Nov  1 08:40:00 2016
 ..                                  D        0  Tue Nov  1 08:40:00 2016

               49386 blocks of size 524288. 42093 blocks available

Проверка DNS (по желанию)

Чтобы убедиться, что ваша конфигурация AD DNS работает правильно, запросите некоторые записи DNS:

  • на основе TCP _ldap SRV-запись в домене:
$ host -t SRV _ldap._tcp.samdom.example.com.
_ldap._tcp.samdom.example.com has SRV record 0 100 389 dc1.samdom.example.com.

  • на основе udp-_kerberos ресурсную SRV-запись в домене:
$ host -t SRV _kerberos._udp.samdom.example.com.
_kerberos._udp.samdom.example.com has SRV record 0 100 88 dc1.samdom.example.com.

  • A-запись контроллера домена:
$ host -t A dc1.samdom.example.com.
dc1.samdom.example.com has address 10.99.0.1

Если один или несколько тестов не пройдены, см раздел Устранение неполадок.

Проверка Kerberos (по желанию)

Это не обязательно, но рекомендуется убедиться, что механизмы проверки подлинности вашего контроллера домена работают должным образом. Чтобы проверить это, войдите в систему и запросите билет Kerberos для учетной записи администратора домена:

$ kinit administrator
Password for administrator@SAMDOM.EXAMPLE.COM:
Примечание: Если Вы не передадите в команду kinit принципиал в формате user@REALM, область Kerberos добавится автоматически.
Всегда вводите область Kerberos в верхнем регистре.


Список кэшированных билетов Kerberos:

$ klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@SAMDOM.EXAMPLE.COM

Valid starting       Expires              Service principal
01.11.2016 08:45:00  12.11.2016 18:45:00  krbtgt/SAMDOM.EXAMPLE.COM@SAMDOM.EXAMPLE.COM
	renew until 02.11.2016 08:44:59

Если один или несколько тестов не пройдены, см. раздел "Устранение неполадок"

Настройка синхронизации времени (необязательно, в зависимости от варианта использования)

Kerberos требует синхронизации времени на всех членах домена. Для получения дополнительной информации и настройки ntpd или же chrony см . раздел Синхронизация времени. Однако, если Samba используется в качестве контроллера домена для администрирования групповой политики, можно определить объект групповой политики, который синхронизирует рабочие станции с time.windows.com после установки, что упрощает синхронизацию.

Использование контроллера домена в качестве файлового сервера (по желанию)

Несмотря на то, что Samba AD DC может предоставлять общий доступ к файлам, как и все другие режимы установки, команда Samba не рекомендует использовать DC в качестве файлового сервера по следующим причинам:

  • Для любых организаций, кроме самых маленьких, наличие более одного контроллера домена является хорошей резервной мерой и делает обновления более безопасными.
  • Данная мера поощряет обновление контроллера домена также как обновление хостовой ОС раз или два в год, потому что нет важных данных для перехода или других задействованных служб.
  • Это означает, что можно выполнять обновления, устанавливая новые возможности и копируя изменения, которые лучше тестируются в Samba, получать новые функции и избегать ряда сохраняющихся рисков повреждения данных.
  • DC и файловый сервер имеют разные точки, в которых организация хотела бы обновиться. Потребность в новых функциях контроллера домена и файлового сервера возникает в разное время. В настоящее время AD DC быстро развивается, приобретая новые функции, в то время как файловый сервер по прошествии более 20 лет стал более консервативным.
  • на контроллере домена применяется обязательная подпись smb.

Если вы все-таки решите использовать контроллер домена Samba в качестве файлового сервера, рассмотрите возможность запуска виртуальной машины на контроллере домена, содержащей отдельный элемент домена Samba Unix, и используйте вместо этого его.

Если вы хотите использовать Samba DC в качестве файлового сервера, вы должны знать, что acl_xattr Виртуальной файловой системы (VFS) позволяет настраивать общие ресурсы только со списками управления доступом Windows (ACL). Использование списков контроля доступа POSIX с общими ресурсами на контроллере домена Samba не работает.

Вы должны знать, что если вы хотите использовать объект vfs на общем ресурсе DC, например, корзину, вы не должны просто установить vfs objects = recycle в общем ресурсе. Это отключит объекты vfs по умолчанию. dfs_samba4 а также acl_xattr. Вы должны установить vfs objects = dfs_samba4 acl_xattr recycle.

Чтобы предоставить сетевым ресурсам все возможности Samba, настройте члена домена Samba с общими файловыми ресурсами. Подробнее см.:

Если у вас есть только небольшой домен (маленький офис, домашняя сеть) и вы не хотите следовать рекомендации команды Samba и дополнительно использовать DC в качестве файлового сервера, настройте Winbindd до того, как начнете настраивать общие ресурсы. Дополнительные сведения см. в разделе Настройка Winbindd на Samba AD DC.

Устранение неполадок

Будет заменен на https://wiki.samba.org/index.php/Setting_up_Samba_as_an_Active_Directory_Domain_Controller

Samba
Search.png
Файловое хранилище Samba как файловый серверПодключение общей папкиSamba как файловый сервер в домене
Служба каталогов
Сервер Samba как служба каталогов (AD)Изменение IP-адреса ADРепликация сервера ADРезервное копирование и восстановлениеУправление пользователямиГрупповые политикиГрупповая политика паролей
Клиент Подключение клиента ADУстранение неполадок участников домена Samba
Бэкэнды идентификаторов winbind idmap config tdbidmap config adidmap config rididmap config autorid
Прочее Samba как сервер печатиПроверка конфигурационного файлаУтилиты командной строкиLMHOSTSУровень логовКаталоги SambaНастройка DNS
Разное Настройка Samba для привязки к определенным интерфейсамТестирование динамических обновлений DNSSamba Перенастройка бэкенда BIND9 DLZКонфигурация DNS для Linux и Unix
Информация SSSD vs WinbindУстановка Samba