از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
چگونه یک سرور NFS را نصب و پیکربندی کنیم CentOS 8
سرفصلهای مطلب
شبکه فایل سیستم (NFS) یک پروتکل سیستم فایل توزیع شده است که به شما امکان می دهد دایرکتوری های راه دور را از طریق شبکه به اشتراک بگذارید. با NFS، می توانید دایرکتوری های راه دور را روی سیستم خود نصب کنید و با فایل های موجود در دستگاه راه دور به گونه ای کار کنید که گویی فایل های محلی هستند.
پروتکل NFS به طور پیش فرض رمزگذاری نشده است و برخلاف سامبا، احراز هویت کاربر را ارائه نمی دهد. دسترسی به سرور توسط آدرس های IP یا نام میزبان مشتریان محدود می شود.
در این آموزش، مراحل لازم برای راه اندازی سرور NFSv4 را طی خواهید کرد CentOS 8. همچنین به شما نشان خواهیم داد که چگونه یک فایل سیستم NFS را بر روی کلاینت نصب کنید.
پیش نیازها
ما فرض می کنیم که شما یک سرور در حال اجرا دارید CentOS 8 که در آن سرور NFS و سایر ماشینهایی را که به عنوان کلاینتهای NFS عمل میکنند راهاندازی میکنیم. سرور و کلاینت ها باید بتوانند از طریق یک شبکه خصوصی با یکدیگر ارتباط برقرار کنند. اگر ارائه دهنده هاست شما آدرس های IP خصوصی را ارائه نمی دهد، می توانید از آدرس های IP عمومی استفاده کنید و فایروال سرور را برای اجازه دادن به ترافیک در پورت پیکربندی کنید. 2049
فقط از منابع معتبر
ماشین های موجود در این مثال دارای IP های زیر هستند:
NFS Server IP: 192.168.33.148
NFS Clients IPs: From the 192.168.33.0/24 range
سرور NFS را راه اندازی کنید
این بخش روش نصب بسته های لازم، ایجاد و صادرات پوشه های NFS و پیکربندی فایروال را توضیح می دهد.
نصب سرور NFS
بسته “nfs-utils” ابزارهای NFS و دیمون ها را برای سرور NFS فراهم می کند. برای نصب آن دستور زیر را اجرا کنید:
sudo dnf install nfs-utils
پس از اتمام نصب، سرویس NFS را با تایپ کردن فعال و راه اندازی کنید:
sudo systemctl enable --now nfs-server
به طور پیش فرض، روشن است CentOS 8 نسخه NFS 3 و 4.x فعال هستند، نسخه 2 غیرفعال است. NFSv2 اکنون بسیار قدیمی است و دلیلی برای فعال کردن آن وجود ندارد. برای تایید آن موارد زیر را اجرا کنید cat
دستور:
sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
گزینه های پیکربندی سرور NFS تنظیم شده است /etc/nfsmount.conf
و /etc/nfs.conf
فایل ها. تنظیمات پیش فرض برای آموزش ما کافی است.
ایجاد سیستم های فایل
هنگام پیکربندی سرور NFSv4، استفاده از دایرکتوری ریشه جهانی NFS و اتصال دایرکتوریهای واقعی به نقطه اتصال اشتراکگذاری، عمل خوبی است. در این مثال از /srv/nfs4
دایرکتوری به عنوان ریشه NFS.
برای توضیح بهتر روش پیکربندی پایههای NFS، دو فهرست را به اشتراک میگذاریم (/var/www
و /opt/backups
) با تنظیمات پیکربندی مختلف.
را /var/www/
متعلق به کاربر و گروه است apache
و /opt/backups
متعلق به root
.
فایل سیستم صادرات را با استفاده از mkdir
دستور:
sudo mkdir -p /srv/nfs4/{backups,www}
دایرکتوری های واقعی را سوار کنید:
sudo mount --bind /opt/backups /srv/nfs4/backups
sudo mount --bind /var/www /srv/nfs4/www
برای دائمی کردن پایههای اتصال، ورودیهای زیر را به آن اضافه کنید /etc/fstab
فایل:
sudo nano /etc/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
صادرات www
و 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
که دایرکتوری ریشه NFS را تعریف می کند /srv/nfs4
. دسترسی به این حجم NFS فقط برای مشتریان از 192.168.33.0/24
زیر شبکه را crossmnt
برای به اشتراک گذاشتن دایرکتوری هایی که زیرمجموعه های یک دایرکتوری صادراتی هستند، گزینه مورد نیاز است.
خط دوم روش تعیین چندین قانون صادرات را برای یک سیستم فایل نشان می دهد. صادر می کند /srv/nfs4/backups
دایرکتوری و فقط اجازه دسترسی خواندن به کل را می دهد 192.168.33.0/24
محدوده، و دسترسی خواندن و نوشتن به 192.168.33.3
. را sync
گزینه به NFS می گوید قبل از پاسخ دادن، تغییرات را روی دیسک بنویسد.
خط آخر باید خود توضیحی باشد. برای اطلاعات بیشتر در مورد همه گزینه های موجود، تایپ کنید man exports
در شما terminal.
فایل را ذخیره کنید و اشتراکها را صادر کنید:
sudo exportfs -ra
هر بار که دستور را تغییر می دهید باید دستور بالا را اجرا کنید /etc/exports
فایل. اگر خطا یا اخطاری وجود داشته باشد، روی صفحه نمایش داده می شود terminal.
برای مشاهده صادرات فعال فعلی و وضعیت آنها از:
sudo exportfs -v
خروجی شامل تمام سهام با گزینه های آنها خواهد بود. همانطور که می بینید، گزینه هایی نیز وجود دارد که ما در آن تعریف نکرده ایم /etc/exports
فایل. اینها گزینههای پیشفرض هستند و اگر میخواهید آنها را تغییر دهید، باید آن گزینهها را به صراحت تنظیم کنید.
/srv/nfs4/backups
192.168.33.3(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4/www 192.168.33.110(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4 192.168.33.0/24(sync,wdelay,hide,crossmnt,no_subtree_check,fsid=0,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4/backups
192.168.33.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)
root_squash
یکی از مهم ترین گزینه ها در مورد امنیت NFS است. این مانع از دسترسی کاربران روت متصل به کلاینتها به اشتراکگذاریهای نصب شده میشود. این نقشه ریشه خواهد داشت UID
و GID
به nobody
/nogroup
UID
/GID
.
برای دسترسی کاربران در ماشین های کلاینت، NFS انتظار دارد شناسه های کاربر و گروه مشتری با شناسه های روی سرور مطابقت داشته باشد. گزینه دیگر استفاده از ویژگی idmapping NFSv4 است که شناسه های کاربر و گروه را به نام و برعکس ترجمه می کند.
خودشه. در این مرحله، شما یک سرور NFS را بر روی خود راه اندازی کرده اید CentOS سرور اکنون می توانید به مرحله بعدی بروید و کلاینت ها را پیکربندی کنید و به سرور NFS متصل شوید.
پیکربندی فایروال
FirewallD راه حل پیش فرض فایروال در Centos 8 است.
سرویس NFS شامل قوانین از پیش تعریف شده برای اجازه دسترسی به سرور NFS است.
دستورات زیر برای همیشه اجازه دسترسی از 192.168.33.0/24
زیر شبکه:
sudo firewall-cmd --new-zone=nfs --permanent
sudo firewall-cmd --zone=nfs --add-service=nfs --permanent
sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent
sudo firewall-cmd --reload
سرویس گیرندگان NFS را تنظیم کنید
اکنون که سرور NFS راهاندازی شده است و اشتراکها صادر میشوند، گام بعدی پیکربندی کلاینتها و سوار کردن سیستمهای فایل راه دور است.
همچنین میتوانید اشتراک NFS را روی دستگاههای macOS و Windows نصب کنید، اما ما روی سیستمهای لینوکس تمرکز خواهیم کرد.
نصب کلاینت NFS
در ماشین های مشتری، ابزارهای مورد نیاز برای نصب سیستم های فایل NFS راه دور را نصب کنید.
-
کلاینت NFS را روی دبیان و اوبونتو نصب کنید
نام بسته ای که شامل برنامه هایی برای نصب فایل سیستم های NFS بر روی توزیع های مبتنی بر دبیان است
nfs-common
. برای نصب آن را اجرا کنید:sudo apt update
sudo apt install nfs-common
-
کلاینت NFS را روی آن نصب کنید CentOS و فدورا
روی Red Hat و مشتقات آن نصب کنید
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.148:/backups /backups
sudo mount -t nfs -o vers=4 192.168.33.148:/www /srv/www
جایی که 192.168.33.148
IP سرور NFS است. همچنین میتوانید به جای آدرس IP از نام میزبان استفاده کنید، اما باید توسط دستگاه مشتری قابل حل باشد. این معمولاً با نگاشت نام میزبان به IP در داخل انجام می شود /etc/hosts
فایل.
هنگام نصب فایل سیستم NFSv4، باید دایرکتوری ریشه NFS را حذف کنید، بنابراین به جای /srv/nfs4/backups
شما باید استفاده کنید /backups
.
بررسی کنید که فایل سیستم های راه دور با استفاده از mount یا با موفقیت نصب شده اند df
دستور:
df -h
این دستور تمام فایل سیستم های نصب شده را چاپ می کند. دو خط آخر سهام سوار شده هستند:
...
192.168.33.148:/backups 9.7G 1.2G 8.5G 13% /backups
192.168.33.148:/www 9.7G 1.2G 8.5G 13% /srv/www
برای دائمی کردن مانت ها در راه اندازی مجدد، آن را باز کنید /etc/fstab
فایل:
sudo nano /etc/fstab
و خطوط زیر را اضافه کنید:
192.168.33.148:/backups /backups nfs defaults,timeo=900,retrans=5,_netdev 0 0
192.168.33.148:/www /srv/www nfs defaults,timeo=900,retrans=5,_netdev 0 0
برای یافتن اطلاعات بیشتر در مورد گزینه های موجود هنگام نصب فایل سیستم NFS، تایپ کنید man nfs
در شما terminal.
یکی دیگر از گزینههای نصب فایل سیستمهای راه دور، استفاده از این است autofs
ابزار یا برای ایجاد یک واحد سیستم.
تست دسترسی NFS
بیایید دسترسی به اشتراکها را با ایجاد یک فایل جدید در هر یک از آنها آزمایش کنیم.
ابتدا سعی کنید یک فایل آزمایشی برای آن ایجاد کنید /backups
دایرکتوری با استفاده از touch
دستور:
sudo touch /backups/test.txt
را /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
را /var/www
دایرکتوری متعلق به apache
کاربر، و این سهم دارد root_squash
مجموعه گزینه، که کاربر ریشه را به nobody
کاربر و nogroup
گروهی که مجوز نوشتن به اشتراک راه دور را ندارد.
با فرض اینکه یک کاربر apache
در دستگاه مشتری با همان وجود دارد UID
و GID
همانطور که در سرور راه دور (که برای مثال اگر آپاچی را روی هر دو ماشین نصب کرده باشید، باید اینطور باشد)، می توانید برای ایجاد یک فایل به عنوان کاربر آزمایش کنید. apache
با:
sudo -u apache touch /srv/www/test.txt
دستور هیچ خروجی نشان نمی دهد، به این معنی که فایل با موفقیت ایجاد شده است.
برای تأیید آن، فایلهای موجود در فهرست را فهرست کنید /srv/www
فهرست راهنما:
ls -la /srv/www
خروجی باید فایل جدید ایجاد شده را نشان دهد:
drwxr-xr-x 3 apache apache 4096 Jun 23 22:18 .
drwxr-xr-x 3 root root 4096 Jun 23 22:29 ..
-rw-r--r-- 1 apache apache 0 Jun 23 21:58 index.html
-rw-r--r-- 1 apache apache 0 Jun 23 22:18 test.txt
باز کردن سیستم فایل NFS
اگر دیگر نیازی به اشتراکگذاری راه دور NFS ندارید، میتوانید آن را مانند هر سیستم فایل نصبشده دیگری با استفاده از دستور umount جدا کنید. به عنوان مثال، برای unmount کردن /backup
به اشتراک بگذارید که می دوید:
sudo umount /backups
اگر نقطه اتصال در تعریف شده باشد /etc/fstab
فایل، مطمئن شوید که خط را حذف کرده اید یا با اضافه کردن آن، آن را نظر دهید #
در ابتدای خط
نتیجه
در این آموزش، روش راه اندازی یک سرور NFS و روش نصب فایل سیستم های راه دور بر روی ماشین های کلاینت را به شما نشان داده ایم. اگر NFS را در تولید و به اشتراک گذاری داده های معقول پیاده سازی می کنید، ایده خوبی است که احراز هویت kerberos را فعال کنید.
به عنوان جایگزینی برای NFS، می توانید از SSHFS برای نصب دایرکتوری های راه دور بر روی یک اتصال SSH استفاده کنید. SSHFS به طور پیش فرض رمزگذاری شده است و پیکربندی و استفاده بسیار آسان تر است.
در صورت داشتن هر گونه سوال در کامنت بگذارید.
terminal
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-27 14:28:02