איך להיכנס לעולם הלינוקס?

א. כתב לי:

"שלום אילן,
קודם כל – רגע של בושה – אני מרגיש אבוד בכל התכתבויות הלינוקס שאני קורא ברשת, למרות שאני עובד בפיתוח (אמנם אינטרנט, אבל עדיין), ואפילו מורה בבית ספר לאינטרנט… ועל כן – אני מבקש, בכל לשון של בקשה, עזרה והכוונה בכמה נושאים:

  1. אני מאוד מעוניין להתחיל להבין מה קורה בעולם המטורף של מערכות ההפעלה מבוססות לינוקס/ גנום, אבל לא יודע מהיכן להתחיל… האם יש משהו מסודר, לדעתך, שיכול לעזור לי לבחור התקנות, ולהתחיל להבין את השפה המדוברת? איזה מילון לינוקסי או משהו? יש מלא, אבל מ-ל-א מושגים שפשוט לא יושבים לי בראש…
  2. לאחרונה קיבלתי מחשב נייד חדש, אבל עם מערכת ההפעלה הגועלית "ויסטה"(המחשב LG 1.73GH dual core), אני מנסה כבר שבועיים הפצה אחרי הפצה, בliveCD, כדי לבדוק מה יעבוד הכי טוב על מחשב זה. באתרים המתעסקים בלינוקס על ניידים לא יודעים לספר לי על המחשב, וכבר ניסיתי ארבע-חמש הפצות של ניידים "בני-דודים" (קרובים במפרט הטכני, עד כמה שאפשר) אבל ללא הצלחה מרובה… מה אתה ממליץ לעשות? אני קורא על הדביאן אץ' על מחשב נייד אצלך בבלוג, אבל רועדות לי הברכיים מפחד כשאני חושב על לצלול ללא הדרכה לתוך מערכת דורשת כל-כך…

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

תודה מראש,
א".

הנה מה שעניתי לו:

"א. שלום:

  1. בדבר אחד אני לא מסכים איתך: אתה לא צריך להתבייש.
  2. את תחום הלינוקס קשה ללמוד (במיוחד כשבאים עם גישה של windows). זאת מערכת הפעלה שונה לחלוטין ויש ללמוד אותה מ- 0. בקרוב אכתוב רשימה כיצד לדעתי כדאי להיכנס לעולם הלינוקס. בינתיים… כנס לקישור הבא ותוריד משם מדריך מעולה ללימוד לינוקס. אומנם הוא לא כ"כ עדכני אבל עולם המושגים (שכ"כ חסר) הוא נכון. המדריך כתוב בעברית ובתור פתיחה הייתי ממליץ שתקרא אותו מספר פעמים. אח"כ אני מאמין שהרבה מהמושגים שלא ברורים לך יתבהרו.
  3. לגבי הפצה: אל תתקין בינתיים על הנייד אלא רק לאחר שתסיים לקרוא את המדריך (תתאמן בפקודות bash באמצעות live-cd). כדאי שתתקין הפצה שנוחה למתחילים (סוסה, אובונטו, דביאן יציב) מהסיבה שאת תהליך ההתקנה יש לעשות נכון (בתהליך ההתקנה אתה יכול למחוק בטעות את כל הדיסק הקשיח). רק אל תתרשם לרעה מהביצועים כי הם ממש גרועים ב- live-cd."

ועכשיו לקיום ההבטחה (התשובה היותר רחבה):

  1. קיימים מספר אתרים שמיועדים למתחילים. תחילה הייתי פונה לוויקי של וואטסאפ. יש שם כל מה שדרוש ללימוד מרמת תתחילים ועד למתקדמים. תחילה כמובן יש להתחיל ולקרוא את הצעד הראשון (מתחילים בלינוקס), הייתי ממשיך ופונה לצעד השני (הגדרות בסיסיות), ורק לאחר מכן, בעזרת live-cd פונה ומתרגל נושאים שונים בצעד השלישי. את השלב הרביעי (נושאים מתקדמים בלינוקס) הייתי משאיר לשלב יותר מאוחר.
  2. האתר הבא: פינגווין. באתר יש "אסופת מדריכים להתחלה קלה", וגם כאן עוברים על כל החומר בצורה הדרגתית ומסודרת.
  3. במקביל לקריאה הנ"ל הייתי ממליץ לצפות בכל המדריכים באתר ubuntu screencasts.

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

תחזוקה שוטפת של הידע:

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

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

קוד פתוח ואבטחת מידע: יתרון או חסרון?

ברשימה הקודמת ("האתר של Raymond") הוצג כיצד ניתן לפרוץ בקלות רבה את הסיסמה של VNC. הפתרון נעזר בעובדה שמדובר בקוד פתוח דבר שהקל מאוד על הפריצה (עיון בקוד איפשר למידה של אלגוריתם הקידוד ב- registry). למה העובדה הזאת מטרידה אותי? כי יש אדם שעובד איתי שפוסל לחלוטין את השימוש בתוכנות קוד פתוח (ומציין תמיד את הדוגמה של VNC כדוגמה לבעיות האבטחה של תכנות קוד פתוח…). מיותר לציין שאותו אדם מעדיף את התוכנות של מיקרוסופט. העובדה הזאת לא הייתה מפריעה לי אלמלא העובדה שאותו אדם מתווה את מדיניות האבטחה בחברה בה אני עובד … (ותסלחו לי שאני משאיר ואשאיר את הנושא חסוי). ברשימה הזאת אנסה להעלות טיעונים בעד ונגד קוד פתוח בהקשר של אבטחת מידע בלבד. אשמח אם תעזרו לי להשיב לו …

טיעונים בעד הקוד הפתוח:

  • גם התוכנות של מיקרוסופט פרוצות לחלוטין. Raymond הציג במאמר הבא:
    How To Crack Windows Account Password
    כיצד ניתן לפרוץ בקלות רבה לחשבונות במעה"פ של מיקרוסופט. הסיכום שלו אומר הכל…
    That's all! It's that easy to crack a Windows account's password and gain access to it
  • המאמר מתבסס על גישה למחשב והרצה של תוכנה זדונית. זה ידוע שברגע שיש לאדם גישה פיזית למחשב שלך אז שום אבטחה שבעולם לא תעזור…
  • Firefox כדוגמה לתוכנת קוד פתוח סובלת מפחות פרצות אבטחה מאשר "מוצר הדגל" של מיקרוסופט (I.E). גם כשמתגלים פרצות אבטחה ב- Firefox מופץ טלאי עדכון במהירות רבה יותר מאשר באינטרנט אקספלורר (עובדה סטטיסטית)
  • מעה"פ חלונות סגורה לחלוטין, מה שלא מנע מציאת פרצות אבטחה רבות בתוכה (כולל בויסטה).
  • בדר"כ פרצות אבטחה לא מוצאים ע"י עיון בקוד, אלא באמצעות כלים אוטומטיים. בהקשר הזה אין שום יתרון לתוכנות הקוד סגור לעומת הקוד הפתוח.
  • חברות אבטחה רבות משלבים במוצרים שלהם קוד פתוח מבלי שהמוצרים שלהם נחשבים לפרוצים. יש דוגמאות רבות ואציין רק את Checkpoint שמשתמשת בלינוקס כפלטפורמה עליהם מותקנים כמה ממוצרי החברה (UTM ,Splat ועוד …)
  • הרבה יותר עיניים צופות בקוד מה שמאפשר גילוי מוקדם של בעיות אבטחה.

טיעונים נגד הקוד הפתוח:

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

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

troll.jpg


[ratings]

האתר של Raymond

מי שאוהב לקרוא על אבטחת מידע ו- Hacking כדאי שיכיר את האתר של Raymond. האתר מוקדש לנושאים שונים הקשורים לאבטחת מידע ו- hacking. דוגמאות לרשימות מעניינות (לא כולם לסביבת לינוקס):

ועוד ועוד…

הערה: המאמר האחרון: (How Effective is Blocking Websites using HOSTS file? ) דן בנושא עליו כתבתי (אבטחת המחשב באמצעות קובץ host) ומציג כיצד ניתן לפרוץ בקלות את ההגנה באמצעות שימוש בשרתי proxy.

ההבדל בין hard link ל- symbolic link

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

  • חלק המידע (inode) המכיל מיפוי מלא היכן המידע של הקובץ שמור בדיסק, מערכת ההרשאות (permision) של הקובץ ועוד…
  • חלק של שם הקובץ בו שמור שם הקובץ ומספר ה- inode שלו. כלומר שם הקובץ משמש כמצביע לנתוני הקובץ עצמו (באמצעות ה- inode).

דוגמא:

בפקודה ביקשתי להציג רשימה של קבצים (il-) כולל פירוט על inode. ניתן לראות שמספר ה- inode של הקובץ filename הוא 1058765 ומספר זה משמש כמצביע לנתוני הקובץ עצמו.


symbolic link:
ממש כמו בחלונות: משמש כקיצור דרך. symbolic link (או בקיצור sym link) אינו מצביע ישירות על אזור המידע בו מאוחסן הקובץ כי אם על שם קובץ אחר בו מאוחסנים נתוני ה- inode. לפיכך ברור שמחיקת קיצור הדרך לא מוחקת את המידע שבדיסק. במידה ונמחק את קובץ המידע, הקישור הסימבולי לא יצביע יותר על קובץ אמיתי. מצב זה נקרא orphans.

יצירת symbolic link:

הערות:

  • ניתן לשים לב שלקובץ filename ולקובץ example1 יש מספר inode שונה, כלומר הם מצביעים על נתוני מידע שונים.
  • האות l ב- lrwxrwxrwx מציינת שמדובר בקישור.
  • בגלל באג בוורדפרס הסימול <- הוחלף ב – ;gt&-

hard link:

קישור hard link הוא קישור נוסף ל- inode של הקובץ.
דוגמא:

הערות:

  • ניתן לשים לב שהקובץ example2 מקבל את אותו מספר inode: 1058765 כמו הקובץ filename .
  • שימו לב למספר 2 ב: rw-r–r– 2. המספר מציין שיש שני hard links המצביעים על אותו ה- inode, כך שאם נמחק את הקובץ filename הנתונים לא ימחקו מהדיסק (כי עדיין קיים hard link מהקובץ example2 ורק אם נמחק גם את הקובץ example2 נתוני ה- inode ימחקו).
  • האות l ב- lrwxrwxrwx מציינת שמדובר בקישור.
  • בגלל באג בוורדפרס הסימול <- הוחלף ב – ;gt&-

[ratings]

NTP

בשתי הרשימות הקודמות כתבתי על שינוי אזור הזמן במחשב (כשלינוקס מעביר אותנו באופן אוטומטי בין שעון קיץ לשעון חורף). אך מה קורה עם דיוק השעון? כאן כדאי להשתמש בשירות שנקרא (ntp (network time protocol. שירות זה דואג לסנכרן את שעון המחשב מול שרת המסונכרן מול שעון אטומי. כדי להפעיל את שירות ה- ntp יש לפעול כדלקמן:

  1. להתקין (אם לא מותקנות) את החבילות הבאות: ntp ו- ntpdate
  2. בשעון המערכת: נבחר "כוון זמן ושעה" ובחלון שנפתח נבחר את השרת ממנו נסתנכרן.

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

ntp.png

[ratings]