Samba DC als zweeten Domaincontroller an enger AD-Domain Windows 2012R2 an Roaming-Ordner fir Clienten op Windows и Linux

Samba DC als zweeten Domaincontroller an enger AD-Domain Windows 2012R2 an Roaming-Ordner fir Clienten op Windows и Linux
D'Erkenntnis datt ech an engem Import Mess war, koum net direkt. Eréischt wann frësch Liwwerunge vu PCs ugefaang hunn stänneg vun enger méi héijer Organisatioun mat der Alt Linux Verdeelung u Bord ze kommen, hunn ech de Verdacht datt eppes falsch war.

Wéi ech awer duerch d'Etappe gaange sinn fir dat inévitabel z'akzeptéieren, hunn ech mech involvéiert an hunn och ugefaang de Prozess e bëssen ze genéissen. An iergendwann hunn ech geduecht datt ech mat dësem Taux fréier oder spéider mat Léisunge fir d'Organisatioun vun Verzeechnesservicer vu Microsoft musse deelhuelen an op eppes méi exotesch goen. Dofir, fir am Viraus op déi inévitabel virzebereeden, a wa méiglech, sou vill wéi méiglech Falen ze fangen, gouf decidéiert eng Testbank z'installéieren, déi enthält:

  • DC1 — Windows Server 2012R2
  • DC2 - Viola Server 8.2
  • Dateiserver — Windows Server 2012R2
  • PC1 — Windows 7
  • PC2 - Viola Workstation 8.2

Stand Ziler:

  1. Eng Domain baséiert op w2k12r2 implementéieren. E minimale Set vu Grupprichtlinnen erstellen (ähnlech wéi déi, déi an der Produktiounsinfrastruktur benotzt ginn), inklusiv eng Richtlinn fir d'Migratioun vun den Aarbechtsordner vun de Benotzer (Downloads/Dokumenter/Desktop). Schlussendlech wëll ech sécher stellen, datt wann e Benotzer seng Aarbechtsstatioun wiesselt, Windows op Linux an zeréck hat hien bequemen Zougang zu senge Aarbechtsdokumenter.
  2. Samba DC Input vum zweete Controller. Iwwerpréift Verzeechnes an DNS Replikatioun
  3. Clienten opsetzen Linux mat beweegleche Classeuren ze schaffen

Ëmsetzung:

  1. Installatioun an Aféierung vun engem neie ControllerMat MS Installatioun Windows 2012R2 ass einfach a méi oder manner kloer. Et ginn 1001 Handbücher um Internet fir eng Domain opzestellen. Windows souwuel mat der GUI wéi och mat Powershell, also wäert ech et net nach eng Kéier widderhuelen, ech loossen et einfach stoen. Link op aus. Dokumentatioun fir déi virwëtzeg an déi, déi hir Erënnerung opfrësche wëllen.

    Et gëtt awer nach ee wichtege Punkt op dësem Punkt. De Moment kann Samba net mat Verzeechnesschemaen méi héich wéi 2008R2 schaffen.

    Spoiler Titel Méi genee gesot, hunn d'Entwéckler dës Ënnerstëtzung als experimentell bezeechent. Mee an der Praxis ass et e Versuch, Samba als zweeten DC an eng existent Domain anzeféieren. Windows mat Schema 69 - Dir gitt mat der folgender Fehlermeldung begréisst

    DsAddEntry gescheitert mam Status WERR_ACCESS_DENIED Info (8567, 'WERR_DS_INCOMPATIBLE_VERSION')

    De Problem ass dat Windows 2012 an 2012R2 benotzen WMI-Tools fir mat Domainen a Bëscher ze schaffen, dofir gëtt eng stabil Ënnerstëtzung nëmme fir d'Versioun Samba 4.11 ugekënnegt, déi virum Enn vun dësem Joer erauskomme soll.
    Et geet dovun aus, datt déi eenzeg Optioun fir Samba an en AD-Domain op engem 2012R2-Server anzeféieren ass, de Schema vun 69 op 47 erofzesetzen. Natierlech soll dat net ouni gudde Grond op enger Produktiounsinfrastruktur gemaach ginn, awer mir hunn eng Testbänk hei, also firwat net eigentlech net.

    Installéiert Alt Server 8.2. Wärend der Installatioun wielt de Profil "Samba-DC Server (AD Controller)". Um ofgebauten Server maache mir e komplette Systemaktualiséierung an installéieren den Task-samba-dc Package, deen alles zitt wat Dir braucht

    # apt-get install task-samba-dc

    Wann op eemol Task-samba-dc, Géigesaz zu der Assurancen vun der Dokumentatioun, Alta refuséiert alles néideg selwer ze installéieren.

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

    Als nächst gi mir weider fir Kerberos opzestellen an en Ticket ze kréien. Öffnen d'Krb5.conf Datei, gitt an d'Sektioun [libdefaults] a bréngt se op déi folgend Form:

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

    Ufro engem Ticket

    # kinit administrator
    Password for administrator@TEST.LOCAL:

    Iwwerpréift d'Lëscht vun de kritt Kerberos Ticketen

    # 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

    Elo läschen oder ëmbenennen mir déi existent Samba Config.

    # mv smb.conf smb.conf.bak1

    A schliisslech gi mir den AD Domain mat dem zweete Controller an:

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

    Erfollegräich Input gëtt vum folgende Log begleet

    Finding a writeable DC for domain 'test.local'
    Found DC DC1.TEST.LOCAL
    Password for [TESTadministrator]:
    Reconnecting to naming master e31d7da6-8f56-4420-8473-80f2b3a31338._msdcs.TEST.                           LOCAL
    DNS name of new naming master is DC1.TEST.LOCAL
    workgroup is TEST
    realm is TEST.LOCAL
    Adding CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL
    Adding CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC                           =TEST,DC=LOCAL
    Adding CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN                           =Configuration,DC=TEST,DC=LOCAL
    Adding SPNs to CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL
    Setting account password for DC2$
    Enabling account
    Calling bare provision
    Looking up IPv4 addresses
    Looking up IPv6 addresses
    No IPv6 address will be assigned
    Setting up share.ldb
    Setting up secrets.ldb
    Setting up the registry
    Setting up the privileges database
    Setting up idmap db
    Setting up SAM db
    Setting up sam.ldb partitions and settings
    Setting up sam.ldb rootDSE
    Pre-loading the Samba 4 and AD schema
    A Kerberos configuration suitable for Samba AD has been generated at /var/lib/sa                           mba/private/krb5.conf
    Provision OK for domain DN DC=TEST,DC=LOCAL
    Starting replication
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objects[402/1426] linked                           _values[0/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objects[804/1426] linked                           _values[0/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objects[1206/1426] linke                           d_values[0/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objects[1608/1426] linke                           d_values[0/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objects[1743/1426] linke                           d_values[0/0]
    Analyze and apply schema objects
    Partition[CN=Configuration,DC=TEST,DC=LOCAL] objects[402/2240] linked_values[0/                           24]
    Partition[CN=Configuration,DC=TEST,DC=LOCAL] objects[804/2240] linked_values[0/                           24]
    Partition[CN=Configuration,DC=TEST,DC=LOCAL] objects[1206/2240] linked_values[0                           /24]
    Partition[CN=Configuration,DC=TEST,DC=LOCAL] objects[1608/2240] linked_values[0                           /24]
    Partition[CN=Configuration,DC=TEST,DC=LOCAL] objects[1772/2240] linked_values[2                           4/24]
    Replicating critical objects from the base DN of the domain
    Partition[DC=TEST,DC=LOCAL] objects[109/110] linked_values[26/29]
    Partition[DC=TEST,DC=LOCAL] objects[394/5008] linked_values[29/29]
    Done with always replicated NC (base, config, schema)
    Replicating DC=DomainDnsZones,DC=TEST,DC=LOCAL
    Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objects[42/42] linked_values[0/0]
    Replicating DC=ForestDnsZones,DC=TEST,DC=LOCAL
    Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objects[20/20] linked_values[0/0]
    Exop on[CN=RID Manager$,CN=System,DC=TEST,DC=LOCAL] objects[3] linked_values[0]
    Committing SAM database
    Adding 1 remote DNS records for DC2.TEST.LOCAL
    Adding DNS A record DC2.TEST.LOCAL for IPv4 IP: 192.168.90.201
    Adding DNS CNAME record 6ff1df40-cbb5-41f0-b7b3-53a27dde8edf._msdcs.TEST.LOCAL                            for DC2.TEST.LOCAL
    All other DNS records (like _ldap SRV records) will be created samba_dnsupdate o                           n first startup
    Replicating new DNS records in DC=DomainDnsZones,DC=TEST,DC=LOCAL
    Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objects[1/42] linked_values[0/0]
    Replicating new DNS records in DC=ForestDnsZones,DC=TEST,DC=LOCAL
    Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objects[1/20] linked_values[0/0]
    Sending DsReplicaUpdateRefs for all the replicated partitions
    Setting isSynchronized and dsServiceName
    Setting up secrets database
    Joined domain TEST (SID S-1-5-21-3959064270-1572045903-2556826204) as a DC

    ADUC soll e Rekord fir den neien DC am TEST.LOCAL Domain hunn, an den DNS Manager soll en neien A Rekord hunn, deen dem DC2 entsprécht.

  2. Replikatioun tëscht ControllerAls éischt, loosst eis d'Operatioun vum Directory Replication Service (DRS) iwwerpréiwen.
    # samba-tool drs showrepl

    All Replikatiounsversich am Output sollten erfollegräich sinn. Eise DC1 sollt bannent 15 Minutte nom Input an der KCC-Objektlëscht erschéngen. Windows

    Default-First-Site-NameDC2
    	DSA Options: 0x00000001
    	DSA object GUID: 0e9f5bce-ff59-401e-bdbd-fc69df3fc6bf
    	DSA invocationId: 017997b5-d718-41d7-a3f3-e57ab5151b5c
    
    	==== INBOUND NEIGHBORS ====
    
    	DC=ForestDnsZones,DC=test,DC=local
    	        Default-First-Site-NameDC1 via RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Last attempt @ Mon May 27 12:56:31 2019 MSK was successful
    	                0 consecutive failure(s).
    	                Last success @ Mon May 27 12:56:31 2019 MSK
    
    	DC=DomainDnsZones,DC=test,DC=local
    	        Default-First-Site-NameDC1 via RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Last attempt @ Mon May 27 12:56:32 2019 MSK was successful
    	                0 consecutive failure(s).
    	                Last success @ Mon May 27 12:56:32 2019 MSK
    
    	CN=Schema,CN=Configuration,DC=test,DC=local
    	        Default-First-Site-NameDC1 via RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Last attempt @ Mon May 27 12:56:32 2019 MSK was successful
    	                0 consecutive failure(s).
    	                Last success @ Mon May 27 12:56:32 2019 MSK
    
    	DC=test,DC=local
    	        Default-First-Site-NameDC1 via RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Last attempt @ Mon May 27 12:56:32 2019 MSK was successful
    	                0 consecutive failure(s).
    	                Last success @ Mon May 27 12:56:32 2019 MSK
    
    	CN=Configuration,DC=test,DC=local
    	        Default-First-Site-NameDC1 via RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Last attempt @ Mon May 27 12:56:33 2019 MSK was successful
    	                0 consecutive failure(s).
    	                Last success @ Mon May 27 12:56:33 2019 MSK
    
    	==== OUTBOUND NEIGHBORS ====
    
    	DC=ForestDnsZones,DC=test,DC=local
    	        Default-First-Site-NameDC1 via RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Last attempt @ Thu May 23 16:40:03 2019 MSK was successful
    	                0 consecutive failure(s).
    	                Last success @ Thu May 23 16:40:03 2019 MSK
    
    	DC=DomainDnsZones,DC=test,DC=local
    	        Default-First-Site-NameDC1 via RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Last attempt @ Thu May 23 16:40:03 2019 MSK was successful
    	                0 consecutive failure(s).
    	                Last success @ Thu May 23 16:40:03 2019 MSK
    
    	CN=Schema,CN=Configuration,DC=test,DC=local
    	        Default-First-Site-NameDC1 via RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Last attempt @ Thu May 23 16:40:08 2019 MSK was successful
    	                0 consecutive failure(s).
    	                Last success @ Thu May 23 16:40:08 2019 MSK
    
    	DC=test,DC=local
    	        Default-First-Site-NameDC1 via RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Last attempt @ Thu May 23 16:40:08 2019 MSK was successful
    	                0 consecutive failure(s).
    	                Last success @ Thu May 23 16:40:08 2019 MSK
    
    	CN=Configuration,DC=test,DC=local
    	        Default-First-Site-NameDC1 via RPC
    	                DSA object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Last attempt @ Mon May 27 12:12:17 2019 MSK was successful
    	                0 consecutive failure(s).
    	                Last success @ Mon May 27 12:12:17 2019 MSK
    
    	==== KCC CONNECTION OBJECTS ====
    
    	Connection --
    	        Connection name: 6d2652b3-e723-4af7-a19f-1ee48915753c
    	        Enabled        : TRUE
    	        Server DNS name : DC1.test.local
    	        Server DN name  : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=local
    	                TransportType: RPC
    	                options: 0x00000001
    	Warning: No NC replicated for Connection!

    D 'Präventioun "Keen NC replizéiert fir Connection!" ka sécher ignoréiert ginn. Et schéngt well wann Dir en neien DC registréiert, Samba e puer Replikatiounsfändelen falsch setzt.

    Et wier och eng gutt Iddi fir LDAP Replikatioun ze kontrolléieren.

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

    Deen uewe genannte Kommando vergläicht d'Attributwäerter vun de ganze Verzeechnesobjekter op DC1 an DC2.

    Beispill vun erfollegräich Replikatioun

    * Comparing [DOMAIN] context...
    
    	* Objects to be compared: 249
    
    	* Result for [DOMAIN]: SUCCESS
    
    	* Comparing [CONFIGURATION] context...
    
    	* Objects to be compared: 1750
    
    	* Result for [CONFIGURATION]: SUCCESS
    
    	* Comparing [SCHEMA] context...
    
    	* Objects to be compared: 1739
    
    	* Result for [SCHEMA]: SUCCESS
    
    	* Comparing [DNSDOMAIN] context...
    
    	* Objects to be compared: 42
    
    	* Result for [DNSDOMAIN]: SUCCESS
    
    	* Comparing [DNSFOREST] context...
    
    	* Objects to be compared: 20
    
    	* Result for [DNSFOREST]: SUCCESS

    An e puer Fäll kënnen d'Attributer vun Objeten op verschiddene Controller ënnerscheeden, an de Kommandoausgang léisst Iech iwwer dëst wëssen. Awer net an alle Fäll wäert dëst en Zeeche vun engem Replikatiounsproblem sinn.

    De nächste Schrëtt ass manuell stabil Replikatioun vum SysVol Verzeechnes ze konfiguréieren.
    D'Saach ass, Samba ënnerstëtzt nach net DFS-R, genee wéi et de fréiere FRS net ënnerstëtzt huet. Dofir, fir d'Replikatioun tëscht DCs, Samba an Windows Déi eenzeg funktionéierend Léisung bis elo ass eng Een-Wee-Replikatioun mam Utility Robokopie vum Kit Windows Server 2003 Ressourcen-Kit Tools.

    Fir Kompatibilitéitsproblemer ze vermeiden, empfeelen d'Samba-Entwéckler, d'Utility Suite als éischt op enger normaler Aarbechtsstatioun z'installéieren an dann Robocopy op de Controller am Dossier "C:\Program Files (x86)" ze kopéieren.Windows RessourcenkitsTools»

    No der Installatioun, am Task Scheduler um Controller mat Windows Mir kreéieren eng Aufgab fir d'Replikatioun mat de folgende Parameteren auszeféieren:

    - Ausféieren fir all Benotzer
    - Ausléiser fir all Dag all 5 Minutten am Dag auszeféieren
    - An den Aktiounen spezifizéiere mir de Wee zum Robocopy Utility, spezifizéieren als Argumenter:

    DC1SYSVOLtest.local DC2SYSVOLtest.local /mir /sec

    An dësem bestëmmte Fall kopéiere mir den Inhalt vum SysVol Verzeichnis vun DC1 op DC2.

  3. Portable Benotzer Ordner mat pam_mount KonfiguratiounDuerch d'Erfahrung hunn ech zwee liewensfäeg Optiounen fonnt fir dëse Problem mat senger Hëllef ze léisen.
    1. E Profilordner komplett vum Netzwierk op d'/home Partition montéieren. Eng einfach Optioun. Funktionéiert super wann d'Nimm vun den Ordner "Meng Dokumenter", "Downloads" an "Desktop" an deenen zwou Betribssystemer déiselwecht sinn. Dëst geet dovun aus, datt de PC un ... Linux ass schonn an der Domain agaangen an d'Benotzer logge sech ënner hiren Domainkonten an andeems se sssd als Authentifikatiouns- an Autorisatiounsmechanismus benotzen.
      # 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"/>
      

      wou:

      • uid="100000000-2000000000" - UID Gamme zougewisen Domain Benotzer vun SSSD
      • server="dfs" - Dateiservernumm
      • path="Profil_Users/%(USER)" - eng Ressource op engem Dateiserver mat engem gehoste Benotzerprofil
      • mountpoint = "~" - Mount Wee an den Heem Dossier vum Benotzer

      De Benotzer Login gëtt un d'Makrovariabel "%(USER)" benotzt, déi vum pam_mount benotzt gëtt fir eis Netzwierkressource ze verbannen wéi am Display Manager aginn. Dofir ass et wichteg datt de Login an DM aginn ass ouni explizit den Domain Numm ze spezifizéieren.

      An sssd.conf gëtt dëst geléist andeems Dir kommentéiert oder d'Optioun op False setzt use_fully_qualified_names, wat de vollqualifizéierten Nummmodus (Domain abegraff) fir Benotzer a Gruppen erméiglecht.

    2. Déi zweet Method ass manner einfach a knaschteg, a menger Meenung no méi praktesch a léiwer. Den Ënnerscheed vun der éischter ass nëmmen an der pam_mount Konfiguratioun
      # vim /etc/security/pam_mount.conf.xml
      <volume uid="100000000-2000200000" 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"/>
      <volume uid="100000000-2000200000" fstype="cifs" server="dfs" path="Profile_Users/%(USER)/Downloads" mountpoint="~/Загрузки" options="sec=krb5,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775"/>
      <volume uid="100000000-2000200000" 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"/>

      Dat ass, mir montéieren einfach all eenzel vun eisen Ordner separat an de entspriechende Verzeechnes

Conclusiounen

Wärend engem hallwe Mount Aarbecht um Teststand huet dëse Bundle erfollegräich e puer ofwiesselnd laangfristeg an kuerzfristeg Ausschaltunge vun deenen zwou Controller iwwerstanen, ouni praktesch Konsequenze fir Clienten (soubal e Client op ... Windows7 verluer Vertrauensbezéiungen).

Am Allgemengen hat ech eng ganz agreabel Erfahrung mat dësem Produkt ze schaffen, och trotz all Nuancen, mat deenen ech souwuel am Artikel wéi och "hannert de Kulissen" ze dinn hunn.

Et gëtt vill Fallen, an Dir musst eng grouss Zuel dovunner entdecken, wann Dir mat Samba schafft. Wéi och ëmmer, et gëtt de Moment keng aner Léisungen, déi et erlaben, eng Hybridëmfeld ze organiséieren, souwuel mat wéi och ouni en Verzeichnisservice. Windows.

Source: will.com

Kaaft zouverlässeg Hosting fir Site mat DDoS Schutz, VPS VDS Server 🔥 Kaaft zouverléissegt Websäithosting mat DDoS-Schutz, VPS VDS Server | ProHoster