Samba DC som en andra kontroller i AD-domÀnen Windows 2012R2 och flyttbara mappar för kunder pÄ Windows och Linux

Samba DC som en andra kontroller i AD-domÀnen Windows 2012R2 och flyttbara mappar för kunder pÄ Windows och Linux
Insikten av att jag hamnat i en importsubstitution kom inte genast. Först nÀr friska leveranser av datorer frÄn den överordnade organisationen började stabilt ankomma med distributionen "Alt Linux" ombord, började jag ana ugglor i mossen.

Men under processen av att passera genom stadierna av acceptans av det oundvikliga, blev jag involverad och till och med började njuta lite av processen. Vid nÄgot tillfÀlle tÀnkte jag att i takt med detta kommer jag förr eller senare behöva sÀga farvÀl till Microsofts katalogtjÀnster och gÄ mot nÄgot mer exotiskt. DÀrför, för att vara beredd pÄ det oundvikliga och för att i möjligaste mÄn fÄnga upp sÄ mÄnga fallgropar som möjligt, beslutades det att rulla ut en testmiljö som inkluderade:

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

Testmiljöns uppgifter:

  1. Rulla ut en domÀn baserad pÄ w2k12r2. Skapa en minimal uppsÀttning av gruppolicyer (liknande de som anvÀnds i den arbetsinfrastruktur), inklusive policyn för överföring av anvÀndarnas arbetsmappar (Nedladdningar/Dokument/Skrivbord). MÄlet Àr att nÀr en anvÀndare byter arbetsplats frÄn Windows till Linux och tillbaka ska han ha bekvÀm tillgÄng till sina arbetsdokument.
  2. Införa Samba DC som den andra kontrollern. Kontrollera replikationen av katalogtjÀnsten och DNS.
  3. Konfigurera Linux-klienter för att arbeta med flyttbara mappar.

Genomförande:

  1. Installation och introduktion av den nya kontrolldatorn.Med installationen av MS Windows 2012R2 Àr allt enkelt och mer eller mindre klart. Det finns 1001 manualer pÄ internet för att rulla ut en domÀn pÄ Windows bÄde med hjÀlp av GUI och med Powershell, sÄ jag upprepar inte detta utan lÀmnar bara lÀnken till den officiella dokumentationen, för de nyfikna och de som vill frÀscha upp sitt minne.

    Men en viktig punkt i detta avsnitt finns det ÀndÄ. För nÀrvarande kan Samba inte arbeta med katalogscheman över 2008R2.

    Spoiler Rubrik Eller snarare har utvecklarna deklarerat detta stöd som experimentellt. Men i praktiken kommer ett försök att införa Samba som andra DC i en befintlig Windows-domÀn med schema 69 att möta 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 interagera med domÀner och skogar, stabilt stöd för vilka först har annonserats för version 4.11 av Samba, som ska slÀppas före Ärets slut.
    DÀrför Àr det enda alternativet för att införa Samba i en AD-domÀn som körs pÄ en 2012R2-server att nedgradera schemat frÄn 69 till 47. Naturligtvis bör detta inte göras pÄ en produktionsinfrastruktur utan giltiga skÀl, men hÀr har vi en testmiljö, sÄ varför inte.

    Vi installerar Alt Server 8.2. Under installationen vÀljer vi profilen "Samba-DC-server (AD-kontroller)." PÄ den installerade servern gör vi en fullstÀndig systemuppdatering och installerar paketet task-samba-dc, som drar in allt som behövs.

    # apt-get install task-samba-dc

    Om task-samba-dc, trots pÄstÄenden frÄn Altas dokumentation, skulle vÀgra att installera allt som krÀvs.

    # 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 konfigurationen av Kerberos och begÀran av en biljett. Vi öppnar filen krb5.conf, gÄr till avsnittet [libdefaults] och justerar den till följande format:

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

    Vi begÀr en biljett.

    # kinit administrator
    Password for administrator@TEST.LOCAL:

    Kontrollerar listan över erhÄllna 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 omdöper den befintliga Samba-konfigurationen.

    # mv smb.conf smb.conf.bak1

    Och slutligen inför vi som en andra kontroller i AD-domÀnen:

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

    Ett framgÄngsrikt införande kommer att Ätföljas av följande logg.

    Hittar en skrivbar DC för domÀn 'test.local'
    Hittade DC DC1.TEST.LOCAL
    Lösenord för [TESTadministrator]:
    Återansluter till namnmaster e31d7da6-8f56-4420-8473-80f2b3a31338._msdcs.TEST.LOCAL
    DNS-namn för ny namnmaster Àr DC1.TEST.LOCAL
    arbetsgrupp Àr TEST
    domÀn Àr TEST.LOCAL
    LÀgger till CN=DC2,OU=DomÀnkontroller,DC=TEST,DC=LOCAL
    LĂ€gger till CN=DC2,CN=Servrar,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL
    LÀgger till CN=NTDS-instÀllningar,CN=DC2,CN=Servrar,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL
    LÀgger till SPN:er till CN=DC2,OU=DomÀnkontroller,DC=TEST,DC=LOCAL
    StÀller in konto-lösenord för DC2$
    Aktiverar konto
    Ringer försörjning
    Letar upp IPv4-adresser
    Letar upp IPv6-adresser
    Ingen IPv6-adress kommer att tilldelas
    SĂ€tter upp share.ldb
    SĂ€tter upp secrets.ldb
    SĂ€tter upp registret
    SÀtter upp behörighetsdatabas
    SĂ€tter upp idmap-db
    SĂ€tter upp SAM-db
    SÀtter upp sam.ldb partitioner och instÀllningar
    SĂ€tter upp sam.ldb rootDSE
    Förladdar Samba 4 och AD-schema
    En Kerberos-konfiguration som Àr lÀmplig för Samba AD har skapats vid /var/lib/samba/private/krb5.conf
    Provision OK för domÀn DN DC=TEST,DC=LOCAL
    Startar replikering
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objekt[402/1426] lÀnkade_vÀrden[0/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objekt[804/1426] lÀnkade_vÀrden[0/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objekt[1206/1426] lÀnkade_vÀrden[0/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objekt[1608/1426] lÀnkade_vÀrden[0/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objekt[1743/1426] lÀnkade_vÀrden[0/0]
    Analysera och tillÀmpa schemavÀrden
    Partition[CN=Configuration,DC=TEST,DC=LOCAL] objekt[402/2240] lÀnkade_vÀrden[0/24]
    Partition[CN=Configuration,DC=TEST,DC=LOCAL] objekt[804/2240] lÀnkade_vÀrden[0/24]
    Partition[CN=Configuration,DC=TEST,DC=LOCAL] objekt[1206/2240] lÀnkade_vÀrden[0/24]
    Partition[CN=Configuration,DC=TEST,DC=LOCAL] objekt[1608/2240] lÀnkade_vÀrden[0/24]
    Partition[CN=Configuration,DC=TEST,DC=LOCAL] objekt[1772/2240] lÀnkade_vÀrden[24/24]
    Replikerar kritiska objekt frÄn bas DN för domÀnen
    Partition[DC=TEST,DC=LOCAL] objekt[109/110] lÀnkade_vÀrden[26/29]
    Partition[DC=TEST,DC=LOCAL] objekt[394/5008] lÀnkade_vÀrden[29/29]
    FĂ€rdig med alltid replikerad NC (bas, konfiguration, schema)
    Replikerar DC=DomainDnsZones,DC=TEST,DC=LOCAL
    Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objekt[42/42] lÀnkade_vÀrden[0/0]
    Replikerar DC=ForestDnsZones,DC=TEST,DC=LOCAL
    Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objekt[20/20] lÀnkade_vÀrden[0/0]
    Exop pÄ[CN=RID Manager$,CN=System,DC=TEST,DC=LOCAL] objekt[3] lÀnkade_vÀrden[0]
    Åtar SAM-databasen
    LÀgger till 1 fjÀrr-DNS-poster för DC2.TEST.LOCAL
    LÀgger till DNS A-post DC2.TEST.LOCAL för IPv4 IP: 192.168.90.201
    LÀgger till DNS CNAME-post 6ff1df40-cbb5-41f0-b7b3-53a27dde8edf._msdcs.TEST.LOCAL för DC2.TEST.LOCAL
    Alla andra DNS-poster (som _ldap SRV-poster) kommer att skapas samba_dnsupdate vid första starten
    Replikerar nya DNS-poster i DC=DomainDnsZones,DC=TEST,DC=LOCAL
    Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objekt[1/42] lÀnkade_vÀrden[0/0]
    Replikerar nya DNS-poster i DC=ForestDnsZones,DC=TEST,DC=LOCAL
    Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objekt[1/20] lÀnkade_vÀrden[0/0]
    Skickar DsReplicaUpdateRefs för alla replikerade partitioner
    StÀller in isSynchronized och dsServiceName
    SĂ€tter upp secrets-databasen
    Gick med i domÀn TEST (SID S-1-5-21-3959064270-1572045903-2556826204) som en DC

    I ADUC-verktyget ska det dyka upp en post om den nya DC:n i domÀnen TEST.LOCAL, och i DNS-hanteraren ska det finnas en ny A-post som motsvarar DC2.

  2. Replikering mellan kontrollerFörst ska vi kontrollera att katalogreplikeringstjÀnsten (DRS) fungerar.
    # samba-tool drs showrepl

    Alla replikationsförsök i utskriften bör vara framgÄngsrika. I KCC-objektlistan ska vÄr DC1 pÄ Windows dyka upp inom 15 minuter efter inmatning.

    Standard-Första-Plats-NamnDC2
    	DSA Alternativ: 0x00000001
    	DSA objekt GUID: 0e9f5bce-ff59-401e-bdbd-fc69df3fc6bf
    	DSA invokations-id: 017997b5-d718-41d7-a3f3-e57ab5151b5c
    
    	==== INGÅENDE GRANNAR ====
    
    	DC=ForestDnsZones,DC=test,DC=local
    	        Standard-Första-Plats-NamnDC1 via RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Senaste försök @ MÄn Maj 27 12:56:31 2019 MSK var framgÄngsrikt
    	                0 konsekutiva misslyckanden.
    	                Senaste framgÄng @ MÄn Maj 27 12:56:31 2019 MSK
    
    	DC=DomainDnsZones,DC=test,DC=local
    	        Standard-Första-Plats-NamnDC1 via RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Senaste försök @ MÄn Maj 27 12:56:32 2019 MSK var framgÄngsrikt
    	                0 konsekutiva misslyckanden.
    	                Senaste framgÄng @ MÄn Maj 27 12:56:32 2019 MSK
    
    	CN=Schema,CN=Configuration,DC=test,DC=local
    	        Standard-Första-Plats-NamnDC1 via RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Senaste försök @ MÄn Maj 27 12:56:32 2019 MSK var framgÄngsrikt
    	                0 konsekutiva misslyckanden.
    	                Senaste framgÄng @ MÄn Maj 27 12:56:32 2019 MSK
    
    	DC=test,DC=local
    	        Standard-Första-Plats-NamnDC1 via RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Senaste försök @ MÄn Maj 27 12:56:32 2019 MSK var framgÄngsrikt
    	                0 konsekutiva misslyckanden.
    	                Senaste framgÄng @ MÄn Maj 27 12:56:32 2019 MSK
    
    	CN=Configuration,DC=test,DC=local
    	        Standard-Första-Plats-NamnDC1 via RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Senaste försök @ MÄn Maj 27 12:56:33 2019 MSK var framgÄngsrikt
    	                0 konsekutiva misslyckanden.
    	                Senaste framgÄng @ MÄn Maj 27 12:56:33 2019 MSK
    
    	==== UTÅT GÅENDE GRANNAR ====
    
    	DC=ForestDnsZones,DC=test,DC=local
    	        Standard-Första-Plats-NamnDC1 via RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Senaste försök @ Tors Maj 23 16:40:03 2019 MSK var framgÄngsrikt
    	                0 konsekutiva misslyckanden.
    	                Senaste framgÄng @ Tors Maj 23 16:40:03 2019 MSK
    
    	DC=DomainDnsZones,DC=test,DC=local
    	        Standard-Första-Plats-NamnDC1 via RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Senaste försök @ Tors Maj 23 16:40:03 2019 MSK var framgÄngsrikt
    	                0 konsekutiva misslyckanden.
    	                Senaste framgÄng @ Tors Maj 23 16:40:03 2019 MSK
    
    	CN=Schema,CN=Configuration,DC=test,DC=local
    	        Standard-Första-Plats-NamnDC1 via RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Senaste försök @ Tors Maj 23 16:40:08 2019 MSK var framgÄngsrikt
    	                0 konsekutiva misslyckanden.
    	                Senaste framgÄng @ Tors Maj 23 16:40:08 2019 MSK
    
    	DC=test,DC=local
    	        Standard-Första-Plats-NamnDC1 via RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Senaste försök @ Tors Maj 23 16:40:08 2019 MSK var framgÄngsrikt
    	                0 konsekutiva misslyckanden.
    	                Senaste framgÄng @ Tors Maj 23 16:40:08 2019 MSK
    
    	CN=Configuration,DC=test,DC=local
    	        Standard-Första-Plats-NamnDC1 via RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Senaste försök @ MÄn Maj 27 12:12:17 2019 MSK var framgÄngsrikt
    	                0 konsekutiva misslyckanden.
    	                Senaste framgÄng @ MÄn Maj 27 12:12:17 2019 MSK
    
    	==== KCC KONTAKT OBJEN ====
    
    	Anslutning --
    	        Anslutningsnamn: 6d2652b3-e723-4af7-a19f-1ee48915753c
    	        Aktiverad        : SANT
    	        Server DNS namn : DC1.test.local
    	        Server DN namn  : CN=NTDS InstÀllningar,CN=DC1,CN=Servrar,CN=Standard-Första-Plats-Namn,CN=Platser,CN=Konfiguration,DC=test,DC=local
    	                TransportType: RPC
    	                alternativ: 0x00000001
    	Varning: Ingen NC replikerad för Anslutning!

    Varning «Ingen NC replikerad för Anslutning!» kan utan tvekan ignoreras. Det uppstÄr eftersom Samba vid registrering av en ny DC felaktigt stÀller in vissa replikeringsflaggor.

    Det Àr ocksÄ bra att kontrollera LDAP-replikationen.

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

    Kommandot ovan kommer att jÀmföra attributvÀrdena för objekten i hela katalogen pÄ DC1 och DC2.

    Exempel pÄ framgÄngsrik replikation

    * JÀmför [DOMAIN]-kontext...
    
    	* Objekt som ska jÀmföras: 249
    
    	* Resultat för [DOMAIN]: SUCCESS
    
    	* JÀmför [CONFIGURATION]-kontext...
    
    	* Objekt som ska jÀmföras: 1750
    
    	* Resultat för [CONFIGURATION]: SUCCESS
    
    	* JÀmför [SCHEMA]-kontext...
    
    	* Objekt som ska jÀmföras: 1739
    
    	* Resultat för [SCHEMA]: SUCCESS
    
    	* JÀmför [DNSDOMAIN]-kontext...
    
    	* Objekt som ska jÀmföras: 42
    
    	* Resultat för [DNSDOMAIN]: SUCCESS
    
    	* JÀmför [DNSFOREST]-kontext...
    
    	* Objekt som ska jÀmföras: 20
    
    	* Resultat för [DNSFOREST]: SUCCESS

    I vissa fall kan attributen för objekt pÄ olika kontrollerare skilja sig Ät, och kommandots output kommer att meddela om detta. Men i mÄnga fall innebÀr det inte nödvÀndigtvis ett problem med replikationen.

    Det nÀsta steget Àr att manuellt konfigurera en stabil replikation av SysVol-katalogen.
    Problemet Àr att Samba fortfarande inte stöder DFS-R, precis som den inte stödde den tidigare FRS. DÀrför Àr den enda fungerande lösningen för replikation mellan Samba DC och Windows för nÀrvarande ensidig replikation med hjÀlp av Robocopy frÄn paketet Windows Server 2003 Resource Kit Tools.

    Samba-utvecklarna rekommenderar, för att undvika kompatibilitetsproblem, att först installera verktygssatsen pÄ en vanlig arbetsstation och sedan kopiera Robocopy till kontrollern i mappen "C:Program Files (x86)Windows Resource KitsTools"

    Efter installationen skapar vi ett schema i uppgiftshanteraren pÄ Windows-kontrollern för att utföra replikationen med följande parametrar:

    — Utför för alla anvĂ€ndare
    — Utlösare för att köra Dagligen var femte minut under dagen
    — I Ă„tgĂ€rderna anger vi vĂ€gen till robocopy-verktyget, som argument anger vi:

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

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

  3. Flyttbara anvÀndarmappar med hjÀlp av pam_mount-konfigurationenGenom erfarenhet har jag identifierat tvÄ livskraftiga alternativ för att lösa denna uppgift med hjÀlp av det.
    1. Full mounting of the profile folder from the network into the /home section. A simple option. It works excellently if the folder names My Documents, Downloads, and Desktop match in both operating systems. It is assumed that the Linux PC is already joined to the domain and users log in with their domain accounts, using sssd as the authentication and authorization mechanism.
      # 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" — the UID range assigned to domain users by SSSD
      • server="dfs" — the name of the file server
      • path="Profile_Users/%(USER)" — resource on the file server where the user profile is located
      • mountpoint="~" — mount point in the user's home folder

      The user's login is passed to the macro variable "%(USER)", used by pam_mount, to connect to our network resource in the form in which it is entered in the display manager. Therefore, it is important that the login in the DM is entered without explicitly stating the domain name.

      In sssd.conf, this is resolved by commenting or setting the value to False in the option use_fully_qualified_names, which enables the fully qualified names mode (including the domain) for users and groups.

    2. The second method is less straightforward and clumsy, and in my opinion, more convenient and preferable. The difference from the first is only in the configuration of pam_mount.
      # vim /etc/security/pam_mount.conf.xml

      That is, we simply mount each of our folders separately into the corresponding directory.

Slutsatser

In half a month of work on the test stand, this setup successfully survived several alternating long-term and short-term outages of both controllers, with practically no consequences for clients (once a client on Windows 7 lost trust relationships).

Över lag har jag haft ganska trevliga upplevelser av att arbeta med den hĂ€r produkten, trots alla nyanser som jag stött pĂ„ bĂ„de i artikeln och "bakom kulisserna".

Det finns mÄnga fallgropar, och under arbetet med Samba kommer du att behöva fÄnga upp dem i stor mÀngd. Trots detta finns det idag inga andra lösningar som möjliggör en hybridmiljö med anvÀndning av katalogtjÀnster och utan att anvÀnda Windows.

KĂ€lla: habr.com

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