NFS (نظام ملفات الشبكة) من Sun Microsystems هو بنية نظام ملفات موزعة قائمة على RPC تسمح للأجهزة المتصلة بالشبكة باستخدام الخوادم التي تعمل بنظام NFS عبر الشبكة كمحركات أقراص محلية.
إليك دليل خطوة بخطوة لإعداد خادم NFS وتكوينه على جهاز Linux.
ما هو نظام ملفات الشبكة؟
يحتوي نظام ملفات NFS على أربعة بروتوكولات. عندما يكون الخادم جاهزًا ، يقوم بإعلام portmap (الخادم الذي يحول البروتوكول إلى أرقام المنافذ) بالمنفذ المراد استخدامه ويوفر رقم برنامج RPC الذي يتم التحكم فيه.
عند استخدام نظام Linux مضمن ، من الملائم جدًا تشغيل جهازك عبر مشاركة ملف NFS عبر الشبكة بدلاً من تشغيلها مباشرة من جهاز التخزين (NAND flash ، eMMC ، MMC ، إلخ.).
على الرغم من ندرة ذلك ، فقد ترغب أيضًا في تحميل مشاركة NFS وإجراء مشاركات الملفات باستخدامها بعد بدء تشغيل النظام ، حتى إذا لم تقم بتشغيل نظامك مباشرةً من مشاركة NFS. لكي يعمل كلا السيناريوهين ، يجب عليك أولاً تثبيت خادم NFS على الكمبيوتر الذي تقوم بالتطوير عليه.
كيفية تثبيت NFS على نظام Linux
إذا كنت تستخدم ملف نظام مبني على دبيان مثل Ubuntu أو Linux Mint ، يجب عليك تثبيت ملف nfs-kernel-server الحزمة على النحو التالي:
sudo apt تثبيت nfs- نواة-الخادم
على Arch Linux:
sudo pacman-s nfs-utils
على Fedora و CentOS و RHEL:
sudo dnf -y تثبيت NFS-utils
في نهاية العملية ، سيتم تشغيل خادم NFS تلقائيًا. ومع ذلك ، في هذه المرحلة ، لا يعرف حتى الآن الأدلة الموجودة على جهاز الكمبيوتر الخاص بك التي تريد مشاركتها عبر الشبكة. لذلك ، لا يوفر أي مشاركة بشكل افتراضي.
يمكنك فتح عدة أدلة على نفس الخادم للسماح بمشاركة الشبكة مع تراخيص وقيود مختلفة.
تكوين خادم NFS على نظام Linux
لمشاركة أي دليل عبر خادم NFS ، من الضروري تكوين إعداد مرتبط بالدليل في ملف /etc/exports ملف. افتح الملف بأي محرر نصوص من اختيارك. تأكد من إضافة بادئة sudo إلى الأمر.
sudo vim / الخ /صادرات
قد تتساءل عما تعنيه خيارات التعيين التي تراها هنا:
- root_squash: يضع علامة sudo المفوض للمستخدمين العميل على أنه لا يوجد مستخدم أو مجموعة على NFS
- no_root_squash: تعطيل سحق الجذر
- all_squash: على عكس root_squash ، فإنه يسمح بتعيين جميع المستخدمين على أنهم مستخدمون ومجموعة لا أحد. يتم استخدامه بشكل عام للوصول العام.
- no_all_squash: عكس all_squash ؛ هذا الخيار هو الافتراضي
عندما يحاول نظام خارج نطاقات IP التي تسمح بها في ملف / etc / export على خادم NFS الوصول إلى المورد ذي الصلة ، سيرفض خادم NFS الطلب.
قد تتلقى رسائل "تم رفض الوصول بواسطة الخادم" أثناء التركيب على نظامك المضمن. ستظهر رسائل خطأ مشابهة لما يلي في نهاية ملف /var/log/syslog ملف على الكمبيوتر حيث يعمل خادم NFS:
rpc.mountd [1041]: رفض طلب التحميل من192.168.2.2إلى عن على / home / example / casper / target (/home/example / casper / target): مضيف لا مثيل له
عندما ترى رسالة سجل مضيف لا مثيل لها مثل الرسالة أعلاه ، يجب عليك توسيع قسم IP / Netmask للقاعدة ذات الصلة في الملف / etc / export أو استخدام النجمة (*) ذات طابع خاص إذا كنت تريد منح الوصول إلى جميع عناوين IP.
يجب إعادة تشغيل خدمة NFS بعد إجراء تعديلات على ملف /etc/exports ملف:
إعادة تشغيل sudo service nfs-kernel-server
أو ، إذا كانت التوزيعة الخاصة بك تأتي مع systemctl ، فقم بتشغيل الأمر التالي:
سودوsystemctlإعادة بدءNFS- الخادم.الخدمات
يمكنك ايضا ان تعطي ال -r المعلمة إلى exportfs الأمر بحيث يعيد مشاركة الدلائل التي غيرت أي إعدادات متعلقة بالمشاركة:
sudo exportfs -r
إصلاح مشكلة زمن الوصول
عند استخدام الإصدار 4 من بروتوكول NFS والإصدارات الأحدث على الخادم الخاص بك ، فقد يكون هناك تأخيرات تصل إلى 15 ثانية أثناء ذلك عملية التحميل من جانب العميل في سيناريوهات التشغيل التقليدية مع التكوينات الافتراضية لـ NFS الخادم. قد تظهر هذه المشكلة في بعض إصدارات Debian و Fedora و Ubuntu.
إذا كنت تعاني من تأخر تحميل مماثل ، يمكنك ذلك تحقق من ملفات السجل من جانب الخادم (/var/log/syslog, /var/log/messages) لرسالة سجل مشابهة لما يلي:
... RPC: انتهت مهلة استدعاء AUTH_GSS
تشير هذه الرسالة إلى أن مصادقة Kerberos فشلت وانتهت مهلتها. ربما لن تحتاج إلى بروتوكول Kerberos لمصادقة الأمان على الشبكة في بيئتك. حتى إذا كنت على شبكة تم تكوينها بهذه الطريقة ، على الأقل مع أنظمة Linux المضمنة لديك ، فلن تحتاج إلى تمكين مصادقة Kerberos.
على الرغم من تقديم بدائل لتشغيل خدمة GSSD مع NFS لإصلاح المشكلة ، إلا أن هذه الأساليب غير متوفرة نفس التأثير في جميع التوزيعات وإصدارات الحزم ، وبالتالي ، فمن المنطقي معالجة هذه المشكلة من جذر.
يجب عليك حظر (أو القائمة السوداء) لملف rpcsec_gss_krb5 وحدة kernel من التحميل على نظام Linux حيث يتم تنفيذ خادم NFS.
لتفعيل هذا الخيار في كل مرة تقوم فيها بإعادة تشغيل جهاز الكمبيوتر ، إنشاء ملف جديد اتصل /etc/modprobe.d/nfs-gss-blacklist.conf وأضف إليها الأسطر التالية:
القائمة السوداء rpcsec_gss_krb5
بمجرد حفظ الملف وإعادة تشغيل النظام ، ستختفي مشكلة زمن الوصول.
لماذا تستخدم خادم NFS؟
NFS بسيط وسهل الإعداد. فهو يسمح بإدارة مركزية ، مما يقلل من الحاجة إلى برامج ومساحة تخزين إضافية على جهاز الكمبيوتر الشخصي للمستخدم. على جهاز واحد ، يمكن لعدة مستخدمين مشاركة نفس مساحة القرص. يمكنهم وضع هذه الأقراص فوق نظام الملفات الخاص بهم لتوسيع مساحة التخزين.
تسمح مشاركة NFS للبرامج التي تتطلب مساحة تخزين كبيرة أن يتم تجميعها على خادم واحد. يمكن أن يؤدي هذا إلى توفير كبير في مساحة القرص. بينما كانت إصدارات NFS السابقة ضعيفة ، فقد قدمت الإصدارات الأحدث مستويات إضافية من الحماية ، بما في ذلك مصادقة Kerberos.
ومع ذلك ، هناك بعض العيوب أيضًا. تم العثور على NFS يتباطأ في بعض الحالات أثناء حركة مرور الشبكة الكثيفة. المشاركة مع Windows ممكنة ، ولكنها قد تتطلب بعض تطبيقات الطرف الثالث. لكن هذه ليست ممارسة معقولة للغاية من حيث الأمن. إذا لم يكن التكوين صحيحًا ، فقد يحدث وصول غير مصرح به.
أصبحت مشاركة نظام الملفات سهلة على Linux باستخدام NFS
تعتبر معرفة مشاكل الأمان وإيجاد الحلول من أهم مهام مسؤول النظام. من الضروري معرفة الإجراءات الأمنية لجميع أنظمة مشاركة الملفات وأدوات الإدارة وليس فقط NFS.