بروتوكولات التخزين الشبكي: إعداد NFS و Samba لتبادل الملفات

دقائق القراءة: 5

بروتوكولات التخزين الشبكي: إعداد NFS و Samba لتبادل الملفات

يُعد التخزين الشبكي من الأساسيات المهمة في بيئات لينكس والشبكات الحديثة، لأنه يتيح مشاركة الملفات بين عدة أجهزة بطريقة مركزية ومنظمة. وبدلاً من نسخ البيانات يدوياً بين الخوادم أو أجهزة المستخدمين، يمكن الاعتماد على بروتوكولات مخصصة مثل NFS وSamba لتوفير وصول سهل وآمن إلى الملفات المشتركة.

الفرق الجوهري بينهما أن NFS يناسب غالباً بيئات لينكس/يونكس، بينما يركز Samba على التوافق مع أنظمة ويندوز عبر بروتوكول SMB/CIFS. اختيار البروتوكول الصحيح يعتمد على نوع الأجهزة، مستوى الأمان المطلوب، وطبيعة سير العمل داخل الشبكة.

في هذا الدليل سنشرح متى تستخدم كل بروتوكول، وكيفية إعداد خادم مشاركة ملفات بسيط وعملي. وإذا كنت بحاجة إلى مراجعة مفاهيم الشبكات أولاً، فسيكون من المفيد الاطلاع على أساسيات شبكات لينكس: العناوين، المنافذ، والبروتوكولات (IP, SSH, DNS)، وكذلك فهم بنية المسارات عبر هيكلية ملفات لينكس (Filesystem Hierarchy Standard – FHS).

ما هو NFS وما هي استخداماته؟

بروتوكول NFS اختصار لـ Network File System، ويُستخدم لتمكين جهاز عميل من الوصول إلى مجلد موجود على خادم كما لو كان جزءاً من نظام ملفاته المحلي. هذه الفكرة مفيدة جداً في بيئات الخوادم، مختبرات التطوير، والعقد التي تحتاج للوصول إلى نفس البيانات بشكل متكرر.

من أبرز مزاياه: البساطة، الأداء الجيد داخل الشبكات المحلية، وسهولة دمجه مع الصلاحيات التقليدية في لينكس. كما أن إعداده يصبح أكثر وضوحاً إذا كنت متمكناً من إدارة الصلاحيات والملكية (Chmod, Chown, Sudo) وإدارة المستخدمين والمجموعات (Users and Groups Management).

خطوات إعداد خادم NFS

ابدأ بتثبيت الحزمة الخاصة بالخادم. على توزيعات Debian وUbuntu يمكن استخدام الأمر التالي:

sudo apt update
sudo apt install nfs-kernel-server -y

بعد ذلك أنشئ المجلد الذي تريد مشاركته عبر الشبكة، ثم اضبط الملكية والصلاحيات بما يلائم المستخدمين المتوقعين:

sudo mkdir -p /srv/shared/nfs
sudo chown nobody:nogroup /srv/shared/nfs
sudo chmod 2775 /srv/shared/nfs

الخطوة التالية هي تعديل ملف الإعداد /etc/exports لتحديد من يستطيع الوصول إلى المجلد وبأي صلاحيات:

sudo nano /etc/exports

أضف السطر التالي كمثال لمشاركة المجلد مع شبكة محلية:

/srv/shared/nfs 192.168.1.0/24(rw,sync,no_subtree_check)

ثم طبّق التغييرات وأعد تشغيل الخدمة:

sudo exportfs -ra
sudo systemctl enable nfs-kernel-server
sudo systemctl restart nfs-kernel-server

إعداد عميل NFS وربط المشاركة

على الجهاز العميل، ثبّت أدوات العميل أولاً:

sudo apt update
sudo apt install nfs-common -y

أنشئ نقطة ربط محلية ثم اربط المجلد المشترك من الخادم:

sudo mkdir -p /mnt/nfs-share
sudo mount 192.168.1.10:/srv/shared/nfs /mnt/nfs-share

ولجعل الربط دائماً بعد إعادة التشغيل، أضف سطراً إلى ملف /etc/fstab:

192.168.1.10:/srv/shared/nfs /mnt/nfs-share nfs defaults,_netdev 0 0

يفضّل تقييد الوصول في /etc/exports بعناوين أو شبكات محددة فقط، وعدم استخدام إعدادات مفتوحة تسمح لأي جهاز بالوصول، خاصة في الشبكات الكبيرة أو المختلطة.

ما هو Samba ولماذا يُستخدم كثيراً؟

Samba هو الحل الأشهر لمشاركة الملفات والطابعات بين لينكس وويندوز. وهو يوفّر خادماً متوافقاً مع بروتوكول SMB، ما يجعله خياراً عملياً في الشركات الصغيرة، المكاتب، والبيئات التي تضم أنظمة تشغيل متعددة.

من أهم مميزاته أنه يسهّل الوصول إلى المجلدات المشتركة من مستكشف الملفات في ويندوز مباشرة، مع إمكان إدارة المستخدمين المحليين، كلمات المرور، والقيود على مستوى كل مشاركة. كما يتكامل مع إدارة الخدمات عبر إدارة الخدمات باستخدام (systemd) و (systemctl).

تثبيت Samba وإعداد مشاركة أساسية

على الخادم، ثبّت الحزمة المطلوبة:

sudo apt update
sudo apt install samba -y

بعدها أنشئ مجلداً للمشاركة واضبط صلاحياته:

sudo mkdir -p /srv/shared/samba
sudo chgrp sambashare /srv/shared/samba
sudo chmod 2770 /srv/shared/samba

الآن افتح ملف الإعداد الرئيسي /etc/samba/smb.conf وأضف مقطع مشاركة جديد في نهايته:

sudo nano /etc/samba/smb.conf
[SharedFiles]
   path = /srv/shared/samba
   browseable = yes
   read only = no
   guest ok = no
   valid users = @sambashare
   force group = sambashare
   create mask = 0660
   directory mask = 2770

بعد الحفظ، أنشئ مستخدماً إن لزم الأمر أو أضفه إلى المجموعة المناسبة، ثم عرّف له كلمة مرور خاصة بـ Samba:

sudo usermod -aG sambashare username
sudo smbpasswd -a username
sudo systemctl restart smbd

الوصول إلى مشاركة Samba من عميل

من جهاز ويندوز يمكن الوصول إلى المشاركة عبر كتابة عنوان مثل \\192.168.1.10\SharedFiles في مستكشف الملفات. أما على لينكس، فيمكن استخدام أمر قصير لاختبار المشاركات المتاحة:

smbclient -L //192.168.1.10 -U username

ويمكن ربط المشاركة محلياً إذا لزم الأمر باستخدام أدوات cifs-utils بعد تثبيتها.

تجنب تفعيل الخيار guest ok = yes في الشبكات الإنتاجية إلا عند وجود سبب واضح وسياسات عزل مناسبة، لأنه قد يفتح باباً لوصول غير مصرح به.

الفرق بين NFS و Samba: متى تختار كل واحد؟

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

  • NFS: مناسب للخوادم، التطبيقات الداخلية، وبيئات لينكس الموحدة.
  • Samba: مناسب للشبكات المختلطة بين لينكس وويندوز.
  • الأداء: NFS يتفوق غالباً في بيئات لينكس المحلية.
  • التوافق: Samba يتفوق عند الحاجة لدعم ويندوز.

الأمان، الجدار الناري، وحل المشكلات

بعد الإعداد، لا تكتفِ بتشغيل الخدمة فقط. افتح المنافذ الضرورية عبر الجدار الناري وفق البروتوكول المستخدم، وراجع مبادئ الحماية من خلال جدار الحماية (Firewall) وتأمين النظام (UFW, Firewalld, Iptables) وتأمين الخدمات العامة: إغلاق المنافذ غير المستخدمة وتغيير إعدادات SSH الافتراضية.

ولتشخيص المشكلات، تحقّق من حالة الخدمات بواسطة systemctl status وراجع السجلات عبر مراقبة السجلات (Logs) وتحليل الأخطاء (journalctl, /var/log). كما يمكن الاستفادة من تحليل حركة المرور عبر الشبكة باستخدام tcpdump و Wireshark CLI (TShark) إذا وُجدت مشكلة اتصال أو رفض جلسات.

وأخيراً، يجب الانتباه إلى أن بعض البيئات تستخدم SELinux أو AppArmor، وهي قد تمنع الوصول حتى لو بدت الإعدادات صحيحة. لذلك من المفيد مراجعة التحكم في الوصول الإلزامي (MAC) باستخدام SELinux أو AppArmor.

خاتمة

إعداد مشاركة ملفات عبر NFS أو Samba ليس مجرد مهمة تشغيلية، بل خطوة أساسية لتنظيم البيانات وتحسين التعاون بين الأنظمة والمستخدمين. الاختيار بينهما يعتمد على طبيعة البيئة: إن كانت لينكسية بحتة فـ NFS غالباً هو الأنسب، وإن كانت مختلطة أو تعتمد على ويندوز فـ Samba يمنحك مرونة أكبر.

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

2 comments

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *