
Дисклеймер, которому лучше быть, чем не быть
Я проводил данное исследование только ради своего развития и изучения продукта.
Я не буду актуализировать данную статью и никак не связан ни с одной из компаний в данной статье на момент публикации статьи.
Все что описано в инструкции было сделано только мной и в не рабочее время.
Все материалы были взяты из общедоступных источников или проверены мною в ходе тестирования на локальных стендах.
Если есть какие-либо правовые ошибки, можно обратиться в ЛС для их скорейшего решения и устранения с моей стороны.
Цели и задачи статьи
Необходимо построить доверительные отношения между SambaDC и ALD Pro, и выполнить проверки:
Авторизация пользователей из домена ALD Pro на хост под управлением SambaDC и наоборот;
Подключение и работа модуля миграции ALD Pro в связке с SambaDC;
Подключение и работа модуля синхронизации ALD Pro в связке с SambaDC.
1. Настройка SambaDC
Имя КД Samba = dc2.samba.dcIP КД Samba = 10.177.124.242Версия ОС = ALSE 1.7.6Build 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.domainIP КД ALD Pro= 10.177.124.147Версия ALD Pro = 2.5.0Версия ОС = ALSE 1.7.6Build 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
Необходимо открыть файл /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
Подключаем источник миграции и запускаем миграцию.

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


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).