Samba DC jako druhý řadič v doméně AD Windows 2012R2 a přenosné složky pro klienty na Windows a Linux.

Samba DC jako druhý řadič v doméně AD Windows 2012R2 a přenosné složky pro klienty na Windows a Linux.
Uvědomění si, že jsem se dostal do procesu importu, nepřišlo hned. Až když začaly čerstvé dodávky PC z vyšší organizace stabilně přicházet se systémem "Alt Linux" na palubě, začal jsem mít podezření, že něco není v pořádku.

Během procházení fázemi přijetí nevyhnutelného jsem se však zapojil a dokonce jsem si začal trochu užívat proces. V určitém okamžiku jsem si pomyslel, že pokud to takto půjde dál, dříve nebo později budu muset opustit řešení pro správu adresářových služeb od Microsoftu a vydat se směrem k něčemu exotickému. Proto, abych se co nejlépe připravil na nevyhnutelné a abych co nejlépe identifikoval potenciální problémy, bylo rozhodnuto spustit testovací stand, který zahrnoval:

  • DC1 — Windows Server 2012R2
  • DC2 — Alt Server 8.2
  • Souborový server — Windows Server 2012R2
  • PC1 — Windows 7
  • PC2 — Alt Pracovní stanice 8.2

Úkoly standu:

  1. Nastavit doménu na bázi w2k12r2. Vytvořit minimální sadu skupinových politik (podobně jako ty, které se používají v pracovní infrastruktuře), včetně politiky přesunu pracovních složek uživatelů (Stahování/Dokumenty/Úvodní stránka). Nakonec bych chtěl, aby uživatel měl pohodlný přístup ke svým pracovním dokumentům při změně pracovního místa mezi Windows a Linuxem.
  2. Zavedení Samba DC jako druhého kontroléru. Ověření replikace adresářových služeb a DNS.
  3. Nastavení klientů Linux na práci s přesouvatelnými složkami.

Realizace:

  1. Instalace a uvedení nového kontroléru.S instalací MS Windows 2012R2 je to jednoduché a víceméně jasné. Na internetu je 1001 manuálů pro nastavení domény na Windows jak pomocí GUI, tak prostřednictvím Powershell, proto to znovu opakovat nebudu, nechám jen odkaz odkaz na oficiální dokumentaci pro zvědavé a ty, kteří si chtějí osvěžit paměť.

    Avšak je zde jeden důležitý moment. V současnosti Samba neumí pracovat se schématy adresářů vyššími než 2008R2.

    Název spoileru Tedy vývojáři tuto podporu deklarovali jako experimentální. Ale v praxi pokus o zavedení Samby jako druhého DC do existující domény Windows se schématem 69 vás přivítá následující chybou

    DsAddEntry selhalo se stavem WERR_ACCESS_DENIED info (8567, ‘WERR_DS_INCOMPATIBLE_VERSION’)

    Problém je v tom, že Windows 2012 a 2012R2 používají nástroje WMI pro práci s doménami a lesy, jejichž stabilní podpora byla oznámena až pro verzi Samba 4.11, která by měla vyjít do konce tohoto roku.
    Z toho vyplývá, že jedinou možností pro integraci Samby do domény AD vytvořené na serveru 2012R2 je snížení schématu z 69 na 47. Samozřejmě, na produkční infrastruktuře to bez vážných důvodů dělat nemá smysl, ale máme tady testovací prostředí, takže proč ne.

    Instalujeme Alt Server 8.2. Během instalace vybíráme profil „Server Samba-DC (AD kontroler)“. Na nasazeném serveru provedeme úplnou aktualizaci systému a nainstalujeme balíček task-samba-dc, který si stáhne vše potřebné.

    # apt-get install task-samba-dc

    Pokud balíček task-samba-dc, navzdory ujištěním dokumentace Alty, odmítne nainstalovat vše potřebné, udělejte to ručně.

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

    Dále přejdeme k nastavení Kerberos a získání lístku. Otevřeme soubor krb5.conf, přejdeme do sekce [libdefaults] a přivedeme jej do následující podoby:

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

    Získáváme lístek

    # kinit administrator
    Password for administrator@TEST.LOCAL:

    Kontrolujeme seznam získaných lístků Kerberos

    # 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

    Nyní odstraníme nebo přejmenujeme stávající konfiguraci Samby.

    # mv smb.conf smb.conf.bak1

    A nakonec provedeme připojení k doméně AD jako druhý kontroler:

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

    Úspěšné připojení bude doprovázeno následujícím logem

    Hledání zapisovatelného DC pro doménu 'test.local'
    Nalezen DC DC1.TEST.LOCAL
    Heslo pro [TESTadministrator]:
    Znovu se připojuji k názvovému masteru e31d7da6-8f56-4420-8473-80f2b3a31338._msdcs.TEST.LOCAL
    DNS název nového názvového masteru je DC1.TEST.LOCAL
    Pracovní skupina je TEST
    Realm je TEST.LOCAL
    Přidávání CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL
    Přidávání CN=DC2,CN=Servery,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL
    Přidávání CN=NTDS Settings,CN=DC2,CN=Servery,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL
    Přidávání SPN k CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL
    Nastavení hesla účtu pro DC2$
    Povolování účtu
    Volání prostého zajištění
    Hledání IPv4 adres
    Hledání IPv6 adres
    Žádná IPv6 adresa nebude přiřazena
    Nastavení share.ldb
    Nastavení secrets.ldb
    Nastavení registru
    Nastavení databáze privilegí
    Nastavení idmap db
    Nastavení SAM db
    Nastavení oddílů a nastavení sam.ldb
    Nastavení sam.ldb rootDSE
    Předběžné načítání schématu Samba 4 a AD
    Konfigurace Kerberos vhodná pro Samba AD byla vygenerována na /var/lib/samba/private/krb5.conf
    Zajištění OK pro doménový DN DC=TEST,DC=LOCAL
    Zahájení replikace
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objekty[402/1426] propojené_hodnoty[0/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objekty[804/1426] propojené_hodnoty[0/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objekty[1206/1426] propojené_hodnoty[0/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objekty[1608/1426] propojené_hodnoty[0/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objekty[1743/1426] propojené_hodnoty[0/0]
    Analyzování a aplikování schématových objektů
    Oddíl[CN=Configuration,DC=TEST,DC=LOCAL] objekty[402/2240] propojené_hodnoty[0/24]
    Oddíl[CN=Configuration,DC=TEST,DC=LOCAL] objekty[804/2240] propojené_hodnoty[0/24]
    Oddíl[CN=Configuration,DC=TEST,DC=LOCAL] objekty[1206/2240] propojené_hodnoty[0/24]
    Oddíl[CN=Configuration,DC=TEST,DC=LOCAL] objekty[1608/2240] propojené_hodnoty[0/24]
    Oddíl[CN=Configuration,DC=TEST,DC=LOCAL] objekty[1772/2240] propojené_hodnoty[24/24]
    Replikace kritických objektů z base DN domény
    Oddíl[DC=TEST,DC=LOCAL] objekty[109/110] propojené_hodnoty[26/29]
    Oddíl[DC=TEST,DC=LOCAL] objekty[394/5008] propojené_hodnoty[29/29]
    Hotovo s vždy replikovaným NC (base, config, schema)
    Replikace DC=DomainDnsZones,DC=TEST,DC=LOCAL
    Oddíl[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objekty[42/42] propojené_hodnoty[0/0]
    Replikace DC=ForestDnsZones,DC=TEST,DC=LOCAL
    Oddíl[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objekty[20/20] propojené_hodnoty[0/0]
    Exop na[CN=RID Manager$,CN=System,DC=TEST,DC=LOCAL] objekty[3] propojené_hodnoty[0]
    Zajištění databáze SAM
    Přidání 1 vzdáleného DNS záznamu pro DC2.TEST.LOCAL
    Přidání DNS A záznamu DC2.TEST.LOCAL pro IPv4 IP: 192.168.90.201
    Přidání DNS CNAME záznamu 6ff1df40-cbb5-41f0-b7b3-53a27dde8edf._msdcs.TEST.LOCAL pro DC2.TEST.LOCAL
    Všechny ostatní DNS záznamy (například _ldap SRV záznamy) budou vytvořeny pomocí samba_dnsupdate při prvním spuštění
    Replikace nových DNS záznamů v DC=DomainDnsZones,DC=TEST,DC=LOCAL
    Oddíl[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objekty[1/42] propojené_hodnoty[0/0]
    Replikace nových DNS záznamů v DC=ForestDnsZones,DC=TEST,DC=LOCAL
    Oddíl[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objekty[1/20] propojené_hodnoty[0/0]
    Odeslání DsReplicaUpdateRefs pro všechny replikované oddíly
    Nastavení isSynchronized a dsServiceName
    Nastavení databáze secrets
    Připojení do domény TEST (SID S-1-5-21-3959064270-1572045903-2556826204) jako DC

    V nástroji ADUC by se měla objevit položka nového DC v doméně TEST.LOCAL, a v DNS správci by měl být nový A záznam odpovídající DC2.

  2. Replikace mezi řadiči.Nejprve zkontrolujeme funkčnost služby replikace katalogů (DRS).
    # samba-tool drs showrepl

    Všechny pokusy o replikaci v výstupu by měly být úspěšné. V seznamu objektů KCC by se během 15 minut po zadání měl objevit náš DC1 na Windows.

    Výchozí-první-název-stránkyDC2
    	DSA možnosti: 0x00000001
    	DSA objekt GUID: 0e9f5bce-ff59-401e-bdbd-fc69df3fc6bf
    	DSA invocationId: 017997b5-d718-41d7-a3f3-e57ab5151b5c
    
    	==== PŘÍCHOZÍ SOUSEDÉ ====
    
    	DC=ForestDnsZones,DC=test,DC=local
    			Výchozí-první-název-stránkyDC1 přes RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Poslední pokus @ Po 27. května 12:56:31 2019 MSK byl úspěšný
    				0 po sobě jdoucích selhání.
    				Poslední úspěch @ Po 27. května 12:56:31 2019 MSK
    
    	DC=DomainDnsZones,DC=test,DC=local
    			Výchozí-první-název-stránkyDC1 přes RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Poslední pokus @ Po 27. května 12:56:32 2019 MSK byl úspěšný
    				0 po sobě jdoucích selhání.
    				Poslední úspěch @ Po 27. května 12:56:32 2019 MSK
    
    	CN=Schema,CN=Configuration,DC=test,DC=local
    			Výchozí-první-název-stránkyDC1 přes RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Poslední pokus @ Po 27. května 12:56:32 2019 MSK byl úspěšný
    				0 po sobě jdoucích selhání.
    				Poslední úspěch @ Po 27. května 12:56:32 2019 MSK
    
    	DC=test,DC=local
    			Výchozí-první-název-stránkyDC1 přes RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Poslední pokus @ Po 27. května 12:56:32 2019 MSK byl úspěšný
    				0 po sobě jdoucích selhání.
    				Poslední úspěch @ Po 27. května 12:56:32 2019 MSK
    
    	CN=Configuration,DC=test,DC=local
    			Výchozí-první-název-stránkyDC1 přes RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Poslední pokus @ Po 27. května 12:56:33 2019 MSK byl úspěšný
    				0 po sobě jdoucích selhání.
    				Poslední úspěch @ Po 27. května 12:56:33 2019 MSK
    
    	==== ODCHOZÍ SOUSEDÉ ====
    
    	DC=ForestDnsZones,DC=test,DC=local
    			Výchozí-první-název-stránkyDC1 přes RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Poslední pokus @ Čt 23. května 16:40:03 2019 MSK byl úspěšný
    				0 po sobě jdoucích selhání.
    				Poslední úspěch @ Čt 23. května 16:40:03 2019 MSK
    
    	DC=DomainDnsZones,DC=test,DC=local
    			Výchozí-první-název-stránkyDC1 přes RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Poslední pokus @ Čt 23. května 16:40:03 2019 MSK byl úspěšný
    				0 po sobě jdoucích selhání.
    				Poslední úspěch @ Čt 23. května 16:40:03 2019 MSK
    
    	CN=Schema,CN=Configuration,DC=test,DC=local
    			Výchozí-první-název-stránkyDC1 přes RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Poslední pokus @ Čt 23. května 16:40:08 2019 MSK byl úspěšný
    				0 po sobě jdoucích selhání.
    				Poslední úspěch @ Čt 23. května 16:40:08 2019 MSK
    
    	DC=test,DC=local
    			Výchozí-první-název-stránkyDC1 přes RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Poslední pokus @ Čt 23. května 16:40:08 2019 MSK byl úspěšný
    				0 po sobě jdoucích selhání.
    				Poslední úspěch @ Čt 23. května 16:40:08 2019 MSK
    
    	CN=Configuration,DC=test,DC=local
    			Výchozí-první-název-stránkyDC1 přes RPC
    				DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    				Poslední pokus @ Po 27. května 12:12:17 2019 MSK byl úspěšný
    				0 po sobě jdoucích selhání.
    				Poslední úspěch @ Po 27. května 12:12:17 2019 MSK
    
    	==== KCC SPOJENÍ OBJEKTY ====
    
    	Spojení --
    			Název spojení: 6d2652b3-e723-4af7-a19f-1ee48915753c
    			Povoleno        : TRUE
    			Server DNS název : DC1.test.local
    			Server DN název  : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Výchozí-první-název-stránky,CN=Sítě,CN=Konfigurace,DC=test,DC=local
    				TransportType: RPC
    				možnosti: 0x00000001
    	Upozornění: „Žádný NC nebyl replikován pro spojení!“

    Upozornění „Žádný NC nebyl replikován pro spojení!“ lze s klidem ignorovat. Objevuje se, protože při registraci nového DC Samba nesprávně nastaví některé replikace flagy.

    Také je dobré zkontrolovat replikaci LDAP.

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

    Výše uvedený příkaz porovná hodnoty atributů objektů celého adresáře na DC1 a DC2.

    Příklad úspěšné replikace

    * Porovnání kontextu [DOMAIN]...
    
    	* Počet objektů k porovnání: 249
    
    	* Výsledek pro [DOMAIN]: ÚSPĚCH
    
    	* Porovnání kontextu [CONFIGURATION]...
    
    	* Počet objektů k porovnání: 1750
    
    	* Výsledek pro [CONFIGURATION]: ÚSPĚCH
    
    	* Porovnání kontextu [SCHEMA]...
    
    	* Počet objektů k porovnání: 1739
    
    	* Výsledek pro [SCHEMA]: ÚSPĚCH
    
    	* Porovnání kontextu [DNSDOMAIN]...
    
    	* Počet objektů k porovnání: 42
    
    	* Výsledek pro [DNSDOMAIN]: ÚSPĚCH
    
    	* Porovnání kontextu [DNSFOREST]...
    
    	* Počet objektů k porovnání: 20
    
    	* Výsledek pro [DNSFOREST]: ÚSPĚCH

    V některých případech se atributy objektů na různých kontrolerech mohou lišit a výstup příkazu to oznámí. Ale ne vždy to bude indikátor problému s replikací.

    Dalším krokem je ruční nastavení stabilní replikace adresáře SysVol.
    Faktem je, že Samba zatím nepodporuje DFS-R, stejně jako dříve nepodporovala FRS. Proto jediným funkčním řešením pro replikaci mezi DC Samba a Windows je dnes jednosměrná replikace pomocí nástroje Robocopy z balíčku Windows Server 2003 Resource Kit Tools.

    Vývojáři Sambu, aby se vyhnuli problémům s kompatibilitou, doporučují nejprve nainstalovat balík utilit na běžnou pracovní stanici a poté zkopírovat Robocopy na kontroler do adresáře „C:Program Files (x86)Windows Resource KitsTools“

    Po instalaci vytvořte v plánovači úloh na kontroleru s Windows úlohu pro provádění replikace s následujícími parametry:

    - Provádět pro všechny uživatele
    - Spoušť pro provádění Každodenně každých 5 minut během dne
    - V akcích uvedeme cestu k utilitě robocopy a jako argumenty zadáme:

    DC1SYSVOLtest.local DC2SYSVOLtest.local /mir /sec

    V konkrétním případě kopírujeme obsah adresáře SysVol z DC1 na DC2.

  3. Přenosové složky uživatelů pomocí konfigurace pam_mountPrakticky jsem našel dvě životaschopné varianty, jak tuto úlohu vyřešit pomocí něj.
    1. Plné připojení složky s profilem ze sítě do části /home. Jednoduchá varianta. Skvěle funguje, pokud se názvy složek Dokumenty, Stažené a Plocha shodují v obou operačních systémech. Předpokládá se, že PC na Linuxu je již zařazené do domény a uživatelé se přihlašují pomocí svých doménových účtů, přičemž jako mechanismus autentizace a autorizace používají sssd.
      # 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"/>
      

      kde:

      • uid="100000000-2000000000" — rozsah UID přidělený doménovým uživatelům od SSSD
      • server="dfs" — název souborového serveru
      • path="Profile_Users/%(USER)" — zdroj na souborovém serveru, kde je umístěn uživatelský profil
      • mountpoint="~" — cesta k montování v domovské složce uživatele

      Uživatelské jméno je předáno do makro proměnné „%(USER)“, která je používána pam_mount pro připojení našeho síťového zdroje, tak jak bylo zadáno v správci zobrazení. Proto je důležité, aby se v DM přihlašovalo bez explicitního uvedení doménového jména.

      V sssd.conf se to řeší zakomentováním nebo nastavením hodnoty False pro volbu use_fully_qualified_names, která včetně domény aktivuje režim plného jména pro uživatele a skupiny.

    2. Druhý způsob je méně přímočarý a zbrklý, a podle mého názoru je pohodlnější a preferovanější. Rozdíl oproti prvnímu spočívá pouze v konfiguraci pam_mount.
      # vim /etc/security/pam_mount.conf.xml

      Tedy jednoduše samostatně připojíme každou naši složku do odpovídajícího katalogu.

Závěry

Během půl měsíce testování tato kombinace úspěšně přežila několik dlouhodobých a krátkodobých odpojení obou řídicích jednotek, prakticky bez následků pro klienty (jednou klient na Windows7 ztratil důvěryhodnost).

Celkově mám z práce s tímto produktem docela příjemné dojmy, i když jsem se setkal s mnoha nuancemi jak v článku, tak i „za scénou“.

Existují skryté problémy, je jich mnoho a při práci se Sambou je potřeba je odhalovat v hojném počtu. Nicméně v současnosti neexistují žádná jiná řešení, která by umožnila organizaci hybridního prostředí s využitím služeb adresářů a bez použití Windows.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster