Samba DC as 'n tweede domeinbeheerder in 'n AD-domein Windows 2012R2 en roaming-lêers vir kliënte op Windows и Linux

Samba DC as 'n tweede domeinbeheerder in 'n AD-domein Windows 2012R2 en roaming-lêers vir kliënte op Windows и Linux
Die besef dat ek in 'n invoermengsel is, het nie dadelik gekom nie. Dit was eers toe nuwe verskepings van rekenaars van 'n hoër organisasie geleidelik begin aankom met 'n Alt Linux-verspreiding aan boord dat ek vermoed het iets is fout.

In die proses om deur die stadiums te gaan om die onvermydelike te aanvaar, het ek egter betrokke geraak en selfs die proses 'n bietjie begin geniet. En op 'n stadium het ek gedink dat ek vroeër of later teen so 'n tempo sou moes afskei van oplossings vir die organisering van 'n gidsdiens van Microsoft en na iets meer eksoties sou beweeg. Daarom, om vooraf voor te berei vir die onvermydelike, en, indien moontlik, om soveel slaggate as moontlik te vang, is besluit om 'n toetsbank te ontplooi, wat insluit:

  • DC1 — Windows Server 2012R2
  • DC2 - Alt Server 8.2
  • Lêerbediener — Windows Server 2012R2
  • PC1 — Windows 7
  • PC2 - Alt Workstation 8.2

Staan take:

  1. Implementeer 'n domein gebaseer op w2k12r2. Skep 'n minimale stel groepbeleide (soortgelyk aan dié wat in die produksie-infrastruktuur gebruik word), insluitend 'n beleid vir die migrasie van gebruikers se werkgidse (Aflaaie/Dokumente/Lessenaar). Uiteindelik wil ek verseker dat wanneer 'n gebruiker hul werkstasie verander, Windows op Linux en terug het hy gemaklike toegang tot sy werkdokumente gehad.
  2. Betree Samba DC deur die tweede kontroleerder. Verifieer gidsdiens en DNS-replikasie
  3. Die opstel van kliënte Linux om met bewegende lêers te werk

Implementering:

  1. Installeer en voer 'n nuwe beheerder inMet MS-installasie Windows 2012R2 is eenvoudig en min of meer duidelik. Daar is 1001 handleidings op die internet vir die ontplooiing van 'n domein op Windows beide met behulp van die GUI en Powershell, so ek sal dit nie weer herhaal nie, ek sal net los skakel aan af. dokumentasie, vir die nuuskieriges en diegene wat hul geheue wil verfris.

    Daar is egter een belangrike punt op hierdie punt. Samba werk tans nie met gidsskemas ouer as 2008R2 nie.

    spoiler titel Meer akkuraat, die ontwikkelaars het hierdie ondersteuning as eksperimenteel beskryf. Maar in die praktyk is 'n poging om Samba as 'n tweede domeinbeheerder in 'n bestaande domein in te voer. Windows met skema 69 - jy sal met die volgende fout begroet word

    DsAddEntry het misluk met status WERR_ACCESS_DENIED info (8567, 'WERR_DS_INCOMPATIBLE_VERSION')

    Die probleem is dat Windows 2012 en 2012R2 gebruik WMI-gereedskap om met domeine en woude te werk, waarvan stabiele ondersteuning slegs aangekondig word vir weergawe Samba 4.11, wat voor die einde van hierdie jaar vrygestel moet word.
    Dit volg hieruit dat die enigste opsie om samba in 'n AD-domein wat op 'n 2012R2-bediener ontplooi word in te voer, is om die skema van 69 na 47 af te gradeer. Dit is natuurlik nie nodig op 'n produksie-infrastruktuur sonder goeie redes nie, maar ons het 'n toets bank hier, so hoekom nie eintlik nie.

    Installeer Alt Server 8.2. Tydens installasie, kies die "Samba-DC Server (AD Controller)" profiel. Op die ontplooide bediener voer ons 'n volledige stelselopdatering uit en installeer die taak-samba-dc-pakket, wat alles sal trek wat jy nodig het

    # apt-get install task-samba-dc

    As skielik taak-samba-dc, in teenstelling met die versekering van die dokumentasie, Alta weier om alles wat nodig is op sigself te installeer.

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

    Vervolgens gaan ons aan om Kerberos op te stel en 'n kaartjie te kry. Maak die krb5.conf-lêer oop, gaan na die [libdefaults]-afdeling en bring dit na die volgende vorm:

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

    Aansoek om 'n kaartjie

    # kinit administrator
    Password for administrator@TEST.LOCAL:

    Gaan die lys van ontvangde Kerberos-kaartjies na

    # 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

    Vee nou uit of hernoem die bestaande samba-konfigurasie.

    # mv smb.conf smb.conf.bak1

    En uiteindelik voer ons die tweede kontroleerder in die AD-domein in:

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

    Suksesvolle inskrywing sal vergesel word van die volgende logboek

    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 moet 'n inskrywing vir die nuwe DC in die TEST.LOCAL-domein hê, en DNS Bestuurder moet 'n nuwe A-inskrywing hê wat ooreenstem met DC2.

  2. Replikasie tussen beheerdersKom ons kyk eers na die Directory Replication Service (DRS)
    # samba-tool drs showrepl

    Alle replikasiepogings in die uitvoer behoort suksesvol te wees. Ons DC1 behoort binne 15 minute na invoer in die KCC-objeklys te verskyn. 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!

    Предупреждение "Geen NC gerepliseer vir Connection nie!" veilig geïgnoreer kan word. Dit blyk uit die feit dat samba sommige replikasievlae verkeerdelik stel wanneer 'n nuwe DC geregistreer word.

    Dit is ook 'n goeie idee om LDAP-replikasie na te gaan.

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

    Die bogenoemde opdrag sal die kenmerkwaardes van die hele gidsvoorwerpe op DC1 en DC2 vergelyk.

    Voorbeeld van suksesvolle replikasie

    * 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

    In sommige gevalle kan die eienskappe van voorwerpe op verskillende beheerders verskil, en die uitvoer van die opdrag sal jou daarvan laat weet. Maar nie in alle gevalle nie, sal dit 'n teken wees van 'n probleem met replikasie.

    Die volgende stap is om die stabiele replikasie van die SysVol-gids handmatig op te stel.
    Die ding is, Samba ondersteun nog nie DFS-R nie, net soos dit nie die vorige FRS ondersteun het nie. Daarom, vir replikasie tussen DC's, Samba en Windows Die enigste werkende oplossing tot op datum is eenrigtingreplikasie met behulp van die nutsprogram Robokopie uit die kit Windows Server 2003 Hulpbronpakket Gereedskap.

    Om versoenbaarheidsprobleme te vermy, beveel Samba-ontwikkelaars aan om eers die hulpprogrampakket op 'n gewone werkstasie te installeer, en dan Robocopy na die beheerder in die lêergids "C:\Program Files (x86)" te kopieer.Windows HulpbronpakketteGereedskap»

    Na installasie, in die taakskeduleerder op die beheerder met Windows Ons skep 'n taak om replikasie uit te voer met die volgende parameters:

    - Loop vir alle gebruikers
    - Sneller om daagliks elke 5 minute gedurende die dag uit te voer
    - In die aksies skryf ons die pad na die robocopy-nutsding, spesifiseer as argumente:

    DC1SYSVOLtest.local DC2SYSVOLtest.local /mir /sec

    In 'n spesifieke geval kopieer ons die inhoud van die SysVol-gids van DC1 na DC2.

  3. Draagbare gebruikervouers met behulp van pam_mount-konfigurasieEmpiries het ek twee lewensvatbare opsies gevind om hierdie probleem daarmee op te los.
    1. Die volledige montering van 'n profielmap vanaf die netwerk na die /home-partisie. 'n Eenvoudige opsie. Werk uitstekend as die name van die My Dokumente-, Aflaaie- en Lessenaar-map dieselfde is in beide bedryfstelsels. Dit veronderstel dat die rekenaar aan is. Linux is reeds in die domein ingevoer en gebruikers meld aan onder hul domeinrekeninge deur sssd as 'n verifikasie- en magtigingsmeganisme te gebruik.
      # 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"/>
      

      waar:

      • uid="100000000-2000000000" - UID-reeks toegewys aan domeingebruikers vanaf SSSD
      • bediener="dfs" - lêer bediener naam
      • pad="Profiel_Gebruikers/%(USER)" - 'n hulpbron op 'n lêerbediener, met 'n gehoste gebruikersprofiel
      • bergpunt="~" - berg pad na die gebruiker se tuisgids

      Die gebruiker se aanmelding word oorgedra na die "%(USER)" makro veranderlike wat deur pam_mount gebruik word om ons netwerkhulpbron te monteer, soos ingevoer in die vertoonbestuurder. Daarom is dit belangrik dat die aanmelding in die DM ingevoer word sonder 'n eksplisiete aanduiding van die domeinnaam.

      In sssd.conf word dit opgelos deur kommentaar te lewer, of deur die Valse waarde op die opsie te stel gebruik_volledig_gekwalifiseerde_name, wat volle naammodus (insluitend domein) vir gebruikers en groepe moontlik maak.

    2. Die tweede manier is minder eenvoudig en lomp, en na my mening geriefliker en verkiesliker. Die verskil van die eerste een is slegs in die pam_mount-konfigurasie
      # 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"/>

      Dit wil sê, ons monteer elkeen van ons dopgehou afsonderlik in die gids wat daarmee ooreenstem

Bevindinge

Gedurende 'n halfmaand se werk op die toetsbank het hierdie bundel suksesvol verskeie afwisselende langtermyn- en korttermyn-afskakelings van beide beheerders oorleef, met feitlik geen gevolge vir kliënte nie (sodra 'n kliënt op Windows7 verlore vertrouensverhoudings).

Oor die algemeen het ek 'n redelik aangename indruk gehad om met hierdie produk te werk, selfs ten spyte van al die nuanses wat ek in die artikel en agter die skerms moes in die gesig staar.

Daar is slaggate, baie van hulle, en soos jy met Samba werk, sal jy 'n groot aantal daarvan moet ontdek. Daar is egter tans geen ander oplossings wat jou toelaat om 'n hibriede omgewing te organiseer nie, beide met en sonder 'n gidsdiens. Windows.

Bron: will.com

Koop betroubare hosting vir werwe met DDoS-beskerming, VPS VDS-bedieners 🔥 Koop betroubare webwerfhosting met DDoS-beskerming, VPS VDS-bedieners | ProHoster