PracticU

חיבור לשרת FTP עם שם וסיסמה

בלי כתוביותעם כתוביות
PracticU › קורס לינוקס למתקדמים - הסמכה בינלאומית - Linux - Red Hat - RHCSA / RHCE › חיבור לשרת FTP עם שם וסיסמה
מילון מושגים:
FTP - פרוטוקול להעברת קבצים בין מחשבים ברשת, בין לקוח לשרת.
סיסמה - מחרוזת תווים סודית שמשמשת לאימות זהות המשתמש בעת כניסה למערכת. ככל שהיא ארוכה ומורכבת יותר, כך קשה יותר לנחש אותה.
root - משתמש העל במערכות Linux, בעל הרשאות מלאות לכל פעולה. גם הרמה העליונה בעץ של תיקיות או נתונים.
מעטפת - תוכנה שמפרשת פקודות של המשתמש ומעבירה אותן למערכת ההפעלה, למשל Bash או PowerShell.
שורת פקודה - ממשק טקסטואלי שבו מקלידים פקודות למערכת ההפעלה ומקבלים תגובה בטקסט, במקום להשתמש בעכבר.
תיקייה - מכל במערכת הקבצים שמשמש לארגון קבצים ותיקיות אחרות בתוך מבנה היררכי.
הרשאה - קביעה אילו פעולות ומשאבים מותרים למשתמש או לתהליך לאחר שזהותו אומתה. שולטת במי רשאי לעשות מה.
SELinux - מנגנון אבטחה ב-Linux שאוכף מדיניות בקרת גישה מחמירה על תהליכים וקבצים.

חיבור לשרת FTP עם שם וסיסמה
כשמשתפים תוכן דרך FTP רוצים שרק משתמשים מורשים יוכלו להתחבר. השיעור מסביר את הדרכים לשלוט בכניסה של משתמשים מקומיים ומשתמשים מזהות מרכזית, ואת הדרך לנעול כל משתמש לתיקיית הבית שלו.
מנגנוני הסינון
1. local_enable: מאפשר למשתמשים מקומיים להתחבר. משתמשים מזהות מרכזית נכנסים דרך אותה הגדרה.
2. קובץ ftpusers: רשימה של משתמשים שאסור להם להתחבר, כמו root, daemon, mail ו-nobody. הקובץ נקרא על ידי מודול PAM של vsftpd.
3. קובץ user_list: פועל לפי הפרמטר userlist_deny. כשהוא YES (ברירת המחדל) המשתמשים ברשימה נדחים. כשהוא NO מתאפשרת כניסה רק למשתמשים שברשימה.
4. הכלל המחמיר: משתמש שנדחה באחד הקבצים לא יוכל להתחבר, גם אם הקובץ השני מאשר אותו.
Shell של המשתמש
1. מניעת כניסה למערכת: משנים את ה-shell של המשתמש ל-nologin. המשתמש יכול להתחבר ב-FTP אבל לא בשורת פקודה.
2. תוצאה: תיקיית הבית משמשת להעברת קבצים בלבד.
Change root
1. הבעיה: משתמש FTP רואה את כל התיקיות במערכת שאליהן יש לו הרשאה, כמו /etc, /tmp ו-/usr.
2. הפתרון: chroot_local_user=YES מגביל את המשתמשים לתיקיית הבית שלהם.
3. חריגים: הפרמטר chroot_list_enable ורשימת chroot_list מגדירים אילו משתמשים יעבדו עם chroot. כשברירת המחדל היא ללא chroot, הרשימה משמשת לקבוצת המשתמשים שכן יוגבלו.
4. הפעלה: שינוי ב-vsftpd.conf דורש ריסטארט לשירות.
SELinux
1. חסימה: כש-SELinux במצב Enforcing, שרת ה-FTP לא יוכל לגשת לתיקיות הבית, גם אם הוא רץ כ-root.
2. פתרון: setsebool -P ftp_home_dir on. ה-P שומר את הערך אחרי הפעלה מחדש.
שימו לב
שינוי בקובץ המשתמשים אינו דורש ריסטארט, כי השרת קורא אותו בכל כניסה. שינוי ב-vsftpd.conf כן דורש ריסטארט. המרצה מציין שהסרטון צולם כש-SELinux במצב Permissive, ולכן הבעיה לא הופיעה שם.
בתום השיעור הסטודנט מבין את הסדר בין ftpusers ל-user_list, יודע למנוע כניסה למערכת למשתמש מסוים, ויודע להגביל משתמשים לתיקיית הבית שלהם.
השיעור הבא בקורס: ניהול מרכזי עם IPA Users
לחץ כאן להורדת הורדת קבצי 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.


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

פרקי ההרצאה: חיבור לשרת FTP עם שם וסיסמה

  1. 00:00

    מבוא: הגנה על תוכן באמצעות משתמשים

  2. 01:05

    ההגדרות local_enable ו-anonymous_enable

  3. 02:21

    קובץ ftpusers: משתמשים שאסור להם להתחבר

  4. 03:38

    מנגנון PAM שבודק את הכניסה

  5. 05:54

    קובץ user_list: אישור או דחייה של משתמשים

  6. 07:26

    הכלל המחמיר: שילוב ftpusers ו-user_list

  7. 10:10

    מניעת כניסה למערכת דרך ה-Shell

  8. 11:33

    הפעלת השירות ובדיקת כניסת המשתמש

תמלול ההרצאה: חיבור לשרת FTP עם שם וסיסמה

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

  1. 00:03

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

  2. 00:20

    בסרטון זה אנחנו נלמד איך אנחנו מאבטחים את שירות ה-FTP בעזרת שם משתמש וסיסמה. אנחנו נדבר על משתמשים מקומיים ועל משתמשים שמגיעים משירות של זהות מרכזי, לדוגמה Active Directory או שירות ה-IPA שזה בעצם ראשי תיבות של Identity, Policy ו-Audit שזה בעצם המקביל ל-Active Directory בלינוקס.

  3. 00:48

    במידה וראיתם את הסרטונים הקודמים אתם צריכים להיות אתם צריכים להכיר את ההגדרות הבסיסיות של שירות ה-FTP אוקיי למשל את הקובץ הזה vsftpd.com. מה שמאפשר למשתמשים מקומיים להתחבר לשירות ה-ftp זה ההגדרה הזאת שהיא enabled by default, local enabled.

  4. 01:35

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

  5. 02:09

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

  6. 02:32

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

  7. 03:09

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

  8. 03:38

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

  9. 04:00

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

  10. 04:53

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

  11. 05:33

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

  12. 06:24

    להיכנס או לדחות מהמשתמשים שרשומים בו להיכנס ובעצם התפקיד שלו הוא נקבע על ידי הפרמטר יוזר ליסט דיני בקובץ ההגדרות כלומר אם user list deny שווה ל-no אז יתאפשר להיכנס ל-ftp רק ליוזרים אשר כן נמצאים ברשימה אם user list deny שווה ל-yes

  13. 07:00

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

  14. 07:32

    מתי זה יכול להיות שימושי? זה יכול להיות שימושי למשל כאשר אני מאפשר הרבה יוזרים ב-user list וחלק מהם שאני עושה איזשהו מאסק ומוחק אותם ולא מאפשר גישה דרך הקובץ FTP Users.

  15. 07:51

    לצורך העניין, מי שקובע הוא המחמיר ביותר. כלומר, אם הקובץ, אם יוזר מסוים הוא רשום ב-FTP Users, אפילו שהוא מאופשר ב-User List, הוא לא יאושר להיכנס.

  16. 08:10

    ואם הקובץ בעצם ממשיך, שמשתמש הוא מופיע ב-user list בתור אחד שהוא כן יכול להיכנס וגם מופיע ב-ftp-users הוא עדיין לא יוכל להיכנס כלומר אם אחד מהקבצים האלה דחה את הכניסה של המשתמש אז המשתמש לא יוכל להיכנס אוקיי יש לי כאן במערכת למעשה לצורך ההדגמה שתי יוזרים, אחד הוא יוזר מקומי שרגקה את ה-ETC

  17. 08:42

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

  18. 09:03

    כאן אני יכול לראות את ההגדרות של היוזר, לא אזין פה סיסמה כי זה פחות רלוונטי כרגע בכל מקרה אני יכול להיכנס למערכת עם שתי היוזרים האלה באופן רגיל אוסרבר 3 זה השרת שאני עובד איתו כרגע ו-ftp-local סיסמה apwd אני נמצא בתוך תיקיית הבית של המשתמש המקומי אוקיי, אותו כנ"ל, אני יכול להיכנס עם שם משתמש מהדירקטורי,

  19. 10:07

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

  20. 10:47

    ואני משנה את ה-Shell שלו ל-call all slash dev null, או להסבין no-login שזאת הדרך היותר straight forward לעשות את זה מבחינת המערכת.

  21. 11:08

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

  22. 11:37

    אוקיי אז אני יכול לעשות עכשיו למעשה להתחיל את שרת ה-FTP אני עושה service vstpdstart ושרת ה-FTP עלה ועכשיו אני אנסה להתחבר עם היוזר userftplocal אגב כדי שיהיה ברור לאן מתחברים יצרתי קובץ אצל כל אחד ובהום דירקטורי אצל היוזר שמגיע מהדירקטורי סרוויס מה-IDM יצרתי קובץ שנקרא FTP עם כף תחתון דירקטורי

  23. 12:35

    טקסט אצל יוזר שמגיע המקומי יצרתי קובץ FTP local.txt ואני עכשיו מנסה להתחבר ל-FTP עם המשתמש FTP local הגעתי אני רואה את הקובץ אני רואה את את הקבצים האחרים שיש לי בתוך תקיית הבית.

  24. 13:05

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

  25. 13:31

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

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

ההרצאה הקודמת: FTPS vs SFTP

ההרצאה הבאה: ניהול מרכזי עם IPA Users

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

  • גיבוי נתב לשרת FTP
  • גיבוי מרוחק לשרת FTP
  • חיבור לשרת Socks מרוחק
  • פריצה בכוח לשרת Brute Force FTP עם Hydra

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

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