
Het besef dat ik in een importvervanging terecht was gekomen, kwam niet meteen. Pas toen versies van computers met een distributie van 'Alt Linux' vanaf de hogere organisatie constant arriveerden, begon ik te vermoeden dat er iets niet in de haak was.
Echter, tijdens het doorgaan door de stadia van het onvermijdelijke raakte ik betrokken en begon ik zelfs een beetje plezier te krijgen in het proces. Op een gegeven moment dacht ik dat het vroeg of laat nodig zou zijn om afscheid te nemen van de oplossingen voor de organisatie van de directorydienst van Microsoft en te bewegen richting iets meer exotisch. Daarom besloot ik, om me voor te bereiden op het onvermijdelijke en zoveel mogelijk verborgen valkuilen te vermijden, een testopstelling op te zetten, die omvatte:
- DC1 — Windows Server 2012R2
- DC2 — Alt Server 8.2
- Bestandserver — Windows Server 2012R2
- PC1 — Windows 7
- PC2 — Alt Werkstation 8.2
De taken van de opstelling:
- Een domein op basis van w2k12r2 opzetten. Een minimale set groepsbeleidsinstellingen maken (net zoals die in de werkinfrastructuur worden gebruikt), inclusief het beleid voor het verplaatsen van gebruikerswerk mappen (Downloads/Documents/Bureaublad). Eindelijk wil ik dat wanneer een gebruiker zijn werkplek van Windows naar Linux en weer terug verandert, hij comfortabele toegang heeft tot zijn werkdocumenten.
- Samba DC als tweede controller invoeren. Controle van de replicatie van de directorydienst en DNS.
- Instellen van Linux-clients voor het werken met verplaatsbare mappen.
Implementatie:
- Installatie en invoer van de nieuwe controller.Met de installatie van MS Windows 2012R2 is alles eenvoudig en min of meer duidelijk. Op internet zijn er 1001 handleidingen voor het opzetten van een domein op Windows, zowel met behulp van de GUI als met Powershell, dus ik zal niet nogmaals herhalen, ik laat alleen de officiële documentatie voor geïnteresseerden en voor degenen die willen opfrissen.
Toch is er één belangrijk punt in dit onderdeel. Tegenwoordig kan Samba niet werken met directory schema's hoger dan 2008R2.
Spoiler-titel Of beter gezegd, de ontwikkelaars hebben deze ondersteuning als experimenteel aangegeven. Maar in de praktijk zal de poging om Samba als tweede DC in een bestaande Windows-domein met schema 69 in te voeren, u de volgende foutmelding opleveren:
DsAddEntry failed with status WERR_ACCESS_DENIED info (8567, ‘WERR_DS_INCOMPATIBLE_VERSION’)
Het probleem is dat Windows 2012 en 2012R2 WMI-tools gebruiken voor domeinen en bomen, waarvan de stabiele ondersteuning pas voor versie Samba 4.11 is aangekondigd, die vóór het einde van dit jaar moet uitkomen.
Hieruit volgt dat de enige optie om Samba in een AD-domein, dat op een 2012R2-server is geïmplementeerd, te introduceren, het verlagen van het schema van 69 naar 47 is. Natuurlijk is het niet nodig om dit te doen op een productie-infrastructuur zonder goede redenen, maar wij hebben hier een testomgeving, dus waarom niet.We installeren Alt Server 8.2. Tijdens de installatie kiezen we het profiel "Samba-DC Server (AD-controller)". Op de geïmplementeerde server voeren we een volledige systeemupdate uit en installeren we het pakket task-samba-dc, dat alles benodigde meebrengt.
# apt-get install task-samba-dcAls task-samba-dc, in strijd met de beweringen van de documentatie van Alta, weigert om alles benodigde te installeren.
# apt-get install python-module-samba-DC samba-DC-common samba-DC-winbind-clients samba-DC-winbind samba-DC-common-libs libpytalloc-develVervolgens gaan we naar de configuratie van Kerberos en het verkrijgen van een ticket. We openen het bestand krb5.conf, gaan naar de sectie [libdefaults] en brengen het als volgt in de gewenste staat:
# vim /etc/krb5.confdns_lookup_kdc = true dns_lookup_realm = true default_realm = TEST.LOCALWe vragen een ticket aan.
# kinit administrator Password for administrator@TEST.LOCAL:We controleren de lijst met verkregen Kerberos-tickets.
# 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:35Nu verwijderen of hernoemen we de bestaande Samba-configuratie.
# mv smb.conf smb.conf.bak1En tot slot voegen we ons als tweede controller toe aan het AD-domein:
# samba-tool domain join test.local DC -U"TESTadministrator"Een succesvolle toevoeging zal gepaard gaan met de volgende log.
Een schrijfbare DC vinden voor domein 'test.local' Gevonden DC DC1.TEST.LOCAL Wachtwoord voor [TESTadministrator]: Herverbinden met naam master e31d7da6-8f56-4420-8473-80f2b3a31338._msdcs.TEST.LOCAL DNS-naam van de nieuwe naam master is DC1.TEST.LOCAL werkgroep is TEST domein is TEST.LOCAL Toevoegen van CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL Toevoegen van CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL Toevoegen van CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=TEST,DC=LOCAL Toevoegen van SPNs aan CN=DC2,OU=Domain Controllers,DC=TEST,DC=LOCAL Wachtwoord voor account instellen voor DC2$ Account inschakelen Aanroepen bare provision Zoeken naar IPv4-adressen Zoeken naar IPv6-adressen Er wordt geen IPv6-adres toegewezen Instellen van share.ldb Instellen van secrets.ldb Instellen van het register Instellen van de privileges-database Instellen van idmap db Instellen van SAM db Instellen van sam.ldb-partities en instellingen Instellen van sam.ldb rootDSE Voorbelasting van het Samba 4 en AD-schema Een Kerberos-configuratie die geschikt is voor Samba AD is gegenereerd in /var/lib/samba/private/krb5.conf Provision OK voor domein DN DC=TEST,DC=LOCAL Replication starten Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objecten[402/1426] gekoppelde waarden[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objecten[804/1426] gekoppelde waarden[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objecten[1206/1426] gekoppelde waarden[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objecten[1608/1426] gekoppelde waarden[0/0] Schema-DN[CN=Schema,CN=Configuration,DC=TEST,DC=LOCAL] objecten[1743/1426] gekoppelde waarden[0/0] Analyseren en toepassen van schema-objecten Partition[CN=Configuration,DC=TEST,DC=LOCAL] objecten[402/2240] gekoppelde waarden[0/24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] objecten[804/2240] gekoppelde waarden[0/24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] objecten[1206/2240] gekoppelde waarden[0/24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] objecten[1608/2240] gekoppelde waarden[0/24] Partition[CN=Configuration,DC=TEST,DC=LOCAL] objecten[1772/2240] gekoppelde waarden[24/24] Kritieke objecten repliceren vanaf de basis DN van het domein Partition[DC=TEST,DC=LOCAL] objecten[109/110] gekoppelde waarden[26/29] Partition[DC=TEST,DC=LOCAL] objecten[394/5008] gekoppelde waarden[29/29] Klaar met altijd gerepliceerde NC (basis, config, schema) Repliceren van DC=DomainDnsZones,DC=TEST,DC=LOCAL Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objecten[42/42] gekoppelde waarden[0/0] Repliceren van DC=ForestDnsZones,DC=TEST,DC=LOCAL Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objecten[20/20] gekoppelde waarden[0/0] Exop op[CN=RID Manager$,CN=System,DC=TEST,DC=LOCAL] objecten[3] gekoppelde waarden[0] Committen van SAM-database Toevoegen van 1 externe DNS-records voor DC2.TEST.LOCAL Toevoegen van DNS A-record DC2.TEST.LOCAL voor IPv4 IP: 192.168.90.201 Toevoegen van DNS CNAME-record 6ff1df40-cbb5-41f0-b7b3-53a27dde8edf._msdcs.TEST.LOCAL voor DC2.TEST.LOCAL Alle andere DNS-records (zoals _ldap SRV-records) worden aangemaakt met samba_dnsupdate bij de eerste opstart Repliceren van nieuwe DNS-records in DC=DomainDnsZones,DC=TEST,DC=LOCAL Partition[DC=DomainDnsZones,DC=TEST,DC=LOCAL] objecten[1/42] gekoppelde waarden[0/0] Repliceren van nieuwe DNS-records in DC=ForestDnsZones,DC=TEST,DC=LOCAL Partition[DC=ForestDnsZones,DC=TEST,DC=LOCAL] objecten[1/20] gekoppelde waarden[0/0] Versturen van DsReplicaUpdateRefs voor alle gerepliceerde partities Instellen van isSynchronized en dsServiceName Instellen van secrets-database Gedeeltelijke toegang tot domein TEST (SID S-1-5-21-3959064270-1572045903-2556826204) als DCIn de ADUC-tool moet een vermelding verschijnen voor de nieuwe DC in het domein TEST.LOCAL, en in de DNS-beheerder een nieuwe A-record die overeenkomt met DC2.
- Replicatie tussen de controllersLaten we beginnen met het controleren van de werking van de Directory Replication Service (DRS)
# samba-tool drs showreplAlle replicatiepogingen in de uitvoer moeten succesvol zijn. In de KCC-objectlijst moet onze DC1 binnen 15 minuten na invoer verschijnen op Windows.
Standaard-Eerste-Site-NaamDC2 DSA-opties: 0x00000001 DSA-object GUID: 0e9f5bce-ff59-401e-bdbd-fc69df3fc6bf DSA-invocatie-ID: 017997b5-d718-41d7-a3f3-e57ab5151b5c ==== BINNENKOMENDE BUREN ==== DC=ForestDnsZones,DC=test,DC=local Standaard-Eerste-Site-NaamDC1 via RPC DSA-object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Laatste poging @ Ma 27 mei 12:56:31 2019 MSK was succesvol 0 opeenvolgende fout(en). Laatste succes @ Ma 27 mei 12:56:31 2019 MSK DC=DomainDnsZones,DC=test,DC=local Standaard-Eerste-Site-NaamDC1 via RPC DSA-object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Laatste poging @ Ma 27 mei 12:56:32 2019 MSK was succesvol 0 opeenvolgende fout(en). Laatste succes @ Ma 27 mei 12:56:32 2019 MSK CN=Schema,CN=Configuration,DC=test,DC=local Standaard-Eerste-Site-NaamDC1 via RPC DSA-object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Laatste poging @ Ma 27 mei 12:56:32 2019 MSK was succesvol 0 opeenvolgende fout(en). Laatste succes @ Ma 27 mei 12:56:32 2019 MSK DC=test,DC=local Standaard-Eerste-Site-NaamDC1 via RPC DSA-object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Laatste poging @ Ma 27 mei 12:56:32 2019 MSK was succesvol 0 opeenvolgende fout(en). Laatste succes @ Ma 27 mei 12:56:32 2019 MSK CN=Configuration,DC=test,DC=local Standaard-Eerste-Site-NaamDC1 via RPC DSA-object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Laatste poging @ Ma 27 mei 12:56:33 2019 MSK was succesvol 0 opeenvolgende fout(en). Laatste succes @ Ma 27 mei 12:56:33 2019 MSK ==== UITGAANDE BUREN ==== DC=ForestDnsZones,DC=test,DC=local Standaard-Eerste-Site-NaamDC1 via RPC DSA-object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Laatste poging @ Do 23 mei 16:40:03 2019 MSK was succesvol 0 opeenvolgende fout(en). Laatste succes @ Do 23 mei 16:40:03 2019 MSK DC=DomainDnsZones,DC=test,DC=local Standaard-Eerste-Site-NaamDC1 via RPC DSA-object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Laatste poging @ Do 23 mei 16:40:03 2019 MSK was succesvol 0 opeenvolgende fout(en). Laatste succes @ Do 23 mei 16:40:03 2019 MSK CN=Schema,CN=Configuration,DC=test,DC=local Standaard-Eerste-Site-NaamDC1 via RPC DSA-object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Laatste poging @ Do 23 mei 16:40:08 2019 MSK was succesvol 0 opeenvolgende fout(en). Laatste succes @ Do 23 mei 16:40:08 2019 MSK DC=test,DC=local Standaard-Eerste-Site-NaamDC1 via RPC DSA-object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Laatste poging @ Do 23 mei 16:40:08 2019 MSK was succesvol 0 opeenvolgende fout(en). Laatste succes @ Do 23 mei 16:40:08 2019 MSK CN=Configuration,DC=test,DC=local Standaard-Eerste-Site-NaamDC1 via RPC DSA-object GUID: 60fb339d-efa3-4585-a42d-04974e6601b7 Laatste poging @ Ma 27 mei 12:12:17 2019 MSK was succesvol 0 opeenvolgende fout(en). Laatste succes @ Ma 27 mei 12:12:17 2019 MSK ==== KCC VERBINDINGSOBJECTEN ==== Verbinden -- Verbinding naam: 6d2652b3-e723-4af7-a19f-1ee48915753c Ingeschakeld : WAAR Server DNS naam : DC1.test.local Server DN naam : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Standaard-Eerste-Site-Naam,CN=Sites,CN=Configuration,DC=test,DC=local TransportType: RPC opties: 0x00000001 Waarschuwing: Geen NC gerepliceerd voor Verbinding!Waarschuwing «Geen NC gerepliceerd voor Verbinding!» kan gerust worden genegeerd. Het verschijnt omdat bij het registreren van een nieuwe Samba DC sommige replicatie-vlaggen niet correct worden ingesteld.
Het is ook nuttig om de LDAP-replicatie te controleren.
# samba-tool ldapcmp ldap://dc1.test.local ldap://dc2.test.local -UadministratorDe bovenstaande opdracht vergelijkt de waarden van de objectattributen in de gehele catalogus op DC1 en DC2.
Voorbeeld van succesvolle replicatie
* Vergelijken van [DOMAIN] context... * Te vergelijken objecten: 249 * Resultaat voor [DOMAIN]: SUCCES * Vergelijken van [CONFIGURATION] context... * Te vergelijken objecten: 1750 * Resultaat voor [CONFIGURATION]: SUCCES * Vergelijken van [SCHEMA] context... * Te vergelijken objecten: 1739 * Resultaat voor [SCHEMA]: SUCCES * Vergelijken van [DNSDOMAIN] context... * Te vergelijken objecten: 42 * Resultaat voor [DNSDOMAIN]: SUCCES * Vergelijken van [DNSFOREST] context... * Te vergelijken objecten: 20 * Resultaat voor [DNSFOREST]: SUCCESIn sommige gevallen kunnen de attribuutwaarden van objecten op verschillende controllers verschillen, en de uitvoer van de opdracht zal je daarover informeren. Maar in veel gevallen is dit geen indicatie van een replicatieprobleem.
De volgende stap is om handmatig een stabiele replicatie van de SysVol-catalogus in te stellen.
Het probleem is dat Samba momenteel geen DFS-R ondersteunt, net zoals het eerder FRS niet ondersteunde. Daarom is de enige werkende oplossing voor replicatie tussen Samba DC en Windows op dit moment een eendimensionale replicatie met de tool Robocopy uit de kit .Samba-ontwikkelaars raden om compatibiliteitsproblemen te voorkomen aan om eerst de toolset op een gewone werkstation te installeren en daarna Robocopy naar de controller te kopiëren naar de map "C:Program Files (x86)Windows Resource KitsTools"
Na installatie maken we in het taakprogramma op de Windows-controller een taak aan voor het uitvoeren van replicatie met de volgende parameters:
— Uitvoeren voor alle gebruikers
— Trigger voor dagelijkse uitvoering elke 5 minuten gedurende de dag
— In de acties geven we het pad naar het hulpprogramma robocopy op, met de volgende argumenten:DC1SYSVOLtest.local DC2SYSVOLtest.local \/mir \/secIn dit specifieke geval kopiëren we de inhoud van de SysVol-directory van DC1 naar DC2.
- Overdraagbare gebruikersmappen met behulp van pam_mount-configuratieDoor middel van ervaring heb ik twee werkbare opties ontdekt om deze taak op te lossen.
- Volledige montage van de profielmap vanuit het netwerk in het gedeelte /home. Eenvoudige optie. Werkt uitstekend als de mapnamen Documenten, Downloads en Bureaublad in beide besturingssystemen overeenkomen. Er wordt verondersteld dat de PC op Linux al in het domein is opgenomen en dat gebruikers inloggen met hun domeingegevens, waarbij sssd als authenticatie- en autorisatiemechanisme wordt gebruikt.
# 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"/>waarbij:
- uid=«100000000-2000000000» — de UID-bereik dat wordt toegekend aan domeingebruikers door SSSD
- server=«dfs» — de naam van de bestandserver
- path=«Profile_Users/%(USER)» — bron op de bestandserver waar het gebruikersprofiel is opgeslagen
- mountpoint=»~» — het montagepad in de persoonlijke map van de gebruiker
De gebruikerslogin wordt doorgegeven in de macrovariabele «%(USER)», die door pam_mount wordt gebruikt om onze netbron te verbinden, zoals deze is ingevoerd in de grafische beheerder. Daarom is het belangrijk dat de login in de DM zonder expliciete vermelding van de domeinnaam wordt ingevoerd.
In sssd.conf kan dit worden opgelost door te commentariëren of door de waarde False in te stellen voor de optie use_fully_qualified_names, die de modus voor volledig gekwalificeerde namen (inclusief domein) voor gebruikers en groepen inschakelt.
- De tweede methode is minder rechttoe rechtaan en grof, en naar mijn mening handiger en verkieslijker. Het verschil met de eerste zit alleen in de configuratie van pam_mount.
# vim /etc/security/pam_mount.conf.xmlDat wil zeggen, we monteren gewoon elke map apart in de overeenkomstige catalogus.
- Volledige montage van de profielmap vanuit het netwerk in het gedeelte /home. Eenvoudige optie. Werkt uitstekend als de mapnamen Documenten, Downloads en Bureaublad in beide besturingssystemen overeenkomen. Er wordt verondersteld dat de PC op Linux al in het domein is opgenomen en dat gebruikers inloggen met hun domeingegevens, waarbij sssd als authenticatie- en autorisatiemechanisme wordt gebruikt.
Conclusies
In een halve maand werken op de testomgeving heeft deze combinatie verschillende langdurige en kortdurende onderbrekingen van beide controllers doorstaan, vrijwel zonder gevolgen voor de klanten (één keer verloor een klant op Windows7 het vertrouwensniveau).
Over het algemeen heb ik een vrij positieve indruk van het werken met dit product, ondanks alle nuances waarmee ik zowel in het artikel als "achter de schermen" te maken had.
Er zijn veel valkuilen, en tijdens het werken met Samba zal je ze in grote hoeveelheden tegenkomen. Toch zijn er op dit moment geen andere oplossingen die het mogelijk maken om een hybride omgeving te creëren met gebruik van een directorydienst en zonder Windows.
Bron: habr.com
