
pam_listfile, שבודק רשימה של משתמשים. משתמשים שברשימה, כמו root, נחסמים מהכניסה דרך ה-FTP.password-auth דומה ל-system-auth, בלי שורת טביעת האצבע, כי הוא אחראי להזדהות בסיסמה בלבד. שירותים רבים מפנים אליו, וגם קובץ sshd מפנה אליו. בקובץ של sshd יש גם בדיקה לקובץ nologin.su נמצא המודול pam_rootok, שמאפשר ל-root לעבור ליוזר אחר בלי סיסמה. הסרת השורה מחייבת הקשת סיסמה גם ל-root. ההגדרה משפיעה על su בלבד, ולא על שיטות כניסה אחרות.pam_motd מציג הודעה אחרי כניסה, והוא נמצא בסעיף session. ההודעה תופיע רק בשירות שהמודול הופעל בו.pam_faillock סופר ניסיונות כניסה כושלים בתיקייה /var/run/faillock. הסף, זמן הנעילה ואפשרות הכללת root נקבעים בפרמטרים של המודול, ו-man pam_faillock מפרט אותם.faillock מציג את הניסיונות הכושלים של כל משתמש, ו-faillock --user <name> --reset מאפס את המונה.silent לא כותבת שום הודעה, ומשמשת כדי שהמשתמש לא יבין למה נדחה. ההגדרה נעשית בקובץ ה-SSH בלבד, כך שנעילה ב-SSH אינה משפיעה על הכניסה מהקונסולה.מבנה ושמות דיסקים ומחיצות בלינוקס:

הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על PAM - חלק 2» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אני ב-etc.pam.d ואני רגע אעשה ls כדי לראות את רשימת השירותים. למשל, אני אתקין עכשיו במערכת ftp.yam.stav.vsftp.d, אשר את ההתקנה שלו, ואז אני אראה שבעצם נוסף בין הקבצים של הפעם קובץ הגדרות עבור ה-ftp.
אנחנו יכולים לראות שיש פה קובץ הגדרות עבור ה-SSH למשל, SSH, ועבור הפקודת SU, עבור פקודות סודו, כל אלה יש להם קובץ הגדרות נפרד. בואו נבחן רגע את הקובץ של ה-VSFT PD.
כאן אנחנו רואים בעצם בסשן שאנחנו מייצרים K-NIT חדש, כמו שאמרתי שזה מודול שאחראי על אבטחה של הסשן, הקרנל וכאן בעצם שימו לב ב-out יש לנו ב-required מודול של פעם list file אשר בעצם מסתכל בקובץ etc vstpd vstpdusers ובעצם מה שאנחנו מחפשים שם זה את השדה של
היוזר ואם אנחנו מוצאים כזה אז אנחנו עושים לו D-Night. למי שזוכר מהשיעור של ה-FTP, מה שמוגדר בקובץ הזה, זה משתמשים כמו רות, בין, דימון וכל מיני משתמשים שאנחנו לא רוצים שייכנסו דרך ה-FTP.
וכאן אנחנו רואים שבעצם האפשרות הזאת היא נאכפת דרך הפעם, ובעצם בעזרת זה שאנחנו הוספנו את המודול הזה, לשרשרת של הפעם אנחנו יכולים למנוע כניסה של היוזרים האלה לתוך ה-FTP, אוקיי?
כאן אנחנו רואים שיש לנו בעצם בסקשן של ה-out, שיש לנו include לקובץ חיצוני, לקובץ password מכף out, וגם הוא נמצא ב-pam.d ואם אנחנו נסתכל על התוכן שלו password.auth אנחנו נראה שהוא בעצם מאוד מאוד דומה ל-system.auth וההבדל הראשון שנשים לב אליו זה שאין כאן את השורה של הפינגרפרינט כי זהו בעצם קובץ שאחראי להזדהות באמצעות
הסיסמה. אגב, הרבה שירותים מפנים לקובץ הזה, למשל אם אני אעשה cut על sshd, אני אראה שגם הקובץ של פעם של הsshd מפנה ל-password-out.
כלומר, כאן יש לי כל מיני דברים שהם מיוחדים עבור ה-ssh, כמו שאני בעצם בוחר אותם להיות מיוחדים עבור ה-SSH, כמו פעם no-login, אשר ימנע את לוגין למערכת עם הקובץ ETC no-login קיים.
ולאחר שבדקתי את הדברים שבעצם שעניינו אותי לבדוק, אז אני מפנה לתוך הקובץ הסטנדרטי של הפאסוורד אאוס.
למשל, אם אני אסתכל על הקובץ SU, ש-SU זאת פקודה בעצם סוויץ' יוזר, אז מי שעובד עם המערכת, בוודאי שהוא שם לב שכאשר הוא עובד בתורות והוא מנסה לעבור ליוזר כלשהו, אז הוא לא נדרש בעצם לסיסמה מאותו היוזר.
למשל, אני אעשה עכשיו sq-david ונכנסתי לתוך החשבון של דוד מבלי להקיש סיסמה. אם אני אסתכל על הקובץ פעם של ה-sq, אז אני אראה פה שב-out, שורה ראשונה של ה-out שהיא בסופישנט, כלומר, אם השורה הזאת תצליח, כל השרשרת של ה-out תצליח, יש את המודול שנקרא פעם רות אוקיי.
עכשיו, מה עושה פעם רות אוקיי? אתם בטח יכולים לנחש שאם משתמש רות בעצם פונה לפעם ומבקש אותנטיקציה, אז המודול הזה מחזיר תוצאה חיובית.
עכשיו, אני רוצה לגרום למערכת לעבוד באופן מעט שונה, וכאשר אני עושה sq גם אם אני רות, שעדיין אני אצטרך להקיש סיסמה כל פעם שאני משנה יוזר.
וי איי לקובץ s u כמובן שזה לקובץ הגדרות פעם של s u ועכשיו אני הולך להוריד את השורה הזאת של הפעם רות אוקיי מה שעכשיו יקרה זה שלמעשה לא יהיה אישור אוטומטי לרות לעשות s u ואם אני אעשה עכשיו אפילו בתור רות s u למשתמש דוד אני אצטרך להקיש סיסמה ורק אז אני אוכל לעבור ולהיות בתור משתמש של דוד.
כמובן שאני עכשיו אצא מהמערכת, ובואו נראה שאני מחזיר את זה. איך אני עושה חזרה? אני עושה vi לקובץ seo, ואני מחזיר בחזרה את השורה הזאת של פעם root אוקיי.
בואו נראה שזה תפס, sq-david, אכן נהייתי דוד בלי להקיש סיסמה. כמובן שההגדרה שעשיתי השפיעה רק על ה-sq ולא השפיעה על פרמטרים אחרים במערכת, כלומר לא פרמטרים אלא שיטות לוגין אחרות.
אם הייתי עושה לוגין דרך FTP או דרך ה-session, כמובן שבכל מקרה הייתי צריך לתת סיסמה עבור היוזר. וזה בעצם הכוח של הפעם לקבוע לכל שירות במערכת איך אני הולך לקחת ולמעשה לשנות את האופן שבו המשתמשים מתחברים.
למשל, אני יכול שדרך הקונסול משתמשים יתחברו בצורה מסוימת. ודרך SSH הם יתחברו עם איזה שהם הגדרות אחרות כדי שיעשו SU, אז אני יכול לקבוע הגדרות שונות ל-SU.
עכשיו, מה שאנחנו נעשה פה בהמשך הסרטון, אנחנו נראה כמה וכמה סוגים של הגדרות כאלה שמאפשרים לנו בעצם לעשות קסטומיזציה לשירות שדרכו המשתמשים מתחברים.
מה שנעשה כדי להבין בפועל את היכולות של הפעם, אנחנו נעשה כמה דוגמאות ממשיות שבעזרתן אנחנו נעשה מספר פעולות על מערך האותנטיקציה של כמה וכמה שירותים ובעזרת אותן ובעזרת אותן הפעולות אנחנו בעצם נשנה את האופן בו משתמשים מורשים להיכנס.
נתחיל מהדגמה מאוד בסיסית של להראות תודעה אחרי שהמשתמש נכנס למערכת דרך שירות מסוים, ונמשיך דרך הוספת פוליסה שתגרום לנעילת חשבון המשתמש למספר דקות כאשר המשתמש יתחבר באופן לא תקין דרך SSH.
נמשיך עם כך שנגביל את המשתמש בשעות שהוא יכול להיכנס לשרת. וכהדגמה האחרונה אנחנו נשנה בעצם את הפוליסה שתדרוש מהמשתמש להכניס סיסמה מסובכת למערכת. אז בואו בעצם נתחיל.
בעצם התרגיל הראשון שאנחנו נעשה, הדגמה הראשונה, אנחנו נגרום למערכת להציג הודעה כאשר מתחברים ב-SSH. ההודעה הזאת תוצג לכל המשתמשים, ומה שאנחנו נעשה, אנחנו נערוך בעצם את הכובד של ה-SSH, V-I-SSH-D, בתוך ספריית ה-PAM.D כמובן, ואנחנו מדברים על הסקשן של סשן, אוקיי?
כי אנחנו בעצם עושים משהו שהוא שייך לסשן שהמשתמש נכנס בו. ומה שאנחנו נעשה כאן, אנחנו למעשה נוסיף שורה כאן, שהמטרה של השורה הזאת תהיה הצגת תודעה.
אז כמוהו אנחנו נרשום את ה-session, אוקיי? סוג הפעולה יהיה optional, כי על פי הצגת תודה הזאת אנחנו לא רוצים לקבוע שתהיה לזה השפעה כלשהי על השרשרת של ה-session, אוקיי?
ואנחנו נשתמש במודול של פאם שנקרא pamot d.so. המודול הזה הוא פשוט מציג הודעה שנמצאת בקובץ מסוים.
אנחנו ניתן לו כפרמטר מוט d שווה ל... נגיד נקרא להודעה slash etc /usr == msg יפה מאוד נשמור את הקובץ הזה נשמור את הקובץ פאם של sshd ונערוך את הקובץ שבו אנחנו נשים את ההודעה נראה רגע איך בדיוק קראתי לו sshd ETC-USR-Message, נעשה לו UI, נראה לו, נרשום שכאן הודעה, ושנגמרתי את הקובץ,
ועכשיו בואו נראה אם זה עובד, אני אתחבר עם המשתמש דוד דרך SSH, דופליקייט סשן, לוגין אז, דייוויד, מה? ושימו לב, הנה אני רואה את ההודעה שלי, אוקיי?
אני סוגר את הסשן הזה, שימו לב, אנחנו ערכנו את הקובץ של SSHD. עכשיו אני אנסה להיכנס דרך הקונסול ונראה אם אנחנו מקבלים את אותה הודעה. מה דעתכם, נקבל?
דייוויד, סיסמה, ואנחנו נכנסים למערכת בעצם