Samba DC kot drugi kontroler v AD domene Windows 2012R2 in premikljive mape za stranke na Windows in Linux

Samba DC kot drugi kontroler v AD domene Windows 2012R2 in premikljive mape za stranke na Windows in Linux
Zavedanje, da sem se znašel v procesu uvažanja, ni prišlo takoj. Šele ko so iz višje organizacije stalno začeli prihajati novi računalniki z distribucijo „Alt Linux“ na krovu, sem posumil, da je nekaj narobe.

Vendar sem se med postopkom sprejemanja neizbežnega vključno v proces in celo nekoliko začel uživati. V nekem trenutku sem pomislil, da bom prej ali slej moral pozabiti na rešitve za upravljanje imenikov Microsoft in se usmeriti v nekaj bolj eksotičnega. Zato sem se odločil, da bom vnaprej pripravil testno okolje, ki vključuje:

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

Naloge okolja:

  1. Uvedba domene temelječe na w2k12r2. Ustvariti minimalni nabor skupinskih politik (podobno tistim, ki se uporabljajo v delovni infrastrukturi), vključno s politiko selitve uporabniških delovnih map (Prenosi/Dokumenti/Delovna površina). Na koncu si želim, da bi uporabnik pri menjavi delovnega mesta z Windows na Linux in nazaj imel udoben dostop do svojih delovnih dokumentov.
  2. Vnos Samba DC kot drugega kontrolerja. Preveritev replikacije storitev imenikov in DNS
  3. Nastavitev Linux strank za delo z selitvenimi mapami

Izvedba:

  1. Namestitev in uvedba novega kontrolerjaZ namestitvijo MS Windows 2012R2 je vse preprosto in bolj ali manj jasno. Na internetu je 1001 priročnik za uvedbo domene na Windows tako z uporabo GUI kot z orodjem Powershell, zato ne bom ponavljal, samo prepuščam povezavo uradni dokumentaciji, za radovedne in tiste, ki želijo osvežiti spomin.

    Kljub temu obstaja en pomemben trenutek v tem delu. Danes Samba ne podpira delovnih shem višjih od 2008R2.

    Naslov sklope Bolje rečeno, ta podpora se zahteva s strani razvijalcev kot eksperimentalna. V praksi pa boste pri poskusu vnosa Sambe kot drugega DC v obstoječo Windows domeno z različico sheme 69 naleteli na naslednjo napako

    DsAddEntry failed with status WERR_ACCESS_DENIED info (8567, ‘WERR_DS_INCOMPATIBLE_VERSION’)

    Težava je v tem, da Windows 2012 in 2012R2 za upravljanje z domenskimi in gozdnimi strukturi uporabljata orodja WMI, katerih stabilna podpora je bila napovedana šele za različico Samba 4.11, ki naj bi izšla do konca tega leta.
    To pomeni, da je edina možnost za vključitev Sambe v AD domeno, ki teče na strežniku 2012R2, znižanje sheme z 69 na 47. Seveda tega v delovni infrastrukturi brez tehtnih razlogov ne bi smeli početi, vendar imamo tukaj testno okolje, tako da zakaj pa ne.

    Namestimo Alt Server 8.2. Med namestitvijo izberemo profil „Samba-DC strežnik (AD kontroler)“. Na nameščenem strežniku izvedemo celovito nadgradnjo sistema in namestimo paket task-samba-dc, ki bo prenesel vse potrebno.

    # apt-get install task-samba-dc

    Če bo morda task-samba-dc, kljub trditvam dokumentacije Alt, zavrnil namestitev vsega potrebnega sam.

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

    Nato preidemo k nastavitvi Kerberosa in pridobitvi vstopnice. Odprimo datoteko krb5.conf, gremo v razdelek [libdefaults] in jo spremenimo v naslednjo obliko:

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

    Zahtevamo vstopnico.

    # kinit administrator
    Password for administrator@TEST.LOCAL:

    Preverimo seznam pridobljenih vstopnic 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

    Zdaj odstranimo ali preimenujemo obstoječo konfiguracijo Sambe.

    # mv smb.conf smb.conf.bak1

    In končno se vključimo v AD domeno kot drugi kontroler:

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

    Uspešno vključitev bo spremljal naslednji log.

    Ищем доступный контроллер домена для домена 'test.local'
    Найден контроллер DC DC1.TEST.LOCAL
    Пароль для [TESTadministrator]:
    Переподключение к основному мастеру имён e31d7da6-8f56-4420-8473-80f2b3a31338._msdcs.TEST.LOCAL
    DNS-имя нового мастера имён — DC1.TEST.LOCAL
    Рабочая группа — TEST
    Область — TEST.LOCAL
    Добавление CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL
    Добавление CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL
    Добавление CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL
    Добавление SPN в CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL
    Установка пароля аккаунта для DC2$
    Включение аккаунта
    Вызов базовой настройки
    Поиск адресов IPv4
    Поиск адресов IPv6
    IPv6-адрес не будет назначен
    Настройка share.ldb
    Настройка secrets.ldb
    Настройка реестра
    Настройка базы данных привилегий
    Настройка базы данных idmap
    Настройка базы данных SAM
    Настройка разделов и настроек sam.ldb
    Настройка корневого DSE sam.ldb
    Предварительная загрузка схемы Samba 4 и AD
    Конфигурация Kerberos, подходящая для Samba AD, была сгенерирована по адресу /var/lib/samba/private/krb5.conf
    Настройка завершена для домена DN DC=TEST,DC=LOCAL
    Запуск репликации
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] объекты[402/1426] связанные_значения[0/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] объекты[804/1426] связанные_значения[0/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] объекты[1206/1426] связанные_значения[0/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] объекты[1608/1426] связанные_значения[0/0]
    Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] объекты[1743/1426] связанные_значения[0/0]
    Анализ и применение объектов схемы
    Partition[CN=Configuration,DC=TEST,DC=LOCAL] объекты[402/2240] связанные_значения[0/24]
    Partition[CN=Configuration,DC=TEST,DC=LOCAL] объекты[804/2240] связанные_значения[0/24]
    Partition[CN=Configuration,DC=TEST,DC=LOCAL] объекты[1206/2240] связанные_значения[0/24]
    Partition[CN=Configuration,DC=TEST,DC=LOCAL] объекты[1608/2240] связанные_значения[0/24]
    Partition[CN=Configuration,DC=TEST,DC=LOCAL] объекты[1772/2240] связанные_значения[24/24]
    Репликация критических объектов из базового DN домена
    Partition[DC=TEST,DC=LOCAL] объекты[109/110] связанные_значения[26/29]
    Partition[DC=TEST,DC=LOCAL] объекты[394/5008] связанные_значения[29/29]
    Завершена репликация всегда воспроизводимых NC (базовый, конфигурация, схема)
    Репликация DC=DomainDnsZones,DC=TEST,DC=LOCAL
    Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] объекты[42/42] связанные_значения[0/0]
    Репликация DC=ForestDnsZones,DC=TEST,DC=LOCAL
    Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] объекты[20/20] связанные_значения[0/0]
    Exop на[CN=RID Manager$,CN=System,DC=TEST,DC=LOCAL] объекты[3] связанные_значения[0]
    Коммит базы данных SAM
    Добавление 1 удалённой DNS-записи для DC2.TEST.LOCAL
    Добавление DNS A-записи DC2.TEST.LOCAL для IPv4 IP: 192.168.90.201
    Добавление DNS CNAME-записи 6ff1df40-cbb5-41f0-b7b3-53a27dde8edf._msdcs.TEST.LOCAL для DC2.TEST.LOCAL
    Все остальные DNS-записи (такие как _ldap SRV-записи) будут созданы при первом запуске samba_dnsupdate
    Репликация новых DNS-записей в DC=DomainDnsZones,DC=TEST,DC=LOCAL
    Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] объекты[1/42] связанные_значения[0/0]
    Репликация новых DNS-записей в DC=ForestDnsZones,DC=TEST,DC=LOCAL
    Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] объекты[1/20] связанные_значения[0/0]
    Отправка DsReplicaUpdateRefs для всех реплицируемых разделов
    Установка isSynchronized и dsServiceName
    Настройка базы данных секретов
    Присоединился к домену TEST (SID S-1-5-21-3959064270-1572045903-2556826204) в качестве контроллера домена

    V orodju ADUC se mora pojaviti vnos o novem DC v domeni TEST.LOCAL, v upravljalniku DNS pa nova A vnos, ki ustreza DC2.

  2. Replikacija med krmilnikiNajprej preverimo delovanje storitve za replikacijo katalogov (DRS)
    # samba-tool drs showrepl

    Vsi poskusi replikacije v izhodu morajo biti uspešni. Na seznamu predmetov KCC se mora v 15 minutah po vnosu pojaviti naš DC1 na Windows.

    Privzeti- prvi-ime-spletne-straniDC2
    	DSA možnosti: 0x00000001
    	DSA objekt GUID: 0e9f5bce-ff59-401e-bdbd-fc69df3fc6bf
    	DSA invocationId: 017997b5-d718-41d7-a3f3-e57ab5151b5c
    
    	==== INBOUND Susedje ====
    
    	DC=ForestDnsZones,DC=test,DC=local
    	        Privzeti- prvi-ime-spletne-straniDC1 preko RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Zadnji poskus @ Pon Maj 27 12:56:31 2019 MSK je bil uspešen
    	                0 zaporednih napak.
    	                Zadnja uspešna @ Pon Maj 27 12:56:31 2019 MSK
    
    	DC=DomainDnsZones,DC=test,DC=local
    	        Privzeti- prvi-ime-spletne-straniDC1 preko RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Zadnji poskus @ Pon Maj 27 12:56:32 2019 MSK je bil uspešen
    	                0 zaporednih napak.
    	                Zadnja uspešna @ Pon Maj 27 12:56:32 2019 MSK
    
    	CN=Schema,CN=Configuration,DC=test,DC=local
    	        Privzeti- prvi-ime-spletne-straniDC1 preko RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Zadnji poskus @ Pon Maj 27 12:56:32 2019 MSK je bil uspešen
    	                0 zaporednih napak.
    	                Zadnja uspešna @ Pon Maj 27 12:56:32 2019 MSK
    
    	DC=test,DC=local
    	        Privzeti- prvi-ime-spletne-straniDC1 preko RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Zadnji poskus @ Pon Maj 27 12:56:32 2019 MSK je bil uspešen
    	                0 zaporednih napak.
    	                Zadnja uspešna @ Pon Maj 27 12:56:32 2019 MSK
    
    	CN=Configuration,DC=test,DC=local
    	        Privzeti- prvi-ime-spletne-straniDC1 preko RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Zadnji poskus @ Pon Maj 27 12:56:33 2019 MSK je bil uspešen
    	                0 zaporednih napak.
    	                Zadnja uspešna @ Pon Maj 27 12:56:33 2019 MSK
    
    	==== OUTBOUND Susedje ====
    
    	DC=ForestDnsZones,DC=test,DC=local
    	        Privzeti- prvi-ime-spletne-straniDC1 preko RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Zadnji poskus @ Čet Maj 23 16:40:03 2019 MSK je bil uspešen
    	                0 zaporednih napak.
    	                Zadnja uspešna @ Čet Maj 23 16:40:03 2019 MSK
    
    	DC=DomainDnsZones,DC=test,DC=local
    	        Privzeti- prvi-ime-spletne-straniDC1 preko RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Zadnji poskus @ Čet Maj 23 16:40:03 2019 MSK je bil uspešen
    	                0 zaporednih napak.
    	                Zadnja uspešna @ Čet Maj 23 16:40:03 2019 MSK
    
    	CN=Schema,CN=Configuration,DC=test,DC=local
    	        Privzeti- prvi-ime-spletne-straniDC1 preko RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Zadnji poskus @ Čet Maj 23 16:40:08 2019 MSK je bil uspešen
    	                0 zaporednih napak.
    	                Zadnja uspešna @ Čet Maj 23 16:40:08 2019 MSK
    
    	DC=test,DC=local
    	        Privzeti- prvi-ime-spletne-straniDC1 preko RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Zadnji poskus @ Čet Maj 23 16:40:08 2019 MSK je bil uspešen
    	                0 zaporednih napak.
    	                Zadnja uspešna @ Čet Maj 23 16:40:08 2019 MSK
    
    	CN=Configuration,DC=test,DC=local
    	        Privzeti- prvi-ime-spletne-straniDC1 preko RPC
    	                DSA objekt GUID: 60fb339d-efa3-4585-a42d-04974e6601b7
    	                Zadnji poskus @ Pon Maj 27 12:12:17 2019 MSK je bil uspešen
    	                0 zaporednih napak.
    	                Zadnja uspešna @ Pon Maj 27 12:12:17 2019 MSK
    
    	==== KCC POVEZOVALNI OBJEKT ====
    
    	Povezava --
    	        Ime povezave: 6d2652b3-e723-4af7-a19f-1ee48915753c
    	        Omogočeno        : DA
    	        DNS ime strežnika : DC1.test.local
    	        DN ime strežnika  : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Privzeti- prvi-ime-spletne-strani,CN=Sites,CN=Configuration,DC=test,DC=local
    	                TransportType: RPC
    	                možnosti: 0x00000001
    	Opozorilo: Ni NC replikacija za povezavo!

    Opozorilo «No NC replicated for Connection!» lahko mirno ignorirate. Pojavlja se, ker pri registraciji novega DC Samba napačno nastavi nekatere zastavice replikacije.

    Prav tako je dobro preveriti replikacijo LDAP.

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

    Zgornja ukaz bo primerjala vrednosti atributov objektov celotnega kataloga na DC1 in DC2.

    Primer uspešne replikacije

    * Primerjanje [DOMAIN] konteksta...
    
    	* Objekti, ki jih je treba primerjati: 249
    
    	* Rezultat za [DOMAIN]: USPEH
    
    	* Primerjanje [CONFIGURATION] konteksta...
    
    	* Objekti, ki jih je treba primerjati: 1750
    
    	* Rezultat za [CONFIGURATION]: USPEH
    
    	* Primerjanje [SCHEMA] konteksta...
    
    	* Objekti, ki jih je treba primerjati: 1739
    
    	* Rezultat za [SCHEMA]: USPEH
    
    	* Primerjanje [DNSDOMAIN] konteksta...
    
    	* Objekti, ki jih je treba primerjati: 42
    
    	* Rezultat za [DNSDOMAIN]: USPEH
    
    	* Primerjanje [DNSFOREST] konteksta...
    
    	* Objekti, ki jih je treba primerjati: 20
    
    	* Rezultat za [DNSFOREST]: USPEH

    V nekaterih primerih se lahko atributi objektov na različnih kontrolerjih razlikujejo, rezultat ukaza pa bo o tem obvestil. Vendar pa to ne bo vedno znak težave z replikacijo.

    Naslednji korak je ročno nastaviti stabilno replikacijo kataloga SysVol.
    Gre za to, da Samba še ne podpira DFS-R, prav tako pa ni podpirala prejšnjega FRS. Zato je za replikacijo med DC Samba in Windows edina trenutno delujoča rešitev enostranska replikacija s pomočjo orodja Robocopy iz paketa Windows Server 2003 Resource Kit Tools.

    Razvijalci Sambe, da bi se izognili težavam s združljivostjo, priporočajo, da najprej namestite paket orodij na navadno delovno postajo, nato pa kopirate Robocopy na kontroler v mapo "C:Program Files (x86)Windows Resource KitsTools"

    Po namestitvi v načrtovalniku opravil na Windows kontrolerju ustvarimo nalogo za izvajanje replikacije z naslednjimi parametri:

    — Izvaja se za vse uporabnike
    — Trigger za izvajanje vsake 5 minut tekom dneva
    — V dejanjih zapišemo pot do orodja robocopy, kot argumente pa navedemo:

    DC1SYSVOLtest.local DC2SYSVOLtest.local /mir /sec

    V konkretnem primeru kopiramo vsebino mape SysVol z DC1 na DC2.

  3. Prenosljive mape uporabnikov s pomočjo konfiguracije pam_mountS preizkušanjem sem našel dve izvedljivi možnosti za rešitev te naloge s pomočjo tega.
    1. Celotna montaža mape profila iz omrežja v razdelek /home. Enostavna možnost. Odlično deluje, če se imena map Moji dokumenti, Prenosi in Namizje ujemajo v obeh operacijskih sistemih. Predpostavlja se, da je računalnik na Linuxu že vključen v domeno in da se uporabniki prijavljajo s svojimi domenami, pri čemer se uporablja sssd kot mehanizem avtentikacije in avtorizacije.
      # 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“ — razpon UID, dodeljen domenskim uporabnikom iz SSSD
      • server=„dfs“ — ime datotečnega strežnika
      • path=„Profile_Users/%(USER)“ — vir na datotečnem strežniku, kjer je shranjen uporabniški profil
      • mountpoint=»~« — montirna pot v domačo mapo uporabnika

      Uporabniško ime se prenese v makropremenljivko „%(USER)“, ki jo uporablja pam_mount za povezavo z našim omrežnim virom, v takšni obliki, kot je vnesena v upravljalniku zaslona. Zato je pomembno, da se v DMs prijavite brez izrecnega navedbe imena domene.

      V sssd.conf se to reši z komentiranjem ali nastavitvijo vrednosti False v opciji use_fully_qualified_names, ki omogoča način polnih imen (vključno z domeno) za uporabnike in skupine.

    2. Drugi način je manj neposreden in bolj grob, kar je zame bolj udobno in zaželeno. Razlika od prvega je samo v konfiguraciji pam_mount.
      # vim /etc/security/pam_mount.conf.xml

      Torej preprosto ločeno montiramo vsak naš mapo v ustrezen imenik.

Zaključki

V pol meseca dela na testnem okolju je ta povezava uspešno preživela nekaj izmeničnih dolgoročnih in kratkoročnih izpadov obeh kontrolerjev, praktično brez posledic za stranke (enkrat je stranka na Windows 7 izgubila zaupanja vredne odnose).

Na splošno imam precej prijetne vtise o delu s tem izdelkom, kljub vsem odtenkom, s katerimi sem se moral soočiti tako v članku kot tudi "za kulisami".

Obstajajo pasti, je jih veliko, in med delom s Sambom jih bo treba ujeti v velikem številu. Kljub temu trenutno ne obstajajo drugačna rešitev, ki bi omogočala organizacijo hibridnega okolja, z uporabo storitve imenikov in brez uporabe sistema Windows.

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster