Samba DC som en andra domÀnkontrollant i en AD-domÀn Windows 2012R2 och roamingmappar för klienter pÄ Windows О Linux

Samba DC som en andra domÀnkontrollant i en AD-domÀn Windows 2012R2 och roamingmappar för klienter pÄ Windows О Linux
Insikten om att jag var i en importröra kom inte direkt. Först nÀr fÀrska leveranser av datorer stadigt började komma frÄn en högre organisation med Alt Linux-distributionen ombord misstÀnkte jag att nÄgot var fel.

Men nÀr jag gick igenom stadierna för att acceptera det oundvikliga, blev jag involverad och började till och med njuta lite av processen. Och vid nÄgot tillfÀlle trodde jag att i den hÀr takten skulle jag förr eller senare behöva skilja mig frÄn lösningar för att organisera katalogtjÀnster frÄn Microsoft och gÄ mot nÄgot mer exotiskt. DÀrför, för att förbereda sig i förvÀg för det oundvikliga och, om möjligt, för att fÄnga sÄ mÄnga fallgropar som möjligt, beslutades det att placera ut en testbÀnk, som inkluderar:

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

StandmÄl:

  1. Implementera en domÀn baserad pÄ w2k12r2. Skapa en minimal uppsÀttning grupprinciper (liknande de som anvÀnds i produktionsinfrastrukturen), inklusive en princip för att migrera anvÀndarnas arbetsmappar (Nedladdningar/Dokument/Skrivbord). I slutÀndan vill jag se till att nÀr en anvÀndare byter arbetsstation, Windows pÄ Linux och tillbaka hade han bekvÀm tillgÄng till sina arbetsdokument.
  2. Samba DC-ingÄng frÄn den andra styrenheten. Kontrollerar katalog och DNS-replikering
  3. Skapa klienter Linux att arbeta med att flytta mappar

Genomförande:

  1. Installation och driftsÀttning av ny styrenhetMed MS-installation Windows 2012R2 Àr enkel och mer eller mindre tydlig. Det finns 1001 manualer pÄ internet för att driftsÀtta en domÀn pÄ Windows bÄde med hjÀlp av GUI och Powershell, sÄ jag kommer inte att upprepa det igen, jag lÀmnar bara lÀnk pÄ av. dokumentation för den nyfikna och den som vill frÀscha upp minnet.

    Det finns dock fortfarande en viktig punkt pÄ denna punkt. För nÀrvarande kan Samba inte fungera med katalogsystem högre Àn 2008R2.

    spoiler titel Mer exakt angav utvecklarna att detta stöd var experimentellt. Men i praktiken ett försök att introducera Samba som en andra DC i en befintlig domÀn Windows med schema 69 - kommer du att mötas av följande felmeddelande

    DsAddEntry misslyckades med status WERR_ACCESS_DENIED info (8567, 'WERR_DS_INCOMPATIBLE_VERSION')

    Problemet Àr att Windows 2012 och 2012R2 anvÀnder WMI-verktyg för att arbeta med domÀner och skogar, och stabilt stöd för detta har endast tillkÀnnagivits för version Samba 4.11, som ska slÀppas före Ärets slut.
    Det följer av detta att det enda alternativet för att introducera samba i en AD-domÀn som Àr utplacerad pÄ en 2012R2-server Àr att nedgradera schemat frÄn 69 till 47. Naturligtvis bör detta inte göras pÄ en produktionsinfrastruktur utan goda skÀl, men vi har en testbÀnk hÀr, sÄ varför inte faktiskt inte.

    Installera Alt Server 8.2. Under installationen vÀljer du profilen "Samba-DC Server (AD Controller)". PÄ den utplacerade servern utför vi en komplett systemuppdatering och installerar task-samba-dc-paketet, som hÀmtar allt du behöver

    # apt-get install task-samba-dc

    Om plötsligt task-samba-dc, i motsats till försÀkran om dokumentationen, vÀgrar Alta att installera allt nödvÀndigt sjÀlv.

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

    DĂ€refter gĂ„r vi vidare till att installera Kerberos och ta emot en biljett. Öppna filen krb5.conf, gĂ„ till sektionen [libdefaults] och ta den till följande formulĂ€r:

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

    BegÀr en biljett

    # kinit administrator
    Password for administrator@TEST.LOCAL:

    Kontrollerar listan över mottagna Kerberos-biljetter

    # 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

    Nu tar vi bort eller byter namn pÄ den befintliga samba-konfigurationen.

    # mv smb.conf smb.conf.bak1

    Och slutligen gĂ„r vi in ​​i AD-domĂ€nen med den andra kontrollern:

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

    Lyckad inmatning kommer att Ätföljas av följande logg

    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 ska ha en post för den nya DC i domÀnen TEST.LOCAL, och DNS Manager ska ha en ny A-post som motsvarar DC2.

  2. Replikering mellan styrenheterLÄt oss först kontrollera funktionen för Directory Replication Service (DRS)
    # samba-tool drs showrepl

    Alla replikeringsförsök i utdata bör lyckas. VÄr DC1 bör visas i KCC-objektlistan inom 15 minuter efter inmatning. 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!

    Varning "Ingen NC replikerad för Connection!" kan sÀkert ignoreras. Det verkar för att Samba stÀller in vissa replikeringsflaggor felaktigt nÀr en ny DC registreras.

    Det skulle ocksÄ vara en bra idé att kontrollera LDAP-replikering.

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

    OvanstÄende kommando kommer att jÀmföra attributvÀrdena för hela katalogobjekten pÄ DC1 och DC2.

    Exempel pÄ framgÄngsrik replikering

    * 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

    I vissa fall kan attributen för objekt pÄ olika kontroller skilja sig Ät, och kommandoutgÄngen kommer att informera dig om detta. Men inte i alla fall kommer detta att vara ett tecken pÄ ett replikeringsproblem.

    NÀsta steg Àr att manuellt konfigurera stabil replikering av SysVol-katalogen.
    Saken Àr den att Samba Ànnu inte stöder DFS-R, precis som det inte stödde den tidigare FRS. DÀrför, för replikering mellan domÀnkontrollanter, Samba och Windows Den enda fungerande lösningen hittills Àr envÀgsreplikering med hjÀlp av verktyget Robocopy frÄn satsen Windows Server Resursverktyg 2003.

    För att undvika kompatibilitetsproblem rekommenderar Samba-utvecklare att man först installerar verktygssviten pÄ en vanlig arbetsstation och sedan kopierar Robocopy till kontrollenheten i mappen "C:\Program Files (x86)".Windows ResurspaketVerktyg»

    Efter installationen, i aktivitetsschemalÀggaren pÄ styrenheten med Windows Vi skapar en uppgift för att utföra replikering med följande parametrar:

    — Kör för alla anvĂ€ndare
    — Trigger för att utföra dagligen var 5:e minut under dagen
    — I Ă„tgĂ€rderna anger vi sökvĂ€gen till robocopy-verktyget och anger som argument:

    DC1SYSVOLtest.local DC2SYSVOLtest.local /mir /sec

    I det hÀr specifika fallet kopierar vi innehÄllet i SysVol-katalogen frÄn DC1 till DC2.

  3. BÀrbara anvÀndarmappar med pam_mount-konfigurationGenom erfarenhet hittade jag tvÄ genomförbara alternativ för att lösa detta problem med hjÀlp av det.
    1. Att montera en profilmapp helt frÄn nÀtverket till /home-partitionen. Ett enkelt alternativ. Fungerar utmÀrkt om namnen pÄ mapparna Mina dokument, Nedladdningar och Skrivbord Àr desamma i bÄda operativsystemen. Detta förutsÀtter att datorn Àr pÄ Linux har redan angetts i domÀnen och anvÀndare loggar in under sina domÀnkonton med ssd som autentiserings- och auktoriseringsmekanism.
      # 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"/>
      

      dÀr:

      • uid="100000000-2000000000" — UID-intervall tilldelat domĂ€nanvĂ€ndare frĂ„n SSSD
      • server="dfs" - filservernamn
      • path="Profile_Users/%(USER)" — en resurs pĂ„ en filserver med en vĂ€rdbaserad anvĂ€ndarprofil
      • monteringspunkt =”~” — montera sökvĂ€gen till anvĂ€ndarens hemmapp

      AnvÀndarinloggningen skickas till makrovariabeln "%(USER)" som anvÀnds av pam_mount för att ansluta vÄr nÀtverksresurs enligt inmatning i visningshanteraren. DÀrför Àr det viktigt att inloggningen skrivs in i DM utan att uttryckligen specificera domÀnnamnet.

      I sssd.conf löses detta genom att kommentera bort eller sÀtta alternativet till False use_fully_qualified_names, som möjliggör fullt kvalificerat namnlÀge (inklusive domÀn) för anvÀndare och grupper.

    2. Den andra metoden Àr mindre okomplicerad och klumpig, och enligt min mening mer bekvÀm och att föredra. Skillnaden frÄn den första finns bara i pam_mount-konfigurationen
      # 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"/>

      Det vill sÀga, vi monterar helt enkelt var och en av vÄra mappar separat i motsvarande katalog

Resultat

Under en halv mÄnads arbete pÄ testbÀnken överlevde detta paket framgÄngsrikt flera alternerande lÄngsiktiga och kortsiktiga avstÀngningar av bÄda kontrollerna, i stort sett utan nÄgra konsekvenser för klienterna (nÀr en klient vÀl Àr pÄ Windows7 förlorade förtroendefulla relationer).

Sammantaget hade jag en ganska trevlig upplevelse att arbeta med den hÀr produkten, Àven trots alla nyanser som jag var tvungen att hantera bÄde i artikeln och "bakom kulisserna."

Det finns mÄnga fallgropar, och nÀr du arbetar med Samba mÄste du upptÀcka ett stort antal av dem. Det finns dock för nÀrvarande inga andra lösningar som lÄter dig organisera en hybridmiljö, bÄde med och utan en katalogtjÀnst. Windows.

KĂ€lla: will.com

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster