إعداد تشارك الملفات على 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 عبر مستودعات النظام الرسمية. لتثبيت الحزمة، يُستخدم الأمر التالي:
bashsudo dnf install samba samba-client samba-common -y
يؤدي هذا الأمر إلى تثبيت الحزمة الأساسية لخادم Samba، بالإضافة إلى الحزم اللازمة للتفاعل مع الخوادم الأخرى.
الخطوة 2: إنشاء مجلد للمشاركة
لنفترض أننا نرغب بمشاركة مجلد باسم /srv/samba/share. نقوم بإنشائه وتعيين الأذونات اللازمة له كما يلي:
bashsudo 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:
bashsudo 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 عبر الجدار الناري، يجب تفعيل الخدمة بالشكل التالي:
bashsudo firewall-cmd --permanent --zone=public --add-service=samba sudo firewall-cmd --reload
الخطوة 6: تفعيل وتشغيل خدمة Samba
بعد الانتهاء من التثبيت والتكوين، يجب تفعيل الخدمات وتشغيلها:
bashsudo systemctl enable smb --now
sudo systemctl enable nmb --now
للتحقق من حالة الخدمة:
bashsudo systemctl status smb sudo systemctl status nmb
الخطوة 7: إعداد SELinux
إذا كان SELinux مفعلًا في النظام، يجب التأكد من تعيين السياقات المناسبة للمجلدات المشتركة. يمكن استخدام الأمر التالي لضبط السياق الأمني:
bashsudo chcon -t samba_share_t /srv/samba/share -R
وللتحقق من إعدادات SELinux الخاصة بـ Samba:
bashsudo getsebool -a | grep samba
ولتفعيل الخيارات اللازمة:
bashsudo setsebool -P samba_enable_home_dirs on
الخطوة 8: الوصول إلى المشاركة من أنظمة Windows
من أنظمة Windows، يمكن الوصول إلى مجلد Samba باستخدام:
php-template\\<IP-الخادم>\Public
يتم استبدال بعنوان IP الخاص بخادم RHEL. إذا كانت المشاركة خاصة، يُطلب اسم المستخدم وكلمة المرور التي تم إعدادها في Samba.
الخطوة 9: المراقبة واستكشاف المشكلات
Samba يوفر ملفات سجلات قيمة في /var/log/samba/ تساعد في مراقبة الأداء وتحديد المشكلات. يمكن استخدام الأوامر التالية لمراقبة السجلات:
bashtail -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 | \\ |
الختام
يمثل Samba أداة قوية لإعداد مشاركة الملفات على Red Hat Enterprise Linux، خاصة في البيئات التي تتطلب تكاملاً مع أنظمة Windows. من خلال تثبيت الحزم المطلوبة، إعداد المجلدات والتصاريح، وتكوين الجدار الناري وSELinux بشكل صحيح، يمكن إعداد بيئة مشاركة مستقرة وآمنة. توفر Samba مرونة كبيرة سواء في بيئات العمل الصغيرة أو الشبكات المعقدة، وتظل واحدة من أفضل الحلول لمشاركة الملفات في عالم الخوادم المفتوحة المصدر.
المراجع:
-
The Samba Project – https://www.samba.org
-
Red Hat Documentation – https://access.redhat.com/documentation

