NFS (Network File System) של Sun Microsystems הוא מבנה מערכת קבצים מבוזרת מבוסס RPC המאפשר למכשירים ברשת להשתמש בשרתים המריצים NFS על גבי רשת ככוננים המקומיים שלהם.
להלן מדריך שלב אחר שלב להגדרה והגדרה של שרת NFS במחשב לינוקס.
מהי מערכת קבצים ברשת?
למערכת הקבצים NFS יש ארבעה פרוטוקולים. כאשר השרת מוכן, הוא מודיע ל-portmap (השרת הממיר פרוטוקול למספרי יציאות) על היציאה לשימוש ומספק את מספר תוכנית ה-RPC המבוקרת.
בעת שימוש במערכת לינוקס משובצת, זה מאוד נוח לאתחל את המכשיר שלך באמצעות שיתוף קבצים של NFS דרך הרשת במקום להפעיל אותה ישירות מהתקן האחסון (NAND flash, eMMC, MMC, וכו.).
למרות שהם נדירים יותר, ייתכן שתרצה לטעון משותף NFS ולבצע שיתופי קבצים באמצעותו לאחר אתחול המערכת, גם אם אינך מאתחל את המערכת שלך ישירות משיתוף ה-NFS. כדי ששני התרחישים יפעלו, תחילה עליך להתקין שרת NFS במחשב שבו אתה מפתח.
כיצד להתקין NFS על לינוקס
אם אתה משתמש ב- a מערכת מבוססת דביאן כגון Ubuntu או Linux Mint, עליך להתקין את שרת nfs-kernel חבילה כדלקמן:
sudo apt להתקין nfs-kernel-שרת
על Arch Linux:
sudo pacman -S nfs-utils
על פדורה, CentOS ו-RHEL:
sudo dnf -y להתקין nfs-utils
בסוף התהליך, שרת ה-NFS שלך יפעל אוטומטית. עם זאת, בשלב זה, הוא עדיין לא יודע אילו ספריות במחשב שלך אתה רוצה לשתף ברשת. לכן, הוא אינו מספק שיתוף כברירת מחדל.
אתה יכול לפתוח מספר ספריות באותו שרת כדי לאפשר שיתוף רשת עם הרשאות והגבלות שונות.
הגדרת שרת NFS ב-Linux
כדי לשתף ספריה כלשהי על שרת NFS, יש צורך להגדיר הגדרה הקשורה לספרייה ב- /etc/exports קוֹבֶץ. פתח את הקובץ עם כל עורך טקסט לבחירתך. הקפד להוסיף את הקידומת sudo לפקודה.
sudo vim /etc/יצוא
אולי אתה תוהה מה המשמעות של אפשרויות המיפוי שאתה רואה כאן:
- root_squash: מסמן משתמשי לקוח מורשים של sudo כמשתמשים וקבוצה של אף אחד ב-NFS
- no_root_squash: משבית את מעיכת השורשים
- הכל_סקווש: בניגוד ל-root_squash, הוא מאפשר למפות את כל המשתמשים בתור המשתמש והקבוצה של אף אחד. הוא משמש בדרך כלל לגישה לציבור.
- no_all_squash: ההפך מכל_סקווש; אפשרות זו היא ברירת המחדל
כאשר מערכת מחוץ לטווחי ה-IP שאתה מאפשר בקובץ /etc/exports בשרת ה-NFS מנסה לגשת למשאב הרלוונטי, שרת ה-NFS ידחה את הבקשה.
ייתכן שתקבל הודעות "גישה נדחתה על ידי השרת" בזמן ההתקנה על המערכת המשובצת שלך. הודעות שגיאה דומות להלן יופיעו בסוף /var/log/syslog קובץ במחשב שבו פועל שרת NFS:
rpc.mountd[1041]: סירב לבקשת הרכבה מ192.168.2.2ל /home/example/casper/target (/home/example/casper/target): מארח ללא תחרות
כאשר אתה רואה הודעת יומן מארח ללא התאמה כמו זו שלמעלה, עליך להרחיב את קטע IP/Netmask של הכלל הרלוונטי בקובץ /etc/exports או להשתמש ב- כּוֹכָבִית (*) תו מיוחד אם ברצונך להעניק גישה לכל כתובות ה-IP.
עליך להפעיל מחדש את שירות NFS לאחר ביצוע שינויים ב- /etc/exports קוֹבֶץ:
הפעלה מחדש של שירות sudo nfs-kernel-server
לחלופין, אם ההפצה שלך מגיעה עם systemctl, הפעל את הפקודה הבאה:
סודוsystemctlאתחולשרת nfs.שֵׁרוּת
אתה יכול גם לתת את -ר פרמטר ל exportfs הפקודה כך שהיא תשתף מחדש ספריות ששינו הגדרות כלשהן הקשורות לשיתוף:
sudo exportfs -r
תיקון בעיית השהיית הר
כאשר אתה משתמש בפרוטוקול NFS גרסה 4 ומעלה בשרת שלך, ייתכנו עיכובים של עד 15 שניות במהלך תהליך ההרכבה בצד הלקוח בתרחישי הפעלה מסורתיים עם תצורות ברירת המחדל של NFS שרת. בעיה זו עשויה להופיע בחלק מהגרסאות של דביאן, פדורה ואובונטו.
אם אתה חווה פיגור דומה, אתה יכול בדוק את קבצי היומן בצד השרת (/var/log/syslog, /var/log/messages) עבור הודעת יומן דומה לזו הבאה:
... RPC: הזמן הקצוב להתקשרות AUTH_GSS
הודעה זו מציינת שהאימות של Kerberos נכשל ופג הזמן הקצוב. סביר להניח שלא תזדקק לפרוטוקול Kerberos עבור אימות אבטחה ברשת בסביבה שלך. גם אם אתה נמצא ברשת המוגדרת כך, לפחות עם מערכות לינוקס המשובצות שלך, לא תצטרך להפעיל אימות Kerberos.
למרות שהוצעו חלופות להפעלת שירות GSSD עם NFS לתיקון הבעיה, אין לגישות אלו אותה השפעה בכל ההפצות וגרסאות החבילות, ולכן, רציונלי ביותר לטפל בבעיה זו מתוך שורש.
עליך לחסום (או לרשום שחור) את rpcsec_gss_krb5 מודול ליבה מטעינה במערכת לינוקס שבה שרת ה-NFS פועל.
כדי שהאפשרות הזו תיכנס לתוקף בכל פעם שתפעיל מחדש את המחשב, ליצור קובץ חדש שקוראים לו /etc/modprobe.d/nfs-gss-blacklist.conf והוסיפו לו את השורות הבאות:
רשימה שחורה rpcsec_gss_krb5
ברגע שתשמור את הקובץ ותפעיל מחדש את המערכת, בעיית השהיית ההר תיעלם.
למה להשתמש בשרת NFS?
NFS פשוט ובמחיר סביר להגדרה. היא מאפשרת ניהול מרוכז, מה שמפחית את הדרישה לתוספת תוכנה ושטח אחסון במחשב האישי של משתמש בודד. במחשב אחד, משתמשים מרובים יכולים לחלוק את אותו שטח דיסק. הם יכולים לשים את הדיסקים האלה על גבי מערכת הקבצים שלהם כדי להרחיב את שטח האחסון.
שיתוף NFS מאפשר לקבץ תוכניות הדורשות שטח אחסון רב בשרת בודד. זה יכול לגרום לחיסכון עצום בשטח דיסק. בעוד שגרסאות NFS קודמות פגיעות, גרסאות חדשות יותר הציגו רמות נוספות של הגנה, כולל אימות Kerberos.
עם זאת, יש גם כמה חסרונות. נמצא כי NFS מאט במקרים מסוימים במהלך תעבורת רשת כבדה. שיתוף עם Windows אפשרי, אך עשוי לדרוש יישומי צד שלישי מסוימים. אבל זה לא נוהג הגיוני מאוד מבחינת אבטחה. אם התצורה לא נכונה, עלולה להתרחש גישה לא מורשית.
שיתוף מערכת קבצים קל בלינוקס באמצעות NFS
הכרת בעיות אבטחה ומציאת פתרונות היא אחת המשימות הקריטיות ביותר של מנהל מערכת. יש צורך להכיר את נהלי האבטחה של כל מערכות שיתוף הקבצים וכלי הניהול ולא רק NFS.