
Zavedanje, da sem se znašel v uvozni zamenjavi, ni prišlo takoj. Šele ko so iz višje organizacije redne dobave računalnikov začele prispirati s distribucijo „Alt Linux“ na krovu, sem začel dvomiti v situacijo.
Vendar sem se v procesu prehajanja skozi stadije sprejemanja neizbežnega vključeval in celo nekoliko užival v procesu. V nekem trenutku sem pomislil, da bom prej ko slej moral posloviti od rešitev za organizacijo storitve katalogov od Microsofta in se usmeriti k nečemu bolj eksotičnemu. Zato, da bi se vnaprej pripravili na neizbežno in po možnosti ujeli čim več podvodnih kamenov, smo se odločili postaviti 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:
- Postaviti domeno na osnovi w2k12r2. Ustvariti minimalni nabor skupinskih politik (podobno tistim, ki se uporabljajo v delovni infrastrukturi), vključno s politiko prenosa delovnih map uporabnikov (Prenosi/Dokumenti/Delovna površina). Na koncu si želimo, da bi imel uporabnik pri preklopu s sistema Windows na Linux in nazaj udoben dostop do svojih delovnih dokumentov.
- Vnos Samba DC kot drugega kontrolerja. Preverjanje replikacije storitve katalogov in DNS.
- Nastavitev Linux odjemalcev za delo s premakljivimi mapami.
Izvedba:
- Namestitev in vnos novega kontrolerja.Z namestitvijo MS Windows 2012R2 je vse preprosto in dokaj jasno. Na spletu je 1001 priročnik za postavitev domene na Windows, tako preko GUI kot preko PowerShell, zato ne bom ponavljal in bom pustil le na uradno dokumentacijo, za radovedne in tiste, ki si želijo osvežiti spomin.
Vendar pa je v tej točki še ena pomembna stvar. Danes Samba ne zna delovati s shemami katalogov, višjimi od 2008R2.
Naslov spojlerja Na kratko, podpira jo razvijalci, a kot eksperimentalna. Vendar pa bo na praksi poskus vnosa Sambe kot drugega DC v obstoječo Windows domeno s shemo 69 naletel 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 delo z domenskimi in drevesnimi storitvami uporabljata orodja WMI, katerih stabilna podpora je napovedana šele za različico Samba 4.11, ki naj bi izšla do konca tega leta.
Iz tega izhaja, da je edina možnost za uvajanje Sambe v AD domeno, nameščeno na strežniku 2012R2, znižanje sheme s 69 na 47. Seveda tega na produkcijski infrastrukturi brez utemeljenega razloga ne bi smeli početi, a imamo testno okolje, zato zakaj pa ne.Namestimo Alt Server 8.2. Med namestitvijo izberemo profil „Samba-DC strežnik (AD kontroler)“. Na nameščenem strežniku popolnoma posodobimo sistem in namestimo paket task-samba-dc, ki bo potegnil vse potrebno.
# apt-get install task-samba-dcČe pa se zgodi, da task-samba-dc kljub zagotovilom dokumentacije Alti ne bo namestil vsega potrebnega.
# 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 pridobivanju vozovnice. Odprimo datoteko krb5.conf, preidemo v razdelek [libdefaults] in jo prilagodimo na naslednji način:
# vim /etc/krb5.confdns_lookup_kdc = true dns_lookup_realm = true default_realm = TEST.LOCALZažene se zahteva za vozovnico.
# kinit administrator Password for administrator@TEST.LOCAL:Preverimo seznam pridobljenih Kerberosovih vozovnic.
# 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 izbrišemo ali preimenujemo obstoječo konfiguracijo Sambe.
# mv smb.conf smb.conf.bak1In končno se vpišemo v domeno AD kot drugi kontroler:
# samba-tool domain join test.local DC -U"TESTadministrator"Uspešen vpis bo spremljal naslednji zapis
Ciljamo na pisljiv DC za domeno 'test.local' Najden DC DC1.TEST.LOCAL Geslo za [TESTadministrator]: Ponovno se povezujemo na nazivnega masterja e31d7da6-8f56-4420-8473-80f2b3a31338._msdcs.TEST.LOCAL DNS ime novega nazivnega masterja je DC1.TEST.LOCAL delovna skupina je TEST kraljestvo je TEST.LOCAL Dodajamo CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL Dodajamo CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL Dodajamo CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL Dodajanje SPN-jev za CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL Nastavljanje gesla računa za DC2$ Omogočanje računa Klicanje osnovne oskrbe Iskanje IPv4 naslovov Iskanje IPv6 naslovov Noben IPv6 naslov ne bo dodeljen Nastavljanje share.ldb Nastavljanje secrets.ldb Nastavljanje registra Nastavljanje baze privilegijev Nastavljanje idmap db Nastavljanje SAM db Nastavljanje sam.ldb delitev in nastavitev Nastavljanje sam.ldb rootDSE Prednalaganje sheme Samba 4 in AD Konfiguracija Kerberos, primerna za Samba AD, je bila ustvarjena na /var/lib/samba/private/krb5.conf Oskrba OK za domeno DN DC=TEST,DC=LOCAL Začinjanje replikacije Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objekti[402/1426] povezani_vrednosti[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objekti[804/1426] povezani_vrednosti[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objekti[1206/1426] povezani_vrednosti[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objekti[1608/1426] povezani_vrednosti[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objekti[1743/1426] povezani_vrednosti[0/0] Analiza in uporaba shematskih objektov Partition[CN=Configuration,DC=TEST,DC=LOCAL] objekti[402/2240] povezani_vrednosti[0/24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] objekti[804/2240] povezani_vrednosti[0/24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] objekti[1206/2240] povezani_vrednosti[0/24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] objekti[1608/2240] povezani_vrednosti[0/24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] objekti[1772/2240] povezani_vrednosti[24/24] Replikacija kritičnih objektov iz osnovnega DN domene Partition[DC=TEST,DC=LOCAL] objekti[109/110] povezani_vrednosti[26/29] Partition[DC=TEST,DC=LOCAL] objekti[394/5008] povezani_vrednosti[29/29] Delo z vedno replikacijo NC (osnovna, konfiguracija, shema) Replikacija DC=DomainDnsZones,DC=TEST,DC=LOCAL Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objekti[42/42] povezani_vrednosti[0/0] Replikacija DC=ForestDnsZones,DC=TEST,DC=LOCAL Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objekti[20/20] povezani_vrednosti[0/0] Exop na[CN=RID Manager$,CN=System,DC=TEST,DC=LOCAL] objekti[3] povezani_vrednosti[0] Zavezujoče SAM baza Dodajanje 1 oddaljenih DNS zapisov za DC2.TEST.LOCAL Dodajanje DNS A zapisa DC2.TEST.LOCAL za IPv4 IP: 192.168.90.201 Dodajanje DNS CNAME zapisa 6ff1df40-cbb5-41f0-b7b3-53a27dde8edf._msdcs.TEST.LOCAL za DC2.TEST.LOCAL Vsi drugi DNS zapisi (kot _ldap SRV zapisi) bodo ustvarjeni samba_dnsupdate ob prvi zagonu Replikacija novih DNS zapisov v DC=DomainDnsZones,DC=TEST,DC=LOCAL Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objekti[1/42] povezani_vrednosti[0/0] Replikacija novih DNS zapisov v DC=ForestDnsZones,DC=TEST,DC=LOCAL Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objekti[1/20] povezani_vrednosti[0/0] Pošiljanje DsReplicaUpdateRefs za vse replikirane delitve Nastavitev isSynchronized in dsServiceName Nastavljanje baze skrivnosti Pridružili smo se domenu TEST (SID S-1-5-21-3959064270-1572045903-2556826204) kot DCV orodju ADUC se mora pojaviti zapis o novem DC v domeni TEST.LOCAL, v upravitelju DNS pa nova A zapis, ki ustreza DC2.
- Replikacija med kontrolerjiNajprej preverimo delovanje storitve replikacije katalogov (DRS)
# samba-tool drs showreplVse poskusi replikacije v izhodu morajo biti uspešni. Na seznamu objektov KCC bi se moral v 15 minutah po vnosu pojaviti naš DC1 na Windows.
Imeni-Prototipa-Pervogo-SaytaDC2 Varianti DSA: 0x00000001 GUID ob'ekta DSA: 0e9f5bce-ff59-401e-bdbd-fc69df3fc6bf Invokatsiya DSA: 017997b5-d718-41d7-a3f3-e57ab5151b5c ==== VKHODYASHCHIE SOSEDI ==== DC=ForestDnsZones,DC=test,DC=local Imeni-Prototipa-Pervogo-SaytaDC1 cherez RPC GUID ob'ekta DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Poslednyaya popytka @ Pon May 27 12:56:31 2019 MSK udalas' 0 posledenikh neudach. Posledniy uspekhi @ Pon May 27 12:56:31 2019 MSK DC=DomainDnsZones,DC=test,DC=local Imeni-Prototipa-Pervogo-SaytaDC1 cherez RPC GUID ob'ekta DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Poslednyaya popytka @ Pon May 27 12:56:32 2019 MSK udalas' 0 posledenikh neudach. Posledniy uspekhi @ Pon May 27 12:56:32 2019 MSK CN=Schema,CN=Configuration,DC=test,DC=local Imeni-Prototipa-Pervogo-SaytaDC1 cherez RPC GUID ob'ekta DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Poslednyaya popytka @ Pon May 27 12:56:32 2019 MSK udalas' 0 posledenikh neudach. Posledniy uspekhi @ Pon May 27 12:56:32 2019 MSK DC=test,DC=local Imeni-Prototipa-Pervogo-SaytaDC1 cherez RPC GUID ob'ekta DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Poslednyaya popytka @ Pon May 27 12:56:32 2019 MSK udalas' 0 posledenikh neudach. Posledniy uspekhi @ Pon May 27 12:56:32 2019 MSK CN=Configuration,DC=test,DC=local Imeni-Prototipa-Pervogo-SaytaDC1 cherez RPC GUID ob'ekta DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Poslednyaya popytka @ Pon May 27 12:56:33 2019 MSK udalas' 0 posledenikh neudach. Posledniy uspekhi @ Pon May 27 12:56:33 2019 MSK ==== VYKHODYASHCHIE SOSEDI ==== DC=ForestDnsZones,DC=test,DC=local Imeni-Prototipa-Pervogo-SaytaDC1 cherez RPC GUID ob'ekta DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Poslednyaya popytka @ Cht May 23 16:40:03 2019 MSK udalas' 0 posledenikh neudach. Posledniy uspekhi @ Cht May 23 16:40:03 2019 MSK DC=DomainDnsZones,DC=test,DC=local Imeni-Prototipa-Pervogo-SaytaDC1 cherez RPC GUID ob'ekta DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Poslednyaya popytka @ Cht May 23 16:40:03 2019 MSK udalas' 0 posledenikh neudach. Posledniy uspekhi @ Cht May 23 16:40:03 2019 MSK CN=Schema,CN=Configuration,DC=test,DC=local Imeni-Prototipa-Pervogo-SaytaDC1 cherez RPC GUID ob'ekta DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Poslednyaya popytka @ Cht May 23 16:40:08 2019 MSK udalas' 0 posledenikh neudach. Posledniy uspekhi @ Cht May 23 16:40:08 2019 MSK DC=test,DC=local Imeni-Prototipa-Pervogo-SaytaDC1 cherez RPC GUID ob'ekta DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Poslednyaya popytka @ Cht May 23 16:40:08 2019 MSK udalas' 0 posledenikh neudach. Posledniy uspekhi @ Cht May 23 16:40:08 2019 MSK CN=Configuration,DC=test,DC=local Imeni-Prototipa-Pervogo-SaytaDC1 cherez RPC GUID ob'ekta DSA: 60fb339d-efa3-4585-a42d-04974e6601b7 Poslednyaya popytka @ Pon May 27 12:12:17 2019 MSK udalas' 0 posledenikh neudach. Posledniy uspekhi @ Pon May 27 12:12:17 2019 MSK ==== KCC SVYAZI ==== Svyaz' -- Imya svyazi: 6d2652b3-e723-4af7-a19f-1ee48915753c Vklucheno : TRUE DNS imya servera : DC1.test.local DN imya servera : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Imeni-Prototipa-Pervogo-Sayta,CN=Sites,CN=Configuration,DC=test,DC=local Tip transporta: RPC opcii: 0x00000001 Preduprezhdenie: Net NC, kotoraya repliciruetsya dlya svyazi!Preduprezhdenie «No NC replicated for Connection!» to lahko ignoriramo. Pojavi se, ker ob registraciji novega DC Samba napačno nastavi nekatere zastavice replikacije.
Prav tako bo dobro preveriti replikacijo LDAP.
# samba-tool ldapcmp ldap://dc1.test.local ldap://dc2.test.local -UadministratorZgornja ukazna vrstica bo primerjala vrednosti atributov objektov celotnega imenika na DC1 in DC2.
Primer uspešne replikacije
* Compariranje [DOMAIN] konteksta... * Objekti za primerjavo: 249 * Rezultat za [DOMAIN]: USPEH * Compariranje [CONFIGURATION] konteksta... * Objekti za primerjavo: 1750 * Rezultat za [CONFIGURATION]: USPEH * Compariranje [SCHEMA] konteksta... * Objekti za primerjavo: 1739 * Rezultat za [SCHEMA]: USPEH * Compariranje [DNSDOMAIN] konteksta... * Objekti za primerjavo: 42 * Rezultat za [DNSDOMAIN]: USPEH * Compariranje [DNSFOREST] konteksta... * Objekti za primerjavo: 20 * Rezultat za [DNSFOREST]: USPEHV nekaterih primerih se lahko atributi objektov na različnih krmilnikih razlikujejo, izhod ukaza pa vas bo o tem obvestil. Vendar to ne pomeni vedno, da gre za težavo z replikacijo.
Naslednji korak je ročna nastavitev stabilne replikacije imenika SysVol.
Stvar je v tem, da Samba zaenkrat ne podpira DFS-R, prav tako kot ni podpirala prejšnjega FRS. Zato je edina trenutno delujoča rešitev za replikacijo med DC Samba in Windows enosmerna replikacija z uporabo orodja Robocopy iz kompleta .Razvijalci Sambe, da bi se izognili težavam s združljivostjo, priporočajo, da najprej namestite komplet orodij na navadno delovno postajo, šele nato pa kopirate Robocopy na krmilnik v mapo „C:Program Files (x86)Windows Resource KitsTools“
Po namestitvi v načrtovalniku opravil na krmilniku Windows ustvarimo opravilo za izvedbo replikacije z naslednjimi parametri:
— Izvedba za vse uporabnike
— Triger za izvedbo Dnevno vsakih 5 minut čez dan
— V dejanjih zapišemo pot do orodja robocopy, kot argumente pa navedemo:DC1SYSVOLtest.local DC2SYSVOLtest.local /mir /secV tem konkretnem primeru kopiramo vsebino imenika SysVol z DC1 na DC2.
- Prenosljive mape uporabnikov s pomočjo konfiguracije pam_mountZ eksperimentiranjem sem odkril dva življenjska okolišča za reševanje te naloge s to metodo.
- Popolno montiranje mape s profilom iz omrežja v razdelek /home. Preprost način. Odlično deluje, če se imena map Moji dokumenti, Prenosi in Delovna površina ujemajo v obeh operacijskih sistemih. Predpostavlja se, da je PC na Linuxu že vključen v domeno in uporabniki se prijavljajo s svojimi domenami računi, pri čemer se uporablja mehanizem za avtentikacijo in avtorizacijo 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"/>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 z uporabniškim profilom
- mountpoint=»~» — pot montaže v domačo mapo uporabnika
Uporabniško ime se prenaša v makro spremenljivko «%(USER)», ki jo uporablja pam_mount za povezovanje z našim omrežnim virom, v obliki, v kateri je vnesena v upravljalcu zaslona. Zato je pomembno, da se v DM uporabniško ime vnese brez izrecnega navajanja domena imena.
V sssd.conf se to reši z dodajanjem komentarja ali z nastavitvijo vrednosti False v opcijo 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 grob, in po mojem mnenju bolj priročen in priporočljiv. Razlika od prvega je le v konfiguraciji pam_mount
# vim /etc/security/pam_mount.conf.xmlTo pomeni, da preprosto ločeno montiramo vsako našo mapo v ustrezno mape
- Popolno montiranje mape s profilom iz omrežja v razdelek /home. Preprost način. Odlično deluje, če se imena map Moji dokumenti, Prenosi in Delovna površina ujemajo v obeh operacijskih sistemih. Predpostavlja se, da je PC na Linuxu že vključen v domeno in uporabniki se prijavljajo s svojimi domenami računi, pri čemer se uporablja mehanizem za avtentikacijo in avtorizacijo sssd.
Zaključki
V pol meseca dela na testnem okolju je ta povezava uspešno preživela več dolgotrajnih in kratkotrajnih izklopov obeh nadzornih strežnikov, praktično brez posledic za stranke (enkrat je stranka na Windows7 izgubila zaupne odnose).
Na splošno imam precej prijetne vtise o delu s tem izdelkom, kljub vsem podrobnostim, s katerimi sem se srečal tako v članku kot tudi 'za kulisami'.
Obstajajo skrite pasti, je jih veliko, in med delom s Sambo jih boste morali ujete v velikem številu. Kljub temu trenutno ne obstajajo drugačna rešitev, ki bi omogočila organizacijo hibridnega okolja z uporabo storitve imenika in brez uporabe sistema Windows.
Izvor: habr.com
