אנדרואיד

כיצד להתקין ולהגדיר שרת nfs ב- Ubuntu 18.04

How to Install and Configure NFS server in Ubuntu 18.04

How to Install and Configure NFS server in Ubuntu 18.04

תוכן עניינים:

Anonim

Network File System (NFS) הוא פרוטוקול מערכת קבצים מבוזר המאפשר לשתף ספריות מרוחקות ברשת. עם NFS, תוכלו להתקין ספריות מרוחקות במערכת שלכם ולעבוד עם הקבצים במחשב המרוחק כאילו היו קבצים מקומיים.

פרוטוקול NFS אינו מוצפן כברירת מחדל ובניגוד לסמבה, הוא אינו מספק אימות משתמש. הגישה לשרת מוגבלת על ידי כתובות ה- IP או שמות המארחים של הלקוחות.

במדריך זה נעבור כיצד להתקין שרת NFSv4 באובונטו 18.04. אנו נראה לך כיצד להתקין מערכת קבצים NFS על הלקוח.

תנאים מוקדמים

דוגמה זו מניחה שיש לך שרת אחד שמריץ את אובונטו 18.04, ושרת אחר שמריץ כל הפצת לינוקס אחרת. השרת והלקוחות צריכים להיות מסוגלים לתקשר זה עם זה דרך רשת פרטית. אם ספק האירוח שלך אינו מציע כתובות 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 יתחילו אוטומטית.

כברירת מחדל, באובונטו 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 קבצים. הגדרות ברירת המחדל מספיקות במקרה שלנו.

יצירת מערכות הקבצים

בעת קביעת התצורה של שרת NFSv4, כדאי להשתמש בספריית השורשים הגלובלית של NFS ולחייב את הרכיב של הספריות לנקודת הרכבה של השיתוף. בדוגמה זו אנו נשתמש /srv/nfs4 כשורש NFS.

אנו נשתף שתי ספריות ( /var/www ו- /opt/backups ), עם הגדרות תצורה שונות, כדי להסביר טוב יותר כיצד ניתן להגדיר את התקני ה- NFS.

ה- /var/www/ נמצא בבעלות המשתמש וקבוצת www-data ו /opt/backups הוא בבעלות root .

צור את מערכת mkdir הייצוא באמצעות הפקודה 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 כולל גם הערות המתארות כיצד לייצא מדריך.

במקרה שלנו עלינו לייצא את ספריות 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/nfs . הגישה בנפח NFS זה מותרת רק ללקוחות מרשת המשנה 192.168.33.0/24 . אפשרות 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)

באובונטו root_squash מופעל כברירת מחדל. זוהי אחת האפשרויות החשובות ביותר בנושא אבטחת NFS. זה מונע ממשתמשי שורש המחוברים מהלקוחות לקבל הרשאות שורש במניות המותקנות. זה ימפה את UID ו- GID לשורש nobody / nobody לקבוצה UID / GID .

על מנת שהמשתמשים במחשבי הלקוח יוכלו לקבל גישה, NFS מצפה שמשתמשים ומזהי הקבוצה של הלקוח יתאימו לאלה שבשרת. אפשרות נוספת היא להשתמש בתכונת המיפוי של NFSv4 המתרגמת מזהי משתמשים וקבוצות לשמות ולהפך.

זהו זה. בשלב זה הקמת שרת NFS בשרת אובונטו. כעת תוכלו לעבור לשלב הבא ולהגדיר את הלקוחות ולהתחבר לשרת 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 אך אנו נתמקד במערכות לינוקס.

התקנת לקוח NFS

במכונות הלקוח עלינו להתקין רק את הכלים הדרושים להתקנת מערכות קבצים NFS מרוחקות.

  • התקן לקוח NFS ב- Debian ואובונטו

    שם החבילה הכוללת תוכניות להתקנת מערכות קבצים NFS בהפצות מבוססות Debian הוא 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.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 מיוצאת כקריאה בלבד וכצפוי תראה הודעת שגיאה של Permission denied :

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

לאחר מכן נסה ליצור קובץ מבחן /srv/www כשורש באמצעות הפקודה sudo :

sudo touch /srv/www/test.txt

שוב, תראה Permission denied ההודעה 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 :

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 בייצור ושיתוף נתונים הגיוניים, כדאי מאוד לאפשר אימות קרברוס.

כחלופה ל- NFS, אתה יכול להשתמש ב- SSHFS כדי להקים ספריות מרוחקות באמצעות חיבור SSH. SSHFS מוצפן כברירת מחדל והרבה יותר קל להגדיר את תצורתו ולהשתמש בו.

אל תהסס להשאיר תגובה אם יש לך שאלות.

מסוף הר Ubuntu NFS