PracticU

הסבר על PAM - חלק 1

בלי כתוביותעם כתוביות
PracticU › קורס לינוקס למתקדמים - הסמכה בינלאומית - Linux - Red Hat - RHCSA / RHCE › הסבר על PAM - חלק 1
מילון מושגים:
אימות - תהליך שמוודא שהמשתמש או המערכת הם מי שהם טוענים שהם, בדרך כלל באמצעות סיסמה, קוד או תעודה.
הרשאה - קביעה אילו פעולות ומשאבים מותרים למשתמש או לתהליך לאחר שזהותו אומתה. שולטת במי רשאי לעשות מה.
סשן - פרק זמן של פעילות רציפה בין משתמש למערכת, שבו נשמר מידע על מצבו, למשל לאחר התחברות לאתר.
תיקייה - מכל במערכת הקבצים שמשמש לארגון קבצים ותיקיות אחרות בתוך מבנה היררכי.
SSH - פרוטוקול לחיבור מרוחק ומוצפן למחשב, בעיקר לשרתי Linux, לצורך ניהול דרך שורת הפקודה.
LDAP - פרוטוקול לגישה ולשאילתה של שירותי מדריך כמו Active Directory, לאיתור וניהול משתמשים ומשאבים.
Active Directory - שירות מדריך של מיקרוסופט לניהול מרכזי של משתמשים, מחשבים והרשאות ברשת ארגונית מבוססת דומיין.
משתנה סביבה - ערך בעל שם שמוגדר במערכת ההפעלה ומשמש תוכנות להגדרות, כמו נתיבים או מפתחות תצורה.

הסבר על PAM - חלק 1
PAM הוא מנגנון האימות המודולרי של לינוקס, ובשיעור הזה מנתחים את הקונפיגורציה שלו: איך שירותים שונים מאמתים משתמש, איך נבדקת הרשאת הכניסה, ואיך מותאמת ההגדרה לצרכים מיוחדים.
מה צריך האימות לבדוק
1. זהות: שהמשתמש הוא מי שהוא טוען, למשל לפי סיסמה.
2. הרשאה: שהחשבון מורשה להיכנס כרגע, למשל רק בשעות העבודה.
3. הסשן: מה קורה לאחר הכניסה, למשל יצירת תיקיית בית או הצגת הודעה.
4. סיסמאות: מה המשתמש רשאי לעשות בזמן החלפת סיסמה, למשל אם מותרת סיסמה ריקה או קצרה.
השלבים העיקריים
1. קבצי ההגדרה: לכל שירות יש קובץ בתיקייה /etc/pam.d. הקובץ הבסיסי הוא system-auth, ושירותים רבים מפנים אליו. לשירות SSH יש קובץ נפרד עם הגדרות מעט שונות.
2. ארבעה סעיפים: auth לבדיקת הזהות, account לבדיקת החשבון וההרשאה, password לכללי החלפת הסיסמה, ו-session להגדרות שמתבצעות אחרי הכניסה.
3. מודולים: כל שורה מפנה למודול עם תפקיד מוגדר. pam_unix בודק את השם והסיסמה מול הקבצים המקומיים, אפשר להפנות גם ל-LDAP או ל-Active Directory. pam_fprintd בודק טביעת אצבע, ו-pam_cracklib בודק את חוזק הסיסמה.
4. שדה הבקרה: בעמודה השנייה קובעים איך תוצאת המודול משפיעה על השרשרת: required, requisite, sufficient או optional.
איך זה עובד
- Required מכשיל את התהליך אם נכשל, אבל ממשיך לבדוק את שאר השרשרת. כך לא חושפים אילו שמות משתמשים קיימים: גם שם שגוי מקבל בקשת סיסמה.
- Requisite מכשיל מיד ועוצר את הבדיקה של הסעיף.
- Sufficient מאשר מיד אם המודול הצליח, ובתנאי שלא נכשל required לפניו. אם נכשל, השרשרת ממשיכה.
- Optional לא משפיע על התוצאה, אלא אם הוא המודול היחיד בשרשרת.
שימו לב
בדוגמה של כניסה מקומית השרשרת כוללת טעינת משתני סביבה, בדיקת טביעת אצבע, בדיקת הסיסמה מול קבצי המערכת, ובדיקה שה-UID גדול מ-500. משתמשים עם UID עד 500 הם משתמשי שירות פנימיים, ולכן משתמש שאינו מקומי או אפליקטיבי נדחה.
בסיום רואים שהשרשרת כולה מוגדרת בקובץ טקסט אחד לכל שירות, ושינוי קטן בו משפיע על השירות הזה בלבד.
השיעור הבא בקורס: הסבר על PAM - חלק 2
לחץ כאן להורדת הורדת קבצי Script של לינוקס שהיו בסרטים
מילון מושגים:
דיסק - התקן לאחסון קבוע של נתונים, כמו כונן קשיח (HDD) או כונן מבוסס זיכרון מהיר (SSD).
תיקייה - מכל במערכת הקבצים שמשמש לארגון קבצים ותיקיות אחרות בתוך מבנה היררכי.
מחיצה - חלוקה לוגית של דיסק פיזי לאזורים נפרדים, שכל אחד מתפקד כאילו הוא כונן עצמאי.
זיכרון - רכיב מהיר ונדיף שבו המחשב שומר נתונים ותוכניות בזמן ריצתם. תוכנו נמחק עם כיבוי המחשב.
דומיין - תחום ניהולי משותף של מחשבים ומשתמשים ברשת ארגונית, המנוהל מרכזית. גם שם ייחודי של אתר באינטרנט.
אימות - תהליך שמוודא שהמשתמש או המערכת הם מי שהם טוענים שהם, בדרך כלל באמצעות סיסמה, קוד או תעודה.
Active Directory - שירות מדריך של מיקרוסופט לניהול מרכזי של משתמשים, מחשבים והרשאות ברשת ארגונית מבוססת דומיין.
GPO - אובייקט מדיניות קבוצתית ב-Active Directory, שמכיל הגדרות ומדיניות המוחלות על משתמשים ומחשבים.


מבנה ושמות דיסקים ומחיצות בלינוקס:


(Sda (disk0): זה הדיסק הפיזי הראשון (SATA DISK)

(Sda1,Sda2 (Partitions in disk): אלו הן המחיצות בתוך הדיסק הפיזי הראשון.

(Sdb (disk1): זה הדיסק הפיזי השני כמו בוינדוס Disk1

(Sdb1,Sdb2 (Partitions in disk): אלו הן המחיצות בתוך הדיסק הפיזי השני.

מחיצת השורש הראשונה:

וינדוס: C

לינוקס: /

מחיצות נוספות:

וינדוס: D: / E:

לינוקס: /data /example כמו תיקיות.

הערה: בתהליך ההתקנה יוצרים מחיצה נוספת לזיכרון הווירטואלי שנקראת SWAP

מטרת צירוף לינוקס לדומיין הינה לאימות משתמשים מתוך Active Directory בלבד ואין GPO  ללינוקס דרך AD.


הוכן ע"י התלמיד המצטיין: אברהים אבו שיכה

פרקי ההרצאה: הסבר על PAM - חלק 1

  1. 00:00

    מבוא: אימות מודולרי בלינוקס (PAM)

  2. 01:35

    הגבלת כניסה לפי הרשאות וזמנים

  3. 02:33

    כללי סיסמה: החלפה, ריקה וקצרה

  4. 03:17

    ארכיטקטורת PAM וספריית האימות

  5. 03:57

    ארבעת המדורים בקובץ הגדרות השירות

  6. 05:39

    בדיקת קובצי PAM בשרת לינוקס

  7. 08:04

    הבדלי הגדרה בין SSH לקונסולה

  8. 09:10

    מודולי PAM ותפקידם בכל מדור

תמלול ההרצאה: הסבר על PAM - חלק 1

הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על PAM - חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שלום וברוכים הבאים לסרטון בנושא פעם מנגנון האותנטיקציה המודולרי של לינוקס בסרטון הזה אנחנו הולכים ללמוד על המנגנון האותנטיקציה של לינוקס אנחנו הולכים לנתח את הקונפיגורציה שלו אנחנו הולכים לדבר על איך בעצם שירותים שונים מבצעים אותנטיקציה בתוך הלינוקס ואיך אנחנו יכולים להתאים את המנגנון לצרכים שלנו

  2. 00:29

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

  3. 00:48

    למשל, יש לנו כניסה באמצעות SSH, יש לנו רגיל, בעצם לוגין רגיל ישירות לתוך הקונסול, יש לנו FTP ויש לנו עוד מגוון שירותים אשר אנחנו צריכים בעצם בכל אותם השירותים האלה לבדוק האם המשתמש שבעצם נכנס הוא המשתמש הנכון להיכנס לאותו השירות, כלומר, האם הוא משתמש מורשה, האם המשתמש הזה הוא בכלל מי שהוא טוען את

  4. 01:16

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

  5. 01:39

    למשל, אני לא רוצה שבזמנים מסוימים משתמש ייכנס לשרת. למשל, אני רוצה להגביל את המשתמש שיוכל להיכנס למערכת רק בשעות העבודה.

  6. 01:51

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

  7. 02:24

    על עצמו, וגם כן, אני רוצה לקבוע למשתמש הזה מה מותר לו לעשות בתוך המנגנון אונטנטיקציה. למשל, האם למשתמש מותר להחליף לעצמו סיסמה? האם המשתמש יכול לשים לעצמו סיסמה שהיא ריקה?

  8. 02:43

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

  9. 03:14

    אז מה זה בעצם מנגנון הפעם בקצרה? יש לנו מספר אפליקציות שפונות למערכת דרך הספרייה, הדרך הלייברי של הפעם בצורה סטנדרטית כדי לקבל אישור עבור משתמש מסוים.

  10. 03:31

    הספרייה הזאת של הפעם יש לה תיקייה עם קבצים עבור כל אחד מהשירותים שנקראת פעם.די אשר ממוקמת איפה שההגדרות הסטנדרטיות של המערכת ממוקמות בתיקיית ה-ETC ובתוך אותה תיקיה יש בעצם קובץ לכל שירות, ובקובץ הזה יש לנו בעצם ארבעה מדורים, ארבעה סעיפים.

  11. 03:57

    יש לנו את הסעיף של האותנטיקציה, של האאוסט, ששם יש לנו מודולים מסוימים, שתכף אנחנו נדבר מה זה אותם המודולים, שכאן אנחנו מוודאים שהמשתמש אכן מישהו איכשהו הזדהה, שם אנחנו בודקים את השם משתמש ואת הסיסמה.

  12. 04:17

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

  13. 04:34

    לאחר מכן אנחנו בודקים את האקאונט של המשתמש והמודור של האקאונט, כלומר, האם המשתמש מורשה להיכנס למערכת הזאת, מורשה להיכנס לשירות הזה ולאחר מכן אנחנו בודקים את דרישות הסשן עבור אותו הסרוויס האם אנחנו צריכים להציג למשתמש איזושהי הודעה או ליצור לו תיק יד בית או לעשות איזשהו שירות

  14. 05:02

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

  15. 05:30

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

  16. 05:48

    וכמו שאמרתי, אנחנו בעצם נבחן את מנגנון הפאם. אנחנו נעשה cd לתיקייה etc.pam.d. כאן, אם אנחנו נעשה ls, אנחנו נראה כאן בעצם מגוון קבצים שהם קבצי הגדרות של פאם, אשר מכילים הודעות שונות עבור אפליקציות שונות הגדרות של פאם.

  17. 06:21

    למשל, ניקח את הקובץ הבסיסי ביותר, את ה-System Auth, שבו בעצם נמצאים ההגדרות של הכניסה מהקונסול.

  18. 06:32

    נעשה Vi על System Auth. כאן אנחנו בעצם רואים את קובץ הגדרות הבסיסי של הפעם. כמו שדיברנו מקודם במצגת, אנחנו רואים כאן ארבעה מדורים, את מדור האאוס, מדור האותנטיקציה, את מדור האקאונט, את מדור הפסוורד ואת מדור הסשן.

  19. 07:06

    אז כמו שאמרתי, מדור האאוס ישמש אותנו כדי לבדוק האם המשתמש מזדהה נכון, לבדוק את ההזדהות של המשתמש. לכל שירות קיים קובץ כזה בתיקיית etc.pam.d.

  20. 07:27

    למשל, אם אני אסתכל, אני אראה שלכובד של ה-SSH קיימות הגדרות שהן מעט שונות מההגדרות הראשיות של המערכת.

  21. 07:42

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

  22. 08:14

    עליו הגדרות אחרות. למשל, אחת מההגדרות השימושיות שהרבה חברות מיישמות זה שה-ROOT יוכל להיכנס באופן ישיר רק דרך הקונסול הפיזי, ולמשל כאשר ב-SSH נכנס המשתמש, הוא יוכל לעשות SCU ולעבור לאקאונט של רוט, אוקיי?

  23. 08:38

    אז בעצם הרוט לא יכול להיכנס ב-SSH, וכן יכול למשל להיכנס דרך הקונסול הפיזי. דוגמה נוספת שראינו לכך היא למשל בסרטון ה-FTP, שהיה שם קובץ אשר בעצם ביטל את האפשרות של חלק מהמשתמשים כמו רוט וכדומה להיכנס דרך ה-FTP.

  24. 09:02

    העניין הזה נעשה בעזרת מנגנון הפאם. למה בעצם קוראים לזה פאם? Plugable Authentication Modules. אם אנחנו נסתכל על הקובץ הגדול, אנחנו נראה בעצם שבתוך ארבעת הסקשנים יש לנו In-Houth Account Session, יש לנו למעשה הפניות לקבצים מסוימים.

  25. 09:34

    נעשה רגע וי איי לסיסטם האוס ונראה שיש לנו הפניות לקבצים מסוימים שאלה הם בעצם מודולים של פאם מה שאיך שנקראים פאם מודולס כל מודול של פאם יש לו תפקיד מסוים יש לו בדיקה מסוימת שהוא יודע לעשות למשל המודול פאם יוניקס הוא בודק את הרשאות המשתמש בעצם את השם משתמש ואת הסיסמה מול הקבצים הסטנדרטיים של יוניקס ETC PassWD ו-ETC Shadow.

  26. 10:24

    למשל כאן בסקשן הפאסוורד שבעצם בודק את תקינות הסיסמה אני רואה שכאן מופעל מודול פעם קראקליב אשר התפקיד שלו הוא בעצם לבדוק האם הסיסמה שהמשתמש הזין היא סיסמה שהיא חזקה מספיק לצורך הבדיקה של האם אפשר לפרוץ אותה את אותה הסיסמה של הקראקליפ, בודק את הסיסמה מול

  27. 10:56

    הדיקשנרי, לבדוק אם זה קובץ מתוך המילון, בודק אם היא מכילה מספיק תווים נכונים וכדומה. וגם כאן יש את מספר ה-retraise, כלומר כמה פעמים המשתמש יוכל לנסות שוב ושוב במידה והסיסמה איננה נכונה.

  28. 11:19

    למשל, בתוך שורת הפאם יוניקס, שזהו בעצם המודול הראשי שעובד מול קבצה ETC פס WD, נבחן כאן בעצם סוג ההצפנה, זה שבעצם הקובץ נשמר בתוך קובץ Shadow וכדומה.

  29. 11:42

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

  30. 12:03

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

  31. 12:24

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

  32. 12:40

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

  33. 12:55

    כלומר, אם המשתמש נכנס למערכת עם פרטים לא נכונים, נגיד שלוש, ארבע, חמש פעמים, אז לאחר הניסיונות הכושלים האלה, משתמש ינהל את זה אנחנו נעשה בעזרת מודול פעם פייל לוק.

  34. 13:15

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

  35. 13:41

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

  36. 14:06

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

  37. 14:36

    שונים. למשל, נוכל לראות שאנחנו נאפשר כניסה למשתמשים ב-FTP בשעות מסוימות, ובשעות אחרות אנחנו ניתן למשתמשים אפשרות להיכנס למערכת.

  38. 14:53

    כלומר, אנחנו גם ניצור בעצם צורת אותנטיקציה

לקורס המלא: קורס לינוקס מתקדם אונליין

ההרצאה הקודמת: docker

ההרצאה הבאה: הסבר על PAM - חלק 2

קורסים נוספים במסלול

  • קורס AWS - ניהול מכונה וירטואלית בענן
  • קורס Terraform - DevOps - Azure & AWS
  • קורס קוברנטיקס - Kubernetes
  • קורס Docker - עם Swarm Cluster
  • קורס DevOps - Ansible
  • קורס PowerShell