ذكري المظهر

كيفية تثبيت وتكوين خادم NFS على أوبونتو 18.04

DHCP foliver -اضافة خادم DHCP احتياطي

DHCP foliver -اضافة خادم DHCP احتياطي

جدول المحتويات:

Anonim

نظام ملفات الشبكة (NFS) هو بروتوكول نظام ملفات موزع يسمح لك بمشاركة الأدلة عن بعد عبر شبكة. مع NFS ، يمكنك تحميل الدلائل عن بعد على نظامك والعمل مع الملفات الموجودة على الجهاز البعيد كما لو كانت ملفات محلية.

بروتوكول NFS غير مشفر بشكل افتراضي وعلى عكس Samba ، فهو لا يوفر مصادقة المستخدم. يتم تقييد الوصول إلى الخادم بواسطة عناوين IP للعملاء أو أسماء المضيفين.

في هذا البرنامج التعليمي ، سنتناول كيفية إعداد خادم NFSv4 على Ubuntu 18.04. سنعرض لك أيضًا كيفية تركيب نظام ملفات NFS على العميل.

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

يفترض هذا المثال أن لديك خادمًا واحدًا يقوم بتشغيل Ubuntu 18.04 وآخر يعمل على أي توزيع Linux آخر. يجب أن يكون الخادم والعملاء قادرين على التواصل مع بعضهم البعض عبر شبكة خاصة. إذا كان موفر الاستضافة لا يقدم عناوين IP خاصة ، فيمكنك استخدام عناوين IP العامة وتكوين جدار حماية الخادم للسماح بحركة المرور على المنفذ 2049 فقط من مصادر موثوقة.

الأجهزة في هذا المثال لديها عناوين IP التالية:

NFS Server IP: 192.168.33.10 NFS Clients IPs: From the 192.168.33.0/24 range

إعداد خادم NFS

سنبدأ بتثبيت خادم NFS وتكوينه.

تثبيت خادم NFS

قم بتحديث فهرس الحزم وتثبيت حزمة خادم NFS:

sudo apt update sudo apt install nfs-kernel-server

بمجرد اكتمال التثبيت ، ستبدأ خدمات NFS تلقائيًا.

بشكل افتراضي ، في Ubuntu 18.04 NFS ، الإصدار 2 معطل. يتم تمكين الإصدارات 3 و 4. يمكنك التحقق من ذلك عن طريق تشغيل أمر cat التالي:

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

NFSv2 قديم جدًا الآن ، ولا يوجد سبب لتمكينه.

يتم ضبط خيارات تكوين خادم NFS في /etc/default/nfs-kernel-server و /etc/default/nfs-common files. الإعدادات الافتراضية كافية في حالتنا.

إنشاء أنظمة الملفات

عند تكوين خادم NFSv4 ، من الممارسات الجيدة استخدام دليل جذر NFS عالمي وربط الدلائل الفعلية بنقطة تحميل المشاركة. في هذا المثال ، سوف نستخدم مدير /srv/nfs4 كجذر NFS.

سنقوم بمشاركة دليلين ( /var/www و /opt/backups ) ، مع إعدادات تهيئة مختلفة ، لشرح كيفية تكوين حوامل NFS بشكل أفضل.

يمتلك /var/www/ المستخدم والمجموعة www-data و /opt/backups مملوك من root .

قم بإنشاء نظام تصدير الملفات باستخدام الأمر mkdir :

sudo mkdir -p /srv/nfs4/backups sudo mkdir -p /srv/nfs4/www

تحميل الدلائل الفعلية:

sudo mount --bind /opt/backups /srv/nfs4/backups sudo mount --bind /var/www /srv/nfs4/www

لجعل عملية الربط دائمة ، افتح الملف /etc/fstab :

sudo nano /etc/fstab

وأضف الأسطر التالية:

/ الخ / fstab

/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0

تصدير أنظمة الملفات

والخطوة التالية هي تحديد أنظمة الملفات التي سيتم تصديرها من قبل خادم NFS وخيارات المشاركات والعملاء المسموح لهم بالوصول إلى أنظمة الملفات هذه. للقيام بذلك ، افتح الملف /etc/exports :

sudo nano /etc/exports يحتوي الملف /etc/exports export أيضًا على تعليقات تصف كيفية تصدير دليل.

في حالتنا ، نحتاج إلى تصدير الدلائل الشبكية backups والسماح بالوصول فقط من العملاء على شبكة 192.168.33.0/24 :

/ الخ / الصادرات

/srv/nfs4 192.168.33.0/24(rw, sync, no_subtree_check, crossmnt, fsid=0) /srv/nfs4/backups 192.168.33.0/24(ro, sync, no_subtree_check) 192.168.33.3(rw, sync, no_subtree_check) /srv/nfs4/www 192.168.33.110(rw, sync, no_subtree_check)

يحتوي السطر الأول على fsid=0 والذي يعرف الدليل الجذر /srv/nfs . يُسمح بالوصول إلى وحدة تخزين NFS هذه فقط للعملاء من الشبكة الفرعية 192.168.33.0/24 . crossmnt الخيار crossmnt لمشاركة الدلائل التي هي الدلائل الفرعية للدليل الذي تم تصديره.

في السطر الثاني يوضح كيفية تحديد قواعد تصدير متعددة لنظام ملفات واحد. يقوم بتصدير الدليل /srv/nfs4/backups ويسمح فقط بالوصول للقراءة إلى نطاق 192.168.33.0/24 بأكمله وكلاهما من الوصول للقراءة والكتابة إلى 192.168.33.3 . يخبر خيار sync NFS بكتابة التغييرات على القرص قبل الرد.

يجب أن يكون السطر الأخير واضحاً. لمزيد من المعلومات حول جميع الخيارات المتاحة ، اكتب man exports في جهازك.

احفظ الملف وقم بتصدير المشاركات:

sudo exportfs -ra

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

لعرض الصادرات النشطة الحالية وحالتها ، استخدم:

sudo exportfs -v

سيشمل الإخراج جميع المشاركات مع خياراتها. كما ترى ، هناك أيضًا خيارات لم نحددها في ملف /etc/exports . هذه هي الخيارات الافتراضية ، وإذا كنت تريد تغييرها ، فستحتاج إلى تعيين هذه الخيارات بشكل صريح.

/srv/nfs4/backups 192.168.33.3(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(rw, wdelay, crossmnt, root_squash, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(ro, wdelay, root_squash, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)

على Ubuntu ، يتم تمكين root_squash افتراضيًا. هذا أحد أهم الخيارات المتعلقة بأمان NFS. يمنع المستخدمين الجذر المتصلين من العملاء من الحصول على امتيازات الجذر على المشاركات المحمّلة. سيتم تعيين الجذر UID و GID إلى nobody / nogroup UID / GID .

لكي يتمكن المستخدمون على أجهزة العميل من الوصول ، تتوقع NFS أن يتطابق مع معرف المستخدم والمجموعة مع المستخدم على الخادم. خيار آخر هو استخدام ميزة idmapping NFSv4 التي تترجم معرفات المستخدم والمجموعة إلى أسماء والعكس.

هذا هو. في هذه المرحلة ، قمت بإعداد خادم NFS على خادم Ubuntu. يمكنك الآن الانتقال إلى الخطوة التالية وتكوين العملاء والاتصال بخادم NFS.

تكوين جدار الحماية

على افتراض أنك تستخدم UFW لإدارة جدار الحماية الخاص بك للسماح بالوصول من الشبكة الفرعية 192.168.33.0/24 فأنت بحاجة إلى تشغيل الأمر التالي:

sudo ufw allow from 192.168.33.0/24 to any port nfs

للتحقق من تشغيل التغيير:

sudo ufw status

يجب أن يُظهر الإخراج أن حركة المرور على المنفذ 2049 مسموح بها:

To Action From -- ------ ---- 2049 ALLOW 192.168.33.0/24 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)

إعداد عملاء NFS

الآن بعد أن تم إعداد خادم NFS ويتم تصدير المشاركات في الخطوة التالية ، قم بتكوين العملاء وتحميل أنظمة الملفات عن بُعد.

يمكنك أيضًا تثبيت مشاركة NFS على أجهزة macOS و Windows ولكن سنركز على أنظمة Linux.

تثبيت عميل NFS

على الأجهزة العميلة ، نحتاج إلى تثبيت الأدوات المطلوبة فقط لتثبيت أنظمة ملفات NFS عن بعد.

  • قم بتثبيت عميل NFS على دبيان وأوبونتو

    اسم الحزمة التي تتضمن برامج لتركيب أنظمة ملفات NFS على التوزيعات المستندة إلى دبيان هو أمر nfs-common . لتثبيته تشغيل:

    sudo apt update sudo apt install nfs-common

    تثبيت عميل NFS على CentOS و Fedora

    على ريد هات ومشتقاته تثبيت حزمة nfs-utils :

    sudo yum install nfs-utils

تركيب أنظمة الملفات

سنعمل على الجهاز العميل باستخدام IP 192.168.33.110 الذي لديه حق الوصول للقراءة والكتابة إلى نظام الملفات /srv/nfs4/www وقراءة الوصول فقط إلى نظام الملفات /srv/nfs4/backups .

قم بإنشاء دليلين جديدين لنقاط التحميل. يمكنك إنشاء هذه الدلائل في أي مكان تريده.

sudo mkdir -p /backups sudo mkdir -p /srv/www

قم بتثبيت أنظمة الملفات التي تم تصديرها باستخدام الأمر mount :

sudo mount -t nfs -o vers=4 192.168.33.10:/backups /backups sudo mount -t nfs -o vers=4 192.168.33.10:/www /srv/www

حيث 192.168.33.10 هو IP لملقم NFS. يمكنك أيضًا استخدام اسم المضيف بدلاً من عنوان IP ، لكن يجب أن يكون قابلاً للحل بواسطة جهاز العميل. يتم ذلك عادةً عن طريق تعيين اسم المضيف إلى IP في ملف /etc/hosts .

عند تثبيت نظام ملفات NFSv4 ، تحتاج إلى حذف دليل جذر NFS ، لذلك بدلاً من /srv/nfs4/backups تحتاج إلى استخدام /backups .

تحقق من تثبيت أنظمة الملفات عن بُعد بنجاح باستخدام الأمر mount أو df :

df -h

سيقوم الأمر بطباعة جميع أنظمة الملفات المحملة. الخطان الأخيران هما الأسهم المركبة:

Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 38G 1.7G 36G 5% / devtmpfs 236M 0 236M 0% /dev tmpfs 244M 0 244M 0% /dev/shm tmpfs 244M 4.5M 240M 2% /run tmpfs 244M 0 244M 0% /sys/fs/cgroup /dev/sda2 1014M 87M 928M 9% /boot tmpfs 49M 0 49M 0% /run/user/1000 192.168.33.10:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.10:/www 9.7G 1.2G 8.5G 13% /srv/www

لجعل عمليات التثبيت دائمة عند إعادة التشغيل ، افتح الملف /etc/fstab :

sudo nano /etc/fstab

وأضف الأسطر التالية:

/ الخ / fstab

192.168.33.10:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.10:/www /srv/www nfs defaults, timeo=900, retrans=5, _netdev 0 0

للعثور على مزيد من المعلومات حول الخيارات المتاحة عند تثبيت نظام ملفات NFS ، اكتب man nfs في جهازك الطرفي.

هناك خيار آخر لتحميل أنظمة الملفات البعيدة وهو استخدام أداة autofs أو لإنشاء وحدة systemd.

اختبار وصول NFS

دعنا نختبر الوصول إلى المشاركات عن طريق إنشاء ملف جديد لكل منهم.

أولاً ، حاول إنشاء ملف اختبار إلى دليل /backups باستخدام الأمر touch :

sudo touch /backups/test.txt

يتم تصدير /backup ملف نظام /backup للقراءة فقط وكما هو متوقع سترى رسالة خطأ تم Permission denied :

touch: cannot touch '/backups/test': Permission denied

بعد ذلك ، حاول إنشاء ملف اختبار إلى دليل /srv/www كجذر باستخدام الأمر sudo :

sudo touch /srv/www/test.txt

مرة أخرى ، سترى Permission denied الرسالة.

touch: cannot touch '/srv/www': Permission denied

على افتراض أن لديك استخدام www-data على جهاز العميل بنفس UID و GID كما هو الحال على الخادم البعيد (والذي يجب أن يكون عليه الحال ، على سبيل المثال ، إذا قمت بتثبيت nginx على كلا الجهازين) ، يمكنك اختبار إنشاء ملف كمستخدم www-data مع:

sudo -u www-data touch /srv/www/test.txt

لن يعرض الأمر أي إخراج مما يعني أنه تم إنشاء الملف بنجاح.

للتحقق من ذلك ، قم /srv/www الملفات في دليل /srv/www :

ls -la /srv/www

يجب أن يظهر الإخراج الملف المنشأ حديثًا:

drwxr-xr-x 3 www-data www-data 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 www-data www-data 0 Jun 23 21:58 index.html -rw-r--r-- 1 www-data www-data 0 Jun 23 22:18 test.txt

إلغاء تحميل نظام الملفات NFS

sudo umount /backups

إذا تم تعريف نقطة التحميل في ملف /etc/fstab ، فتأكد من إزالة الخط أو التعليق عليه بإضافة # في بداية السطر.

استنتاج

في هذا البرنامج التعليمي ، أظهرنا لك كيفية إعداد خادم NFS وكيفية تركيب أنظمة الملفات عن بعد على الأجهزة العميلة. إذا كنت تنفذ NFS في إنتاج ومشاركة بيانات معقولة ، فمن المستحسن تمكين مصادقة kerberos.

كبديل لـ NFS ، يمكنك استخدام SSHFS لتركيب الدلائل عن بعد عبر اتصال SSH. يتم تشفير SSHFS بشكل افتراضي وأسهل بكثير في التكوين والاستخدام.

لا تتردد في ترك تعليق إذا كان لديك أي أسئلة.

أوبونتو nfs جبل المحطة