נקודות עיקריות באבטחה של שרת וירטואלי VPS

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

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

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

חסימת גישה לשרת באמצעות חומת אש (Firewall)

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

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

ישנם לא מעט תוכנות חומת אש עבור Linux, ישנו מדריך באתר עבור IP tables, ומי שמעוניין בפתרון פשוט אפילו עוד יותר, יכול להשתמש ב-UFW (uncomplicated firewall –  חומת אש לא מסובכת). יש מדריך באנגלית כאן.

חשוב לציין, שאם השרת עובד כבר עם IPv6 יש להגדיר חומת אש שמתאימה גם ל-IPv6, למשל עבור IP tables יש גירסה שנקראת ip6tables שמיועדת לכך, עם אותן פקודות בדיוק (אותו syntax).

כמובן שיש עוד תוכנות Firewall ,כמו למשל mod_security ,  אבל אלו הבסיסיות ביותר, שכלולות בהפצות הידועות של Linux.

שימוש ב-SSH כדי לגשת לשרת

כאשר אתה צריך לנהל שרת, שלא נמצא פיזית לידך, אתה צריך גישה כלשהיא להשתלטות מרחוק. מה שמקובל הוא שימוש בפרוטוקול SSH (secure shell – שורת פקודה מאובטחת) .

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

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

המפתחות האלו כל כך מורכבים, שזה לא מעשי לנסות לפרוץ אותם באמצעות brute-force. יותר מכך, גם לכך אפשר להוסיף סיסמא, מה שהופך את זה לבלתי עביר. וגם על זה יש מדריך באתר.

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

התקנת מערכת IDS  לזיהוי של מניפולציה לא רצויה על המערכת

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

מערכות IDS הן מערכות שנועדות לתת את קו ההגנה האחרון, אחרי שמישהו הצליח לחדור את קוי ההגנה "הקדמיים" שלנו כמו חומת אש וכדומה. מערכות כאלו לא מגינות בפועל, אלא מתריעות למנהל השרת מתי ישנה תנועה חשודה.  (הסבר מקיף על המושג נמצא כאן ). או במצב שמישהו משתמש בתעבורה מותרת, ומנסה לנצל בה פירצות אחרות שאולי קיימות. למשל אם מישהו גולש לאתר (פורט 80, תעבורה מותרת) ומפעיל כלי אוטומטי בדף ה-Login שמנסה לבצע שאילתות SQL דרך הטופס (מה שנקרא SQL injection) , אז יכול מאוד להיות שהקוד בנוי מספיק טוב כדי למנוע זאת, אבל היינו רוצים לדעת על זה בזמן אמת ופשוט לחסום את ה-IP שלו. בדיוק לשם כך מיועדות מערכות IDS. מערכת ה-IDS רק מתריעה, ועליך מוטלת המשימה להחליט מה לעשות עם זה.

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

 

תוכנות נוספות בהקשר זה הם Aide, Psad ,Bro, RKHunter

המלצות אבטחה כלליות :

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

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

2. תהיה זהיר כאשר אתה מוריד תוכנה שלא באמצעות הערוצים  "הרשמיים" (כלומר שלא באמצעות הדאטאבייסים של apt-get וכדומה).

3. תהיה מודע ל-Services שרצים ברקע, ותגביל את אלו שאין בהם צורך.

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

5. תטמיע אצל המשתמשים מדיניות אבטחת מידע הגיונית. ישנם מספר כללים שכדאי להטמיע אצל המשתמשים:

  • אל תאפשר גישה של root.זהו חשבון "חזק" עם הרשאות מלאות, וככזה, הוא יעד להמון התקפות. ברגע שאתה חוסם אותו, ביצעת פעולה פשוטה שמאפשרת לך לבצע את כל הפעולות האדמיניסטרטיביות עם sudo. יש מדריך על זה באתר.
  • המלצה נוספת היא ליצור משתמש יחודי לכל יוזר, ולכל סרוויס שצריך משתמש, ולכל אחד לתת רק את ההרשאות הדרושות לו בלבד ולנעול בפניו את כל מה שהוא לא זקוק לו. אם תיישם את ההמלצה הזו, אתה בעצם יוצר "מידור" ב-VPS שלך, בדומה למערכת הדלתות האטומות למיים בספינות גדולות, המיועדת למנוע מצב שבו הספינה כולה תתבע רק בגלל חור במקום אחד. במצב כזה, גם אם התרחשה פריצה דרך שירות או משתמש מסוים, עדין היא מאוד מוגבלת ולא משפיעה על שאר הפעילות.
  • באותו עניין, אם הסרת תוכנה, או סרוויס מסוים, מומלץ לבטל את כל ההרשאות /יוזרים שהיו קשורים אליו.
  • שים לב להרשאות קבצים.
    הרשאות קבצים הן מקור לתסכול עצום עבור משתמשים רבים. אתה צריך למצוא את האיזון להרשאות שתאפשרנה לך לעשות את מה שאתה צריך לעשות בזמן שאתה לא חושף את עצמך (או את ה-VPS שלך) למתקפה.  מדריך באנגלית נמצא כאן.
  • תעקוב אחרי המלצות אבטחה של תוכנות ספציפיות שאתה עובד עימן.

סיכום – אבטחה בשרת וירטואלי VPS  :

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

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

מקור : https://www.digitalocean.com/community/tutorials/an-introduction-to-securing-your-linux-vps

תגובה אחת בנושא “נקודות עיקריות באבטחה של שרת וירטואלי VPS

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *