
Осъзнаването, че съм във вносна каша, не дойде веднага. Едва когато започнаха стабилно да пристигат нови доставки на персонални компютри от по-висока организация с дистрибуцията на Alt Linux на борда, заподозрах, че нещо не е наред.
Въпреки това, докато преминавах през етапите на приемане на неизбежното, се включих и дори започнах малко да се наслаждавам на процеса. И в един момент си помислих, че с това темпо рано или късно ще трябва да се разделя с решенията за организиране на справочни услуги от Microsoft и да се ориентирам към нещо по-екзотично. Ето защо, за да се подготвим предварително за неизбежното и, ако е възможно, да хванем възможно най-много клопки, беше решено да се разположи тестов стенд, който включва:
- DC1 — Windows Server 2012R2
- DC2 - Viola сървър 8.2
- Файлов сървър — Windows Server 2012R2
- ПК1 — Windows 7
- PC2 - работна станция Viola 8.2
Цели на щанда:
- Разполагане на домейн, базиран на w2k12r2. Създаване на минимален набор от групови правила (подобни на тези, използвани в производствената инфраструктура), включително правило за мигриране на работните папки на потребителите (Изтегляния/Документи/Работен плот). В крайна сметка искам да гарантирам, че когато потребител смени работната си станция, Windows на Linux и обратно той имаше удобен достъп до служебните си документи.
- Samba DC вход от втория контролер. Проверка на директория и DNS репликация
- Настройка на клиенти Linux за работа с преместващи се папки
Изпълнение:
- Монтаж и пускане в експлоатация на нов контролерС инсталация на MS Windows 2012R2 е прост и горе-долу ясен. В интернет има 1001 ръководства за внедряване на домейн на Windows както използвайки графичния потребителски интерфейс, така и Powershell, така че няма да го повтарям, просто ще оставя включено изключено. документация за любопитните и тези, които искат да опреснят паметта си.
В този момент обаче все още има един важен момент. В момента Samba не може да работи със схеми на директории, по-високи от 2008R2.
спойлер заглавие По-точно, разработчиците заявиха, че тази поддръжка е експериментална. Но на практика това е опит за въвеждане на Samba като втори контролер на домейна в съществуващ домейн. Windows със схема 69 - ще бъдете посрещнати със следната грешка
DsAddEntry е неуспешен със статус WERR_ACCESS_DENIED информация (8567, 'WERR_DS_INCOMPATIBLE_VERSION')
Проблемът е, че Windows 2012 и 2012R2 използват WMI инструменти за работа с домейни и гори, стабилна поддръжка за които е обявена само за версия Samba 4.11, която се очаква да излезе преди края на тази година.
От това следва, че единствената възможност за въвеждане на samba в AD домейн, разположен на 2012R2 сървър, е да се понижи схемата от 69 на 47. Разбира се, това не трябва да се прави в производствена инфраструктура без основателна причина, но имаме тестов стенд тук, така че защо не всъщност не.Инсталирайте Alt Server 8.2. По време на инсталацията изберете профила „Samba-DC Server (AD Controller)“. На внедрения сървър извършваме пълна актуализация на системата и инсталираме пакета task-samba-dc, който ще изтегли всичко необходимо
# apt-get install task-samba-dcАко изведнъж task-samba-dc, противно на уверенията на документацията, Alta отказва да инсталира всичко необходимо сама.
# apt-get install python-module-samba-DC samba-DC-common samba-DC-winbind-clients samba-DC-winbind samba-DC-common-libs libpytalloc-develСлед това преминаваме към настройка на Kerberos и получаване на билет. Отворете файла krb5.conf, отидете на секцията [libdefaults] и го пренесете до следния формуляр:
# vim /etc/krb5.confdns_lookup_kdc = true dns_lookup_realm = true default_realm = TEST.LOCALИскане на билет
# kinit administrator Password for administrator@TEST.LOCAL:Проверка на списъка с получени Kerberos билети
# klist Ticket cache: KEYRING:persistent:0:0 Default principal: administrator@TEST.LOCAL Valid starting Expires Service principal 16.05.2019 11:51:38 16.05.2019 21:51:38 krbtgt/TEST.LOCAL@TEST.LOCAL renew until 23.05.2019 11:51:35Сега изтриваме или преименуваме съществуващата конфигурация на samba.
# mv smb.conf smb.conf.bak1И накрая, влизаме в AD домейна с втория контролер:
# samba-tool domain join test.local DC -U"TESTadministrator"Успешното въвеждане ще бъде придружено от следния дневник
Finding a writeable DC for domain 'test.local' Found DC DC1.TEST.LOCAL Password for [TESTadministrator]: Reconnecting to naming master e31d7da6-8f56-4420-8473-80f2b3a31338._msdcs.TEST. LOCAL DNS name of new naming master is DC1.TEST.LOCAL workgroup is TEST realm is TEST.LOCAL Adding CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL Adding CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC =TEST,DC=LOCAL Adding CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN =Configuration,DC=TEST,DC=LOCAL Adding SPNs to CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL Setting account password for DC2$ Enabling account Calling bare provision 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 A Kerberos configuration suitable for Samba AD has been generated at /var/lib/sa mba/private/krb5.conf Provision OK for domain DN DC=TEST,DC=LOCAL Starting replication Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objects[402/1426] linked _values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objects[804/1426] linked _values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objects[1206/1426] linke d_values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objects[1608/1426] linke d_values[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objects[1743/1426] linke d_values[0/0] Analyze and apply schema objects Partition[CN=Configuration,DC=TEST,DC=LOCAL] objects[402/2240] linked_values[0/ 24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] objects[804/2240] linked_values[0/ 24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] objects[1206/2240] linked_values[0 /24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] objects[1608/2240] linked_values[0 /24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] objects[1772/2240] linked_values[2 4/24] Replicating critical objects from the base DN of the domain Partition[DC=TEST,DC=LOCAL] objects[109/110] linked_values[26/29] Partition[DC=TEST,DC=LOCAL] objects[394/5008] linked_values[29/29] Done with always replicated NC (base, config, schema) Replicating DC=DomainDnsZones,DC=TEST,DC=LOCAL Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objects[42/42] linked_values[0/0] Replicating DC=ForestDnsZones,DC=TEST,DC=LOCAL Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objects[20/20] linked_values[0/0] Exop on[CN=RID Manager$,CN=System,DC=TEST,DC=LOCAL] objects[3] linked_values[0] Committing SAM database Adding 1 remote DNS records for DC2.TEST.LOCAL Adding DNS A record DC2.TEST.LOCAL for IPv4 IP: 192.168.90.201 Adding DNS CNAME record 6ff1df40-cbb5-41f0-b7b3-53a27dde8edf._msdcs.TEST.LOCAL for DC2.TEST.LOCAL All other DNS records (like _ldap SRV records) will be created samba_dnsupdate o n first startup Replicating new DNS records in DC=DomainDnsZones,DC=TEST,DC=LOCAL Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objects[1/42] linked_values[0/0] Replicating new DNS records in DC=ForestDnsZones,DC=TEST,DC=LOCAL Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objects[1/20] linked_values[0/0] Sending DsReplicaUpdateRefs for all the replicated partitions Setting isSynchronized and dsServiceName Setting up secrets database Joined domain TEST (SID S-1-5-21-3959064270-1572045903-2556826204) as a DCВ ADUC snap-in трябва да има запис за новия DC в домейна TEST.LOCAL, а в DNS мениджъра трябва да има нов A запис, съответстващ на DC2.
- Репликация между контролериПърво, нека проверим работата на услугата за репликация на директории (DRS)
# samba-tool drs showreplВсички опити за репликация в изхода трябва да са успешни. Нашият DC1 трябва да се появи в списъка с обекти на KCC в рамките на 15 минути след въвеждането. Windows
Default-First-Site-NameDC2 DSA Options: 0x00000001 DSA object GUID: 0e9f5bce-ff59-401e-bdbd-fc69df3fc6bf DSA invocationId: 017997b5-d718-41d7-a3f3-e57ab5151b5c ==== INBOUND NEIGHBORS ==== DC=ForestDnsZones,DC=test,DC=local Default-First-Site-NameDC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Mon May 27 12:56:31 2019 MSK was successful 0 consecutive failure(s). Last success @ Mon May 27 12:56:31 2019 MSK DC=DomainDnsZones,DC=test,DC=local Default-First-Site-NameDC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Mon May 27 12:56:32 2019 MSK was successful 0 consecutive failure(s). Last success @ Mon May 27 12:56:32 2019 MSK CN=Schema,CN=Configuration,DC=test,DC=local Default-First-Site-NameDC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Mon May 27 12:56:32 2019 MSK was successful 0 consecutive failure(s). Last success @ Mon May 27 12:56:32 2019 MSK DC=test,DC=local Default-First-Site-NameDC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Mon May 27 12:56:32 2019 MSK was successful 0 consecutive failure(s). Last success @ Mon May 27 12:56:32 2019 MSK CN=Configuration,DC=test,DC=local Default-First-Site-NameDC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Mon May 27 12:56:33 2019 MSK was successful 0 consecutive failure(s). Last success @ Mon May 27 12:56:33 2019 MSK ==== OUTBOUND NEIGHBORS ==== DC=ForestDnsZones,DC=test,DC=local Default-First-Site-NameDC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Thu May 23 16:40:03 2019 MSK was successful 0 consecutive failure(s). Last success @ Thu May 23 16:40:03 2019 MSK DC=DomainDnsZones,DC=test,DC=local Default-First-Site-NameDC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Thu May 23 16:40:03 2019 MSK was successful 0 consecutive failure(s). Last success @ Thu May 23 16:40:03 2019 MSK CN=Schema,CN=Configuration,DC=test,DC=local Default-First-Site-NameDC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Thu May 23 16:40:08 2019 MSK was successful 0 consecutive failure(s). Last success @ Thu May 23 16:40:08 2019 MSK DC=test,DC=local Default-First-Site-NameDC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Thu May 23 16:40:08 2019 MSK was successful 0 consecutive failure(s). Last success @ Thu May 23 16:40:08 2019 MSK CN=Configuration,DC=test,DC=local Default-First-Site-NameDC1 via RPC DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Last attempt @ Mon May 27 12:12:17 2019 MSK was successful 0 consecutive failure(s). Last success @ Mon May 27 12:12:17 2019 MSK ==== KCC CONNECTION OBJECTS ==== Connection -- Connection name: 6d2652b3-e723-4af7-a19f-1ee48915753c Enabled : TRUE Server DNS name : DC1.test.local Server DN name : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=local TransportType: RPC options: 0x00000001 Warning: No NC replicated for Connection!предупреждение „Няма репликиран NC за връзка!“ може безопасно да се игнорира. Изглежда, че при регистриране на нов DC Samba неправилно задава някои флагове за репликация.
Също така би било добра идея да проверите LDAP репликацията.
# samba-tool ldapcmp ldap://dc1.test.local ldap://dc2.test.local -UadministratorГорната команда ще сравни стойностите на атрибутите на целите обекти на директорията на DC1 и DC2.
Пример за успешна репликация
* Comparing [DOMAIN] context... * Objects to be compared: 249 * Result for [DOMAIN]: SUCCESS * Comparing [CONFIGURATION] context... * Objects to be compared: 1750 * Result for [CONFIGURATION]: SUCCESS * Comparing [SCHEMA] context... * Objects to be compared: 1739 * Result for [SCHEMA]: SUCCESS * Comparing [DNSDOMAIN] context... * Objects to be compared: 42 * Result for [DNSDOMAIN]: SUCCESS * Comparing [DNSFOREST] context... * Objects to be compared: 20 * Result for [DNSFOREST]: SUCCESSВ някои случаи атрибутите на обектите на различни контролери може да се различават и изходът на командата ще ви уведоми за това. Но не във всички случаи това ще е знак за проблем с репликацията.
Следващата стъпка е ръчно да конфигурирате стабилна репликация на директорията SysVol.
Работата е там, че Samba все още не поддържа DFS-R, точно както не поддържаше и по-ранния FRS. Следователно, за репликация между домейни, Samba и Windows Единственото работещо решение до момента е еднопосочно репликация с помощта на помощната програма Robocopy от комплекта .За да избегнат проблеми със съвместимостта, разработчиците на Samba препоръчват първо да инсталирате пакета помощни програми на обикновена работна станция и след това да копирате Robocopy на контролера в папката "C:\Program Files (x86)".Windows Комплекти ресурсиИнструменти»
След инсталацията, в планировчика на задачите на контролера с Windows Създаваме задача за извършване на репликация със следните параметри:
— Изпълнение за всички потребители
— Задействане за изпълнение Ежедневно на всеки 5 минути през деня
— В действията посочваме пътя до помощната програма robocopy, като посочваме като аргументи:DC1SYSVOLtest.local DC2SYSVOLtest.local /mir /secВ този конкретен случай копираме съдържанието на директорията SysVol от DC1 в DC2.
- Преносими потребителски папки, използващи конфигурация pam_mountЧрез опит открих две жизнеспособни възможности за решаване на този проблем с негова помощ.
- Пълно монтиране на папка с профил от мрежата към дяла /home. Проста опция. Работи чудесно, ако имената на папките „Моите документи“, „Изтегляния“ и „Работен плот“ са еднакви и в двете операционни системи. Това предполага, че компютърът на Linux вече е въведен в домейна и потребителите влизат с акаунтите си в домейна, използвайки sssd като механизъм за удостоверяване и оторизация.
# vim /etc/security/pam_mount.conf.xml<volume uid="100000000-2000000000" fstype="cifs" server="dfs" path="Profile_Users/%(USER)" mountpoint="~" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775"/>където:
- uid="100000000-2000000000" — UID диапазон, присвоен на потребители на домейн от SSSD
- сървър = "dfs" - име на файлов сървър
- path="Profile_Users/%(USER)" — ресурс на файлов сървър с хостван потребителски профил
- точка на монтиране=”~” — път за монтиране до домашната папка на потребителя
Потребителското влизане се предава на макропроменливата „%(USER)“, използвана от pam_mount за свързване на нашия мрежов ресурс, както е въведено в диспечера на дисплея. Ето защо е важно данните за вход да бъдат въведени в DM, без изрично да се посочва името на домейна.
В sssd.conf това се решава чрез коментиране или задаване на опцията на False използвайте_пълно_квалифицирани_имена, което позволява режим на пълно име (включително домейн) за потребители и групи.
- Вторият метод е по-малко лесен и тромав и според мен по-удобен и за предпочитане. Разликата от първия е само в конфигурацията pam_mount
# vim /etc/security/pam_mount.conf.xml<volume uid="100000000-2000200000" fstype="cifs" server="dfs" path="Profile_Users/%(USER)/Рабочий стол" mountpoint="~/Рабочий стол" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775"/> <volume uid="100000000-2000200000" fstype="cifs" server="dfs" path="Profile_Users/%(USER)/Downloads" mountpoint="~/Загрузки" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775"/> <volume uid="100000000-2000200000" fstype="cifs" server="dfs" path="Profile_Users/%(USER)/Мои документы" mountpoint="~/Документы" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775"/>Тоест ние просто монтираме всяка от нашите папки отделно в съответната директория
- Пълно монтиране на папка с профил от мрежата към дяла /home. Проста опция. Работи чудесно, ако имената на папките „Моите документи“, „Изтегляния“ и „Работен плот“ са еднакви и в двете операционни системи. Това предполага, че компютърът на Linux вече е въведен в домейна и потребителите влизат с акаунтите си в домейна, използвайки sssd като механизъм за удостоверяване и оторизация.
Данни
По време на половин месец работа на тестовия стенд, този пакет успешно преживя няколко редуващи се дългосрочни и краткосрочни изключвания на двата контролера, практически без последствия за клиентите (след като клиентът е включен Windows7 загубени доверителни взаимоотношения).
Като цяло имах доста приятно изживяване от работата с този продукт, въпреки всички нюанси, с които трябваше да се справя както в статията, така и „зад кулисите“.
Има капани, много от тях, и докато работите със Samba, ще трябва да откриете голям брой от тях. В момента обаче няма други решения, които да ви позволяват да организирате хибридна среда, както със, така и без услуга за директории. Windows.
Източник: www.habr.com
