Дерево страниц

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 3 Следующий »

Введение

Начиная с версии 4.0, Samba может работать как контролер домена ( domain controller, DC) Active Directory (AD).
При приемнении  Samba в реальной эксплуатации рекомендуется использовать два или более DC для обеспечения отказоустойчивости.

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

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

В случае применения в составе ОСОН Орёл или ОССН Смоленск Samba использует MIT KDC, поставляемый в составе этих ОС.

Подготовка к инсталляции

  • Выберите имя хоста для вашего AD DC;
    Не как используйте имена хостов унаследованные от NT4 такие идентификаторы, как  PDC или BDC. Эти сущности отсутствуют в AD, и такие названия вызывают путаницу;
  • Выберите DNS-имя для вашего доменного леса AD. Это имя также будет использовано как имя области (realm) Kerberos AD ;
Убедитесь, что вы настраиваете домен AD, используя DNS-имя, которое не понадобится изменять.
Samba не поддерживает переименование зон DNS AD и областей Kerberos. 

Дополнительную информацию см. Часто задаваемые вопросы по именованию доменов AD

  • Используйте для DC статический адрес;
  • Отключите инструменты (например, resolvconf), которые автоматически обновляют файл настроек DNS /etc/resolv.conf.
    AD DC и члены домена обязаны использовать сервер DNS, способный разрешать зоны DNS AD .
  • Убедитесь, что файл /etc/hosts на DC корректно разрешает во внешний сетевой IP-адрес DC полное доменное имя (fully-qualified domain name, FQDN) и короткое имя хоста. Например: 

    127.0.0.1 localhost localhost.localdomain 
    10.99.0.1 DC1.samdom.example.com DC1

    имя хоста не должно разрешаться в IP-адрес 127.0.0.1 или в любой другой IP-адрес, кроме используемого на внешнем сетевом интерфейсе DC  

  • Если Samba уже была установлена (настроена):
    • Убедитесть, что все процессы Samba остановлены:

      ps ax | egrep "samba|smbd|nmbd|winbindd"

      Если вывод команды показывает наличие любого из процессов samba, smbd, nmbd, или winbindd processes, остановите эти процессы:

      systemctl stop samba
      systemctl stop smbd
      systemctl stop nmbd
      systemctl stop winbindd
    • Удалите все существующие файл конфигурации Samba smb.conf file. Чтобы получить список путей к этим файлам:

smbd -b | grep "CONFIGFILE"
CONFIGFILE: /usr/local/samba/etc/samba/smb.conf

    • Удалите все файлы баз данных Samba (*.tdb и *.ldb). Чтобы получить список путей к этим файлам:

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 не попадут  вновые настройки DC.
  • Если существует файл настроек Kerberos /etc/krb5.conf file, также удалите его: 

    rm /etc/krb5.conf

Установка Samba

Пакет Samba входит в дистрибутивы ОСОН Орёл и ОССН Смоленск, и может быть установлен с помощью графического менеджера пакетов,
или из командной строки командой

apt install samba

После установки сервис smbd будет запущен автоматически с настройками "по умолчанию".

Для использования samba в качестве домена AD нужно установить дополниетельные пакеты:


apt-get install winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user

Настройка Samba как AD DC

В процессе настройки Samba как AD DC создаются базы данных AD и в них добавляются базовые зщаписи, такие как учетная запись администратора домена и необходимые записи DNS.

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

Выпослнение настроек AD требует наличия привилегий суперпользователя для создания файлов и установки прав.

Настройка Samba как DC выполняется с помощью команды samba-tool domain provision.
Эта команда поддерживает параметры для выполнения настроек в интереактивном или автоматическом режимах. Подробности см.:


samba-tool domain provision --help


При создании нового домена AD рекомендуется сразу включить так называемые расширения NIS (NIS extensions), передав инструменту samba-tool domain provision параметр  --use-rfc2307.
Это позволит хранить в AD специфические атрибуты Unix, такие, как числовые идентификаторы пользователя (UID), пути у домашним каталогам, идентификаторы групп.
Включение расширений NIS при установке не влечёт за собой никаких отрицательных побочных эффектов, а их включение в существующем домене требует ручного расширения схемы AD.

Подробности см. в:

Описание применяемых параметров

При настройке применим следующие параметры:

Интерективный режимАвтоматический режимКомментарий
--use-rfc2307--use-rfc2307Включает расширения NIS
Realm--realm

Область Kerberos. Также используется, как домен DNS AD . Например: samdom.example.com.

Domain--domainИмя домена для NetBIOS. Рекомендуется использовать первую часть имени домена DNS AD. Например, для домена samdom.example.com это будет имя samdom.
Server Role--server-roleУстанавливает роль контроллера DC.
DNS backend--dns-backendВыбирает службу DNS. Первый DC в AD обязательно должен настроен на использование какой-либо службы DNS. Отметим, что вариант BIND9_FLATFILE более не поддерживается.
DNS forwarder IP addressнедоступноЭта настройка доступна только при выборе службы DNS SAMBA_INTERNAL DNS. Подробности см. Настройка перенаправления DNS.

Administrator password

--adminpassУстанавливает пароль администратора домена. Если заданный пароль не будет соответствовать требованиям по сложности пароля, настройка не будет выполнена. Подробности см. Microsoft TechNet: Сложность паролей должна соответствовать требованиям.

Другие параметры, часто используемые в команде samba-tool domain provision:

--option="interfaces=lo eth0" --option="bind interfaces only=yes":  Если сервер имеет несколько сетевых интерфейсов, используйте эти параметры для привязки Samba к нужным интерфейсам. Это позволить команде samba-tool зарегистрировать корректный сетевой адрес  при настройке.


  • Не используйте NONE как службу DNS,  эта возможность больше не поддерживается;
  • При использовании в качестве службы DNS службы Bind9, не используйте вариант BIND9_FLATFILE,  эта возможность больше не поддерживается;
  • После настройки первого DC в домене AD, не настраивайте больше таким способом никакие другие DC в этом домене, используйте Join для присоединения остальных DC.

Настройка Samba AD в интерактивном режиме

Для настройки 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


The interactive provisioning mode supports passing further parameters to the samba-tool domain provision command. This enables you to modify parameters that are not part of the interactive setup.


Provisioning Samba AD in Non-interactive Mode

For example, to provision a Samba AD non-interactively with the following settings:

Server role: dc
NIS extensions enabled
Internal DNS back end
Kerberos realm and AD DNS zone: samdom.example.com
NetBIOS domain name: SAMDOM
Domain administrator password: Passw0rd

# samba-tool domain provision --server-role=dc --use-rfc2307 --dns-backend=SAMBA_INTERNAL --realm=SAMDOM.EXAMPLE.COM --domain=SAMDOM --adminpass=Passw0rd


Setting up the AD DNS back end

Skip this step if you provisioned the DC using the SAMBA_INTERNAL DNS back end.

Set up the BIND DNS server and the BIND9_DLZ module. For details, see Setting up a BIND DNS Server.

Start the BIND DNS server. For example:

# systemctl start named

For details how to start services, see you distribution's documentation.


Configuring the DNS Resolver

Domain members in an AD use DNS to locate services, such as LDAP and Kerberos. For that, they need to use a DNS server that is able to resolve the AD DNS zone.

On your DC, set the AD DNS domain in the domain and the IP of your DC in the nameserver parameter of the /etc/resolv.conf file. For example:

search samdom.example.com
nameserver 10.99.0.1


Create a reverse zone

You can optionally add a reverse lookup zone.

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

If you need more than one reverse zone (multiple subnets), just run the above command again but with the data for the other subnet.

The reverse zone is directly live without restarting Samba or BIND.


Configuring Kerberos

In an AD, Kerberos is used to authenticate users, machines, and services.

During the provisioning, Samba created a Kerberos configuration file for your DC. Copy this file to your operating system's Kerberos configuration. For example:

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

Do not create a symbolic link to the the generated krb5.conf file. In Samba 4.7 and later, the /usr/local/samba/private/ directory is no longer accessible by other users than the root user. If the file is a symbolic link, other users are not able to read the file and, for example, dynamic DNS updates fail if you use the BIND_DLZ DNS back end.

The pre-created Kerberos configuration uses DNS service (SRV) resource records to locate the KDC.


Testing your Samba AD DC

To start the samba service manually, enter:

# samba

Samba does not provide System V init scripts, systemd, upstart, or other services configuration files.

If you installed Samba using packages, use the script or service configuration file included in the package to start Samba.
If you built Samba, see Managing the Samba AD DC Service.


Verifying the File Server

To list all shares provided by the DC:

$ smbclient -L localhost -U%
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
--------- -------

The netlogon and sysvol shares were auto-created during the provisioning and must exist on a DC.

To verify authentication, connect to the netlogon share using the domain administrator account:

$ 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

If one or more tests fail, see Troubleshooting.


Verifying DNS

To verify that your AD DNS configuration works correctly, query some DNS records:

The tcp-based _ldap SRV record in the domain:

$ host -t SRV _ldap._tcp.samdom.example.com.
_ldap._tcp.samdom.example.com has SRV record 0 100 389 dc1.samdom.example.com.

The udp-based _kerberos SRV resource record in the domain:

$ host -t SRV _kerberos._udp.samdom.example.com.
_kerberos._udp.samdom.example.com has SRV record 0 100 88 dc1.samdom.example.com.

The A record of the domain controller:

$ host -t A dc1.samdom.example.com.
dc1.samdom.example.com has address 10.99.0.1

If one or more tests fail, see Troubleshooting.


Verifying Kerberos

Request a Kerberos ticket for the domain administrator account:

$ kinit administrator
Password for administrator@SAMDOM.EXAMPLE.COM:

The Kerberos realm is automatically appended, if you do not pass the principal in the user@REALM format to the kinit command.
Set Kerberos realms always in uppercase.

List the cached Kerberos tickets:

$ 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

If one or more tests fail, see Troubleshooting.


Configuring Time Synchronisation

Kerberos requires a synchronised time on all domain members. For further details and how to set up the ntpd service, see Time Synchronisation.


Using the Domain Controller as a File Server

Whilst the Samba AD DC is able to provide file shares, just like all other installation modes, the Samba team does not recommend using a DC as a file server for the following reasons:

For anything but the smallest organisations, having more than one DC is a really good backup measure, and makes upgrades safer
It encourages upgrades of the DC to also be upgrades of the host OS every year or two, because there isn't complex data to transition or other services involved.
This means upgrades can be done by installing fresh, and replicating in the changes, which is better tested in Samba, gains new features and avoids a number of lingering data corruption risks.
The DC and file-server have different points at which an organisation would wish to upgrade. The needs for new features on the DC and file server come at different times. Currently the AD DC is evolving rapidly to gain features, whereas the fileserver, after over 20 years, is quite rightly more conservative.
mandatory smb signing is enforced on the DC.


If you do decide to use the Samba DC as a fileserver, please consider running a VM, on the DC, containing a separate Samba Unix domain member and use this instead.

If you must use the Samba DC as a fileserver, you should be aware that the auto-enabled acl_xattr virtual file system (VFS) object enables you to only configure shares with Windows access control lists (ACL). Running shares with POSIX ACLs on a Samba DC is not supported and will not work.


To provide network shares with the full capabilities of Samba, set up a Samba domain member with file shares. For details, see:

Setting up Samba as a Domain Member
Samba File Serving


If you only have a small domain (small office, home network) and do not want to follow the Samba team's recommendation and use the DC additionally as a file server, configure Winbindd before you start setting up shares. For details, see Configuring Winbindd on a Samba AD DC.


Troubleshooting

For further details, see Samba AD DC Troubleshooting.


Further Samba-related Documentation

See User Documentation.


Categories:

Domain ControlActive Directory

Navigation menu

Page Discussion View source History

Create account Log in

Navigation

Main Page
User Documentation
Developer Documentation
Categories
Current Events
Recent Changes
Random Page
Report Samba Bug
Report Doc Bug

Search

Tools

What links here
Related changes
Special pages
Printable version
Permanent link
Page information


  • Нет меток