давай дружить
давай дружить

Цели и задачи статьи

Необходимо построить доверительные отношения между SambaDC и ALD Pro, и выполнить проверки:

  • Авторизация пользователей из домена ALD Pro на хост под управлением SambaDC и наоборот;

  • Подключение и работа модуля миграции ALD Pro в связке с SambaDC;

  • Подключение и работа модуля синхронизации ALD Pro в связке с SambaDC.

1. Настройка SambaDC

Имя КД Samba = dc2.samba.dc
IP КД Samba = 10.177.124.242
Версия ОС = ALSE 1.7.6
Build OC = 1.7.6.11

1.1 Смена имени хоста и исправления файла /etc/hosts

Меняем имя хоста с помощью команды в терминале:

sudo hostnamectl set-hostname dc2.samba.dc

Далее редактируем файл /etc/hosts и прописываем имя нашей вм и ее ip-адрес

127.0.0.1       localhost
10.177.124.242  dc2.samba.dc dc2
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

1.1 Установка пакетов

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

sudo apt install samba winbind libpam-winbind libnss-winbind libpam-krb5 krb5-config krb5-user krb5-kdc bind9

1.2 Назначение Samba на роль AD DC

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

sudo systemctl stop winbind smbd nmbd krb5-kdc 
sudo systemctl mask winbind smbd nmbd krb5-kdc 
sudo rm /etc/samba/smb.conf

1.3 Назначение Samba в интерактивном режиме

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

sudo samba-tool domain provision --use-rfc2307 --interactive

В процессе Назначения должен произойти примерно такой диалог:

# Запрашивается имя области Kerberos

Realm [SAMBA.DC]: SAMBA.DC 

# Запрашивается имя домена

Domain [SAMBA]: SAMBA 

# Запрашивается роль сервера

Server Role (dc, member, standalone) [dc]: dc 

# Выбирается служба DNS

DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ 

# Выбирается IP-адрес для перенаправления запросов DNS

DNS forwarder IP address (write 'none' to disable forwarding) [10.0.2.254]: 77.88.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=samba,DC=dc

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=samba,DC=dc

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: DC

NetBIOS Domain: SAMBA

DNS Domain: samba.dc

DOMAIN SID: S-1-5-21-2614513918-2685075268-614796884

1.4 Назначение Samba в автоматическом режиме

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

  • Роль сервера: dc

  • Расширения NIS: включены

  • Служба DNS: внутренний DNS BIND9_DLZ

  • Область Kerberos и зона DNS AD: samba.dc

  • Имя домена для NetBIOS: SAMBA

  • Пароль администратора: Passw0rd

  • Используется сеть 10.177.124.0/24

  • Адрес хоста Samba 10.177.124.242

Для указанных параметров команда назначения будет выглядеть так:

sudo samba-tool domain provision --server-role=dc --use-rfc2307 --dns-backend=BIND9_DLZ --realm=SAMBA.DC --domain=SAMBA --adminpass=Passw0rd

1.5 Завершающие команды

После успешного выполнения команды назначения, перед запуском доменной службы samba, указать в файле /etc/resolve.conf зону поиска и сервер DNS

search samda.dc 
nameserver 127.0.0.1

Разрешить автоматический запуск службы контроллера домена:

sudo systemctl unmask samba-ad-dc 
sudo systemctl enable samba-ad-dc

Настроить службу DNS

echo 'include "/var/lib/samba/bind-dns/named.conf";' | sudo tee -a /etc/bind/named.conf 
sudo chown -R root:bind /var/lib/samba/bind-dns 
sudo systemctl restart bind9

Скопировать автоматически созданную конфигурацию службы Kerberos в файл /etc/krb5.conf

sudo cp -b /var/lib/samba/private/krb5.conf /etc/krb5.conf

Запустить доменную службу Samba:

sudo systemctl start samba-ad-dc

1.6 Создание реверсивных зон

С помощью команды samba-tool dns zonecreate нужно добавить зону реверсивного поиска:

samba-tool dns zonecreate samba.dc 124.177.10.in-addr.arpa -U Administrator

Password for [administrator@SAMBA.DC]: 
Zone 124.177.10.in-addr.arpa created successfully

Если требуется использовать несколько реверсивных зон команду следует выполнить несколько раз с указанием параметров соответствующих подсетей. 
Изменение реверсивных зон не требует перезапуска сервисов Samba или BIND.

1.7 Подготовка к построению ДДО

Настроить службу разрешения имен (DNS) домена Samba на работу с доменом ALD Pro:

  • Отключить проверку dnssec, для чего в файле /etc/bind/named.conf.options параметру dnssec-validation в секции options присвоить значение no:

options {
        directory "/var/cache/bind";
 
        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113
 
        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.
 
        // forwarders {
        //      0.0.0.0;
        // };
 
        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-validation no;
 
        listen-on-v6 { any; };
};
  • Добавить зону перенаправления для домена ALD Pro (aldpro.domain), указав в качестве сервера DNS IP-адрес контроллера домена ALD Pro { 10.177.124.147; } , для чего в файл /etc/bind/named.conf.local добавить строки

//
// Do any local configuration here
//
 
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
 
zone "aldpro.domain" in {
    type forward;
    forward only;
    forwarders { 10.177.124.147; };
};
  • Настроить доменную службу Samba (службу samba-ad-sssd) на работу с DNS ALD Pro, для чего в файл /etc/samba/smb.conf в секцию [global] добавить строку dns forwarder = <IP_aldpro>.
    А также сразу добавим настройки службы winbind и разрешение авторизоваться через эту службу:

# Global parameters
[global]
        netbios name = DC2
        realm = SAMBA.DC
        server role = active directory domain controller
        server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate
        workgroup = SAMBA
        idmap_ldb:use rfc2307 = yes
        dns forwarder = 10.177.124.147
#начало настройки windind
        template shell = /bin/bash
        winbind use default domain = true
        winbind offline logon = false
        winbind nss info = rfc2307 
        winbind enum users = yes
        winbind enum groups = yes
#конец настройки winbind
 
[sysvol]
        path = /var/lib/samba/sysvol
        read only = No
 
[netlogon]
        path = /var/lib/samba/sysvol/samba.dc/scripts
        read only = No
  • Настроить службу Kerberos на работу с доменом ALD Pro, для чего в файл /etc/krb5.conf в секцию [realms] добавить описание области Kerberos домена ALD Pro:

[libdefaults]
        default_realm = SAMBA.DC
        dns_lookup_realm = false
        dns_lookup_kdc = true
 
[realms]
SAMBA.DC = {
        default_domain = samba.dc
}
#добавлено
ALDPRO.DOMAIN = {
        kdc = dc1.aldpro.domain
        admin_server = dc1.aldpro.domain
}
#
[domain_realm]
        dc2 = SAMBA.DC
  • Перезапустить службы DNS (служба bind9) и контроллера домена (служба samba-ad-dc)

sudo systemctl restart bind9 samba-ad-dc
  • Убедиться, что на этом этапе работает

host -t srv _kerberos._tcp.aldpro.domain
 
_kerberos._tcp.aldpro.domain is an alias for _kerberos._tcp.hq._locations.aldpro.domain.
_kerberos._tcp.hq._locations.aldpro.domain has SRV record 0 100 88 dc1.aldpro.domain.

2. Настройка ALD Pro

Имя КД ALD Pro = dc1.aldpro.domain
IP КД ALD Pro= 10.177.124.147
Версия ALD Pro = 2.5.0
Версия ОС = ALSE 1.7.6
Build OC = 1.7.6.11

Далее по инструкции 01_Руководство_Администратора_2.5.0.pdf глава 6.7.Доверительные отношения.

1. Установить КД с глобальным каталогом;

2. В файле /etc/bind/ipa-options-ext.conf отключить dnssec;

/* dnssec-enable is obsolete and 'yes' by default */
dnssec-validation no;
allow-recursion { any; };
allow-query-cache { any; };

3. Настроить конфиг sssd в файле /etc/sssd/sssd.conf. Для доступа к ресурсам windows с аутентификацией по kerberos (IIIS, cifs, принтеры с общим доступом по smb) необходимо отключить у клиентских компьютеров FAST аутентификацию, так как windows её не поддерживает:

[domain/aldpro.domain]
#добавить отключение 
krb5_use_fast = never

id_provider = ipa
ipa_server_mode = True
......

4. Выполнить команду:

sudo net conf setparm global "restrict anonymous" "0"

5. Перезагрузить инстанс ALD Pro:

aldproctl restart

6. Проверить доступность SambaDC

root@dc1:/home/astra# nslookup samba.dc
 
Server:         127.0.0.1
Address:        127.0.0.1#53
 
Non-authoritative answer:
Name:   samba.dc
Address: 10.177.124.242

7. Выполнить построение ДДО со стороны ALD Pro:

#Для получение билета керберос администратора домена ALD Pro
kinit admin

#Построение ДДО
ipa trust-add --type=ad samba.dc --admin administrator --password --two-way=true

8. Проверить ДДО и idrange:

#Проверить появились ли доверительные отношения
ipa trust-find
---------------------------
найдено 1 отношение доверия
---------------------------
  Имя области (realm): samba.dc
  Имя домена NetBIOS: SAMBA
  Идентификатор безопасности домена: S-1-5-21-3277548201-3297483074-4236805558
  Тип отношения доверия: Домен Active Directory
---------------------------------
Количество возвращённых записей 1
 
#Проверка созданного idrange
ipa idrange-find
-------------------
найдено 2 диапазона
-------------------
  Имя диапазона: ALDPRO.DOMAIN_id_range
  Первый идентификатор POSIX диапазона: 1032400000
  Количество идентификаторов в диапазоне: 200000
  Первый RID соответствующего диапазона RID: 1000
  Первый RID вторичного диапазона RID: 100000000
  Тип диапазона: local domain range
 
  Имя диапазона: SAMBA.DC_id_range
  Первый идентификатор POSIX диапазона: 1089800000
  Количество идентификаторов в диапазоне: 200000
  Первый RID соответствующего диапазона RID: 0
  SID доверенного домена: S-1-5-21-3277548201-3297483074-4236805558
  Тип диапазона: Active Directory domain range
---------------------------------
Количество возвращённых записей 2
---------------------------------

3. Проверка работы ДДО

3.1 На стороне SambaDC

# можно выполнить в формате id 'aldpro.domain\admin'
id admin@aldpro.domain
uid=3000048(ALDPRO\admin) gid=3000050(ALDPRO\admins) группы=3000050(ALDPRO\admins),3000048(ALDPRO\admin),3000051(ALDPRO\print_admins)

# важно указать realm большими буквами
kinit admin@ALDPRO.DOMAIN           
Password for admin@ALDPRO.DOMAIN:
 
klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: admin@ALDPRO.DOMAIN
 
Valid starting       Expires              Service principal
26.06.2025 14:28:13  27.06.2025 14:03:00  krbtgt/ALDPRO.DOMAIN@ALDPRO.DOMAIN

#авторизоваться пользователем из другого домена
sudo login admin@aldpro.domain
Password:
Последний вход в систему:Чт июн 26 13:02:56 MSK 2025на pts/0
ALDPRO\admin@dc2:/$

 3.2 На стороне  ALD Pro 

# можно выполнить в формате id 'samba.dc\administrator'
id administrator@samba.dc
uid=1089800500(administrator@samba.dc) gid=1089800500(administrator@samba.dc) группы=1089800500(administrator@samba.dc),1089800520(group policy creator owners@samba.dc),1089800519(enterprise admins@samba.dc),1089800512(domain admins@samba.dc),1089800518(schema admins@samba.dc),1089800513(domain users@samba.dc)

#Проверка получение билета керберос для пользователя из другого домена
kinit administrator@samba.dc
Password for administrator@samba.dc:
 
klist
Ticket cache: KEYRING:persistent:0:krb_ccache_TtjNWqq
Default principal: Administrator@SAMBA.DC
 
Valid starting       Expires              Service principal
26.06.2025 14:35:22  27.06.2025 00:35:22  krbtgt/SAMBA.DC@SAMBA.DC
        renew until 27.06.2025 14:35:19
 
#Вход под пользователем из другого домена
sudo login administrator@samba.dc
Пароль:
Последний вход в систему:Чт июн 26 17:22:11 MSK 2025на pts/1
administrator@samba.dc@dc1:~$

4. Настройка модуля миграции

4.1 На стороне SambaDC

  1. Необходимо открыть файл /etc/samba/smb.conf и добавить строчку ldap server require strong auth = no. Без этого параметра будем получать ошибку

ldap.STRONG_AUTH_REQUIRED: {'desc': 'Strong(er) authentication required', 'info': 'BindSimple: Transport encryption required.'}
# Global parameters
[global]
        netbios name = DC2
        realm = SAMBA.DC
        server role = active directory domain controller
        server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate
        workgroup = SAMBA
        idmap_ldb:use rfc2307 = yes
        dns forwarder = 10.177.124.147
        template shell = /bin/bash
        winbind use default domain = true
        winbind offline logon = false
        winbind nss info = rfc2307
        winbind enum users = yes
        winbind enum groups = yes
        ldap server require strong auth = no                # добавленная строка
[sysvol]
        path = /var/lib/samba/sysvol
        read only = No
 
[netlogon]
        path = /var/lib/samba/sysvol/samba.dc/scripts
        read only = No

2. Перезагрузить самбу или ВМ полностью

systemctl restart samba-ad-dc

3. Создадим новую ОУ, пользователя и группу в SambaDC

 Создание ОУ

sudo samba-tool ou add 'OU=OrgUnit' Added ou "OU=OrgUnit,DC=samba,DC=dc"  

Cоздание пользователя и перемещение его в новую ОУ

#создание пользователя
sudo samba-tool user create PetrovDD 
New Password: 
Retype Password: 
User 'PetrovDD' added successfully

#перемещения пользователя в OU
sudo samba-tool user move petrovdd 'OU=OrgUnit,DC=samba,DC=dc' 
Moved user "petrovdd" into "OU=OrgUnit,DC=samba,DC=dc"

Cоздание группы и перемещение ее в новую ОУ

#Создание группы
sudo samba-tool group add MyGroup
Added group MyGroup
 
#Перемещение группы в OU
sudo samba-tool group move MyGroup 'OU=OrgUnit,DC=samba,DC=dc'
Moved group "MyGroup" into "OU=OrgUnit,DC=samba,DC=dc"

Посмотреть списки пользователей

sudo samba-tool user list

Посмотреть списки групп

sudo samba-tool group list

4.2 На стороне ALD Pro

Подключаем источник миграции и запускаем миграцию.

Управление доменом - интеграция с доменами - миграция MS AD
Управление доменом - интеграция с доменами - миграция MS AD

Результат запущенной миграции

5. Настройка модуля синхронизации

5.0 Необходимо создать нового пользователя и новую ОУ, или удалить пользователей, группу и ОУ, которые были перенесены с помощью модуля миграции.
Так как, модуль синхронизации будет проверять наличие объектов в домене ALD Pro и будут конфликты с уже мигрированными объектами.

5.1 Добавляем данные о SambaDC в веб панель ALD Pro и заполняем следующим образом:

Имя сервера: dc2.samba.dc
Имя пользователя: administrator@samba.dc
Пароль: указываем пароль от админа из домена samba.dc
В сертификат необходимо добавить файл, который лежит на контроллере SambaDC по пути /var/lib/samba/private/tls/cert.pem

5.2 ALD Pro автоматически будет заполнен

5.3 Переходим в источник и выбираем наши ОУ, которые будут синхронизированы и нажимаем сохранить

5.4 На первом КД ALD Pro, где установлена служба syncer выполняем команду, или ждем срабатывания по таймеру:

systemctl start syncer

5.5 Проверяем, что пользователи и группы появились в веб панели ALD Pro

Итог

Благодаря описанным в статье инструкциям, можно подтвердить работоспособность ALD Pro в паре с доменом на базе SambaDC.

В поле импортозамещения присутствует несколько вендоров, чьи решения основаны на SambaDC в той или иной форме:

Одним из них может являться Альт Домен.

Основа решения — международный свободный проект Samba

Большое сообщество разработчиков, постоянное развитие и обновление, самые актуальные доработки, признание организациями по всему миру, широкий опыт использования.

Вторым из них может являться RED ADM.

Скачал Samba в вашем репозитории РЕД ОС. Нет там поддержки 2012R2, только 2008

В репозитории РЕД ОС базовая Samba DC, которая поддерживает только 2008R2. Данная версия Samba DC может использоваться со Стандартной редакции РЕД АДМ (доступен в репозитории).Репликация с 2012R2 доступна в Промышленной редакции РЕД АДМ, в которую входит собственная подсистема Службы каталога с расширенным функционалом (на базе Samba DC).

Комментарии (0)