שאלה לגבי הזדהות בNFS

lavifighter

New member
שאלה לגבי הזדהות בNFS

שלום לכולם,
הגעתי למסקנה שאני לא מצליח להבין כיצד עובדת הזדהות בNFS(כאשר אין קרברוס, שכן אם יש קרברוס אז זה כמו הזדהות ווינדוזית).
מישהו יכול להסביר לי איך זה עובד? לדוגמה בVMWARE כשעושים mount לא רושמים יוזר או סיסמה, אז איך זה עובד? זה סומך על צד השרת? אם כן מדובר בפרצת אבטחה לא קטנה... ומה לגבי האפשרות להשתמש בLDAP ומיפוי יוזרים?
קראתי על זה במסמכים של נטאפ ולא הצלחתי להבין, אשמח אם מישהו יוכל לעזור או להפנות למקור שמסביר טוב. קחו בחשבון שאני יודע מעט לינוקס אבל ממש לא מומחה ככה שמשהו "כבד" מידי ברמת הלינוקסית לא טוב לי.

עוד שאלה שיש לי אם מישהו יודע זה האם באמת מגרסה 4 ומעלה, NFS פחות "שורד" ניתוקי תקשורת למשל בגלל שהוא staefull או שמא דווקא הפוך? שמעתי טענה כזאת, גם פה לא הצלחתי להבין מההסברים שקראתי עד הסוף בין היתר בגלל שאין לי ממש ניסיון עם גרסה 4, וגרסה 3 שורדת מהניסיון שלי.
 

hetzbh

New member
אנסה לענות

ב-NFS-3 הדברים די פשוטים, אתה מגדיר את ה-SHARE בשרת עצמו מה כתובות ה-IP שיהיה להם גישה ואיזו גישה תהיה לכתובות הללו, כך שאם אתה לא רוצה שאחרים תהיה להם גישה ל-SHARE, ציין כתובת IP מדוייקת או רק את הכתובות/טווח כתובות שאתה מעוניין לתת את ה-SHARE וההרשאות NFS המתאימות (כמו no_root_squash וכו'), כך שאם כתובת השרת ESXI שלי היא נניח 192.168.10.10 וזה מה שהגדרתי ב-SHARE, תצטרך לפרוץ או את ה-ESXI או את שרת היוניקס/לינוקס או הסטורג' שנותן את השרות. ב-ESXI-6 יש לך תמיכה ל-NFS 4.1 ואתה יכול לקרוא על כך בקצרה כאן:
http://cormachogan.com/2015/02/04/vsphere-6-0-storage-features-part-1-nfs-v4-1/
&nbsp
לגבי NFS-4 לא "שורד" - לא יודע מי אמר לך, אצלי בבית הוא שורד גם שורד גם בהפסקות חשמל של חברת החשמל וגם בהפסקות שהחתולים שלי בבית גורמים
 

lavifighter

New member
עדיין לא הבנתי ממש

זיוף IP זו לא משימה עד כדי כך קשה, אפשרות לעשות mitm בכל מיני דרכים(לא מומחה בזה) ועוד טריקים, זה לא נקרא הזדהות.
ואני לא מדבר רק על הזדהות של השרת-אני מדבר גם על יוזרים: אם אני ממפה את הNFS בתור root(כפי שנדרש בגרסה 3), אז אני פתאום root גם ב"שיתוף" הNFS כלומר במערכת הקבצים של הלינוקס/NAS? זה עקום ופרוץ.
לגבי תמיכה בגרסה 4.1 בESXI החדש אני יודע שיש אבל רוב המקומות לא יכולים סתם ככה לעבור לזה מבחינות רבות(בעיקר "בשלות" ותאימות).
&nbsp
ולגבי הלא שורד-זאת טענה ששמעתי לא אחת כולל מחלק מהאנשים בנטאפ. למשל SMB לצורך השוואה "שורד" ניתוקים רק בגרסה 2 ומעלה בחלק מהמקרים(בעיקר הקצרים או ה"קלים", כמו נפילת כרטיס רשת וקפיצה לשני בactive/passive) ובמקרים קשים וארוכים כמו נפילת מערך האחסון וקפיצת קלסטר, רק גרסה 3 ומעלה ורק בפיצ'רים מסוימים שמפעילים לו שורד בכל המקרים.
תמיד חשבתי(כי ככה אמרו לי) שהסיבה לכך היא שSMB מבוסס סשנים מסיבות שונות(בעיקר נעילות) בעוד שNFS בגרסה 3 ומטה לא מבוסס סשנים ככה שאין מה שיתנתק-השירות לא יהיה נגיש לרגע אבל השרת לא יצטרך להתחבר מחדש לשיתוף ולהפיל את האפליקציה. בSMB הישנים אם יש לך אפליציה שעובדת על שיתוף ויש לך ניתוק תקשורת, האפליקציה תיפות בוודאות גדולה.
אז חשבתי שגם בNFS גרסה 4 ומעלה זה ככה בגלל שיש בו סשנים(שזה באופן כללי דבר טוב-למשל קשה מאוד לנטר מי ממפה מה בגרסה 3), איך זה שזה לא ככה? יש לזה הסבר לא מסובך מידי לאילו פיצ'רים/תכונות מאפשרים לו להתאושש מניתוק?
 

hetzbh

New member
לא ממש

אם תקרא את המסמך הזה של VMWare (קישור: http://www.vmware.com/files/pdf/techpaper/VMW-WP-vSPHR-NAS-USLET-101-WEB.pdf ) תבין שמומלץ בכלל שאת כל הקישור NFS מומלץ לעשות על מתג ותשתית פיזית פרטית.
לגבי התקפות MITM - קודם כל תצטרך לפרוץ לתשתית החברה, לנחש את כתובת ה-IP שה-ESXI מתחבר ל-NFS, וגם לנחש את שם ה-SHARE.
&nbsp
אז כן, יכול להיות ש-VMWARE עשתה את זה עקום ואולי לא מספיק מוגן לטעמך, אבל מי שלא רוצה NFS, תמיד יכול לעבוד iSCSI.
לגבי שרידות, יש לך אופציות שונות של mount כמו soft או hard כדי שאם התקשורת נופלת, האם המערכת תזרוק את החיבור ל-NFS או שתמשיך לנסות להתחבר אליו, וכאן זה כבר פרק שלם של הגדרות מול ESXI כולל timeouts וכו' וכו'.
 

lavifighter

New member
לא התכוונתי רק VMWARE

למשל, נגיד יש לי כמה עשרות שרתי/עמדות לינוקס שמדברים עם מערך NAS ומתחברים לאותו השיתוף.
אם כולם עושים mount עם הroot שלהם, אז כולם פתאום root בNAS(בשיתוף הרלוונטי)?
ואם הם מתחברים עם יוזר נגיד laivifhgter, אז הוא צריך להיות קיים גם בשרת? הרי אני לא זוכר ששמים סיסמה(אולי בלינוקס כן שמים בניגוד לVMWARE) כאשר עושים mount, ככה שלמעשה NFS בלי קרברוס סומך על צד הלקוח? לא נשמע מדהים במיוחד...
VMWARE אני יודע שזה שונה בגלל שעדיף תשתית שונה לתקשורת כזאת.
גם לגבי ה"לשרוד נפילות" התכוונתי יותר ללינוקס מאשר לVMWARE.
 

hetzbh

New member
לא

אני באמת ממליץ לך להכיר קצת יותר לינוקס. בלינוקס כשאתה עושה Mount אז אתה צריך שם משתמש, מיפוי, וכו'.
 

DuuGi

New member
קצת הלכתי לאיבוד

אתה מדבר על הרשאות mount או על הרשאות לקבצים על הmount ?
&nbsp
&nbsp
 

lavifighter

New member
אני אסביר

לאחר שאתה עושה mount(שאת האישור לעשות mount מקבלים דרך שרת הNAS, לרוב לפי IP), אז איך הNAS יודע איזה יוזר אתה?
כלומר, אם אני עושה mount כשאני root(של המחשב, לא של הNAS) לNFS משני מחשבים שונים, אז האם מבחינת שרת הNAS אני אותו היוזר?
&nbsp
חץ אני יודע שמזדהים בלינוקס אבל אני לא הכרתי שמול הNAS, שכן מעולם לא הגדירו בו את היוזר והסיסמה של הroot הזה.
קיצר, הבנתי שבNFS יש כמה שיטות הזדהות: יש באמצעות קרברוס, יש בלי הזדהות(שאז זה ממיין אותך כיוזר anon) ויש הזדהות שנקראת sys שזה מה שלא הבנתי איך זה עובד.
 

DuuGi

New member
קבצים אחרי ה-mount

זה הרשאות רגילות על פי UID GID עד NFS3.
מ-NFS4 יש אפשרות קרברוס.
&nbsp
&nbsp
 

lavifighter

New member
לא הבנת אותי, זה לא מה ששאלתי

מה ששאלתי זה איך מבוצעתה ההזדהות של היוזר כדי לתת לו את ההרשאות הנ"ל.
הכונה שלי היא שהיוזר שאיתו עושים mount לא בהכרח קיים בNAS, ועדיין הmount מצליח ויודע להתאים אותו ליוזר הרלוונטי.
כלומר, בהיעדר קרברוס/LDAP וכדומה, הNAS "סומך" על העמדות שעשו את הmount בנושא הזדהות? ולא רק זה, אם אני מתחבר עם יוזר שיש לו UID מסוים משני מחשבים לאותו NFS אז מבחינת הNAS זה אותו יוזר? נשמע ביזארי וממש לא דומה לSMB.
&nbsp
רציתי לוודא שהבנתי נכון-
 

lavifighter

New member
השאלה שלי זה האם הבנתי נכון כיצד זה עובד ללא קרברוס

כלומר בגרסה 3 וכדומה.
 

mthree

New member
הבנת נכון

שרת ה-NFS בוטח ב-client. אם ה-NFS client מבקש משרת ה-NFS לבצע פקודת I/O תחת הרשאות של UID/GID מסוים, השרת NFS יבצע זאת. (בהנחה ש-mount מאופשר ל-NFS Client).
עליך להבין , מערכת NFS תוכננה בימים שבהם ה-NFS Clients היו שרתים בעצמם. משתמשים היו מתחברים אליהם באמצעות מסופים. והיה עליהם להזדהות מול אחד השרתים ברשת המקומית. כל השרתים הללו (כולל ה-NFS Cliens) היו תחת ניהול של גוף System אחד שקבע את ההרשאות של המשתמשים ולכן היה זה הגיוני לבטוח ב-Clients.
כל זה נכון למעט אם הבקשה מגיעה עבור UID 0. במקרה זה על מנהל המערכת לאשר של-Client הספציפי הזה מותר לבצע פעולות I/O תחת UID 0 (קרי root - המשתמש בעל הרשאות ניהול ב-Unix).
 
למעלה