מה לא להתקין בשרת

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

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

למשל כל מה שאנחנו צריכים זה שרת HTTP עם מסד נתונים, שפת תכנות דינמית כדוגמת פרל, רובי, פיתון ו php שרת SSH וזהו ! אבל אם נקבל שרת מוכן, הוא יכיל בנוסף גם x11 (לא רק שרת שגם זה מיותר אלא גם לקוח), נקבל samba, נקבל procmail, bluz גם יותקן לנו ועוד מליון חבילות שהצורך בהם אינו ברור וידוע.

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

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

9 מחשבות על “מה לא להתקין בשרת

  1. Lior Kaplan

    אני מנסה להסביר את זה לכל כך הרבה אנשים שפשוט בוחרים להתקין Everything בהתקנה של RHEL… פשוט לא יאמן.

  2. דורון

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

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

    – דורון

  3. פינגבק: מלחמת השרתים « לראות שונה

  4. ik_5 מאת

    אצלי זה תלוי בהרבה מאוד גורמים בניהם גם הלקוח. יש דברים שאני צריך לעשות שאי אפשר לעשות עם se-linux למשל.

    מה שאני בד"כ עושה זה, מנתק את האפשרות להתחבר למכונה בכלל פרט לכתובות IP ספציפיות (או כתובות dns ספציפיות). בנוסף לזה אני מכוון כל דבר אפשרי להאזין ל 127.0.01 במקום לכולם. במידת האפשר אני לא מאפשר חיבור עם root.
    בנוסף לזה אני מוריד הרשאות כמה שרק אפשר לריצה של תוכנות שונות, ככה שהם לא ירצו בהרשאות root. לשירותים רגילים במידה וניתן, אני נותן פורט שונה מהשירות הרגיל, וככה מונע אפשרויות של סריקות אוטומטית ברשת, ועל כל זה (לא תמיד אבל שוב זה תלוי) אני גם מגדיר חוקי iptables שונים, שלא יאפשרו תקשורת לשום דבר פרט לדברים שחייבים.

  5. גל

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

  6. ik_5 מאת

    תאורטיית הקונספירציה אומרת שה nsa יצרו את se-linux בשביל שלא יצליחו להשתמש בו ואז יהיה קל ונוח יותר לפרוץ למחשבים🙂

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

  7. גל

    אני מתייחס בעיקר לscripts שרצים תחת משתמש הapache במיוחד סקריפטים של PHP של פרוייקטים ידועים לשמצה כמו phpBB וכו' שיש להם היסטוריה של בעיות אבטחה. בד"כ במקרים מסוג זה אני רואה 2 שיטות נפוצות:
    – הרצת הApache בסביבת chroot
    – הגבלת הPHP ע"י safe_mode, base dir או שימוש במודולים כמו mod_security של apache או הSuhosin של PHP.

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s