בקשה - טיפים לאבטחת שרת
-
עד כה הצלחתי להסתדר עם SaaS שונים כגון heroku,
כעת לא נותרה לי ברירה ועברתי להשתמש בשרת לינוקס רגיל,
אשמח לטיפים מבעלי הנסיון והידע כאן מה כדאי לעשות כדי לאבטח אותו.התחברות בssh אפשרתי רק עם private key ולא עם סיסמה, שזה לכאורה הרבה יותר מאובטח. מה עוד מומלץ?
אני מריץ בשרת יישומי nodejs שונים, ומסד נתונים MongoDB.
תודה מראש -
@צדיק-תמים
לאפשר ufw (אחרי שהוספת את הallow SSH + allow 'Nginx Full').
לא להתקין שום חבילה (הן במערכת הפעלה והן באפליקציות נוד וכדומה) בלי לבדוק שהיא פופולרית פעילה ועדכנית או להבין מה היא עושה וכמה היקף פעולה יש בה.
מומלץ לתת לאפליקציות נוד משתמש ייעודי (אפשר כללי כמו www-data ואפשר ספציפי לכל אפליקציה) עם הרשאות לקבצים הנדרשים בלבד.
כל זה הקדמה לדבר העיקרי, סדר.
ככל שתהיה מסודר, יהיה לך קל לוודא שאתה פועל בשכל ושאין פתחים.
ככל שלא, אתה עשוי לעשות טעויות קשות הן באבטחה והן ביכולת להמשיך לנהל את השרת לבד.
בשביל הסדר להחזיק קובץ אקסל וכדומה עם כלל ההתקנות והפרטים הנדרשים. אפשר לשמור את היסטוריית הפקודות של בש לעבור על זה ולסנן את הרלוונטי.
כמו תמיד, אני נאה דורש. -
@dovid כתב בבקשה - טיפים לאבטחת שרת:
מומלץ לתת לאפליקציות נוד משתמש ייעודי (אפשר כללי כמו www-data ואפשר ספציפי לכל אפליקציה) עם הרשאות לקבצים הנדרשים בלבד.
או להריץ בתוך דוקר
@dovid כתב בבקשה - טיפים לאבטחת שרת:
לא להתקין שום חבילה (הן במערכת הפעלה והן באפליקציות נוד וכדומה) בלי לבדוק שהיא פופולרית פעילה ועדכנית או להבין מה היא עושה וכמה היקף פעולה יש בה.
נראה לי שלרוב אם חבילה התקבלה למנהל חבילות של דביאן זה לא משהו שמישהו זרק לפני 2 דקות לאינטרנט בלי שמישהו יבדוק מה זה (בשונה מNPM).
בNPM לא נראה לי שזה אפשרי לבדוק את כל התלויות לפני כל התקנה (לפחות למשתמש הפשוט) -
@צדיק-תמים בעבר כתבתי כאן פוסט קצר שמתעסק ג"כ בנושא, ממליץ לעבור -:)
-
@nigun כתב בבקשה - טיפים לאבטחת שרת:
שלרוב אם חבילה התקבלה למנהל חבילות של דביאן
צודק, הייתי אומר אפילו כל.
(וזה בעצמו הבעיה של הדביאן,
המנגנון הכבד שלהם להכנסת גירסה למאגר גורמת שיש הרבה חבילות מיושנות שמה.
בכל תוכנה שרוצים להתקין כדאי להסתכל מה הדרך שבעל התכונה ממליץ כי לעיתים הוא ממליץ על התקנה מחוץ למנהל החבילות כדי לקבל את הגירסה היותר מעודכנת).בקשר לNPM אם החבילה היא מספיק חשובה זה בעצמו עדות על התלויות.
-
@dovid כתב בבקשה - טיפים לאבטחת שרת:
מומלץ לתת לאפליקציות נוד משתמש ייעודי (אפשר כללי כמו www-data ואפשר ספציפי לכל אפליקציה) עם הרשאות לקבצים הנדרשים בלבד.
מה זה אומר לתת משתמש ייעודי?
יצרתי משתמש חדש והענקתי לו הרשאת sudo, ואני מתחבר לשרת ואז עושהsu myuser
, וזאת כדי לא להשתמש במשתמש הroot שהשרת מגיע איתו.
לזה התכוונת או משהו אחר? -
@dovid הרשאות sudo הכוונה לכאורה שנתן את האפשרות למשתמש להסלים את הרשאותיו לרמת רוט על ידי פקודת sudo.
לכאורה זה בטיחותי כל עוד שיש למשתמש סיסמה חזקה ושלא מאפשרים sudo בלי סיסמת המשתמש
@צדיק-תמים אם כבר נתת לו הרשאות sudo תוכל ליכנס ישר לחשבון שלו ולא צריך לעשות ssh למשתמש רוט אף פעם