
Het besef dat ik in een importpuinhoop zat, kwam niet meteen. Pas toen er gestaag nieuwe leveringen van pc's arriveerden van een hogere organisatie met de Alt Linux-distributie aan boord, vermoedde ik dat er iets mis was.
Maar toen ik de fasen van het accepteren van het onvermijdelijke doorliep, raakte ik erbij betrokken en begon ik zelfs een beetje van het proces te genieten. En op een gegeven moment dacht ik dat ik in dit tempo vroeg of laat afstand zou moeten doen van de oplossingen voor het organiseren van directoryservices van Microsoft en naar iets exotischer zou moeten gaan. Om zich vooraf voor te bereiden op het onvermijdelijke en, indien mogelijk, zoveel mogelijk valkuilen te vangen, werd daarom besloten een testbank in te zetten, waaronder:
- DC1 — Windows Server 2012R2
- DC2 - Viola-server 8.2
- Bestandsserver — Windows Server 2012R2
- PC1 — Windows 7
- PC2 - Viola-werkstation 8.2
Standdoelstellingen:
- Implementeer een domein gebaseerd op Windows Server 2012 R2. Maak een minimale set groepsbeleidsregels aan (vergelijkbaar met die in de productieomgeving), inclusief een beleid voor het migreren van de werkmappen van gebruikers (Downloads/Documenten/Bureaublad). Uiteindelijk wil ik ervoor zorgen dat wanneer een gebruiker van werkstation wisselt, Windows op Linux En zo had hij weer gemakkelijk toegang tot zijn werkdocumenten.
- Samba DC-ingang door de tweede controller. Directoryservice en DNS-replicatie controleren
- Klanten instellen Linux om met het verplaatsen van mappen te werken
Implementatie:
- Installatie en inbedrijfstelling van een nieuwe controllerMet MS-installatie Windows 2012R2 is eenvoudig en min of meer duidelijk. Er zijn duizenden handleidingen op internet te vinden voor het implementeren van een domein op Windows Server 1001. Windows Ik heb zowel de grafische gebruikersinterface als PowerShell gebruikt, dus ik zal het niet herhalen, ik laat het hierbij. aan uit. documentatie voor nieuwsgierigen en voor degenen die hun geheugen willen opfrissen.
Er is echter nog een belangrijk punt op dit punt. Momenteel kan Samba niet werken met mapschema's hoger dan 2008R2.
Spoilertitel Nauwkeuriger gezegd, gaven de ontwikkelaars aan dat deze ondersteuning experimenteel was. Maar in de praktijk bleek een poging om Samba als tweede domeincontroller in een bestaand domein te introduceren, een experimentele aanpak. Windows Bij schema 69 krijgt u de volgende foutmelding te zien.
DsAddEntry mislukt met status WERR_ACCESS_DENIED info (8567, 'WERR_DS_INCOMPATIBLE_VERSION')
Het probleem is dat Windows Samba 2012 en 2012R2 gebruiken WMI-tools om met domeinen en forests te werken. Stabiele ondersteuning hiervoor is pas aangekondigd voor versie Samba 4.11, die naar verwachting vóór het einde van dit jaar uitkomt.
Hieruit volgt dat de enige optie voor het introduceren van samba in een AD-domein dat op een 2012R2-server is geïmplementeerd, het downgraden van het schema is van 69 naar 47. Dit mag uiteraard niet zonder goede reden worden gedaan op een productie-infrastructuur, maar we hebben een testbank hier, dus waarom eigenlijk niet.Installeer Alt Server 8.2. Selecteer tijdens de installatie het profiel “Samba-DC Server (AD Controller)”. Op de geïmplementeerde server voeren we een volledige systeemupdate uit en installeren we het task-samba-dc-pakket, dat alles ophaalt wat je nodig hebt
# apt-get install task-samba-dcAls plotseling task-samba-dc, in tegenstelling tot de garanties van de documentatie, weigert Alta al het noodzakelijke zelf 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 verder met het instellen van Kerberos en het ontvangen van een ticket. Open het bestand krb5.conf, ga naar de sectie [libdefaults] en breng het naar het volgende formulier:
# vim /etc/krb5.confdns_lookup_kdc = true dns_lookup_realm = true default_realm = TEST.LOCALEen kaartje aanvragen
# kinit administrator Password for administrator@TEST.LOCAL:Het controleren van de lijst met ontvangen 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 tenslotte betreden we het AD-domein met de tweede controller:
# samba-tool domain join test.local DC -U"TESTadministrator"Succesvolle invoer gaat vergezeld van het 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 DCIn de ADUC-module moet er een record zijn voor de nieuwe DC in het TEST.LOCAL-domein, en in de DNS-manager moet er een nieuw A-record zijn dat overeenkomt met DC2.
- Replicatie tussen controllersLaten we eerst de werking van de Directory Replication Service (DRS) controleren
# samba-tool drs showreplAlle replicatiepogingen in de uitvoer zouden succesvol moeten zijn. Onze DC1 zou binnen 15 minuten na invoer in de KCC-objectlijst moeten verschijnen. 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!Waarschuwing “Geen NC gerepliceerd voor verbinding!” kan veilig worden genegeerd. Het lijkt erop dat Samba bij het registreren van een nieuwe DC een aantal replicatievlaggen verkeerd instelt.
Het zou ook een goed idee zijn om de LDAP-replicatie te controleren.
# samba-tool ldapcmp ldap://dc1.test.local ldap://dc2.test.local -UadministratorDe bovenstaande opdracht vergelijkt de attribuutwaarden van de volledige directoryobjecten op DC1 en DC2.
Voorbeeld van succesvolle replicatie
* 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]: SUCCESSIn sommige gevallen kunnen de attributen van objecten op verschillende controllers verschillen, en de opdrachtuitvoer zal u hiervan op de hoogte stellen. Maar niet in alle gevallen zal dit een teken zijn van een replicatieprobleem.
De volgende stap is het handmatig configureren van stabiele replicatie van de SysVol-map.
Het probleem is dat Samba DFS-R nog niet ondersteunt, net zoals het eerder FRS niet ondersteunde. Daarom is Samba voor replicatie tussen domeincontrollers afhankelijk van... Windows De enige werkende oplossing tot nu toe is eenrichtingsreplicatie met behulp van het hulpprogramma. Robocopy spoor compleet .Om compatibiliteitsproblemen te voorkomen, raden de Samba-ontwikkelaars aan om eerst het hulpprogrammapakket op een gewoon werkstation te installeren en Robocopy vervolgens naar de controller te kopiëren in de map "C:\Program Files (x86)".Windows Hulpmiddelenpakketten»
Na de installatie kunt u in de taakplanner op de controller met Windows We maken een taak aan om replicatie uit te voeren met de volgende parameters:
— Uitvoeren voor alle gebruikers
— Trigger om overdag elke 5 minuten dagelijks uit te voeren
— In de acties specificeren we het pad naar het robocopy-hulpprogramma, waarbij we als argumenten opgeven:DC1SYSVOLtest.local DC2SYSVOLtest.local /mir /secIn dit specifieke geval kopiëren we de inhoud van de SysVol-directory van DC1 naar DC2.
- Draagbare gebruikersmappen met pam_mount-configuratieDoor ervaring heb ik twee haalbare opties gevonden om dit probleem met behulp ervan op te lossen.
- Een profielmap volledig vanuit het netwerk koppelen aan de /home-partitie. Een eenvoudige optie. Werkt prima als de namen van de mappen Mijn documenten, Downloads en Bureaublad in beide besturingssystemen hetzelfde zijn. Dit gaat ervan uit dat de pc op Linux is al aan het domein toegevoegd en gebruikers loggen in met hun domeinaccounts via sssd als authenticatie- en autorisatiemechanisme.
# 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-bereik toegewezen aan domeingebruikers vanuit SSSD
- server = "dfs" - bestandsservernaam
- path="Profiel_Gebruikers/%(USER)" — een bron op een bestandsserver met een gehost gebruikersprofiel
- koppelpunt=”~” — koppelpad naar de thuismap van de gebruiker
De gebruikersaanmelding wordt doorgegeven aan de macrovariabele “%(USER)” die door pam_mount wordt gebruikt om verbinding te maken met onze netwerkbron, zoals ingevoerd in de displaymanager. Daarom is het belangrijk dat de login in DM wordt ingevoerd zonder expliciet de domeinnaam op te geven.
In sssd.conf wordt dit opgelost door commentaar te geven of de optie op False te zetten gebruik_volledig_gekwalificeerde_namen, waarmee een volledig gekwalificeerde naammodus (inclusief domein) voor gebruikers en groepen mogelijk wordt gemaakt.
- De tweede methode is minder eenvoudig en onhandig, en naar mijn mening handiger en verdient de voorkeur. Het verschil met de eerste zit alleen in de pam_mount-configuratie
# 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"/>Dat wil zeggen, we koppelen eenvoudigweg elk van onze mappen afzonderlijk in de overeenkomstige map
- Een profielmap volledig vanuit het netwerk koppelen aan de /home-partitie. Een eenvoudige optie. Werkt prima als de namen van de mappen Mijn documenten, Downloads en Bureaublad in beide besturingssystemen hetzelfde zijn. Dit gaat ervan uit dat de pc op Linux is al aan het domein toegevoegd en gebruikers loggen in met hun domeinaccounts via sssd als authenticatie- en autorisatiemechanisme.
Bevindingen
Gedurende een halve maand testen op de testbank heeft dit pakket met succes verschillende afwisselende langdurige en kortdurende uitschakelingen van beide controllers doorstaan, vrijwel zonder gevolgen voor de klanten (eenmaal een klant op Windows7. Verloren vertrouwensrelaties.
Over het algemeen had ik een redelijk prettige ervaring met het werken met dit product, ondanks alle nuances waarmee ik zowel in het artikel als ‘achter de schermen’ te maken kreeg.
Er zijn valkuilen, heel veel zelfs, en naarmate je met Samba werkt, zul je er een groot aantal tegenkomen. Er zijn echter momenteel geen andere oplossingen waarmee je een hybride omgeving kunt opzetten, zowel met als zonder een directoryservice. Windows.
Bron: www.habr.com
