אנדרואיד

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

How to Install a Basic NFS Server on Linux - CentOS 8

How to Install a Basic NFS Server on Linux - CentOS 8

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

Anonim

Network File System (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 ו- /etc/nfs.conf . הגדרות ברירת המחדל מספיקות ללימוד שלנו.

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

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

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

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

צור את מערכת mkdir הייצוא באמצעות הפקודה 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 / וכו '/ 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/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(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 / nobody לקבוצה UID / GID .

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

ולהוסיף את השורות הבאות:

/ וכו '/ 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 בטרמינל שלך.

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

ספריית /var/www נמצאת בבעלות משתמש apache , root_squash זה root_squash אפשרות root_squash , אשר ממפה את משתמש השורש למשתמש nobody וקבוצת הקבוצה שלא קיימת הרשאות כתיבה לשיתוף המרוחק.

בהנחה שקיימת 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

sudo umount /backups

אם נקודת ההר מוגדרת בקובץ /etc/fstab , הקפד להסיר את השורה או להגיב אותה על ידי הוספת # בתחילת השורה.

סיכום

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

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

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

מרכז מסוף הר