Samba DC teise kontrollerina AD Windows 2012R2 domeenis ja liikuvad kaustad Windowsi ja Linuxi klientidele.

Samba DC teise kontrollerina AD Windows 2012R2 domeenis ja liikuvad kaustad Windowsi ja Linuxi klientidele.
Arusaam, et olen sattunud imporditĂ”rkele, ei tulnud kohe. Alles siis, kui ĂŒlemast organisatsioonist hakkasid regulaarselt saabuma uued arvutid koos distributsiooniga „Alt Linux“, hakkasin ma kahtlema.

Siiski, lĂ€bi kĂ€ies vĂ€ltimatuse etappidest, sain ma sisse tĂ”mmatud ja hakkasin isegi natuke protsessist nautima. Teatud hetkel mĂ”tlesin, et sellise kiirusena pean ma varem vĂ”i hiljem loobuma Microsofti katalooge haldavatest lahendustest ja liikuma midagi eksootilisemat poole. SeetĂ”ttu otsustasime, et ettevalmistamiseks ja vĂ”imalikult palju takistuste vĂ€ltimiseks ehitame ĂŒles testkeskkonna, mis sisaldab jĂ€rgmist:

  • DC1 — Windows Server 2012R2
  • DC2 — Alt Server 8.2
  • Failiserver — Windows Server 2012R2
  • PC1 — Windows 7
  • PC2 — Alt Tööstusjaam 8.2

Testkeskkonna ĂŒlesanded:

  1. KÀivitada domeen w2k12r2 baasil. Luua minimaalne grupipoliitikate komplekt (sarnane tööinfrastruktuuris kasutatavale), sealhulgas kasutajate töökÀivade (Allalaadimised/Dokumendid/Töölaud) liikumispoliitika. LÔppkokkuvÔttes on soov, et kasutaja vahetades töökohta Windowsilt Linuxile ja tagasi saaks oma töödokumentidele mugavalt ligipÀÀsu.
  2. Samba DC sisestamine teise kontrollijana. Kataloogiteenuste ja DNS-i replikatsiooni kontrollimine.
  3. Linuxi klientide seadistamine liikuvaid kaustu kasutama.

Rakendamine:

  1. Uue kontrollija installimine ja kÀivitamine.MS Windows 2012R2 paigaldamine on lihtne ja enam-vÀhem selge. Internetis on 1001 juhendit domeeni seadistamisest Windowsis nii GUI kaudu kui Powershelli tööriistade abil, seega ei hakka ma kordama, vaid jÀtan ainult lingil ametlikule dokumentatsioonile, uudishimulikele ja neile, kes soovivad mÀlu vÀrskendada.

    Siiski on selles punktis ĂŒks oluline moment. TĂ€nase pĂ€evani ei oska Samba töötada kataloogiskeemidega, mis on ĂŒle 2008R2.

    Spoilertitle Arendajate poolt on see tugi kehtestatud eksperimentaalse teenusena. Praktiliselt proovides samba lisamiseks teise DC-ina olemasolevasse Windowsi domeeni skeemiga 69, saate te jÀrgmise vea.

    DsAddEntry ebaÔnnestus staatusega WERR_ACCESS_DENIED info (8567, 'WERR_DS_INCOMPATIBLE_VERSION')

    Probleem seisneb selles, et Windows 2012 ja 2012R2 kasutavad domeenide ja metsade haldamiseks WMI tööriistu, mille stabiilne tugi on kuulutatud ainult Samba versioonile 4.11, mis peaks vÀlja tulema kÀesoleva aasta lÔpuks.
    Seega on ainus vÔimalus samba sissetoomiseks aadressi AD domeeni, mis on juurutatud 2012R2 serveris, skeemi alandamine 69-elt 47-le. Loomulikult ei tasu seda teha töötavas infrastruktuuris ilma mÔjuva pÔhjuseta, kuid meil on siin testimise keskkond, seega miks mitte.

    Paigaldame Alt Server 8.2. Paigaldamise ajal valime profiili "Samba-DC server (AD kontroller)". Juurutatud serveris teeme sĂŒsteemi tĂ€ieliku uuendamise ja installime paketti task-samba-dc, mis tĂ”mbab kaasa kĂ”ik vajalikud komponendid.

    # apt-get install task-samba-dc

    Kui task-samba-dc, vaatamata Alt dokumendi kinnitustele, keeldub installimast kÔike vajalikku ise.

    # apt-get install python-module-samba-DC samba-DC-common samba-DC-winbind-clients samba-DC-winbind samba-DC-common-libs libpytalloc-devel

    Liigume edasi Kerberose seadistamise ja pileti saamise juurde. Avame faili krb5.conf, lÀheme jaotisse [libdefaults] ja seame selle jÀrgmisesse vormi:

    # vim /etc/krb5.conf
     dns_lookup_kdc = true
     dns_lookup_realm = true
     default_realm = TEST.LOCAL

    KĂŒsimus pilet

    # kinit administrator
    Password for administrator@TEST.LOCAL:

    Kontrollime saadud Kerberose piletite nimekirja

    # 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

    NĂŒĂŒd kustutame vĂ”i ĂŒmber nimetame olemasoleva samba konfiguratsiooni.

    # mv smb.conf smb.conf.bak1

    Ja lÔpuks lisame AD domeeni teise kontrollerina:

    # samba-tool domain join test.local DC -U"TESTadministrator"

    Edukas lisamine toob kaasa jÀrgmise logi

    Otsin kirjutatavat DC-d domeeni 'test.local' jaoks
    Leitud DC DC1.TEST.LOCAL
    Parool [TESTadministrator]:
    Taasilmumine nimemajandile e31d7da6-8f56-4420-8473-80f2b3a31338._msdcs.TEST.LOCAL
    Uue nimemajandi DNS nimi on DC1.TEST.LOCAL
    töörĂŒhm on TEST
    valdkond on TEST.LOCAL
    Lisa CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL
    Lisa CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL
    Lisa CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL
    Lisatakse SPN-id CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL
    Seadistatakse konto parool DC2$
    Konto aktiveerimine
    Helistades palja varustuse provision
    Otsin IPv4 aadresse
    Otsin IPv6 aadresse
    Ei mÀÀrata IPv6 aadressi
    Seadistamine share.ldb
    Seadistamine secrets.ldb
    Seadistamine registris
    Seadistamine privileegide andmebaasis
    Seadistamine idmap andmebaasis
    Seadistamine SAM andmebaasis
    Seadistamine sam.ldb partitsioonide ja seadete jaoks
    Seadistamine sam.ldb rootDSE
    Eelload Samba 4 ja AD skeem
    Samba AD jaoks on loodud sobiv Kerberos konfiguratsioon aadressil \/var\/lib\/samba\/private\/krb5.conf
    Provision OK domeeni DN DC=TEST,DC=LOCAL
    Alustamine replikatsioon
    Skeem-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objektid[402\/1426] lingitud_vÀÀrtused[0\/0]
    Skeem-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objektid[804\/1426] lingitud_vÀÀrtused[0\/0]
    Skeem-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objektid[1206\/1426] lingitud_vÀÀrtused[0\/0]
    Skeem-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objektid[1608\/1426] lingitud_vÀÀrtused[0\/0]
    Skeem-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objektid[1743\/1426] lingitud_vÀÀrtused[0\/0]
    AnalĂŒĂŒsin ja rakendan skeemi objekte
    Partitsioon[CN=Configuration,DC=TEST,DC=LOCAL] objektid[402\/2240] lingitud_vÀÀrtused[0\/24]
    Partitsioon[CN=Configuration,DC=TEST,DC=LOCAL] objektid[804\/2240] lingitud_vÀÀrtused[0\/24]
    Partitsioon[CN=Configuration,DC=TEST,DC=LOCAL] objektid[1206\/2240] lingitud_vÀÀrtused[0\/24]
    Partitsioon[CN=Configuration,DC=TEST,DC=LOCAL] objektid[1608\/2240] lingitud_vÀÀrtused[0\/24]
    Partitsioon[CN=Configuration,DC=TEST,DC=LOCAL] objektid[1772\/2240] lingitud_vÀÀrtused[24\/24]
    Replitseerimine kriitiliste objektidega domeeni pÔhijuhist
    Partitsioon[DC=TEST,DC=LOCAL] objektid[109\/110] lingitud_vÀÀrtused[26\/29]
    Partitsioon[DC=TEST,DC=LOCAL] objektid[394\/5008] lingitud_vÀÀrtused[29\/29]
    LÔpetatud alati replitseeritud NC (pÔhi, konfiguratsioon, skeem)
    Replitseerimine DC=DomainDnsZones,DC=TEST,DC=LOCAL
    Partitsioon[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objektid[42\/42] lingitud_vÀÀrtused[0\/0]
    Replitseerimine DC=ForestDnsZones,DC=TEST,DC=LOCAL
    Partitsioon[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objektid[20\/20] lingitud_vÀÀrtused[0\/0]
    Exop on[CN=RID Manager$,CN=System,DC=TEST,DC=LOCAL] objektid[3] lingitud_vÀÀrtused[0]
    Salvestamine SAM andmebaasis
    Lisamine 1 kaug DNS kirjeid DC2.TEST.LOCAL
    Lisamine DNS A kirje DC2.TEST.LOCAL IPv4 IP: 192.168.90.201
    Lisamine DNS CNAME kirje 6ff1df40-cbb5-41f0-b7b3-53a27dde8edf._msdcs.TEST.LOCAL DC2.TEST.LOCAL jaoks
    KÔik muud DNS kirjed (nÀiteks _ldap SRV kirjed) luuakse samba_dnsupdate esimese kÀivitamise ajal
    Replitseerimine uued DNS kirjed DC=DomainDnsZones,DC=TEST,DC=LOCAL
    Partitsioon[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objektid[1\/42] lingitud_vÀÀrtused[0\/0]
    Replitseerimine uued DNS kirjed DC=ForestDnsZones,DC=TEST,DC=LOCAL
    Partitsioon[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objektid[1\/20] lingitud_vÀÀrtused[0\/0]
    Saates DsReplicaUpdateRefs kÔikide replitseeritud partitsioonide jaoks
    Seadistades isSynchronized ja dsServiceName
    Seadistamine saladuste andmebaasis
    Liitus domeeniga TEST (SID S-1-5-21-3959064270-1572045903-2556826204) kui DC

    ADUCi tööriistas peaks ilmuma uus DC sissekanne domeenis TEST.LOCAL, ning DNS-i halduris uus A-sisend, mis vastab DC2-le.

  2. Replikatsioon kontrollerite vahelAlustame katalooge replikeerimise teenuse (DRS) toimimise kontrollimisega
    # samba-tool drs showrepl

    KÔik replikatsiooni katsed vÀljundis peavad olema edukad. KCC objektide nimekirjas peaks 15 minuti jooksul pÀrast sisestamist ilmuma meie DC1 Windowsis

    Default-First-Site-NameDC2
    	DSA valikuid: 0x00000001
    	DSA objekti GUID: 0e9f5bce-ff59-401e-bdbd-fc69df3fc6bf
    	DSA kutsumise ID: 017997b5-d718-41d7-a3f3-e57ab5151b5c
    
    	==== SISENEVAD NAABRID ====
    
    	DC=ForestDnsZones,DC=test,DC=local
    	        Default-First-Site-NameDC1 lÀbi RPC
    	                DSA objekti GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Viimane katse @ EsmaspÀev, 27. mai 2019 kell 12:56:31 MSK oli edukas
    	                0 jÀrjestikust ebaÔnnestumist.
    	                Viimane edu @ EsmaspÀev, 27. mai 2019 kell 12:56:31 MSK
    
    	DC=DomainDnsZones,DC=test,DC=local
    	        Default-First-Site-NameDC1 lÀbi RPC
    	                DSA objekti GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Viimane katse @ EsmaspÀev, 27. mai 2019 kell 12:56:32 MSK oli edukas
    	                0 jÀrjestikust ebaÔnnestumist.
    	                Viimane edu @ EsmaspÀev, 27. mai 2019 kell 12:56:32 MSK
    
    	CN=Schema,CN=Configuration,DC=test,DC=local
    	        Default-First-Site-NameDC1 lÀbi RPC
    	                DSA objekti GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Viimane katse @ EsmaspÀev, 27. mai 2019 kell 12:56:32 MSK oli edukas
    	                0 jÀrjestikust ebaÔnnestumist.
    	                Viimane edu @ EsmaspÀev, 27. mai 2019 kell 12:56:32 MSK
    
    	DC=test,DC=local
    	        Default-First-Site-NameDC1 lÀbi RPC
    	                DSA objekti GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Viimane katse @ EsmaspÀev, 27. mai 2019 kell 12:56:32 MSK oli edukas
    	                0 jÀrjestikust ebaÔnnestumist.
    	                Viimane edu @ EsmaspÀev, 27. mai 2019 kell 12:56:32 MSK
    
    	CN=Configuration,DC=test,DC=local
    	        Default-First-Site-NameDC1 lÀbi RPC
    	                DSA objekti GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Viimane katse @ EsmaspÀev, 27. mai 2019 kell 12:56:33 MSK oli edukas
    	                0 jÀrjestikust ebaÔnnestumist.
    	                Viimane edu @ EsmaspÀev, 27. mai 2019 kell 12:56:33 MSK
    
    	==== VÄLJUND NAABRID ====
    
    	DC=ForestDnsZones,DC=test,DC=local
    	        Default-First-Site-NameDC1 lÀbi RPC
    	                DSA objekti GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Viimane katse @ NeljapÀev, 23. mai 2019 kell 16:40:03 MSK oli edukas
    	                0 jÀrjestikust ebaÔnnestumist.
    	                Viimane edu @ NeljapÀev, 23. mai 2019 kell 16:40:03 MSK
    
    	DC=DomainDnsZones,DC=test,DC=local
    	        Default-First-Site-NameDC1 lÀbi RPC
    	                DSA objekti GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Viimane katse @ NeljapÀev, 23. mai 2019 kell 16:40:03 MSK oli edukas
    	                0 jÀrjestikust ebaÔnnestumist.
    	                Viimane edu @ NeljapÀev, 23. mai 2019 kell 16:40:03 MSK
    
    	CN=Schema,CN=Configuration,DC=test,DC=local
    	        Default-First-Site-NameDC1 lÀbi RPC
    	                DSA objekti GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Viimane katse @ NeljapÀev, 23. mai 2019 kell 16:40:08 MSK oli edukas
    	                0 jÀrjestikust ebaÔnnestumist.
    	                Viimane edu @ NeljapÀev, 23. mai 2019 kell 16:40:08 MSK
    
    	DC=test,DC=local
    	        Default-First-Site-NameDC1 lÀbi RPC
    	                DSA objekti GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Viimane katse @ NeljapÀev, 23. mai 2019 kell 16:40:08 MSK oli edukas
    	                0 jÀrjestikust ebaÔnnestumist.
    	                Viimane edu @ NeljapÀev, 23. mai 2019 kell 16:40:08 MSK
    
    	CN=Configuration,DC=test,DC=local
    	        Default-First-Site-NameDC1 lÀbi RPC
    	                DSA objekti GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Viimane katse @ EsmaspÀev, 27. mai 2019 kell 12:12:17 MSK oli edukas
    	                0 jÀrjestikust ebaÔnnestumist.
    	                Viimane edu @ EsmaspÀev, 27. mai 2019 kell 12:12:17 MSK
    
    	==== KCC ÜHENDUSE OBJEDID ====
    
    	Ühendus --
    	        Ühenduse nimi: 6d2652b3-e723-4af7-a19f-1ee48915753c
    	        Lubatud        : TÕENE
    	        Serveri DNS nimi : DC1.test.local
    	        Serveri DN nimi  : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=local
    	                Edastusliik: RPC
    	                valikud: 0x00000001
    	Hoiatus: Ühendusele ei ole replikeeritud NC!

    Hoiatus Â«Ăœkski NC ei replikatsiooni ĂŒhendamiseks!» seda vĂ”ib julgelt ignoreerida. See ilmub seetĂ”ttu, et Samba installib registreerimise ajal uue DC jaoks valesti mĂ”ned replikatsiooni lipud.

    Samuti on mÔistlik kontrollida LDAP replikatsiooni.

    # samba-tool ldapcmp ldap://dc1.test.local ldap://dc2.test.local -Uadministrator

    Above command will compare the attribute values of objects across the entire directory on DC1 and DC2.

    Edukuse replikatsiooni nÀide

    * [DOMAIN] konteksti vÔrdlemine...
    
    	* VÔrreldavad objektid: 249
    
    	* Tulemuseks [DOMAIN]: EDUSISU
    
    	* [CONFIGURATION] konteksti vÔrdlemine...
    
    	* VÔrreldavad objektid: 1750
    
    	* Tulemuseks [CONFIGURATION]: EDUSISU
    
    	* [SCHEMA] konteksti vÔrdlemine...
    
    	* VÔrreldavad objektid: 1739
    
    	* Tulemuseks [SCHEMA]: EDUSISU
    
    	* [DNSDOMAIN] konteksti vÔrdlemine...
    
    	* VÔrreldavad objektid: 42
    
    	* Tulemuseks [DNSDOMAIN]: EDUSISU
    
    	* [DNSFOREST] konteksti vÔrdlemine...
    
    	* VÔrreldavad objektid: 20
    
    	* Tulemuseks [DNSFOREST]: EDUSISU

    MÔnedel juhtudel vÔivad objektide atribuudid erinevates kontrollerites erineda, ja kÀsu vÀljund teavitab sellest. Kuid kaugel kÔikidest juhtudest on see replikatsiooni probleemide mÀrk.

    JÀrgmine etapp on kÀsitsi seadistada stabiilne SysVol katalooge replikaatsioon.
    Asi on see, et Samba ei toeta DFS-R, nagu see ei toetanud ka varasemat FRS-i. SeetĂ”ttu on ainus toimiv lahendus replikatsiooniks Samba DC ja Windowsi vahel praegusel hetkel ĂŒhepoolne replikatsioon robocopy tööriista abil. Robocopy komplektist Windows Server 2003 Resource Kit Tools.

    Samba arendajad soovitavad, et kasutajate ĂŒksteisega kokkupuutumise vĂ€ltimiseks tuleks esmalt installida utiliitide komplekt tavalisele töökohale ja seejĂ€rel kopeerida Robocopy kontrollerile kausta „C:Program Files (x86)Windows Resource KitsTools”.

    PĂ€rast installimist loome Windowsi kontrollereis ĂŒlesande ĂŒlesande planeerijasse replikatsiooni teostamiseks jĂ€rgmiste parameetritega:

    — TĂ€idab kĂ”igi kasutajate jaoks
    — Iga pĂ€ev iga 5 minuti jĂ€rel pĂ€eva jooksul rakendatav kĂ€ivitaja
    — Tegevustes mÀÀrame robocopy utiliidi tee, argumendiks mÀÀrame:

    DC1SYSVOLtest.local DC2SYSVOLtest.local /mir /sec

    Konkreetse juhtumi korral kopeerime SysVol katalooge DC1-st DC2-sse.

  3. Kasutajate kaasaskantavad kaustad pam_mount konfiguratsiooni abil.Eksperimentaalselt olen leidnud kaks elujĂ”ulist lahendust selle ĂŒlesande lahendamiseks.
    1. Katalooge profiili tĂ€ielik monteerimine vĂ”rgust failiteede alla /home. Lihtne lahendus. Töötab suurepĂ€raselt, kui kaustade nimed Minu dokumendid, Laadi alla ja Töölaud kattuvad mĂ”lemas operatsioonisĂŒsteemis. Eeldatakse, et Linuxi arvuti on juba domeeni sisse logitud ja kasutajad logivad sisse oma domeeni kontode kaudu, kasutades autentimise ja autoriseerimise mehanismina 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"/>
      

      kus:

      • uid=«100000000-2000000000» — UID vahemik, mis on antud domeeni kasutajatele SSSDi kaudu
      • server=«dfs» — failiserveri nimi
      • path=«Profile_Users/%(USER)» — ressurss failiserveril, kus kasutaja profiil asub
      • mountpoint=»~» — monteerimistee kasutaja kodukaustas

      Kasutaja sisselogimine edastatakse makromuutujasse «%(USER)», mida pam_mount kasutab meie vĂ”rguressursi ĂŒhendamiseks, just sellisena, nagu see on sisestatud kuvamisjuhtimisse. SeetĂ”ttu on oluline, et DMs logimist sisestatakse ilma domeeninime selge mĂ€rketa.

      sssd.conf-is lahendatakse see kommenteerimisega vĂ”i False-i seadistamisega valikusse use_fully_qualified_names, mis sisaldab kasutajate ja gruppide jaoks tĂ€isnime (sealhulgas domeeni) reĆŸiimi.

    2. Teine meetod on vÀhem otsene ja jÀme, ning minu arvates mugavam ja eelistatum. Erinevus esimesest on ainult pam_mounti seadistuses.
      # vim /etc/security/pam_mount.conf.xml

      See tÀhendab, et me monteerime lihtsalt iga meie kausta eraldi sobivasse kataloogi.

JĂ€reldused

Poolkuu jooksul testkeskkonnas töötamise ajal on see kombinatsioon edukalt talunud mitmeid vahelduvaid pikaajalisi ja lĂŒhiajalisi katkestusi mĂ”lemas kontrolleris, praktiliselt ilma tagajĂ€rgedeta klientidele (ĂŒhel korral kaotas klient Windows7-s usaldussuhte).

KokkuvĂ”ttes on mul selle toote kasutamisest jÀÀnud kĂŒllaltki positiivne mulje, hoolimata kĂ”igist nĂŒanssidest, millega tuli tegeleda nii artiklis kui ka 'kulisside taga'.

Alati leidub varjatud ohte, ja töötades Samba'ga tuleb neid palju vĂ€lja pĂŒĂŒda. Siiski ei ole tĂ€naseni olemas teisi lahendusi, mis vĂ”imaldaksid luua hĂŒbriidkeskkondi, kasutades katalooge ja ilma Windowsita.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster