ديف أوبس

إعداد Samba على RHEL

إعداد تشارك الملفات على Red Hat Enterprise Linux باستخدام Samba

مقدمة

تُعد مشاركة الملفات عبر الشبكة أحد أهم الوظائف التي توفرها أنظمة التشغيل، وخاصة في بيئات العمل المؤسسية التي تعتمد على التعاون بين مختلف الأنظمة والمنصات. في عالم يعتمد على التكامل بين أنظمة Linux وWindows، تظهر أهمية استخدام Samba كحل مثالي لتوفير إمكانية مشاركة الملفات والطابعات بين هذه الأنظمة.

يتيح Samba على أنظمة Red Hat Enterprise Linux (RHEL) إمكانية إعداد خدمات مشاركة الملفات بطريقة آمنة وفعالة، مما يسهّل إدارة الشبكات المختلطة ويوفر توافقاً عالياً مع بروتوكولات Windows. في هذا المقال، سيتم تناول إعداد Samba على RHEL بشكل موسّع بدءاً من التثبيت وحتى ضبط الصلاحيات ومراقبة النشاط، مع التركيز على الممارسات الآمنة والمثلى.


لمحة عن Samba

Samba هو تطبيق مفتوح المصدر ينفّذ بروتوكول SMB/CIFS، مما يسمح لأجهزة Linux بتقديم خدمات مشابهة لتلك التي تقدمها خوادم Windows. تم تطويره ليكون وسيلة تواصل فعالة بين أنظمة Linux وWindows، ما يتيح مشاركة الملفات والطابعات بطريقة سلسة. يوفر Samba العديد من الميزات، من أبرزها:

  • مشاركة الملفات والمجلدات عبر الشبكة.

  • التحقق من المستخدمين وإدارتهم باستخدام LDAP أو Active Directory.

  • إمكانية العمل كخادم نطاق (Domain Controller).

  • دعم شامل للتشفير والصلاحيات الدقيقة.


المتطلبات الأولية

قبل الشروع في إعداد Samba، ينبغي التأكد من توفر المتطلبات التالية:

  • نظام تشغيل Red Hat Enterprise Linux مُفعّل وحديث.

  • امتيازات الجذر (root) أو صلاحيات sudo.

  • اتصال ثابت بالشبكة.

  • إعداد hostname صحيح وثابت.

  • إعداد الجدار الناري (firewalld) وSELinux بشكل يسمح باستخدام خدمات Samba.


الخطوة 1: تثبيت حزمة Samba

في RHEL، يتم توفير Samba عبر مستودعات النظام الرسمية. لتثبيت الحزمة، يُستخدم الأمر التالي:

bash
sudo dnf install samba samba-client samba-common -y

يؤدي هذا الأمر إلى تثبيت الحزمة الأساسية لخادم Samba، بالإضافة إلى الحزم اللازمة للتفاعل مع الخوادم الأخرى.


الخطوة 2: إنشاء مجلد للمشاركة

لنفترض أننا نرغب بمشاركة مجلد باسم /srv/samba/share. نقوم بإنشائه وتعيين الأذونات اللازمة له كما يلي:

bash
sudo mkdir -p /srv/samba/share sudo chown -R nobody:nobody /srv/samba/share sudo chmod -R 0775 /srv/samba/share

تُعد هذه الأذونات مناسبة لمشاركة عامة غير محدودة. في حال كان المطلوب مشاركة خاصة لمستخدمين محددين، تُضبط الأذونات تبعاً لذلك.


الخطوة 3: تكوين ملف إعدادات Samba

يُعتبر الملف الأساسي لإعداد Samba هو /etc/samba/smb.conf. يمكن تحريره باستخدام محرر نصوص مثل vi أو nano.

فيما يلي مثال على إعداد بسيط لمشاركة عامة:

ini
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = rhelserver security = user map to guest = Bad User dns proxy = no [Public] path = /srv/samba/share writable = yes browsable = yes guest ok = yes read only = no

هذا الإعداد يسمح بالوصول إلى المجلد /srv/samba/share دون التحقق من الهوية، ما يجعله مناسباً للبيئات الآمنة داخلياً فقط.


الخطوة 4: إعداد المستخدمين في Samba

في حالة الرغبة بتقييد الوصول إلى مستخدمين محددين، يتم إنشاء حسابات النظام أولاً، ثم إضافتها إلى قاعدة بيانات Samba:

bash
sudo useradd sambauser sudo passwd sambauser sudo smbpasswd -a sambauser

ثم يتم تعديل ملف الإعداد smb.conf لتقييد الوصول على هذا المستخدم:

ini
[Private] path = /srv/samba/private valid users = sambauser writable = yes browsable = yes

الخطوة 5: تهيئة جدار الحماية

للسماح بمرور بيانات Samba عبر الجدار الناري، يجب تفعيل الخدمة بالشكل التالي:

bash
sudo firewall-cmd --permanent --zone=public --add-service=samba sudo firewall-cmd --reload

الخطوة 6: تفعيل وتشغيل خدمة Samba

بعد الانتهاء من التثبيت والتكوين، يجب تفعيل الخدمات وتشغيلها:

bash
sudo systemctl enable smb --now sudo systemctl enable nmb --now

للتحقق من حالة الخدمة:

bash
sudo systemctl status smb sudo systemctl status nmb

الخطوة 7: إعداد SELinux

إذا كان SELinux مفعلًا في النظام، يجب التأكد من تعيين السياقات المناسبة للمجلدات المشتركة. يمكن استخدام الأمر التالي لضبط السياق الأمني:

bash
sudo chcon -t samba_share_t /srv/samba/share -R

وللتحقق من إعدادات SELinux الخاصة بـ Samba:

bash
sudo getsebool -a | grep samba

ولتفعيل الخيارات اللازمة:

bash
sudo setsebool -P samba_enable_home_dirs on

الخطوة 8: الوصول إلى المشاركة من أنظمة Windows

من أنظمة Windows، يمكن الوصول إلى مجلد Samba باستخدام:

php-template
\\<IP-الخادم>\Public

يتم استبدال بعنوان IP الخاص بخادم RHEL. إذا كانت المشاركة خاصة، يُطلب اسم المستخدم وكلمة المرور التي تم إعدادها في Samba.


الخطوة 9: المراقبة واستكشاف المشكلات

Samba يوفر ملفات سجلات قيمة في /var/log/samba/ تساعد في مراقبة الأداء وتحديد المشكلات. يمكن استخدام الأوامر التالية لمراقبة السجلات:

bash
tail -f /var/log/samba/log.smbd tail -f /var/log/samba/log.nmbd

في حالة حدوث مشكلات في التوصيل أو الأذونات، يُفضل مراجعة الإعدادات في smb.conf والتأكد من صحة المستخدمين وأذونات النظام وSELinux والجدار الناري.


الخطوة 10: استخدام جدول لتوضيح الإعدادات الأساسية

العنصر الأمر أو الإعداد
تثبيت Samba sudo dnf install samba samba-client samba-common -y
إنشاء مجلد المشاركة sudo mkdir -p /srv/samba/share
تغيير الأذونات sudo chown -R nobody:nobody /srv/samba/share
ملف الإعداد الرئيسي /etc/samba/smb.conf
بدء الخدمة sudo systemctl enable smb --now
إضافة مستخدم Samba sudo smbpasswd -a sambauser
تفعيل الجدار الناري sudo firewall-cmd --permanent --zone=public --add-service=samba && reload
إعداد SELinux sudo chcon -t samba_share_t /srv/samba/share -R
الوصول من Windows \\\Public

الختام

يمثل Samba أداة قوية لإعداد مشاركة الملفات على Red Hat Enterprise Linux، خاصة في البيئات التي تتطلب تكاملاً مع أنظمة Windows. من خلال تثبيت الحزم المطلوبة، إعداد المجلدات والتصاريح، وتكوين الجدار الناري وSELinux بشكل صحيح، يمكن إعداد بيئة مشاركة مستقرة وآمنة. توفر Samba مرونة كبيرة سواء في بيئات العمل الصغيرة أو الشبكات المعقدة، وتظل واحدة من أفضل الحلول لمشاركة الملفات في عالم الخوادم المفتوحة المصدر.

المراجع:

  1. The Samba Project – https://www.samba.org

  2. Red Hat Documentation – https://access.redhat.com/documentation