
Zavedanje, da sem se znašel v procesu uvažanja, ni prišlo takoj. Šele ko so iz višje organizacije stalno začeli prihajati novi računalniki z distribucijo „Alt Linux“ na krovu, sem posumil, da je nekaj narobe.
Vendar sem se med postopkom sprejemanja neizbežnega vključno v proces in celo nekoliko začel uživati. V nekem trenutku sem pomislil, da bom prej ali slej moral pozabiti na rešitve za upravljanje imenikov Microsoft in se usmeriti v nekaj bolj eksotičnega. Zato sem se odločil, da bom vnaprej pripravil testno okolje, ki vključuje:
- DC1 — Windows Server 2012R2
- DC2 — Alt Server 8.2
- File Server — Windows Server 2012R2
- PC1 — Windows 7
- PC2 — Alt Delovna postaja 8.2
Naloge okolja:
- Uvedba domene temelječe na w2k12r2. Ustvariti minimalni nabor skupinskih politik (podobno tistim, ki se uporabljajo v delovni infrastrukturi), vključno s politiko selitve uporabniških delovnih map (Prenosi/Dokumenti/Delovna površina). Na koncu si želim, da bi uporabnik pri menjavi delovnega mesta z Windows na Linux in nazaj imel udoben dostop do svojih delovnih dokumentov.
- Vnos Samba DC kot drugega kontrolerja. Preveritev replikacije storitev imenikov in DNS
- Nastavitev Linux strank za delo z selitvenimi mapami
Izvedba:
- Namestitev in uvedba novega kontrolerjaZ namestitvijo MS Windows 2012R2 je vse preprosto in bolj ali manj jasno. Na internetu je 1001 priročnik za uvedbo domene na Windows tako z uporabo GUI kot z orodjem Powershell, zato ne bom ponavljal, samo prepuščam uradni dokumentaciji, za radovedne in tiste, ki želijo osvežiti spomin.
Kljub temu obstaja en pomemben trenutek v tem delu. Danes Samba ne podpira delovnih shem višjih od 2008R2.
Naslov sklope Bolje rečeno, ta podpora se zahteva s strani razvijalcev kot eksperimentalna. V praksi pa boste pri poskusu vnosa Sambe kot drugega DC v obstoječo Windows domeno z različico sheme 69 naleteli na naslednjo napako
DsAddEntry failed with status WERR_ACCESS_DENIED info (8567, ‘WERR_DS_INCOMPATIBLE_VERSION’)
Težava je v tem, da Windows 2012 in 2012R2 za upravljanje z domenskimi in gozdnimi strukturi uporabljata orodja WMI, katerih stabilna podpora je bila napovedana šele za različico Samba 4.11, ki naj bi izšla do konca tega leta.
To pomeni, da je edina možnost za vključitev Sambe v AD domeno, ki teče na strežniku 2012R2, znižanje sheme z 69 na 47. Seveda tega v delovni infrastrukturi brez tehtnih razlogov ne bi smeli početi, vendar imamo tukaj testno okolje, tako da zakaj pa ne.Namestimo Alt Server 8.2. Med namestitvijo izberemo profil „Samba-DC strežnik (AD kontroler)“. Na nameščenem strežniku izvedemo celovito nadgradnjo sistema in namestimo paket task-samba-dc, ki bo prenesel vse potrebno.
# apt-get install task-samba-dcČe bo morda task-samba-dc, kljub trditvam dokumentacije Alt, zavrnil namestitev vsega potrebnega sam.
# apt-get install python-module-samba-DC samba-DC-common samba-DC-winbind-clients samba-DC-winbind samba-DC-common-libs libpytalloc-develNato preidemo k nastavitvi Kerberosa in pridobitvi vstopnice. Odprimo datoteko krb5.conf, gremo v razdelek [libdefaults] in jo spremenimo v naslednjo obliko:
# vim /etc/krb5.confdns_lookup_kdc = true dns_lookup_realm = true default_realm = TEST.LOCALZahtevamo vstopnico.
# kinit administrator Password for administrator@TEST.LOCAL:Preverimo seznam pridobljenih vstopnic 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:35Zdaj odstranimo ali preimenujemo obstoječo konfiguracijo Sambe.
# mv smb.conf smb.conf.bak1In končno se vključimo v AD domeno kot drugi kontroler:
# samba-tool domain join test.local DC -U"TESTadministrator"Uspešno vključitev bo spremljal naslednji log.
Ищем доступный контроллер домена для домена 'test.local' Найден контроллер DC DC1.TEST.LOCAL Пароль для [TESTadministrator]: Переподключение к основному мастеру имён e31d7da6-8f56-4420-8473-80f2b3a31338._msdcs.TEST.LOCAL DNS-имя нового мастера имён — DC1.TEST.LOCAL Рабочая группа — TEST Область — TEST.LOCAL Добавление CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL Добавление CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL Добавление CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL Добавление SPN в CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL Установка пароля аккаунта для DC2$ Включение аккаунта Вызов базовой настройки Поиск адресов IPv4 Поиск адресов IPv6 IPv6-адрес не будет назначен Настройка share.ldb Настройка secrets.ldb Настройка реестра Настройка базы данных привилегий Настройка базы данных idmap Настройка базы данных SAM Настройка разделов и настроек sam.ldb Настройка корневого DSE sam.ldb Предварительная загрузка схемы Samba 4 и AD Конфигурация Kerberos, подходящая для Samba AD, была сгенерирована по адресу /var/lib/samba/private/krb5.conf Настройка завершена для домена DN DC=TEST,DC=LOCAL Запуск репликации Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] объекты[402/1426] связанные_значения[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] объекты[804/1426] связанные_значения[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] объекты[1206/1426] связанные_значения[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] объекты[1608/1426] связанные_значения[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] объекты[1743/1426] связанные_значения[0/0] Анализ и применение объектов схемы Partition[CN=Configuration,DC=TEST,DC=LOCAL] объекты[402/2240] связанные_значения[0/24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] объекты[804/2240] связанные_значения[0/24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] объекты[1206/2240] связанные_значения[0/24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] объекты[1608/2240] связанные_значения[0/24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] объекты[1772/2240] связанные_значения[24/24] Репликация критических объектов из базового DN домена Partition[DC=TEST,DC=LOCAL] объекты[109/110] связанные_значения[26/29] Partition[DC=TEST,DC=LOCAL] объекты[394/5008] связанные_значения[29/29] Завершена репликация всегда воспроизводимых NC (базовый, конфигурация, схема) Репликация DC=DomainDnsZones,DC=TEST,DC=LOCAL Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] объекты[42/42] связанные_значения[0/0] Репликация DC=ForestDnsZones,DC=TEST,DC=LOCAL Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] объекты[20/20] связанные_значения[0/0] Exop на[CN=RID Manager$,CN=System,DC=TEST,DC=LOCAL] объекты[3] связанные_значения[0] Коммит базы данных SAM Добавление 1 удалённой DNS-записи для DC2.TEST.LOCAL Добавление DNS A-записи DC2.TEST.LOCAL для IPv4 IP: 192.168.90.201 Добавление DNS CNAME-записи 6ff1df40-cbb5-41f0-b7b3-53a27dde8edf._msdcs.TEST.LOCAL для DC2.TEST.LOCAL Все остальные DNS-записи (такие как _ldap SRV-записи) будут созданы при первом запуске samba_dnsupdate Репликация новых DNS-записей в DC=DomainDnsZones,DC=TEST,DC=LOCAL Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] объекты[1/42] связанные_значения[0/0] Репликация новых DNS-записей в DC=ForestDnsZones,DC=TEST,DC=LOCAL Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] объекты[1/20] связанные_значения[0/0] Отправка DsReplicaUpdateRefs для всех реплицируемых разделов Установка isSynchronized и dsServiceName Настройка базы данных секретов Присоединился к домену TEST (SID S-1-5-21-3959064270-1572045903-2556826204) в качестве контроллера доменаV orodju ADUC se mora pojaviti vnos o novem DC v domeni TEST.LOCAL, v upravljalniku DNS pa nova A vnos, ki ustreza DC2.
- Replikacija med krmilnikiNajprej preverimo delovanje storitve za replikacijo katalogov (DRS)
# samba-tool drs showreplVsi poskusi replikacije v izhodu morajo biti uspešni. Na seznamu predmetov KCC se mora v 15 minutah po vnosu pojaviti naš DC1 na Windows.
Privzeti- prvi-ime-spletne-straniDC2 DSA možnosti: 0x00000001 DSA objekt GUID: 0e9f5bce-ff59-401e-bdbd-fc69df3fc6bf DSA invocationId: 017997b5-d718-41d7-a3f3-e57ab5151b5c ==== INBOUND Susedje ==== DC=ForestDnsZones,DC=test,DC=local Privzeti- prvi-ime-spletne-straniDC1 preko RPC DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Zadnji poskus @ Pon Maj 27 12:56:31 2019 MSK je bil uspešen 0 zaporednih napak. Zadnja uspešna @ Pon Maj 27 12:56:31 2019 MSK DC=DomainDnsZones,DC=test,DC=local Privzeti- prvi-ime-spletne-straniDC1 preko RPC DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Zadnji poskus @ Pon Maj 27 12:56:32 2019 MSK je bil uspešen 0 zaporednih napak. Zadnja uspešna @ Pon Maj 27 12:56:32 2019 MSK CN=Schema,CN=Configuration,DC=test,DC=local Privzeti- prvi-ime-spletne-straniDC1 preko RPC DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Zadnji poskus @ Pon Maj 27 12:56:32 2019 MSK je bil uspešen 0 zaporednih napak. Zadnja uspešna @ Pon Maj 27 12:56:32 2019 MSK DC=test,DC=local Privzeti- prvi-ime-spletne-straniDC1 preko RPC DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Zadnji poskus @ Pon Maj 27 12:56:32 2019 MSK je bil uspešen 0 zaporednih napak. Zadnja uspešna @ Pon Maj 27 12:56:32 2019 MSK CN=Configuration,DC=test,DC=local Privzeti- prvi-ime-spletne-straniDC1 preko RPC DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Zadnji poskus @ Pon Maj 27 12:56:33 2019 MSK je bil uspešen 0 zaporednih napak. Zadnja uspešna @ Pon Maj 27 12:56:33 2019 MSK ==== OUTBOUND Susedje ==== DC=ForestDnsZones,DC=test,DC=local Privzeti- prvi-ime-spletne-straniDC1 preko RPC DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Zadnji poskus @ Čet Maj 23 16:40:03 2019 MSK je bil uspešen 0 zaporednih napak. Zadnja uspešna @ Čet Maj 23 16:40:03 2019 MSK DC=DomainDnsZones,DC=test,DC=local Privzeti- prvi-ime-spletne-straniDC1 preko RPC DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Zadnji poskus @ Čet Maj 23 16:40:03 2019 MSK je bil uspešen 0 zaporednih napak. Zadnja uspešna @ Čet Maj 23 16:40:03 2019 MSK CN=Schema,CN=Configuration,DC=test,DC=local Privzeti- prvi-ime-spletne-straniDC1 preko RPC DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Zadnji poskus @ Čet Maj 23 16:40:08 2019 MSK je bil uspešen 0 zaporednih napak. Zadnja uspešna @ Čet Maj 23 16:40:08 2019 MSK DC=test,DC=local Privzeti- prvi-ime-spletne-straniDC1 preko RPC DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Zadnji poskus @ Čet Maj 23 16:40:08 2019 MSK je bil uspešen 0 zaporednih napak. Zadnja uspešna @ Čet Maj 23 16:40:08 2019 MSK CN=Configuration,DC=test,DC=local Privzeti- prvi-ime-spletne-straniDC1 preko RPC DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Zadnji poskus @ Pon Maj 27 12:12:17 2019 MSK je bil uspešen 0 zaporednih napak. Zadnja uspešna @ Pon Maj 27 12:12:17 2019 MSK ==== KCC POVEZOVALNI OBJEKT ==== Povezava -- Ime povezave: 6d2652b3-e723-4af7-a19f-1ee48915753c Omogočeno : DA DNS ime strežnika : DC1.test.local DN ime strežnika : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Privzeti- prvi-ime-spletne-strani,CN=Sites,CN=Configuration,DC=test,DC=local TransportType: RPC možnosti: 0x00000001 Opozorilo: Ni NC replikacija za povezavo!Opozorilo «No NC replicated for Connection!» lahko mirno ignorirate. Pojavlja se, ker pri registraciji novega DC Samba napačno nastavi nekatere zastavice replikacije.
Prav tako je dobro preveriti replikacijo LDAP.
# samba-tool ldapcmp ldap://dc1.test.local ldap://dc2.test.local -UadministratorZgornja ukaz bo primerjala vrednosti atributov objektov celotnega kataloga na DC1 in DC2.
Primer uspešne replikacije
* Primerjanje [DOMAIN] konteksta... * Objekti, ki jih je treba primerjati: 249 * Rezultat za [DOMAIN]: USPEH * Primerjanje [CONFIGURATION] konteksta... * Objekti, ki jih je treba primerjati: 1750 * Rezultat za [CONFIGURATION]: USPEH * Primerjanje [SCHEMA] konteksta... * Objekti, ki jih je treba primerjati: 1739 * Rezultat za [SCHEMA]: USPEH * Primerjanje [DNSDOMAIN] konteksta... * Objekti, ki jih je treba primerjati: 42 * Rezultat za [DNSDOMAIN]: USPEH * Primerjanje [DNSFOREST] konteksta... * Objekti, ki jih je treba primerjati: 20 * Rezultat za [DNSFOREST]: USPEHV nekaterih primerih se lahko atributi objektov na različnih kontrolerjih razlikujejo, rezultat ukaza pa bo o tem obvestil. Vendar pa to ne bo vedno znak težave z replikacijo.
Naslednji korak je ročno nastaviti stabilno replikacijo kataloga SysVol.
Gre za to, da Samba še ne podpira DFS-R, prav tako pa ni podpirala prejšnjega FRS. Zato je za replikacijo med DC Samba in Windows edina trenutno delujoča rešitev enostranska replikacija s pomočjo orodja Robocopy iz paketa .Razvijalci Sambe, da bi se izognili težavam s združljivostjo, priporočajo, da najprej namestite paket orodij na navadno delovno postajo, nato pa kopirate Robocopy na kontroler v mapo "C:Program Files (x86)Windows Resource KitsTools"
Po namestitvi v načrtovalniku opravil na Windows kontrolerju ustvarimo nalogo za izvajanje replikacije z naslednjimi parametri:
— Izvaja se za vse uporabnike
— Trigger za izvajanje vsake 5 minut tekom dneva
— V dejanjih zapišemo pot do orodja robocopy, kot argumente pa navedemo:DC1SYSVOLtest.local DC2SYSVOLtest.local /mir /secV konkretnem primeru kopiramo vsebino mape SysVol z DC1 na DC2.
- Prenosljive mape uporabnikov s pomočjo konfiguracije pam_mountS preizkušanjem sem našel dve izvedljivi možnosti za rešitev te naloge s pomočjo tega.
- Celotna montaža mape profila iz omrežja v razdelek /home. Enostavna možnost. Odlično deluje, če se imena map Moji dokumenti, Prenosi in Namizje ujemajo v obeh operacijskih sistemih. Predpostavlja se, da je računalnik na Linuxu že vključen v domeno in da se uporabniki prijavljajo s svojimi domenami, pri čemer se uporablja sssd kot mehanizem avtentikacije in avtorizacije.
# 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"/>kde:
- uid=„100000000-2000000000“ — razpon UID, dodeljen domenskim uporabnikom iz SSSD
- server=„dfs“ — ime datotečnega strežnika
- path=„Profile_Users/%(USER)“ — vir na datotečnem strežniku, kjer je shranjen uporabniški profil
- mountpoint=»~« — montirna pot v domačo mapo uporabnika
Uporabniško ime se prenese v makropremenljivko „%(USER)“, ki jo uporablja pam_mount za povezavo z našim omrežnim virom, v takšni obliki, kot je vnesena v upravljalniku zaslona. Zato je pomembno, da se v DMs prijavite brez izrecnega navedbe imena domene.
V sssd.conf se to reši z komentiranjem ali nastavitvijo vrednosti False v opciji use_fully_qualified_names, ki omogoča način polnih imen (vključno z domeno) za uporabnike in skupine.
- Drugi način je manj neposreden in bolj grob, kar je zame bolj udobno in zaželeno. Razlika od prvega je samo v konfiguraciji pam_mount.
# vim /etc/security/pam_mount.conf.xmlTorej preprosto ločeno montiramo vsak naš mapo v ustrezen imenik.
- Celotna montaža mape profila iz omrežja v razdelek /home. Enostavna možnost. Odlično deluje, če se imena map Moji dokumenti, Prenosi in Namizje ujemajo v obeh operacijskih sistemih. Predpostavlja se, da je računalnik na Linuxu že vključen v domeno in da se uporabniki prijavljajo s svojimi domenami, pri čemer se uporablja sssd kot mehanizem avtentikacije in avtorizacije.
Zaključki
V pol meseca dela na testnem okolju je ta povezava uspešno preživela nekaj izmeničnih dolgoročnih in kratkoročnih izpadov obeh kontrolerjev, praktično brez posledic za stranke (enkrat je stranka na Windows 7 izgubila zaupanja vredne odnose).
Na splošno imam precej prijetne vtise o delu s tem izdelkom, kljub vsem odtenkom, s katerimi sem se moral soočiti tako v članku kot tudi "za kulisami".
Obstajajo pasti, je jih veliko, in med delom s Sambom jih bo treba ujeti v velikem številu. Kljub temu trenutno ne obstajajo drugačna rešitev, ki bi omogočala organizacijo hibridnega okolja, z uporabo storitve imenikov in brez uporabe sistema Windows.
Izvor: habr.com
