PracticU

שאלה מתוך הבחינה על SELinux

בלי כתוביותעם כתוביות
PracticU › קורס לינוקס למתקדמים - הסמכה בינלאומית - Linux - Red Hat - RHCSA / RHCE › שאלה מתוך הבחינה על SELinux
מילון מושגים:
SELinux - מנגנון אבטחה ב-Linux שאוכף מדיניות בקרת גישה מחמירה על תהליכים וקבצים.
שרת אינטרנט - תוכנה או מחשב שמקבלים בקשות HTTP ומגישים דפי אינטרנט ומשאבים ללקוחות.
שרת - מחשב או תוכנה שמספקים שירות למחשבים אחרים (לקוחות) ברשת, למשל אחסון קבצים, אתר אינטרנט או מסד נתונים, ומגיבים לבקשות שלהם.
לוג - רישום מתועד של אירועים ופעולות שמתרחשים במערכת או בתוכנה, המשמש למעקב ולאיתור תקלות.
דפדפן - תוכנה שמציגה דפי אינטרנט ומריצה את הקוד שבהם, ומאפשרת לגלוש בין אתרים, למשל Chrome או Firefox.
הרשאה - קביעה אילו פעולות ומשאבים מותרים למשתמש או לתהליך לאחר שזהותו אומתה. שולטת במי רשאי לעשות מה.
HTML - שפת הסימון שבה בונים את מבנה ותוכן דפי האינטרנט, באמצעות תגיות שמגדירות כותרות, פסקאות, קישורים ועוד.
אירוע - התרחשות שהמערכת מזהה ויכולה להגיב לה, כמו לחיצת עכבר, הקשה או סיום פעולה.

שאלה מתוך הבחינה על SELinux
ההרצאה מתרגלת שאלה ממבחן הסמכה בנושא SELinux: הגדרת המערכת למצב Enforcing, ואחריה בדיקת ההשפעה של המצבים על שרת אינטרנט.
שלבי התרגיל
1. מצב התחלתי: בשאלה מבקשים מצב Enforcing. המערכת מוגדרת כברירת מחדל ב-Enforcing, ולכן כדי לתרגל צריך לבטל זאת תחילה. בעזרת man -k ו-man selinux מוצאים את המידע על קובץ ההגדרות.
2. קובץ ההגדרות: הקובץ /etc/selinux/config מכיל את השורה SELINUX=. יש שלושה ערכים: enforcing (אכיפה פעילה), permissive (רק רישום של הפרות ביומן, והגישה מותרת) ו-disabled (המדיניות כבויה).
3. מעבר בין מצבים: getenforce מציג את המצב הנוכחי. setenforce עובר בין enforcing ל-permissive לזמן ההרצה בלבד. שינוי בקובץ ההגדרות נשמר לאחר ריבוט. מעבר ממצב disabled למצב פעיל דורש סריקה מחדש של התוויות בכל מערכת הקבצים, והתהליך עלול להימשך דקות רבות.
4. שרת אינטרנט: מותקן שרת Apache ומופעל. בדפדפן ניתן לוודא שהוא עונה.
5. בעיית הרשאה: קובץ index.html שנוצר בתיקיית הבית של המשתמש מקבל תווית של קובץ בית, ולא של שרת הווב. כשהוא מועתק לתיקיית הווב בפקודת cp רגילה, התווית לא מתאימה, ו-Apache מקבל forbidden.
6. בדיקה ותיקון: setenforce 0 מוכיח שהבעיה נובעת מ-SELinux, כי כשהאכיפה כבויה הגישה מותרת. לאחר מכן restorecon משחזר את התווית הנכונה לקובץ, והגישה חוזרת עם SELinux פעיל. הפקודה cp --preserve=context שומרת את התווית בזמן ההעתקה.
שימו לב
יומן האירועים מציג את הניסיון הכושל של תהליך httpd לגשת לקובץ, ואת הסיבה לדחייה. הפקודה ls -lZ מציגה את התווית של כל קובץ.
הקובץ ההגדרות קובע את המצב לאחר ריבוט, ו-getenforce ו-setenforce משמשים לבדיקה ולמעבר בזמן ריצה.
השיעור הבא בקורס: הגדרת שרת דואר בלינוקס
לחץ כאן להורדת הורדת קבצי 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.


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

פרקי ההרצאה: שאלה מתוך הבחינה על SELinux

  1. 00:00

    תרגיל SELinux: החזרה למצב Enforcing

  2. 00:56

    בדיקת המצב הנוכחי של SELinux

  3. 02:33

    שלושת מצבי SELinux: Enforcing, Permissive, Disabled

  4. 03:36

    עריכת קובץ הקונפיגורציה כ-root

  5. 04:58

    אתחול המערכת ובדיקה עם getenforce

  6. 06:46

    מצב Disabled ושחזור ממנו

  7. 08:26

    תהליך Relabel בעליה ממצב Disabled

  8. 12:18

    שינוי מצב זמני עם setenforce

תמלול ההרצאה: שאלה מתוך הבחינה על SELinux

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

  1. 00:02

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

  2. 00:18

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

  3. 00:33

    אני אתן לזה שם, After Install. עכשיו אני אכנס למערכת ובעצם כרגע המצב של ה-SE-Linux כמו שהמערכת מגיעה לאחר ההתקנה הוא מצב של Enforcing.

  4. 01:05

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

  5. 01:45

    בריסורס של man man-k ואני אכתוב se-linux ובעצם כאן הוא מריץ לי שורה של אפשרויות מן על se-linux ואני רואה בעצם את הראשון והבסיסי ואני יכול להיכנס לתוכו לעשות מן se-linux ובעצם כבר כאן אני רואה איפה נמצא קובץ הקונפיגורציה etc.se-linux-config.

  6. 02:26

    אני אצא מאמן ואני אכנס לקובץ. vitc se-linux-config זה די פשוט יש לי כאן שורה אחת שאומרת se-linux שווה enforcing זה בעצם המצב של ה-se-linux ויש לו עוד בעצם שתי מצבים אפשריים אפשרות מספר שתיים היא אפשרות הפרמיסיב שבאפשרות הזאתי ה-se-linux הוא בעצם יתריע על כל מיני בעיות במוסד.

  7. 03:00

    אבל לא ימנע אותם ומצב של disabled שבו בעצם כל מערך ה-SE-Linux לא יתאפשר. ובנוסף יש לי פה עוד הגדרות של policy שאלה כבר הגדרות יותר פנימיות של-SE-Linux עד כמה ובאיזה צורה ה-SE-Linux יעשה את האכיפה.

  8. 03:32

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

  9. 03:55

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

  10. 04:36

    לשמור את הקובץ, עכשיו איך בודקים במערכת אם במצב הנתון ה-se-linux רץ? יש לי את הפקודה get enforce והיא כרגע מחזירה לי את הסטטוס של enforcing.

  11. 04:55

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

  12. 05:31

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

  13. 06:14

    עכשיו, יש עוד מצב של SE-Linux שנקרא Disable, והמצב הזה vitc.se.linux.config. ובמצב הזה הפוליסה היא לא טעונה לחלוטין.

  14. 06:51

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

  15. 07:20

    המערכת תעבוד קצת יותר מהר כי לקרנל יש פחות מידע לאבד ולבדוק אותו, וכמובן שה-Security Feature של ה-SE Linux לא יהיו זמינים לחלוטין. עכשיו, מה שמעניין במצב כזה זה שאם אני ארצה אחרי זה לחזור ממצב של Disabled למצב של Permissive, המערכת תצטרך לעבור איזשהו תהליך ואנחנו תכף נראה בדיוק במה מדובר.

  16. 07:54

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

  17. 08:30

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

  18. 08:52

    אז אני עושה sudo כדי לעבור ל-root, vietc se-linux-config, ואני אחליף כאן את המצב בחזרה ל-permissive, ואני אעשה ריבוט.

  19. 09:32

    ריבוט למערכת, ושימו לב, עכשיו למערכת ייקח לה קצת יותר זמן לעלות. בואו נראה אם זה יוצג לנו בטרמינל. מערכת מתחילה להיטען, והנה אני רואה כאן הודעה שאומרת se-linux, target policy relabel is required, ועכשיו בעצם המערכת היא מכינה את עצמה לחזור לעבוד עם SE Linux.

  20. 10:01

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

  21. 10:25

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

  22. 10:49

    והנה התהליך כבר לקראת סיום ותכף המערכת תתחיל לעלות. בעצם הנה ריבוט וכבר המערכת תעלה עם SE-Linux חדש.

  23. 11:07

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

  24. 12:00

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

  25. 13:04

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

  26. 13:33

    בעיקר הפקודה הזאת היא טובה לעשות דיבאג למערכות, כלומר, אם עשיתי איזושהי פעולה ואני רוצה לראות אם ה-SE-Linux מפריע לפעולה הזאתי או לא מפריע לפעולה הזאת, אז אני אשתמש בזה.

  27. 13:50

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

  28. 14:21

    כן, נעשה ריבוט ואני אקצר את התהליך קצת בעזרת הוידאו. המערכת עלתה, רק נוודא שהמצב של ה-SE

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

ההרצאה הקודמת: הסבר על מבחן הסמכה בלינוקס RHCE

ההרצאה הבאה: הגדרת שרת דואר בלינוקס

הרצאות קשורות מקורסים אחרים

  • שאלות מתוך הבחינה
  • מבחן CCNA - שאלה על VLAN
  • ראיון עבודה - מנהל רשת - שאלה על PING

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

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