Samba DC كوحدة تحكم ثانية في مجال الإعلانات في Windows 2012R2 ومجلدات التجوال للعملاء على Windows و Linux

صورة

إدراك أنني كنت في مزيج الاستيراد لم يأت على الفور. فقط عندما بدأت الإمدادات الجديدة لجهاز الكمبيوتر في الاستقرار من المنظمة الأم مع توزيع Alt Linux على متن الطائرة ، كنت أظن أن هناك شيئًا ما غير صحيح.

ومع ذلك ، في عملية اجتياز مراحل قبول ما لا مفر منه ، انخرطت وحتى بدأت في الاستمتاع بهذه العملية قليلاً. وفي مرحلة ما ، اعتقدت أنه في مثل هذه السرعة ، سيتعين علي عاجلاً أو آجلاً التخلي عن قرار تنظيم خدمة دليل Microsoft والتحرك نحو شيء أكثر غرابة. لذلك ، من أجل الإعداد المسبق لما لا مفر منه ، وإذا أمكن للقبض على المزيد من المزالق ، فقد تقرر نشر طاولة اختبار ، والتي تشمل:

  • DC1 - خادم ويندوز 2012R2
  • DC2 - البديل خادم 8.2
  • خادم الملفات - خادم ويندوز 2012R2
  • PC1 - ويندوز 7
  • PC2 - Alt Workstation 8.2

مهام الحامل:


  1. نشر مجالًا يستند إلى w2k12r2. قم بإنشاء مجموعة صغيرة من سياسات المجموعة (مماثلة لتلك المستخدمة في بنية العمل الأساسية) ، بما في ذلك سياسة نقل مجلدات عمل المستخدم (التنزيلات / المستندات / سطح المكتب). في النهاية ، أريد أنه عندما يغير المستخدم مكان عمله من Windows إلى Linux والعكس صحيح ، يمكنه الوصول بسهولة إلى مستندات العمل الخاصة به.
  2. دخول سامبا العاصمة من قبل وحدة التحكم الثانية. التحقق من خدمة الدليل والنسخ المتماثل DNS
  3. تكوين عملاء Linux باستخدام مجلدات التجوال

التنفيذ:


  1. تثبيت وأدخل وحدة تحكم جديدة

    مع تثبيت MS Windows 2012R2 ، كل شيء بسيط وأقل وضوحًا. يوجد على الإنترنت دليل 1001 لنشر مجال على Windows باستخدام كل من واجهة المستخدم الرسومية و Powershell ، لذلك لن أكرره مرة أخرى ، سأترك رابطًا لإيقاف تشغيله فقط. وثائق للفضوليين وأولئك الذين يرغبون في تحديث ذاكرتهم.

    ومع ذلك ، هناك نقطة واحدة مهمة في هذه الفقرة. حتى الآن ، Samba غير قادر على العمل مع مخططات الكتالوج أعلاه 2008R2.

    المفسد العنوان
    بدلا من ذلك ، أعلن مطوري هذا الدعم التجريبية. ولكن في الممارسة العملية ، فإن محاولة إدخال samba باعتبارها وحدة تحكم ثانية في مجال Windows موجود مع مخطط 69 ستواجهك الخطأ التالي
    أخفق DsAddEntry في الحصول على معلومات عن الحالة WERR_ACCESS_DENIED (8567 ، 'WERR_DS_INCOMPATIBLE_VERSION')


    تكمن المشكلة في أن نظامي التشغيل Windows 2012 و 2012 R2 يستخدمان أدوات WMI للعمل مع المجالات والغابات ، والتي يتم الإعلان عن دعمها الثابت فقط لسامبا الإصدار 4.11 ، والذي من المقرر أن يصدر قبل نهاية هذا العام.
    ويترتب على ذلك أن الخيار الوحيد لإدخال السامبا إلى المجال AD الذي تم نشره على خادم 2012R2 هو خفض المخطط من 69 إلى 47. بالطبع ، هذا ليس ضروريًا على البنية التحتية للعمل دون سبب وجيه ، ولكن لدينا مقعد اختبار هنا ، فلماذا في الواقع لا.

    نضع البديل خادم 8.2. أثناء التثبيت ، حدد ملف التعريف "Samba-DC Server (وحدة تحكم AD)." على الخادم الذي تم نشره ، نقوم بإجراء تحديث كامل للنظام وتثبيت حزمة task-samba-dc ، والتي ستسحب كل ما تحتاجه

    # apt-get install task-samba-dc 

    إذا كانت المهمة samba-dc فجأة ، على عكس تأكيدات الوثائق ، ألتا يرفض تثبيت كل ما هو ضروري.
     # apt-get install python-module-samba-DC samba-DC-common samba-DC-winbind-clients samba-DC-winbind samba-DC-common-libs libpytalloc-devel 


    بعد ذلك ، تابع تكوين Kerberos واحصل على تذكرة. افتح ملف krb5.conf ، وانتقل إلى قسم [libdefaults] ، واحضاره إلى النموذج التالي:

     # vim /etc/krb5.conf 

      dns_lookup_kdc = true dns_lookup_realm = true default_realm = TEST.LOCAL 

    طلب تذكرة

     # kinit administrator Password for administrator@TEST.LOCAL: 

    التحقق من قائمة تذاكر 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 

    الآن حذف أو إعادة تسمية التكوين السامبا الحالية.

     # mv smb.conf smb.conf.bak1 

    أخيرًا ، ندخل وحدة التحكم الثانية في المجال AD:

     # samba-tool domain join test.local DC -U"TEST\administrator" 

    سوف يتبع التسجيل الناجح السجل التالي
     Finding a writeable DC for domain 'test.local' Found DC DC1.TEST.LOCAL Password for [TEST\administrator]: 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 on 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 


    يجب أن يظهر سجل حول وحدة تحكم المجال DC الجديدة في مجال TEST.LOCAL في الأداة الإضافية لـ ADUC ، ويجب أن يظهر سجل جديد يتوافق مع DC2 في مدير DNS.
  2. النسخ المتماثل بين وحدات التحكم

    للبدء ، تحقق من خدمة النسخ المتماثل للدليل (DRS)

     # samba-tool drs showrepl 

    يجب أن تكون كافة محاولات النسخ المتماثل في الإخراج ناجحة. في قائمة كائنات KCC ، خلال 15 دقيقة من الدخول ، يجب أن يظهر DC1 على Windows
     Default-First-Site-Name\DC2 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-Name\DC1 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-Name\DC1 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-Name\DC1 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-Name\DC1 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-Name\DC1 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-Name\DC1 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-Name\DC1 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-Name\DC1 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-Name\DC1 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-Name\DC1 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! 


    تحذير "لا NC نسخ متماثل للاتصال!" يمكن تجاهلها بأمان. يبدو بسبب حقيقة أنه عند تسجيل DC جديد ، samba يعين بشكل غير صحيح بعض إشارات النسخ المتماثل.

    يعد التحقق من تكرار LDAP فكرة جيدة أيضًا.

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

    سيقوم الأمر أعلاه بمقارنة قيم السمات لكائنات الدليل بأكمله على DC1 و DC2.

    مثال النسخ المتماثل الناجح
     * 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 

    في بعض الحالات ، قد تختلف سمات الكائنات الموجودة على وحدات تحكم مختلفة ، وسيسمح لك إخراج الأمر بمعرفة ذلك. ولكن ليس في جميع الحالات ، سيكون هذا علامة على مشكلة النسخ المتماثل.

    الخطوة التالية هي تكوين النسخ المتماثل الثابت يدويًا لدليل SysVol.
    والحقيقة هي أن السامبا لا يدعم حتى الآن DFS-R ، لأنه لم يدعم FRS السابقة. لذلك ، بالنسبة للنسخ المتماثل بين DC Samba و Windows ، فإن الحل الوحيد للعمل اليوم هو النسخ المتماثل أحادي الاتجاه باستخدام الأداة المساعدة Robocopy من Windows Server 2003 Resource Kit Tools .

    من أجل تجنب مشكلات التوافق ، أوصي مطورو Samba أولاً بتثبيت مجموعة الأدوات المساعدة على محطة عمل عادية ، ثم انسخ Robocopy إلى وحدة التحكم في المجلد "C: \ Program Files (x86) \ Windows Resource Kits \ Tools \"

    بعد التثبيت ، في برنامج جدولة المهام على وحدة تحكم Windows ، نقوم بإنشاء مهمة للنسخ المتماثل باستخدام المعلمات التالية:

    - أداء لجميع المستخدمين
    - تشغيل لتنفيذ يوميا كل 5 دقائق خلال اليوم
    - في الإجراءات التي تصف الطريق إلى الأداة المساعدة robocopy ، نشير إلى الوسيطات:

     \\DC1\SYSVOL\test.local\ \\DC2\SYSVOL\test.local\ /mir /sec 

    في حالة معينة ، انسخ محتويات دليل SysVol من DC1 إلى DC2.
  3. مجلدات المستخدم المحمولة باستخدام تكوين pam_mount

    من الناحية التجريبية ، وجدت خيارين قابلاً للتطبيق لحل هذه المشكلة بمساعدتها.

    1. أكمل التثبيت لمجلد ملف التعريف من الشبكة إلى قسم / الصفحة الرئيسية

      خيار بسيط. يعمل بشكل جيد إذا كانت أسماء المجلدات "المستندات" و "التنزيلات" و "سطح المكتب" هي نفسها في كلا نظامي التشغيل. من المعلوم أنه قد تم بالفعل إدخال كمبيوتر Linux في المجال وتسجيل دخول المستخدمين تحت حسابات المجال الخاصة بهم باستخدام sssd كآلية المصادقة والترخيص.

       # 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"/> 

      حيث:

      • uid = "100000000-2000000000" - نطاق UID المخصص لمستخدمي المجال من SSSD
      • server = "dfs" - اسم خادم الملفات
      • path = "Profile_Users /٪ (USER)" - مورد على خادم الملفات مع ملف تعريف المستخدم المستضاف
      • mountpoint = "~" - مسار التحميل إلى المجلد الرئيسي للمستخدم

      يتم تمرير تسجيل دخول المستخدم إلى متغير الماكرو "٪ (USER)" الذي يستخدمه pam_mount لتوصيل مورد شبكتنا ، بالشكل الذي يتم إدخاله به في مدير العرض. لذلك ، من المهم أن يتم تسجيل الدخول DM دون إشارة صريحة لاسم المجال.

      في sssd.conf ، يتم حل ذلك عن طريق التعليق ، أو عن طريق تعيين قيمة False على خيار use_fully_qualified_names ، والذي يعمل على تشغيل وضع الاسم الكامل (بما في ذلك المجال) للمستخدمين والمجموعات.
    2. الطريقة الثانية هي أقل وضوحا وخرقاء ، وفي رأيي أكثر ملاءمة ويفضل. الفرق من الأول فقط في تكوين pam_mount

       # 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"/> 

      وهذا يعني أننا نقوم ببساطة بتثبيت كل مجلد من مجلداتنا بشكل منفصل في الدليل المقابل

النتائج

على مدار نصف شهر من العمل على منصة اختبار ، نجت هذه الحزمة بنجاح من العديد من عمليات الإغلاق الطويلة الأجل والقصيرة الأجل لكلتا الوحدتين ، مع عدم وجود عواقب عملية على العملاء (بمجرد فقد عميل على Windows7 الثقة).

بشكل عام ، كان لدي انطباع لطيف عن العمل مع هذا المنتج ، على الرغم من كل الفروق الدقيقة التي كان علي مواجهتها في المقال وخلف الكواليس.

هناك مطبات ، وهناك الكثير منهم ، وخلال العمل مع السامبا ، يجب أن يتم القبض عليهم بكميات كبيرة. ومع ذلك ، حتى الآن ، لا توجد حلول أخرى تسمح لك بتنظيم بيئة مختلطة باستخدام خدمات الدليل ودون استخدام Windows.

Source: https://habr.com/ru/post/ar450572/


All Articles