ActiveDirectory/DC: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 62: Строка 62:
<source lang="Bash">samba-tool domain classicupgrade --dbdir=/var/lib/samba/dbdir --use-xattrs=yes --realm=school.alt /etc/samba/smb.conf</source>
<source lang="Bash">samba-tool domain classicupgrade --dbdir=/var/lib/samba/dbdir --use-xattrs=yes --realm=school.alt /etc/samba/smb.conf</source>


= Восстановление к начальному состоянию samba =
= Создание нового домена =
 
== Восстановление к начальному состоянию samba ==


Очищаем базы и конфигурацию Samba (если уже создавался домен):
Очищаем базы и конфигурацию Samba (если уже создавался домен):
Строка 69: Строка 71:
  mkdir -p /var/lib/samba/sysvol
  mkdir -p /var/lib/samba/sysvol


= Выбор имени домена =
{{Attention|Обязательно удаляйте {{path|/etc/samba/smb.conf}} перед созданием домена: <source lang="bash">rm -f /etc/samba/smb.conf</source>}}
 
== Выбор имени домена ==


Имя домена для разворачиваемого DC должно состоять минимум из двух компонентов, разделённых точкой.
Имя домена для разворачиваемого DC должно состоять минимум из двух компонентов, разделённых точкой.
Строка 78: Строка 82:
* domainname school.alt
* domainname school.alt


= Запуск нового сервера =
== Создание домена одной командой ==
 
Создание контроллера домена ''school.alt'' с паролем администратора ''Pa$$word'':
 
samba-tool domain provision --realm=school.alt --domain school --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --server-role=dc --use-rfc2307 --use-xattrs=yes
 
== Интерактивное создание домена ==


В примере показано создание домена ''school.alt''.
В примере показано создание домена ''school.alt''.


1. Удалите файл {{path|/etc/samba/smb.conf}}, потому что для samba-DC будет создан новый файл конфигурации:
Запустите {{cmd|samba-tool domain provision}}:
rm -f /etc/samba/smb.conf
 
2. Запустите {{cmd|samba-tool domain provision}}:
<source lang="text"># samba-tool domain provision
<source lang="text"># samba-tool domain provision
Realm [SCHOOL.ALT]:  
Realm [SCHOOL.ALT]:  
Строка 139: Строка 146:


Параметры ''--use-rfc2307 --use-xattrs=yes'' позволяют поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux.
Параметры ''--use-rfc2307 --use-xattrs=yes'' позволяют поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux.
== Создание контроллера домена одной командой ==
Создание контроллера домена ''school.alt'' с паролем администратора ''Pa$$word'':
samba-tool domain provision --realm=school.alt --domain school --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --server-role=dc --use-rfc2307 --use-xattrs=yes


= Запуск службы =
= Запуск службы =

Версия от 15:45, 23 марта 2016

Samba logo.png

Использование Samba 4 в роли контроллера домена Active Directory. Такой способ позволяет вводить Windows 7/8 в домен безо всяких манипуляций с реестром.

Возможности

Поддерживаются базовые возможности Active Directory:

  • Аутентификация рабочих станций Windows и Linux и служб;
  • Авторизация и предоставление ресурсов;
  • Групповые политики (GPO);
  • Перемещаемые профили (Roaming Profiles);
  • Поддержка инструментов Microsoft для управления серверами (Remote Server Administration Tools) с компьютеров под управлением Windows (под WINE не работает);
  • Поддержка протоколов SMB2 и SMB3 (в том числе с поддержкой шифрования);
  • Репликация с другими серверами (в том числе с Windows 2012).

Не поддерживается

Не поддерживаются следующие возможности[1]:

  • Не реплицируется хранилище SYSVOL (можно использовать osync[2][3]);
  • Доверительные отношения только в одном направлении (от Windows к Samba, но не наоборот[4]) (что не позволяет реализовать лес доменов);
  • Не поддерживаются поддомены[5];
    • В Samba отсутствует глобальный каталог (GC) и полноценная поддержка фантомных объектов;
    • Проблемы при построении структуры AD (Active Directory browser), проблемы при поиске объектов в другом домене;
    • При применении групповых политик в многодоменной среде могут быть проблемы с определением, в каком домене находится компьютер;
  • DFS работает только в режиме одиночного сервера;
  • Не реализовано DFS-R;
  • Не полностью реализовано RODC;
  • В сборке ALT Linux не поддерживается CTDB (хранение данных в кластерной инфраструктуре);
  • Не работает Winbind.

Смотрите также статью Возможности и ограничения Samba 4 как контроллера домена Active Directory на http://habrahabr.ru/.

Внимание! Samba AD DC несовместима с OpenLDAP и MIT Kerberos, поэтому службы, использующие MIT Kerberos, несовместимы с ним.
Внимание! Samba AD DC функционирует на уровне контроллера доменов Windows 2008. Вы можете ввести его в домен Windows 2012 как клиента, но не как контроллер домена.


Установка

1. Так как Samba в режиме контроллера домена (Doman Controller, DC) использует как свой LDAP, так и свой сервер Kerberos, несовместимый с MIT Kerberos, перед установкой остановите конфликтующие службы krb5kdc и slapd, а также bind:

for service in smb nmb krb5kdc slapd bind; do chkconfig $service off; service $service stop; done

2. Установите пакет task-samba-dc  с версии 4.3.1 , который установит необходимое.

Примечание: До версии 4.3.1 требовалось явно установить пакеты: samba-DC python-module-samba-DC samba-DC-common samba-DC-winbind-clients samba-DC-winbind samba-DC-client krb5-kinit


удаляются пакеты:

alt-domain-server alterator-auth alterator-ldap-groups alterator-ldap-users alterator-openldap alterator-squid
host2cat ldap-user-tools libnetapi libsmbclient libwbclient netpolice-main openresolv-host2cat samba samba-client
samba-common samba-libs samba-winbind samba-winbind-clients squid-conf-host2cat squid-helpers

Миграция существующего сервера

На базе https://wiki.samba.org/index.php/Migrating_a_Samba_NT4_domain_to_a_Samba_AD_domain_(classic_upgrade)

1. Скопируем для миграции данные в один каталог:

mkdir /var/lib/samba/dbdir
cp -pv /var/lib/samba/private/* /var/lib/samba/dbdir
cp -pv /var/lib/samba/{account_policy,gencache_notrans,group_mapping}.tdb /var/lib/samba/dbdir

Должно скопироваться пять файлов .tdb

2. Под root запустим classicupgrade:

samba-tool domain classicupgrade --dbdir=/var/lib/samba/dbdir --use-xattrs=yes --realm=school.alt /etc/samba/smb.conf

Создание нового домена

Восстановление к начальному состоянию samba

Очищаем базы и конфигурацию Samba (если уже создавался домен):

rm -f /etc/samba/smb.conf
rm -rf /var/lib/samba
mkdir -p /var/lib/samba/sysvol
Внимание! Обязательно удаляйте /etc/samba/smb.conf перед созданием домена:
rm -f /etc/samba/smb.conf


Выбор имени домена

Имя домена для разворачиваемого DC должно состоять минимум из двух компонентов, разделённых точкой.

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

  • HOSTNAME=dc.school.alt в /etc/sysconfig/network
  • hostname dc.school.alt
  • domainname school.alt

Создание домена одной командой

Создание контроллера домена school.alt с паролем администратора Pa$$word:

samba-tool domain provision --realm=school.alt --domain school --adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL --server-role=dc --use-rfc2307 --use-xattrs=yes

Интерактивное создание домена

В примере показано создание домена school.alt.

Запустите samba-tool domain provision:

# samba-tool domain provision
Realm [SCHOOL.ALT]: 
 Domain [SCHOOL]: 
 Server Role (dc, member, standalone) [dc]: 
 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: 
 DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: 
Administrator password: 
Retype password: 
Looking up IPv4 addresses
More than one IPv4 address found. Using 192.168.1.1
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=school,DC=alt
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=school,DC=alt
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 /var/lib/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role:           active directory domain controller
Hostname:              c228
NetBIOS Domain:        SCHOOL
DNS Domain:            school.alt
DOMAIN SID:            S-1-5-21-80639820-2350372464-3293631772

При запросе ввода нажимайте Enter за исключением запроса пароля администратора («Administrator password:» и «Retype password:»).

Примечание: Пароль администратора должен быть не менее 8 символов и содержать символы как минимум трёх групп из четырёх возможных: латинских букв в верхнем и нижнем регистрах, чисел и других небуквенно-цифровых символов.


Параметры --use-rfc2307 --use-xattrs=yes позволяют поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux.

Запуск службы

Установите службу по умолчанию и запустите её:

chkconfig samba on
service samba start

Проверка работоспособности

1. Общая информация о домене:

# samba-tool domain info 127.0.0.1
Forest           : school.alt
Domain           : school.alt
Netbios domain   : SCHOOL
DC name          : c228.school.alt
DC netbios name  : C228
Server site      : Default-First-Site-Name
Client site      : Default-First-Site-Name

2. Просмотр предоставляемых служб:

# smbclient -L localhost -Uadministrator
Enter administrator's password: 
Domain=[SCHOOL] OS=[Unix] Server=[Samba 4.0.21]

        Sharename       Type      Comment
        ---------       ----      -------
        netlogon        Disk      
        sysvol          Disk      
        IPC$            IPC       IPC Service (Samba 4.0.21)
Domain=[SCHOOL] OS=[Unix] Server=[Samba 4.0.21]

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

        Workgroup            Master
        ---------            -------
        SCHOOL.ALT           C228
        WORKGROUP            HOST-15

3. Проверка конфигурации DNS 3.1 Убедитесь в наличии nameserver 127.0.0.1 в /etc/resolv.conf:

host school.alt

3.2 Проверяем имена хостов:

# host -t SRV _kerberos._udp.school.alt.
_kerberos._udp.school.alt has SRV record 0 100 88 c228.school.alt.
# host -t SRV _ldap._tcp.school.alt.
_ldap._tcp.school.alt has SRV record 0 100 389 c228.school.alt.
# host -t A c228.school.alt.
c228.school.alt has address 192.168.1.1

Если имена не находятся, проверяйте выключение службы named.

4. Проверка Kerberos:

Внимание! Имя домена должно быть в верхнем регистре, иначе выдаст
kinit: KDC reply did not match expectations while getting initial credentials
# kinit administrator@SCHOOL.ALT
Password for administrator@SCHOOL.ALT: 
Warning: Your password will expire in 41 days on Вт 11 ноя 2014 08:58:30

Просмотр полученного билета:

# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@SCHOOL.ALT

Valid starting       Expires              Service principal
30.09.2014 10:23:54  30.09.2014 20:23:54  krbtgt/SCHOOL.ALT@SCHOOL.ALT
        renew until 01.10.2014 10:23:45

Управление пользователями

Создать пользователя с паролем, :

samba-tool user add <имя пользователя>
samba-tool user setexpiry <имя пользователя>

Например,

samba-tool user add ivanov --given-name='Иван Иванов' --mail-address='ivanov@stand.alt'

Просмотреть доступных пользователей:

samba-tool user list
Внимание! Не допускайте одинаковое имена для пользователей и компьютера, это может привести к коллизиям (например, такого пользователя нельзя добавить в группу). [6]


Если компьютер с таким именем заведён, то удалить его можно командой:

pdbedit -x -m <имя>

Заведение вторичного DC

Подробная инструкция на английском языке: https://wiki.samba.org/index.php/Join_a_domain_as_a_DC

Имя узла: dc2.school.alt (192.168.1.106)

1. На PDC не забываем выключить службу bind и, если она была включена, перезапустить службу samba. Заводим адрес IP для dc2:

Внимание! Указание аутентифицирующей информации (имени пользователя и пароля) обязательно!
# samba-tool dns add 192.168.1.1 school.alt DC2 A 192.168.1.106 -Uadministrator

2. На dc2.school.alt правим файл /etc/krb5.conf:

[libdefaults]
default_realm = SCHOOL.ALT
dns_lookup_realm = true
dns_lookup_kdc = true
Примечание: В resolvconf обязательно должен быть добавлен PDC как nameserver.


3. Получаем билет и убеждаемся, что билет получен:

Внимание! Имя домена должно быть указано в верхнем регистре
# kinit administrator@SCHOOL.ALT
Password for administrator@SCHOOL.ALT: 
Warning: Your password will expire in 37 days on Пт 14 ноя 2014 14:31:40
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@SCHOOL.ALT

Valid starting       Expires              Service principal
07.10.2014 18:51:01  08.10.2014 04:51:01  krbtgt/SCHOOL.ALT@SCHOOL.ALT
        renew until 08.10.2014 18:50:51

4. Вводим в домен:

# samba-tool domain join school.alt DC -Uadministrator --realm=school.alt

Если всё нормально, в конце видим:

Joined domain SCHOOL (SID S-1-5-21-80639820-2350372464-3293631772) as a DC

5. Делаем службу samba запускаемой по умолчанию:

# chkconfig samba on

Если подключались к DC под управлением Windows, запустите службу samba:

# service samba start

Репликация

Внимание! Помните, что без успешной двунаправленной репликации в течение 14 дней DC исключается из Active Directory
Внимание! Указание аутентифицирующей информации (имени пользователя и пароля) обязательно!

1. Реплицируем на вторичном DC (с первичного):

# samba-tool drs replicate dc2.school.alt c228.school.alt dc=school,dc=alt -Uadministrator

(сначала указывается приемник, затем источник, после этого реплицируемая ветка в LDAP).

2. Реплицируем на вторичном DC (на первичный):

# samba-tool drs replicate с228.school.alt dc2.school.alt dc=school,dc=alt -Uadministrator

(сначала указывается приемник, затем источник, после этого реплицируемая ветка в LDAP).

Примечание: Имя домена в именах серверов можно опустить (если они одинаковые)


3. Просмотр статуса репликации на PDC:

# samba-tool drs showrepl
Примечание: Если репликация на Windows не работает, добавьте в Active Directory Sites and Services новое соединение Active Directory. Реплицируйте на DC, подождите минут 5 и пробуйте реплицировать с Samba на Windows


Ссылки

Советы

  • Введите в домен машину с Windows, установите на неё Remote Server Administration Tools и управляйте доменом из графического интерфейса.
  • Для того, чтобы посмотреть конфигурацию LDAP контроллера домена, получите билет Kerberos (через kinit) и выполните:
ldapsearch -LLL -b '' -s base -x

Troubleshooting

Если домен не создаётся с ошибкой типа ERROR(ldb): uncaught exception - operations error at ../source4/dsdb/samdb/ldb_modules/password_hash.c:2241
Удалите директиву include или includedir в /etc/krb5.conf[7]