دمج سامبا مع Active Directory لمشاركة الملفات والطباعة بين أوبنتو وويندوز
تُعد بيئة الشبكات المختلطة التي تضم أنظمة تشغيل متعددة مثل أوبنتو (Linux) وويندوز من التكوينات الشائعة في المؤسسات، مما يفرض الحاجة إلى إيجاد حلول فعالة تضمن تكامل هذه الأنظمة بسلاسة، وخصوصاً في ما يتعلق بمشاركة الملفات والطابعات. ويبرز في هذا السياق دور Samba كأداة مفتوحة المصدر تتيح لأنظمة Linux الانضمام إلى بيئة Active Directory التي توفرها خوادم ويندوز، ما يسمح بالتفاعل الكامل بين النظامين من حيث المصادقة، مشاركة الملفات، والوصول إلى موارد الطباعة.
يهدف هذا المقال إلى تقديم شرح مفصل وشامل لكيفية دمج Samba مع Active Directory في نظام أوبنتو، لتفعيل المشاركة الفعالة للملفات والطابعات بين خوادم Linux وأجهزة ويندوز ضمن بيئة شبكية موحدة وآمنة.
1. مقدمة تقنية حول Samba وActive Directory
ما هو Samba؟
Samba هو مشروع مفتوح المصدر يتيح لأنظمة التشغيل المستندة إلى Unix (مثل Linux) تنفيذ بروتوكول SMB/CIFS المستخدم بشكل أساسي من قبل أنظمة ويندوز لمشاركة الملفات والطابعات. بفضل Samba، يمكن لأجهزة Linux التفاعل مع Active Directory والظهور كأعضاء ضمن نطاق ويندوز.
ما هو Active Directory؟
Active Directory (AD) هو نظام إدارة مركزي للمصادقة والتحكم في الوصول تُطوره شركة مايكروسوفت، ويُستخدم لإدارة المستخدمين، الأجهزة، السياسات الأمنية، والخدمات الأخرى داخل بيئة شبكية.
أهمية دمج Samba مع Active Directory
عند دمج نظام أوبنتو مع AD من خلال Samba، تتحقق الفوائد التالية:
-
مشاركة الملفات والطابعات بين الأنظمة بسلاسة.
-
مصادقة مستخدمي ويندوز على خوادم Linux تلقائياً.
-
فرض سياسات وصول موحدة عبر الشبكة.
-
تقليل الحاجة لإدارة حسابات محلية منفصلة على كل نظام.
2. المتطلبات الأساسية لدمج Samba مع Active Directory
متطلبات النظام
-
نظام تشغيل أوبنتو 20.04 أو أحدث.
-
الوصول إلى خادم Active Directory ضمن نفس الشبكة.
-
تثبيت الحزم التالية:
samba,krb5-user,winbind,libpam-winbind,libnss-winbind.
إعدادات الشبكة
-
يجب أن يكون وقت النظام متزامناً مع خادم Active Directory باستخدام
ntp. -
ضبط اسم المضيف (hostname) بشكل صحيح ومطابق لنطاق DNS.
3. إعداد Kerberos للمصادقة مع Active Directory
Kerberos هو البروتوكول الذي يعتمد عليه AD لإجراء المصادقة. ولضبطه على أوبنتو، يجب تحرير الملف /etc/krb5.conf.
مثال على محتوى krb5.conf
ini[libdefaults]
default_realm = EXEMPLE.LOCAL
dns_lookup_realm = false
dns_lookup_kdc = true
يجب استبدال EXEMPLE.LOCAL بنطاق Active Directory الحقيقي.
بعد الحفظ، يمكن التحقق من الاتصال عبر الأمر:
ثم:
bashklist
إذا تم عرض التذكرة بنجاح، فإن الاتصال بـ Kerberos صحيح.
4. إعداد ملف تكوين Samba
يتم تعديل ملف التكوين الرئيسي لـ Samba والموجود في /etc/samba/smb.conf. مثال على الإعداد:
ini[global]
workgroup = EXEMPLE
realm = EXEMPLE.LOCAL
security = ads
encrypt passwords = yes
idmap config * : backend = tdb
idmap config * : range = 3000-7999
idmap config EXEMPLE : backend = rid
idmap config EXEMPLE : range = 10000-999999
winbind use default domain = true
winbind offline logon = false
winbind enum users = yes
winbind enum groups = yes
template shell = /bin/bash
template homedir = /home/%U
client use spnego = yes
client ntlmv2 auth = yes
restrict anonymous = 2
ثم حفظ الملف وإعادة تشغيل الخدمات التالية:
bashsudo systemctl restart smbd nmbd winbind
sudo systemctl enable winbind
5. الانضمام إلى نطاق Active Directory
بعد إعداد الملفات، يتم الانضمام إلى النطاق عبر الأمر:
bashsudo net ads join -U administrateur
عند نجاح العملية، يجب أن يظهر الجهاز ضمن قائمة أجهزة Active Directory.
للتأكد من الانضمام:
bashnet ads testjoin
ولتأكيد التعرف على المستخدمين والمجموعات:
bashwbinfo -u wbinfo -g
6. تكامل NSS وPAM مع Winbind
لتمكين النظام من التعرف على المستخدمين والمجموعات من AD، يجب تعديل الملفات التالية:
ملف /etc/nsswitch.conf
يتم تعديل الأسطر الخاصة بـ passwd وgroup:
inipasswd: compat winbind group: compat winbind shadow: compat
تكامل مع PAM (Pluggable Authentication Modules)
لتفعيل المصادقة من خلال AD:
bashsudo pam-auth-update
وتفعيل الخيارات التالية:
-
Create home directory on login
-
Winbind NT/Active Directory authentication
7. مشاركة الملفات مع مستخدمي Active Directory
بعد الانضمام للنطاق، يمكن الآن إعداد مجلد مشترك. على سبيل المثال، إنشاء مجلد ومشاركته:
bashsudo mkdir -p /srv/partage
sudo chown root:"EXEMPLE\\Domain Users" /srv/partage
sudo chmod 2770 /srv/partage
ثم إضافة القسم التالي في smb.conf:
ini[Partage]
path = /srv/partage
browsable = yes
writable = yes
read only = no
guest ok = no
valid users = @"EXEMPLE\Domain Users"
ثم إعادة تشغيل الخدمة:
bashsudo systemctl restart smbd
8. إعداد الطباعة من خلال Samba
يمكن مشاركة طابعات موصولة بخادم أوبنتو أو اكتشاف طابعات شبكية من خلال إعدادات Samba.
تمكين مشاركة الطابعات:
ini[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
كما يجب تثبيت CUPS ودعم الطابعات:
bashsudo apt install cups printer-driver-all
وتفعيل الخدمات:
bashsudo systemctl enable cups
sudo systemctl start cups
9. تحسين الأداء والأمان
لضمان أداء أعلى وأمان شبكي أقوى في بيئة مختلطة بين أوبنتو وويندوز، يُوصى باتباع الممارسات التالية:
-
استخدام تشفير الاتصالات بين الأجهزة.
-
تقييد الوصول عبر عناوين IP ضمن نطاق معين.
-
تكوين جدران الحماية (UFW أو iptables) للسماح فقط بالبروتوكولات الضرورية.
-
مراقبة سجلات Samba وWinbind للتعرف على أي محاولات وصول غير مصرح بها.
-
تفعيل عمليات التدقيق الأمني Logwatch أو AuditD.
10. إدارة المستخدمين والمجموعات من خلال واجهات رسومية
على الرغم من أن معظم عمليات التكوين تعتمد على الطرفية (Terminal)، إلا أنه يمكن استخدام أدوات مثل Cockpit أو Webmin لتسهيل الإدارة من خلال واجهة رسومية، مما يُسهل مراقبة الخدمات وإدارة الموارد المشتركة.
11. اختبار وتوثيق التكامل
من الضروري إجراء اختبارات عملية بعد كل مرحلة من مراحل التكوين:
-
التحقق من إمكانية ولوج مستخدمي AD إلى الموارد المشتركة.
-
التأكد من أن صلاحيات الوصول تعمل كما هو متوقع.
-
اختبار الطباعة من جهاز ويندوز باستخدام تعريف الطابعة المشتركة من أوبنتو.
-
تسجيل جميع التغييرات في وثائق توثيقية داخلية لتسهيل الصيانة المستقبلية.
12. جدول يلخّص المكونات الأساسية المطلوبة للتكامل
| العنصر | الوظيفة | الحزمة أو الأداة |
|---|---|---|
| Samba | مشاركة الملفات والطابعات عبر بروتوكول SMB | samba |
| Winbind | ربط حسابات AD مع Linux | winbind, libpam-winbind |
| Kerberos | المصادقة الموحدة من خلال Active Directory | krb5-user |
| CUPS | إدارة الطابعات على نظام أوبنتو | cups |
| PAM/NSS | دمج المصادقة عبر AD مع نظام الملفات والمستخدمين | تكوين nsswitch.conf, pam-auth-update |
| ntp | مزامنة الوقت مع خوادم AD | ntp أو chrony |
13. الخلاصة
يوفر دمج Samba مع Active Directory حلاً قوياً ومتكاملاً لإدارة بيئات شبكية مختلطة تجمع بين لينكس وويندوز، ويُعد هذا الدمج ضرورياً لتحقيق الاتساق في إدارة الموارد، المصادقة، وضبط السياسات الأمنية. لا يقتصر الأمر على مشاركة الملفات والطابعات، بل يتعداه إلى توفير بيئة مؤسسية قابلة للتوسع وموثوقة في تلبية احتياجات المؤسسات المعاصرة، مع ضمان التكامل التام مع الأدوات والإجراءات المتبعة في نظم ويندوز.
المراجع:

