Fort kNox Linux

11 בינואר, 2008 | מאת Doron Ofek |

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

טוב, אז מה חדש, ולמה פתאום מצאתי זמן לכתוב..
העלתי היום לאתר 2 קבצים של מערכת שקראתי לה FNL (שם זמני) על שמו של הבסיס Fort Knox (למי שלא מכיר , שם שמורות עתודות המטבע של ארה"ב) .. למה לתת שם כזה למערכת ..
טוב, אז נתחיל מההתחלה.

התעורר הצורך אצל אחת מהחברות שעימם אני עובד במערכת שתיהיה קשוחה לחלוטין – את זה כבר יצא לי לעשות .. אולם הפעם הגדירו לי מגבלה בעייתית : אני לא אוכל לשבור את המערכת ביחס למה שהפצת הלינוקס איתה הם עובדים הגדירה.
בעברית פשוטה זה אומר שאסור לי :
1. לבצע קומפילציה של kernel .
2. להתקין חבילות שאינן רשמיות ו/או נתמכות.
3. לבצע את המשימות הדרושות להקשחה קיצונית.

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

נו, בטח שיש פתרון ..
לשחק ולעצב מחדש את ה initrd – אפשרי .
תמיכה במערכות קבצים מסויימות – קיימת.
כל שנותר לי הוא לחבר את הדברים ביחד. למעשה ביצעתי התקנה בסיסית, עם הקשחה קלילה ביותר, הסרת חבילות שלא נדרשות, הוספת חבילות שנדרשו ע"י החברה שביקשה את הפתרון. ולאחר מכן בניתי מערכת קבצים מסוג squashfs והכנסתי אליה את כל מערכת הלינוקס שהתקנתי קודם לכן.
בנקודה זו אולי צריך לציין ש squashfs היא מערכת קבצים לקריאה בלבד.
על מערכת הקבצים יצרתי קישורים אל התיקיות המצויות מתחת ל squashfs ובכך השגתי מערכת עובדת במצב של קריאה בלבד.
לאחר מכן הוספתי מספר תיקיות למערכת הקבצים הראשית אשר מקושרות מתוך המערכת לקריאה בלבד (דהיינו כמו שבניתי מקודם לינקים – עכשיו בניתי לינקים בכיוון ההפוך) .. וזאת על מנת שניתן יהיה לפתוח קבצים מסויימים במצב של קריאה/כתיבה (הרי מערכת סטנדרטית צריכה לכתוב לאן שהוא דבר או שניים).
אל ה initrd הוספתי loop device שנוצר עם ההפעלה של המחשב ואשר מתבצע אליו mount מייד לאחר ביצוע ה mount למחיצה הראשית – בצורה הזו בתהליך ההפעלה תיהיה למערכת שלי גישה לתיקיות שהיא צריכה .. וזהו בעצם.

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

ניתן להוסיף אל התהליך מספר דברים שלא מופיעים במה שהעלתי לאתר – אולם נדרשתי לחלקם ביישום וזה הפעלה מאסיבית של selinux (זה אגב לא מאד ברור לי למה .. מכוון שמערכת הקבצים ממילא לא יכולה להשתנות , מה שכן זה מהווה כלי טוב לביצוע debug של המערכת) , שימוש ב ramfs כחלופה לתיקיות שרוצים לבצע אליהם קריאה/כתיבה .. בעיקרון, שימוש ב ramfs אומר שאם המערכת נכבת המידע מתנדף, ולכן יש גם על מחיצת השורש יכולת לבצע שמירה של קבצים (דבר שאינו אפשרי במרבית חלקי המערכת – כל החלקים המצויים תחת ה squashfs ) .
זהו.
יש שני קבצים בסיסיים (לא לדאוג לא הקבצים מהפרוייקט עצמו) שהעלתי באתר , שניהם עם יכולת לעבוד כלינוקס או מתוך כונן קשיח או מתוך USB Disk ( דהיינו disk on key ) ואשר ניתנים להורדה .
הראשון שבהם עם גודל דיסק של 1G והשני עם גודל דיסק של 256M – לא להיבהל .. זה לא נושך.
הקבצים הינם בסיסים בעיקרון , כלומר לא המערכת שבאמת השתמשנו בה , ויכול להיות שיש בהם "דפיקויות" ו /או "שריטות" למינהם – כך שהם מובאים לא כמערכת שלימוש אלא על מנת לניתן יהיה להתרשם מהפתרון.
מומלץ במידה ורוצים ליישם כזה פתרון – לבצע remaster מחדש .
יש מידע קצר על כך דרך קישור בעמוד הראשי ב ofek.biz ואני מקווה שהמערכת תמלא את תפקידה (דהיינו תפתח את הראש למי שישחק אותה) .

עד כאן שידורי המהפכה להיום .

- דורון

תגיות: , ,

השארת תגובה

Protected by WP Anti Spam