Samba DC kao drugi kontroler u AD domenu Windows 2012R2 i premjestive mape za klijente na Windows i Linux

Samba DC kao drugi kontroler u AD domenu Windows 2012R2 i premjestive mape za klijente na Windows i Linux
Svijest o tome da sam ušao u proces zamjene došla je pomalo iznenada. Samo kada su iz viših organizacija novi PC-ji počeli redovito stizati s distribucijom 'Alt Linux' na brodu, posumnjao sam da nešto nije u redu.

Međutim, tijekom procesa prolaska kroz faze prihvaćanja neizbježnog, počeo sam se uvlačiti u to i čak sam malo uživao u procesu. U nekom trenutku pomislio sam da će mi prije ili kasnije trebati napustiti Microsoftova rješenja za upravljanje katalogom i krenuti u nešto egzotičnije. Stoga sam odlučio unaprijed se pripremiti za neizbježno i, koliko god je to moguće, izbjeći zamke, tako da sam odlučio postaviti testnu platformu koja uključuje:

  • DC1 — Windows Server 2012R2
  • DC2 — Alt Server 8.2
  • File Server — Windows Server 2012R2
  • PC1 — Windows 7
  • PC2 — Alt Radna stanica 8.2

Zadaci platforme:

  1. Postaviti domenu na bazi w2k12r2. Stvoriti minimalni set grupnih politika (kao u radnoj infrastrukturi), uključujući politiku premještanja radnih mapa korisnika (Preuzimanja/Dokumenti/Radna površina). Na kraju, želim da korisnik, pri prelasku s Windows na Linux i obrnuto, ima lak pristup svojim radnim dokumentima.
  2. Uvođenje Samba DC kao drugog kontrolora. Provjera replikacije usluge kataloga i DNS-a
  3. Postavljanje Linux klijenata za rad s premještanjem mapa

Implementacija:

  1. Instalacija i uvođenje novog kontroloraInstalacija MS Windows 2012R2 je jednostavna i više-manje jasna. Na internetu postoji tisuću i jedan vodič za postavljanje domene na Windows putem GUI-a ili alata Powershell, stoga neću ponavljati, ostavljam samo link na službenu dokumentaciju, za znatiželjne i one koji žele obnoviti sjećanje.

    Međutim, jedan važan aspekt u ovoj točki ipak postoji. Trenutno Samba ne može raditi s shemama kataloga višim od 2008R2.

    Naslov proširivanja U razvijačima se ta podrška izjavljuje kao eksperimentalna. No, u praksi će pokušaj uključivanja Sambe kao drugog DC-a u postojeću Windows domenu sa shemom 69 naići na sljedeću pogrešku

    DsAddEntry failed with status WERR_ACCESS_DENIED info (8567, 'WERR_DS_INCOMPATIBLE_VERSION')

    Problem je u tome što Windows 2012 i 2012R2 koriste WMI alate za rad s domenama i šumama, čija stabilna podrška najavljena je tek za verziju Samba 4.11, koja bi trebala izaći do kraja ove godine.
    Iz toga slijedi da je jedina opcija za uvođenje Sambe u AD domenu postavljenu na serveru 2012R2 smanjenje sheme s 69 na 47. Naravno, na radnoj infrastrukturi ne treba to raditi bez važnih razloga, ali imamo testnu platformu, pa zašto ne.

    Instaliramo Alt Server 8.2. Tijekom instalacije odabiremo profil „Samba-DC server (AD kontroler)“. Na postavljenom serveru provodimo potpuno ažuriranje sustava i instaliramo paket task-samba-dc, koji će obuhvatiti sve potrebno.

    # apt-get install task-samba-dc

    Ako slučajno task-samba-dc, uprkos uvjeravanjima dokumentacije Alt, odbije instalirati sve potrebne komponente.

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

    Dalje prelazimo na postavljanje Kerberosa i dobivanje karte. Otvorimo datoteku krb5.conf, prelazimo u odjeljak [libdefaults], i dovedemo je u sljedeći oblik:

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

    Zatražujemo kartu

    # kinit administrator
    Password for administrator@TEST.LOCAL:

    Provjeravamo popis dobivenih Kerberos karata

    # 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

    Sada uklanjamo ili preimenujemo postojeći Samba konfiguracijski fajl.

    # mv smb.conf smb.conf.bak1

    I konačno unosimo u AD domenu kao drugi kontroler:

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

    Uspješni unos bit će praćen sljedećim logom

    Pronalaženje zapisive DC za domenu 'test.local'
    Pronađen DC DC1.TEST.LOCAL
    Lozinka za [TESTadministrator]:
    Ponovno povezivanje na naziv majstora e31d7da6-8f56-4420-8473-80f2b3a31338._msdcs.TEST.LOCAL
    DNS ime novog naziva majstora je DC1.TEST.LOCAL
    radna grupa je TEST
    kraljevstvo je TEST.LOCAL
    Dodavanje CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL
    Dodavanje CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL
    Dodavanje CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL
    Dodavanje SPN-ova za CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL
    Postavljanje lozinke za račun DC2$
    Omogućavanje računa
    Pozivanje osnovne provision
    Pretraživanje IPv4 adresa
    Pretraživanje IPv6 adresa
    Nema IPv6 adrese koja će biti dodeljena
    Postavljanje share.ldb
    Postavljanje secrets.ldb
    Postavljanje registra
    Postavljanje privilegija baze podataka
    Postavljanje idmap db
    Postavljanje SAM db
    Postavljanje sam.ldb particija i postavki
    Postavljanje sam.ldb rootDSE
    Pre-učitavanje Samba 4 i AD sheme
    Kerberos konfiguracija pogodna za Samba AD generisana je na /var/lib/samba/private/krb5.conf
    Provision OK za domenu DN DC=TEST,DC=LOCAL
    Pokretanje 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 i primena objekata sheme
    Particija[CN=Configuration,DC=TEST,DC=LOCAL] objekti[402/2240] povezani_vrednosti[0/24]
    Particija[CN=Configuration,DC=TEST,DC=LOCAL] objekti[804/2240] povezani_vrednosti[0/24]
    Particija[CN=Configuration,DC=TEST,DC=LOCAL] objekti[1206/2240] povezani_vrednosti[0/24]
    Particija[CN=Configuration,DC=TEST,DC=LOCAL] objekti[1608/2240] povezani_vrednosti[0/24]
    Particija[CN=Configuration,DC=TEST,DC=LOCAL] objekti[1772/2240] povezani_vrednosti[24/24]
    Replikacija kritičnih objekata iz osnovnog DN-a domene
    Particija[DC=TEST,DC=LOCAL] objekti[109/110] povezani_vrednosti[26/29]
    Particija[DC=TEST,DC=LOCAL] objekti[394/5008] povezani_vrednosti[29/29]
    Završeno sa uvek replikovanim NC (osnovna, konfiguracija, shema)
    Replikacija DC=DomainDnsZones,DC=TEST,DC=LOCAL
    Particija[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objekti[42/42] povezani_vrednosti[0/0]
    Replikacija DC=ForestDnsZones,DC=TEST,DC=LOCAL
    Particija[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]
    Zatvaranje SAM baze podataka
    Dodavanje 1 udaljene DNS zapisa za DC2.TEST.LOCAL
    Dodavanje DNS A zapisa DC2.TEST.LOCAL za IPv4 IP: 192.168.90.201
    Dodavanje DNS CNAME zapisa 6ff1df40-cbb5-41f0-b7b3-53a27dde8edf._msdcs.TEST.LOCAL za DC2.TEST.LOCAL
    Svi ostali DNS zapisi (kao što su _ldap SRV zapisi) biće kreirani samba_dnsupdate pri prvom pokretanju
    Replikacija novih DNS zapisa u DC=DomainDnsZones,DC=TEST,DC=LOCAL
    Particija[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objekti[1/42] povezani_vrednosti[0/0]
    Replikacija novih DNS zapisa u DC=ForestDnsZones,DC=TEST,DC=LOCAL
    Particija[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objekti[1/20] povezani_vrednosti[0/0]
    Slanje DsReplicaUpdateRefs za sve replike particije
    Postavljanje isSynchronized i dsServiceName
    Postavljanje baze podataka sekreta
    Priključen domen TEST (SID S-1-5-21-3959064270-1572045903-2556826204) kao DC

    U ADUC alatu trebala bi se pojaviti stavka o novom DC-u u domeni TEST.LOCAL, a u DNS upravitelju nova A stavka koja odgovara DC2.

  2. Replikacija između kontroleraZa početak provjerimo rad usluge replikacije direktorija (DRS)
    # samba-tool drs showrepl

    Sve pokušaje replikacije u ispisu trebaju biti uspješni. U KCC popisu objekata, unutar 15 minuta nakon unosa, trebao bi se pojaviti naš DC1 na Windowsu.

    Zadani- prvi-naziv-mjestaDC2
    	DSA opcije: 0x00000001
    	DSA objekt GUID: 0e9f5bce-ff59-401e-bdbd-fc69df3fc6bf
    	DSA invocationId: 017997b5-d718-41d7-a3f3-e57ab5151b5c
    
    	==== ULAZNI SUSJEDI ====
    
    	DC=ForestDnsZones,DC=test,DC=local
    			Zadani - prvi-naziv-mjestaDC1 preko RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Posljednji pokušaj @ Pon 27. svibnja 12:56:31 2019 MSK bio je uspješan
    				0 uzastopnih neuspjeha.
    				Posljednji uspjeh @ Pon 27. svibnja 12:56:31 2019 MSK
    
    	DC=DomainDnsZones,DC=test,DC=local
    			Zadani - prvi-naziv-mjestaDC1 preko RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Posljednji pokušaj @ Pon 27. svibnja 12:56:32 2019 MSK bio je uspješan
    				0 uzastopnih neuspjeha.
    				Posljednji uspjeh @ Pon 27. svibnja 12:56:32 2019 MSK
    
    	CN=Schema,CN=Configuration,DC=test,DC=local
    			Zadani - prvi-naziv-mjestaDC1 preko RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Posljednji pokušaj @ Pon 27. svibnja 12:56:32 2019 MSK bio je uspješan
    				0 uzastopnih neuspjeha.
    				Posljednji uspjeh @ Pon 27. svibnja 12:56:32 2019 MSK
    
    	DC=test,DC=local
    			Zadani - prvi-naziv-mjestaDC1 preko RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Posljednji pokušaj @ Pon 27. svibnja 12:56:32 2019 MSK bio je uspješan
    				0 uzastopnih neuspjeha.
    				Posljednji uspjeh @ Pon 27. svibnja 12:56:32 2019 MSK
    
    	CN=Configuration,DC=test,DC=local
    			Zadani - prvi-naziv-mjestaDC1 preko RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Posljednji pokušaj @ Pon 27. svibnja 12:56:33 2019 MSK bio je uspješan
    				0 uzastopnih neuspjeha.
    				Posljednji uspjeh @ Pon 27. svibnja 12:56:33 2019 MSK
    
    	==== IZLAZNI SUSJEDI ====
    
    	DC=ForestDnsZones,DC=test,DC=local
    			Zadani - prvi-naziv-mjestaDC1 preko RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Posljednji pokušaj @ Čet 23. svibnja 16:40:03 2019 MSK bio je uspješan
    				0 uzastopnih neuspjeha.
    				Posljednji uspjeh @ Čet 23. svibnja 16:40:03 2019 MSK
    
    	DC=DomainDnsZones,DC=test,DC=local
    			Zadani - prvi-naziv-mjestaDC1 preko RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Posljednji pokušaj @ Čet 23. svibnja 16:40:03 2019 MSK bio je uspješan
    				0 uzastopnih neuspjeha.
    				Posljednji uspjeh @ Čet 23. svibnja 16:40:03 2019 MSK
    
    	CN=Schema,CN=Configuration,DC=test,DC=local
    			Zadani - prvi-naziv-mjestaDC1 preko RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Posljednji pokušaj @ Čet 23. svibnja 16:40:08 2019 MSK bio je uspješan
    				0 uzastopnih neuspjeha.
    				Posljednji uspjeh @ Čet 23. svibnja 16:40:08 2019 MSK
    
    	DC=test,DC=local
    			Zadani - prvi-naziv-mjestaDC1 preko RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Posljednji pokušaj @ Čet 23. svibnja 16:40:08 2019 MSK bio je uspješan
    				0 uzastopnih neuspjeha.
    				Posljednji uspjeh @ Čet 23. svibnja 16:40:08 2019 MSK
    
    	CN=Configuration,DC=test,DC=local
    			Zadani - prvi-naziv-mjestaDC1 preko RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Posljednji pokušaj @ Pon 27. svibnja 12:12:17 2019 MSK bio je uspješan
    				0 uzastopnih neuspjeha.
    				Posljednji uspjeh @ Pon 27. svibnja 12:12:17 2019 MSK
    
    	==== KCC VEZE OBJEKTI ====
    
    	Veza --
    			Ime veze: 6d2652b3-e723-4af7-a19f-1ee48915753c
    			Omogućeno        : DA
    			Naziv DNS poslužitelja : DC1.test.local
    			Naziv DN poslužitelja  : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Zadani-prvi-naziv-mjesta,CN=Sites,CN=Configuration,DC=test,DC=local
    				TransportType: RPC
    				opcije: 0x00000001
    	Upozorenje: Nema NC repliciranog za vezu!

    Upozorenje «Nema NC repliciranog za vezu!» možete slobodno ignorirati. Pojavljuje se jer prilikom registracije nove Samba DC pogrešno postavlja neke zastavice replikacije.

    Također bi bilo dobro provjeriti replikaciju LDAP-a.

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

    Gore navedena naredba usporedit će vrijednosti atributa objekata cijelog direktorija na DC1 i DC2.

    Primjer uspješne replikacije

    * Uspoređivanje [DOMENA] konteksta...
    
    	* Objekti koji se uspoređuju: 249
    
    	* Rezultat za [DOMENU]: USPJEH
    
    	* Uspoređivanje [KONFIGURACIJA] konteksta...
    
    	* Objekti koji se uspoređuju: 1750
    
    	* Rezultat za [KONFIGURACIJU]: USPJEH
    
    	* Uspoređivanje [SHEMA] konteksta...
    
    	* Objekti koji se uspoređuju: 1739
    
    	* Rezultat za [SHEMA]: USPJEH
    
    	* Uspoređivanje [DNSDOMENA] konteksta...
    
    	* Objekti koji se uspoređuju: 42
    
    	* Rezultat za [DNSDOMENU]: USPJEH
    
    	* Uspoređivanje [DNSŠUMA] konteksta...
    
    	* Objekti koji se uspoređuju: 20
    
    	* Rezultat za [DNSŠUMU]: USPJEH

    U nekim slučajevima atributi objekata na različitim kontrolerima mogu se razlikovati, a ishod naredbe će vas o tome obavijestiti. No, ne u svim slučajevima to će biti znak problema s replikacijom.

    Sljedeći korak je ručno postaviti stabilnu replikaciju SysVol direktorija.
    Činjenica je da Samba još ne podržava DFS-R, kao što nije podržavala raniji FRS. Stoga je trenutno jedino radno rješenje za replikaciju između Samba DC-a i Windows-a jednomjerno replikacija pomoću alata Robocopy iz kompleta Windows Server 2003 Resource Kit Tools.

    Razvijatelji Sambe, kako bi izbjegli probleme s kompatibilnošću, preporučuju prvo instalirati paket alata na običnu radnu stanicu, a zatim kopirati Robocopy na kontroler u folder «C:Program Files (x86)Windows Resource KitsTools»

    Nakon instalacije, u planeru zadataka na kontroleru s Windows-om kreiramo zadatak za izvršenje replikacije s sljedećim parametrima:

    — Izvršavati za sve korisnike
    — Okidač za izvršenje Dnevno svake 5 minuta tokom dana
    — U akcijama navodimo put do alata robocopy, kao argumente postavljamo:

    DC1SYSVOLtest.local DC2SYSVOLtest.local \/mir \/sec

    U konkretnom slučaju kopiramo sadržaj direktorija SysVol s DC1 na DC2.

  3. Prenosive mape korisnika uz pomoć konfiguracije pam_mountEmperički sam pronašao dva održiva rješenja za ovaj zadatak uz njegovu pomoć.
    1. Potpuno montiranje mape profila iz mreže u odjeljak /home. Jednostavna opcija. Odlično funkcionira ako se nazivi mapa Moji dokumenti, Preuzimanja i Radna površina podudaraju u oba operacijska sustava. Podrazumijeva se da je PC na Linuxu već uključen u domenu i da se korisnici prijavljuju pod svojim domenama, koristeći sssd kao mehanizam autentifikacije i autorizacije.
      # 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"/>
      

      gdje:

      • uid=«100000000-2000000000» — raspon UID koji se dodjeljuje domenim korisnicima od SSSD
      • server=«dfs» — naziv datotečnog servera
      • path=«Profile_Users/%(USER)» — resurs na datotečnom serveru s pohranjenim korisničkim profilom
      • mountpoint=»~» — put do montaže u korisnički home direktorij

      Korisničko ime se prenosi u makro varijablu «%(USER)», koja se koristi u pam_mount za povezivanje našeg mrežnog resursa, u obliku u kojem je uneseno u upravitelju prikaza. Zato je važno da se u DM korisničko ime unosi bez izričitog navođenja domenskog imena.

      U sssd.conf to se rješava komentiranjem ili postavljanjem vrijednosti False u opciju use_fully_qualified_names, koja uključuje način rada s punim imenima (uključujući domenu) za korisnike i grupe.

    2. Drugi način je manje izravan i grub, a po mom mišljenju udobniji i poželjniji. Razlika od prvog je samo u konfiguraciji pam_mount
      # vim /etc/security/pam_mount.conf.xml

      Drugim riječima, jednostavno odvojeno montiramo svaku našu mapu u odgovarajući katalog

Zaključci

Tijekom polu mjeseca rada na testnom okruženju, ova kombinacija uspješno je preživjela nekoliko dugotrajnih i kratkotrajnih prekida rada oba kontrolera, praktički bez posljedica za klijente (jednom je klijent na Windows7 izgubio povjerenje).

Sve u svemu, ostali su mi prilično prijatni utisci o radu s ovim proizvodom, čak i uz sve nijanse s kojima sam se suočio, kako u članku, tako i 'iza kulisa'.

Ima puno zamki koje će se tokom rada sa Sambom morati pronaći u velikom broju. Ipak, trenutno ne postoje druga rešenja koja omogućavaju organizaciju hibridnog okruženja koristeći uslugu direktorija bez korišćenja Windows-a.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster