Samba DC ca al doilea controler în domeniul AD Windows 2012R2 și folderele mobile pentru clienți pe Windows și Linux

Samba DC ca al doilea controler în domeniul AD Windows 2012R2 și folderele mobile pentru clienți pe Windows și Linux
Conștientizarea că am intrat în procesul de substituție nu a venit imediat. Numai când livrările recente de PC-uri din organizația superioară au început să sosească constant cu distribuția „Alt Linux” la bord, am început să suspectez ceva neîn regulă.

Cu toate acestea, în procesul de trecere prin etapele acceptării inevitabilului, m-am implicat și chiar am început să mă bucur puțin de acest proces. La un moment dat, m-am gândit că, în acest ritm, mai devreme sau mai târziu va trebui să mă despart de soluțiile de organizare a serviciului de directoare de la Microsoft și să mă îndrept spre ceva mai exotic. Prin urmare, pentru a mă pregăti din timp pentru inevitabil și a identifica, pe cât posibil, mai multe capcane, am decis să desfășor un stand de testare, care să includă:

  • DC1 — Windows Server 2012R2
  • DC2 — Alt Server 8.2
  • File Server — Windows Server 2012R2
  • PC1 — Windows 7
  • PC2 — Alt Stație de lucru 8.2

Sarcinile standului:

  1. Desfășurarea unui domeniu pe baza w2k12r2. Crearea unui set minim de politici de grup (similar celor utilizate în infrastructura de lucru), inclusiv politica de migrare a folderelor de lucru ale utilizatorilor (Descărcări/Documente/desktop). În cele din urmă, îmi doresc ca, atunci când utilizatorul schimbă locul de muncă de la Windows la Linux și invers, să aibă un acces confortabil la documentele sale de lucru.
  2. Introduceți Samba DC ca al doilea controler. Verificarea replicării serviciului de directoare și DNS.
  3. Configurarea clienților Linux pentru a lucra cu folderele mutabile.

Implementare:

  1. Instalarea și introducerea noului controler.Instalarea MS Windows 2012R2 este simplă și mai mult sau mai puțin clară. Există 1001 de tutoriale pe internet pentru desfășurarea unui domeniu pe Windows, atât prin intermediul GUI, cât și cu ajutorul Powershell, așa că nu voi repeta din nou, voi lăsa doar linkul documentația oficială, pentru cei curioși și cei care doresc să își reînvie memoria.

    Cu toate acestea, există un punct important în această secțiune. La momentul actual, Samba nu poate lucra cu schemele de directoare mai mari de 2008R2.

    Titlu spoiler Mai precis, dezvoltatorii au declarat că acest suport este experimental. Dar în practică, încercarea de a introduce Samba ca al doilea DC într-un domeniu Windows existent cu schema 69 va întâlni următoarea eroare:

    DsAddEntry a eșuat cu status WERR_ACCESS_DENIED info (8567, ‘WERR_DS_INCOMPATIBLE_VERSION’)

    Problema este că Windows 2012 și 2012R2 folosesc instrumentele WMI pentru a lucra cu domeniile și pădurile, iar suportul stabil pentru acestea a fost anunțat abia în versiunea Samba 4.11, care ar trebui să iasă înainte de sfârșitul acestui an.
    Din aceasta reiese că singura opțiune pentru a introduce Samba în domeniul AD desfășurat pe un server 2012R2 este retrogradarea schemei de la 69 la 47. Desigur, pe o infrastructură de lucru, fără motive întemeiate, nu este nevoie să facem asta, dar avem aici un mediu de testare, așa că de ce nu?

    Instalăm Alt Server 8.2. În timpul instalării, alegem profilul „Server Samba-DC (controler AD)”. Pe serverul desfășurat, realizăm o actualizare completă a sistemului și instalăm pachetul task-samba-dc, care va aduce tot ce este necesar.

    # apt-get install task-samba-dc

    Dacă dintr-o dată task-samba-dc, contrar asigurărilor documentației Alt, refuză să instaleze tot ce este necesar.

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

    Apoi trecem la configurarea Kerberos și obținerea unui bilet. Deschidem fișierul krb5.conf, mergem în secțiunea [libdefaults] și îl aducem la următoarea formă:

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

    Cerem un bilet

    # kinit administrator
    Password for administrator@TEST.LOCAL:

    Verificăm lista biletelor Kerberos obținute

    # 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

    Acum ștergem sau redenumim configurația existentă a Samba.

    # mv smb.conf smb.conf.bak1

    Și în sfârșit, ne introducem în domeniul AD ca al doilea controler:

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

    Introducerea reușită va fi însoțită de următoarea logare

    Găsirea unui DC scriabil pentru domeniul 'test.local'
    DC găsit DC1.TEST.LOCAL
    Parola pentru [TESTadministrator]:
    Reconectare la masterul de nume e31d7da6-8f56-4420-8473-80f2b3a31338._msdcs.TEST.LOCAL
    Numele DNS al noului master de nume este DC1.TEST.LOCAL
    grup de lucru este TEST
    regatul este TEST.LOCAL
    Adăugare CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL
    Adăugare CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL
    Adăugare CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL
    Adăugare SPN-uri la CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL
    Setare parolă cont pentru DC2$
    Activare cont
    apelare provisionare bare
    Căutare adrese IPv4
    Căutare adrese IPv6
    Nicio adresă IPv6 nu va fi alocată
    Configurare share.ldb
    Configurare secrets.ldb
    Configurare registru
    Configurare baza de date privilegii
    Configurare db idmap
    Configurare db SAM
    Configurare partiții și setări sam.ldb
    Configurare rootDSE sam.ldb
    Încărcare prealabilă a schemei Samba 4 și AD
    O configurație Kerberos adecvată pentru Samba AD a fost generată la \/var\lib\/samba\/private\/krb5.conf
    Provisionare OK pentru DN-ul domeniului DC=TEST,DC=LOCAL
    Înnodare replicare
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] obiecte[402\/1426] valori_linked[0\/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] obiecte[804\/1426] valori_linked[0\/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] obiecte[1206\/1426] valori_linked[0\/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] obiecte[1608\/1426] valori_linked[0\/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] obiecte[1743\/1426] valori_linked[0\/0]
    Analizați și aplicați obiectele schemei
    Partiție[CN=Configuration,DC=TEST,DC=LOCAL] obiecte[402\/2240] valori_linked[0\/24]
    Partiție[CN=Configuration,DC=TEST,DC=LOCAL] obiecte[804\/2240] valori_linked[0\/24]
    Partiție[CN=Configuration,DC=TEST,DC=LOCAL] obiecte[1206\/2240] valori_linked[0\/24]
    Partiție[CN=Configuration,DC=TEST,DC=LOCAL] obiecte[1608\/2240] valori_linked[0\/24]
    Partiție[CN=Configuration,DC=TEST,DC=LOCAL] obiecte[1772\/2240] valori_linked[24\/24]
    Replicare obiecte critice din DN-ul de bază al domeniului
    Partiție[DC=TEST,DC=LOCAL] obiecte[109\/110] valori_linked[26\/29]
    Partiție[DC=TEST,DC=LOCAL] obiecte[394\/5008] valori_linked[29\/29]
    Finalizat cu NC replicat întotdeauna (bază, configurare, schemă)
    Replicare DC=DomainDnsZones,DC=TEST,DC=LOCAL
    Partiție[DC=DomainDnsZones,DC=TEST,DC=LOCAL] obiecte[42\/42] valori_linked[0\/0]
    Replicare DC=ForestDnsZones,DC=TEST,DC=LOCAL
    Partiție[DC=ForestDnsZones,DC=TEST,DC=LOCAL] obiecte[20\/20] valori_linked[0\/0]
    Exop pe[CN=RID Manager$,CN=System,DC=TEST,DC=LOCAL] obiecte[3] valori_linked[0]
    Comiterea bazei de date SAM
    Adăugare 1 înregistrări DNS externe pentru DC2.TEST.LOCAL
    Adăugare înregistrare DNS A DC2.TEST.LOCAL pentru IPv4 IP: 192.168.90.201
    Adăugare înregistrare DNS CNAME 6ff1df40-cbb5-41f0-b7b3-53a27dde8edf._msdcs.TEST.LOCAL pentru DC2.TEST.LOCAL
    Toate celelalte înregistrări DNS (cum ar fi înregistrările SRV _ldap) vor fi create samba_dnsupdate la prima pornire
    Replicare înregistrări DNS noi în DC=DomainDnsZones,DC=TEST,DC=LOCAL
    Partiție[DC=DomainDnsZones,DC=TEST,DC=LOCAL] obiecte[1\/42] valori_linked[0\/0]
    Replicare înregistrări DNS noi în DC=ForestDnsZones,DC=TEST,DC=LOCAL
    Partiție[DC=ForestDnsZones,DC=TEST,DC=LOCAL] obiecte[1\/20] valori_linked[0\/0]
    Trimitere DsReplicaUpdateRefs pentru toate partițiile replicate
    Setare isSynchronized și dsServiceName
    Configurare bază de date a secretelor
    Alăturare domeniului TEST (SID S-1-5-21-3959064270-1572045903-2556826204) ca un DC

    În instrumentul ADUC ar trebui să apară o intrare despre noul DC din domeniul TEST.LOCAL, iar în managerul DNS – o nouă înregistrare A corespunzătoare DC2.

  2. Replicația între controlerePentru început, să verificăm funcționarea serviciului de replicare a directoarelor (DRS)
    # samba-tool drs showrepl

    Toate încercările de replicare din ieșire ar trebui să fie de succes. În lista obiectelor KCC, în decurs de 15 minute după introducere, ar trebui să apară DC1-ul nostru pe Windows

    Default-First-Site-NameDC2
    	DSA Options: 0x00000001
    	DSA object GUID: 0e9f5bce-ff59-401e-bdbd-fc69df3fc6bf
    	DSA invocationId: 017997b5-d718-41d7-a3f3-e57ab5151b5c
    
    	==== VECINII ÎNTRĂRII ====
    
    	DC=ForestDnsZones,DC=test,DC=local
    	        Default-First-Site-NameDC1 prin RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Ultima încercare @ Lun Mai 27 12:56:31 2019 MSK a avut succes
    	                0 eșecuri consecutive.
    	                Ultim succes @ Lun Mai 27 12:56:31 2019 MSK
    
    	DC=DomainDnsZones,DC=test,DC=local
    	        Default-First-Site-NameDC1 prin RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Ultima încercare @ Lun Mai 27 12:56:32 2019 MSK a avut succes
    	                0 eșecuri consecutive.
    	                Ultim succes @ Lun Mai 27 12:56:32 2019 MSK
    
    	CN=Schema,CN=Configuration,DC=test,DC=local
    	        Default-First-Site-NameDC1 prin RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Ultima încercare @ Lun Mai 27 12:56:32 2019 MSK a avut succes
    	                0 eșecuri consecutive.
    	                Ultim succes @ Lun Mai 27 12:56:32 2019 MSK
    
    	DC=test,DC=local
    	        Default-First-Site-NameDC1 prin RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Ultima încercare @ Lun Mai 27 12:56:32 2019 MSK a avut succes
    	                0 eșecuri consecutive.
    	                Ultim succes @ Lun Mai 27 12:56:32 2019 MSK
    
    	CN=Configuration,DC=test,DC=local
    	        Default-First-Site-NameDC1 prin RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Ultima încercare @ Lun Mai 27 12:56:33 2019 MSK a avut succes
    	                0 eșecuri consecutive.
    	                Ultim succes @ Lun Mai 27 12:56:33 2019 MSK
    
    	==== VECINII IESIRE ====
    
    	DC=ForestDnsZones,DC=test,DC=local
    	        Default-First-Site-NameDC1 prin RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Ultima încercare @ Joi Mai 23 16:40:03 2019 MSK a avut succes
    	                0 eșecuri consecutive.
    	                Ultim succes @ Joi Mai 23 16:40:03 2019 MSK
    
    	DC=DomainDnsZones,DC=test,DC=local
    	        Default-First-Site-NameDC1 prin RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Ultima încercare @ Joi Mai 23 16:40:03 2019 MSK a avut succes
    	                0 eșecuri consecutive.
    	                Ultim succes @ Joi Mai 23 16:40:03 2019 MSK
    
    	CN=Schema,CN=Configuration,DC=test,DC=local
    	        Default-First-Site-NameDC1 prin RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Ultima încercare @ Joi Mai 23 16:40:08 2019 MSK a avut succes
    	                0 eșecuri consecutive.
    	                Ultim succes @ Joi Mai 23 16:40:08 2019 MSK
    
    	DC=test,DC=local
    	        Default-First-Site-NameDC1 prin RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Ultima încercare @ Joi Mai 23 16:40:08 2019 MSK a avut succes
    	                0 eșecuri consecutive.
    	                Ultim succes @ Joi Mai 23 16:40:08 2019 MSK
    
    	CN=Configuration,DC=test,DC=local
    	        Default-First-Site-NameDC1 prin RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Ultima încercare @ Lun Mai 27 12:12:17 2019 MSK a avut succes
    	                0 eșecuri consecutive.
    	                Ultim succes @ Lun Mai 27 12:12:17 2019 MSK
    
    	==== OBIECTE DE CONEXIUNE KCC ====
    
    	Conexiune --
    	        Numele conexiunii: 6d2652b3-e723-4af7-a19f-1ee48915753c
    	        Activat        : ADEVĂRAT
    	        Numele DNS al serverului : DC1.test.local
    	        Numele DN al serverului  : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=local
    	                TipTransport: RPC
    	                opțiuni: 0x00000001
    	Avertisment: «Niciun NC replicat pentru Conexiune!»

    Avertisment «Niciun NC replicat pentru Conexiune!» poate fi ignorat cu încredere. Acesta apare din cauza că, la înregistrarea unui nou DC Samba, unele flaguri de replicare sunt setate incorect.

    Ar fi bine să verificați și replicarea LDAP.

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

    Comanda menționată mai sus va compara valorile atributelor obiectelor din întreaga catalog pe DC1 și DC2.

    Exemplu de replicare reușită

    * Comparând contextul [DOMAIN]...
    
    	* Obiecte de comparat: 249
    
    	* Rezultatul pentru [DOMAIN]: SUCCES
    
    	* Comparând contextul [CONFIGURATION]...
    
    	* Obiecte de comparat: 1750
    
    	* Rezultatul pentru [CONFIGURATION]: SUCCES
    
    	* Comparând contextul [SCHEMA]...
    
    	* Obiecte de comparat: 1739
    
    	* Rezultatul pentru [SCHEMA]: SUCCES
    
    	* Comparând contextul [DNSDOMAIN]...
    
    	* Obiecte de comparat: 42
    
    	* Rezultatul pentru [DNSDOMAIN]: SUCCES
    
    	* Comparând contextul [DNSFOREST]...
    
    	* Obiecte de comparat: 20
    
    	* Rezultatul pentru [DNSFOREST]: SUCCES

    În unele cazuri, atributele obiectelor de pe diferite controlere pot diferi, iar ieșirea comenzii va indica acest lucru. Totuși, nu în toate cazurile aceasta va fi un semn al unei probleme cu replicarea.

    Următorul pas este să configurați manual o replicare stabilă a catalogului SysVol.
    Problema este că Samba nu suportă în prezent DFS-R, la fel cum nu a suportat FRS anterior. Prin urmare, pentru replicarea între DC Samba și Windows, soluția funcțională de până acum este replicarea unidirecțională folosind utilitarul Robocopy din pachetul Windows Server 2003 Resource Kit Tools.

    Dezvoltatorii Samba, pentru a evita problemele de compatibilitate, recomandă mai întâi instalarea pachetului de utilitare pe o stație de lucru obișnuită, după care să copiați Robocopy pe controler în folderul „C:Program Files (x86)Windows Resource KitsTools”

    După instalare, în planificatorul de sarcini de pe controlerul cu Windows, creăm o sarcină pentru executarea replicării cu următoarele setări:

    — Executați pentru toți utilizatorii
    — Declanșator pentru execuție zilnică la fiecare 5 minute pe parcursul zilei
    — În acțiuni, specificăm calea către utilitarul robocopy, ca argumente indicând:

    DC1SYSVOLtest.local DC2SYSVOLtest.local /mir /sec

    În acest caz, copiem conținutul directorului SysVol de la DC1 la DC2.

  3. Folderele portabile ale utilizatorilor folosind configurația pam_mountPe cale experimentativă, am identificat două variante viabile pentru a rezolva această problemă cu ajutorul său.
    1. Montarea completă a dosarului cu profil din rețea în secțiunea /home. O variantă simplă. Funcționează excelent dacă numele dosarelor Documents, Downloads și Desktop coincid în ambele sisteme de operare. Se presupune că PC-ul pe Linux este deja introdus în domeniu și utilizatorii se autentifică cu conturile lor de domeniu, folosind sssd ca mecanism de autentificare și autorizare.
      # 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"/>
      

      unde:

      • uid=„100000000-2000000000“ — intervalul UID atribuit utilizatorilor de domeniu de la SSSD
      • server=„dfs“ — numele serverului de fișiere
      • path=„Profile_Users/%(USER)“ — resursa pe serverul de fișiere care conține profilul utilizatorului
      • mountpoint=„~“ — calea de montare în dosarul principal al utilizatorului

      Login-ul utilizatorului este transmis în variabila macro „%(USER)“, folosită de pam_mount, pentru a conecta resursa noastră de rețea, așa cum a fost introdusă în managerul de afișare. Prin urmare, este important ca în DM login-ul să fie introdus fără a specifica explicit numele domeniului.

      În sssd.conf, se rezolvă comentând sau setând valoarea False în opțiunea use_fully_qualified_names, care activează modul numelui complet (inclusiv domeniul) pentru utilizatori și grupuri.

    2. A doua metodă este mai puțin directă și mai rudimentară, dar din punctul meu de vedere este mai convenabilă și preferabilă. Diferența față de prima constă în configurația pam_mount.
      # vim /etc/security/pam_mount.conf.xml

      Adică, pur și simplu montăm separat fiecare dintre dosarele noastre în directorul corespunzător

Conclusions

În decurs de o jumătate de lună de activitate pe suportul de testare, acest sistem a rezistat cu succes la mai multe întreruperi prelungite și scurte ale ambilor controleri, practic fără urmări pentru clienți (o dată, un client pe Windows7 a pierdut relațiile de încredere).

În general, am rămas cu impresii destul de plăcute despre utilizarea acestui produs, chiar dacă am întâmpinat numeroase nuanțe atât în articol, cât și „în culise”.

Există multe capcane, iar pe parcursul lucrului cu Samba va trebui să le descoperi în cantitate mare. Cu toate acestea, în prezent nu există alte soluții care să permită organizarea unui mediu hibrid, folosind serviciul de catalog și fără a utiliza Windows.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster