Samba DC kā otrais domēna kontrolieris AD domēnā Windows 2012R2 un viesabonēšanas mapes klientiem, kas darbojas Windows и Linux

Samba DC kā otrais domēna kontrolieris AD domēnā Windows 2012R2 un viesabonēšanas mapes klientiem, kas darbojas Windows и Linux
Apziņa, ka esmu iekļuvusi importa haosā, nenāca uzreiz. Tikai tad, kad no augstākas organizācijas ar Alt Linux izplatīšanu sāka nepārtraukti saņemt jaunas datoru piegādes, man radās aizdomas, ka kaut kas nav kārtībā.

Tomēr, ejot cauri neizbēgamā pieņemšanas posmiem, es iesaistījos un pat sāku mazliet izbaudīt šo procesu. Un kādā brīdī domāju, ka tādā tempā agri vai vēlu nāksies šķirties no Microsoft direktoriju pakalpojumu organizēšanas risinājumiem un virzīties uz ko eksotiskāku. Tāpēc, lai iepriekš sagatavotos neizbēgamajam un, ja iespējams, novērstu pēc iespējas vairāk slazdu, tika nolemts izvietot testa stendu, kurā ietilpst:

  • DC1 — Windows Server 2012R2
  • DC2 — Viola serveris 8.2
  • Failu serveris — Windows Server 2012R2
  • PC1 — Windows 7
  • PC2 — Viola darbstacija 8.2

Stenda mērķi:

  1. Izvietojiet domēnu, kura pamatā ir w2k12r2. Izveidojiet minimālu grupu politiku kopu (līdzīgu tām, kas tiek izmantotas ražošanas infrastruktūrā), tostarp politiku lietotāju darba mapju migrēšanai (Lejupielādes/Dokumenti/Darbvirsma). Galu galā es vēlos nodrošināt, ka, lietotājam mainot savu darbstaciju, Windows par Linux un atpakaļ viņam bija ērta piekļuve saviem darba dokumentiem.
  2. Samba līdzstrāvas ievade no otrā kontrollera. Pārbauda direktoriju un DNS replikāciju
  3. Klientu iestatīšana Linux strādāt ar pārvietojamām mapēm

Īstenošana:

  1. Jauna regulatora uzstādīšana un nodošana ekspluatācijāAr MS instalāciju Windows 2012R2 ir vienkāršs un vairāk vai mazāk skaidrs. Internetā ir 1001 rokasgrāmata domēna izvietošanai. Windows gan izmantojot GUI, gan Powershell, tāpēc es to vairs neatkārtošu, es vienkārši aiziešu saite ieslēgts Izslēgts. dokumentācija zinātkārajiem un tiem, kas vēlas atsvaidzināt atmiņu.

    Tomēr šajā brīdī joprojām ir viens svarīgs punkts. Pašlaik Samba nevar strādāt ar direktoriju shēmām, kas ir augstākas par 2008R2.

    Spoilera virsraksts Precīzāk, izstrādātāji šo atbalstu norādīja kā eksperimentālu. Taču praksē mēģinājums ieviest Samba kā otru domēna kontrolleri esošajā domēnā Windows ar 69. shēmu - jūs sagaidīs šāda kļūda

    DsAddEntry neizdevās ar statusu WERR_ACCESS_DENIED info (8567, 'WERR_DS_INCOMPATIBLE_VERSION')

    Problēma ir tā Windows 2012. un 2012R2 versijas izmanto WMI rīkus darbam ar domēniem un mežiem, kuru stabils atbalsts ir paredzēts tikai Samba 4.11 versijai, kas tiks izlaista līdz šī gada beigām.
    No tā izriet, ka vienīgā iespēja, kā ieviest samba AD domēnā, kas izvietots uz 2012R2 servera, ir pazemināt shēmu no 69 uz 47. Protams, to nevajadzētu darīt ražošanas infrastruktūrā bez pamatota iemesla, taču mums ir pārbaudes stends šeit, tad kāpēc gan ne.

    Instalējiet Alt Server 8.2. Instalēšanas laikā atlasiet profilu “Samba-DC Server (AD Controller)”. Izvietotajā serverī mēs veicam pilnīgu sistēmas atjaunināšanu un instalējam pakotni Task-samba-dc, kas paņems visu nepieciešamo

    # apt-get install task-samba-dc

    Ja pēkšņi Task-samba-dc, pretēji dokumentācijā teiktajam, Alta atsakās pats instalēt visu nepieciešamo.

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

    Tālāk mēs pārejam pie Kerberos iestatīšanas un biļetes saņemšanas. Atveriet failu krb5.conf, dodieties uz sadaļu [libdefaults] un atveriet to šādā formā:

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

    Biļetes pieprasīšana

    # kinit administrator
    Password for administrator@TEST.LOCAL:

    Pārbauda saņemto Kerberos biļešu sarakstu

    # 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

    Tagad mēs izdzēšam vai pārdēvējam esošo samba konfigurāciju.

    # mv smb.conf smb.conf.bak1

    Visbeidzot, mēs ievadām AD domēnu ar otro kontrolleri:

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

    Veiksmīgai ievadei tiks pievienots šāds žurnāls

    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 ir jābūt ierakstam par jauno DC domēnā TEST.LOCAL, un DNS pārvaldniekam ir jābūt jaunam A ierakstam, kas atbilst DC2.

  2. Replikācija starp kontrolieriemVispirms pārbaudīsim direktoriju replikācijas pakalpojuma (DRS) darbību.
    # samba-tool drs showrepl

    Visiem replikācijas mēģinājumiem izvadē jābūt veiksmīgiem. Mūsu DC1 vajadzētu parādīties KCC objektu sarakstā 15 minūšu laikā pēc ievades. 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!

    Uzmanību “Savienojumam nav replicēts NC!” var droši ignorēt. Šķiet, ka, reģistrējot jaunu DC, Samba nepareizi iestata dažus replikācijas karogus.

    Būtu arī ieteicams pārbaudīt LDAP replikāciju.

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

    Iepriekš minētā komanda salīdzinās visu direktoriju objektu atribūtu vērtības DC1 un DC2.

    Veiksmīgas replikācijas piemērs

    * 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

    Dažos gadījumos dažādu kontrolleru objektu atribūti var atšķirties, un komandas izvade par to informēs. Bet ne visos gadījumos tas liecina par replikācijas problēmu.

    Nākamais solis ir manuāli konfigurēt SysVol direktorija stabilu replikāciju.
    Lieta tāda, ka Samba vēl neatbalsta DFS-R, tāpat kā tā neatbalstīja iepriekšējo FRS. Tāpēc replikācijai starp domēna kontrolleriem Samba un Windows Vienīgais līdz šim darbojošais risinājums ir vienvirziena replikācija, izmantojot utilītu. Robocopy no komplekta Windows Server 2003. gada resursu komplekta rīki.

    Lai izvairītos no saderības problēmām, Samba izstrādātāji iesaka vispirms instalēt utilītu komplektu parastā darbstacijā un pēc tam kopēt Robocopy uz kontroliera mapi "C:\Program Files (x86)".Windows Resursu komplektiRīki»

    Pēc instalēšanas kontroliera uzdevumu plānotājā ar Windows Mēs izveidojam uzdevumu replikācijas veikšanai ar šādiem parametriem:

    — Izpildīt visiem lietotājiem
    — Aktivizējiet katru dienu ik pēc 5 minūtēm dienas laikā
    — Darbībās mēs norādām ceļu uz robocopy utilītu, norādot kā argumentus:

    DC1SYSVOLtest.local DC2SYSVOLtest.local /mir /sec

    Šajā konkrētajā gadījumā mēs kopējam SysVol direktorija saturu no DC1 uz DC2.

  3. Pārnēsājamas lietotāju mapes, izmantojot pam_mount konfigurācijuPateicoties pieredzei, es atradu divas reālas iespējas, kā ar tās palīdzību atrisināt šo problēmu.
    1. Pilnībā pievienot profila mapi no tīkla /home nodalījumam. Vienkārša iespēja. Lieliski darbojas, ja mapju Mani dokumenti, Lejupielādes un Darbvirsma nosaukumi abās operētājsistēmās ir vienādi. Tas pieņem, ka dators Linux jau ir ievadīts domēnā, un lietotāji piesakās savos domēna kontos, izmantojot sssd kā autentifikācijas un autorizācijas mehānismu.
      # 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"/>
      

      ja:

      • uid = "100000000-2000000000" — UID diapazons, kas domēna lietotājiem piešķirts no SSSD
      • serveris="dfs" - failu servera nosaukums
      • path="Profile_Users/%(USER)" — resurss failu serverī ar mitinātu lietotāja profilu
      • mountpoint=”~” — pievienošanas ceļš uz lietotāja mājas mapi

      Lietotāja pieteikšanās tiek nodota makro mainīgajam “%(USER)”, ko izmanto pam_mount, lai savienotu mūsu tīkla resursus, kā ievadīts displeja pārvaldniekā. Tāpēc ir svarīgi, lai pieteikšanās tiktu ievadīta DM, skaidri nenorādot domēna nosaukumu.

      Vietnē sssd.conf tas tiek atrisināts, komentējot vai iestatot opciju uz False izmantojiet_pilnībā_kvalificētos_nosaukumus, kas lietotājiem un grupām iespējo pilnībā kvalificētu vārda režīmu (ieskaitot domēnu).

    2. Otrā metode ir mazāk vienkārša un neveikla, un, manuprāt, ērtāka un vēlamāka. Atšķirība no pirmās ir tikai pam_mount konfigurācijā
      # 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"/>

      Tas ir, mēs vienkārši pievienojam katru mūsu mapi atsevišķi attiecīgajā direktorijā

Atzinumi

Pusmēneša darba laikā uz testa stenda šis komplekts veiksmīgi izturēja vairākus abu kontrolleru pārmaiņus ilgtermiņa un īstermiņa izslēgšanas gadījumus, praktiski neradot nekādas sekas klientiem (kad klients bija ieslēgts Windows7 zaudētas uzticamas attiecības).

Kopumā man bija diezgan patīkama pieredze darbā ar šo produktu, pat neskatoties uz visām niansēm, kas man bija jārisina gan rakstā, gan "aizkulisēs".

Pastāv daudz kļūmju, un, strādājot ar Samba, jums būs jāatklāj liels skaits no tām. Tomēr pašlaik nav citu risinājumu, kas ļautu organizēt hibrīda vidi gan ar, gan bez direktoriju pakalpojuma. Windows.

Avots: www.habr.com

Iegādājieties uzticamu mitināšanu vietnēm ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa vietņu mitināšanu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster