اذهب إلى المحتوى

استخدام سامبا كمتحكم في النطاق


عبد اللطيف ايمش

على الرغم من أن سامبا لا يمكن أن يكون Active Directory Primary Domain Controller‏ (PDC)، لكن يمكن أن يُضبَط خادوم سامبا ليظهر كمتحكم من نمط Windows NT4؛ ميزة لهذا الضبط هي قابلية جعل تصاريح المستخدمين والحواسيب مركزية؛ يمكن أيضًا أن يَستخدم سامبا عدِّة أنواع من السند الخلفي (backends) لتخزين بيانات المستخدم.

ubuntu-server-samba-as-domain-controller

متحكم رئيسي بالنطاق

يشرح هذا القسم طريقة ضبط سامبا ليعمل كمتحكم رئيسي بالنطاق (PDC) باستخدام السند الخلفي الافتراضي smbpasswd.

  1. أولًا، ثبِّت سامبا و libpam-smbpass لمزامنة حسابات المستخدمين؛ وذلك بإدخال اﻷمر الآتي في الطرفية:

sudo apt-get install samba libpam-smbpass

  2. ثم اضبط سامبا بتعديل الملف ‎/etc/samba/smb.conf؛ حيث يجب أن يُضبَط نمط security إلى user؛ ويجب أن تتعلق workgroup بمنظمتك:

workgroup = EXAMPLE
...
security = user

  3. في قسم «Domains» المحاط بتعليقات، أضف أو أزل التعليق عمَّا يلي (قُسِّم آخر سطر إلى قسمين ليظهر بشكلٍ مفهوم):

domain logons = yes
logon path = \\%N\%U\profile
logon drive = H:
logon home = \\%N\%U
logon script = logon.cmd
add machine script = sudo /usr/sbin/useradd -N -g machines -c Machine -d
      /var/lib/samba -s /bin/false %u

ملاحظة: إذا أردت عدم استخدام «Roamin Profiles» فاترك الخيارين «logon home» و «logon path» مسبوقَين بتعليق.

  • domain logons: يوفر خدمة netlogon مما يجعل سامبا يتصرف كمتحكم بالنطاق.
  • logon path: يضع ملف profile الخاص بويندوز في مجلد المنزل للمستخدم؛ من الممكن ضبط مشاركة [profiles] ووضع كل ملفات profile في مجلد واحد.
  • logon home: تحديد مكان مجلد المنزل.
  • logon script: تحديد السكربت الذي يُشغَّل محليًا بعد أن يُسجِّل المستخدم دخوله؛ يجب أن يوضع السكربت في مشاركة [netlogon].
  • add machine script: السكربت الذي يُنشِئ تلقائيًا الحساب Machine Trust الضروري لكي تنضم محطة العمل (workstation) إلى النطاق.

في هذا المثال، أُنشِئت المجموعة machines بالأداة addgroup؛ راجع درس إدارة المستخدمين قسم «إضافة وحذف المستخدمين» لمزيدٍ من التفاصيل.

  4. أزل التعليق عن مشاركة [homes] للسماح بربط logon home:

[homes]
  comment = Home Directories
  browseable = no
  read only = no
  create mask = 0700
  directory mask = 0700
  valid users = %S

  5. بعد أن يُضبَط كمتحكم بالنطاق، يجب أن تُضبَط الآن المشاركة [netlogon]، أزل التعليق عما يلي لتفعيل تلك المشاركة:

[netlogon]
  comment = Network Logon Service
  path = /srv/samba/netlogon
  guest ok = yes
  read only = yes
  share modes = no

ملاحظة: مسار مشاركة netlogon الافتراضي هو ‎/home/samba/netlogon؛ لكن وفقًا لمعيار هيكلة نظام الملفات (FHS)، إن ‎/srv هو المسار الصحيح للبيانات الموفرة من الخادوم.

  6. أنشِئ الآن مجلد netlogon وملف سكربت logon.cmd فارغًا (حاليًا):

sudo mkdir -p /srv/samba/netlogon
sudo touch /srv/samba/netlogon/logon.cmd

يمكنك إدخال أوامر سكربت Windows Logon في ملف logon.cmd لتخصيص بيئة العميل.

  7. أعد تشغيل سامبا لتفعيل المتحكم بالنطاق الجديد:

sudo restart smbd
sudo restart nmbd

  8. في النهاية، هنالك بعض الأوامر الإضافية لضبط الحقوق الملائمة.

لما كان حساب الجذر معطلًا افتراضيًا، ولكي تنضم محطة عمل إلى النطاق، فيجب أن تُربَط مجموعة في النظام إلى مجموعة Windows Domain Admins؛ أدخِل الأمر الآتي الذي يستخدم الأداة net:

sudo net groupmap add ntgroup="Domain Admins" unixgroup=sysadmin rid=512 type=d

ملاحظة: عدِّل sysadmin إلى المجموعة التي تفضلها؛ وأيضًا يجب أن يكون المستخدم الذي ينضم إلى النطاق عضوًا في المجموعة sysadmin ومجموعة النظام admin، التي تسمح باستخدام sudo.

إذا لم يحصل المستخدم على تصاريح سامبا بعد؛ فيمكنك إضافتها باستخدام الأداة smbpasswd، لا تنسَ تعديل اسم sysadmin ليلائم نظامك:

sudo smbpasswd -a sysadmin

أيضًا، يجب أن تكون الحقوق المعطاة إلى مجموعة Domain Admins مُحدَّدةً للسماح لإضافة machine script (والوظائف الإدارية الأخرى) بأن تعمل؛ ويمكن فعل ذلك بالأمر:

net rpc rights grant -U sysadmin "EXAMPLE\Domain Admins" \ SeMachineAccountPrivilege \ SePrintOperatorPrivilege SeAddUsersPrivilege \ SeDiskOperatorPrivilege SeRemoteShutdownPrivilege

  9. يجب أن تكون الآن قادرًا على ضم عملاء ويندوز إلى النطاق بنفس الطريقة التي ينضمون فيها إلى نطاق NT4 يعمل على خادوم ويندوز.

متحكم احتياطي بالنطاق

بوجود متحكم رئيسي بالنطاق (PDC) في الشبكة، فمن الأفضل وجود متحكم احتياطي بالنطاق (BDC) أيضًا؛ مما يسمح باستيثاق العملاء في حال أصبح المتحكم الرئيسي غير متوفرٍ.

عندما تضبط سامبا كمتحكم احتياطي، فستحتاج إلى آلية لمزامنة معلومات الحسابات مع المتحكم الرئيسي؛ هنالك عدِّة طرق لفعل ذلك تتضمن scp، أو rsync، أو باستخدام LDAP كسند passdb خلفي.

استخدام LDAP هو أكثر الطرق مرونةً لمزامنة معلومات الحسابات، ﻷن كلا المتحكمَين بالنطاق يستخدمان نفس المعلومات في الوقت الحقيقي؛ لكن إعداد خادوم LDAP هو أمرٌ زائد التعقيد لشبكة تحتوي عددًا قليلًا من حسابات المستخدمين والحواسيب؛ راجع درس «استخدام سامبا مع LDAP» للتفاصيل.

  1. أولًا، ثبِّت samba و libpam-smbpass، وذلك بإدخال الأمر الآتي في الطرفية:

sudo apt-get install samba libpam-smbpass
  1. عدِّل الآن ملف ‎/etc/samba/smb.conf وأزل التعليق عمّا يلي في قسم [global]:

workgroup = EXAMPLE
...
security = user
  1. في قسم Domains المحاط بتعليق، أضف أو أزل التعليق عن:

domain logons = yes
domain master = no
  1. تأكد أن المستخدم لديه الحقوق لقراءة الملفات في ‎/var/lib/samba؛ على سبيل المثال، للسماح لمجموعة admin بنقل الملفات عبر scp، فأدخِل الأمر:

sudo chgrp -R admin /var/lib/samba
  1. ثم، زامن حسابات المستخدمين، باستخدام scp لنسخ مجلد ‎/var/lib/samba من PDC:

sudo scp -r username@pdc:/var/lib/samba /var/lib

ملاحظة: استبدل username باسم مستخدم صالح، و pdc باسم PDC أو عنوان IP له.

ثم في النهاية، أعِد تشغيل سامبا:

sudo restart smbd
sudo restart nmbd

يمكنك اختبار عمل متحكم النطاق الاحتياطي بإيقاف عفريت سامبا في PDC، ثم محاولة تسجيل الدخول من عميل ويندوز موجود في النطاق.

شيء آخر لتبقيه في بالك أنَّه إذا ضُبِط الخيار logon home إلى مجلد في PDC، فإذا أصبح PDC غير متوفرٍ، فإن الوصول إلى قرص المنزل للمستخدم سيصبح متعذرًا؛ لهذا السبب من الأفضل ضبط logon home ليقبع في خادوم ملفات منفصل عن PDC و BDC.

مصادر

  • الفصل الرابع والخامس من «Samba HOWTO Collection» يشرحان طريقة ضبط خادوم سامبا ليكون متحكمًا رئيسيًا واحتياطيًا بالنطاق على التوالي وبالترتيب.

ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Samba as a domain controller.


تفاعل الأعضاء

أفضل التعليقات

لا توجد أية تعليقات بعد



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...