שמעתי מספר רב של פעמים לא להשאיר את SSH עם סיסמה פתוחה באינטרנט. מדוע זה כל כך רע? מאשר רק אכזריות אכזרית או שחסר לי משהו אחר?
שמעתי מספר רב של פעמים לא להשאיר את SSH עם סיסמה פתוחה באינטרנט. מדוע זה כל כך רע? מאשר רק אכזריות אכזרית או שחסר לי משהו אחר?
מדוע זה כל כך גרוע?
מכיוון שיש טונות של בוטים שרק סורקות את האינטרנט אחר יציאות פתוחות ומנסות להתחבר, ברגע שבוט סורק ימצא SSH פתוח יציאה יתכן שעומד בתור לבוט אחר (או botnet) אחר כדי לנסות לאכוף את הסיסמה. אחד הסיכונים כאן הוא שבסופו של דבר הם יצליחו להבין את הסיסמה ולהשתלט על השרת.
אני מבין שניתן לאכזב את הסיסמה, אבל מה אם זו חזקה מאוד סיסמה שלוקחת עידנים לפיצוח?
בעל סיסמה ארוכה הוא טכניקת הפחתה, אולם המשאבים (רוחב הפס, שטח הדיסק המשמש ליומנים ומעבד למשל) צריכת כוח ברוטאלי התקפה עלולה גם להזיק.
כמה טכניקות להפחתת התקפה כוחנית על SSH:
הסיכון העיקרי הוא שהחיבור הראשוני יכול להיות מיורט על ידי איש-באמצע, כך שתוקף יכול לאחזר את הסיסמה.
בפעם הראשונה שמשתמש מתחבר לשרת SSH, מוצג משהו דומה לדברים הבאים:
$ ssh scanme.nmap.org לא ניתן לקבוע את האותנטיות של המארח 'scanme.nmap.org (45.33.32.156)'. טביעת האצבע של מפתח ECDSA היא SHA256: 8iz5L6iZxKJ6YONmad4oMbC + m / + vI9vx5C5f + qTTGDc. האם אתה בטוח שברצונך להמשיך להתחבר (כן / לא)?
עכשיו, אלא אם כן כל משתמש עומד לאמת את טביעת האצבע כדי להבטיח ש זהו השרת שלך, אז קיים סיכון שהחיבור שלהם יורט (למשל MITM ברשת שלהם מיירטת ישירות תנועה, או סוג כלשהו של חטיפת DNS).
הסיבה לכך היא ש- SSH הוא "אמון בשימוש ראשון ". אם התחברת לאותו מארח בעבר והמפתח משתנה פתאום, במקום זאת תוצג ההודעה הבאה, תוך אזהרה למשתמש.
@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@ אזהרה: זיהוי מרחוק השתנה! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ זה אפשרי שמישהו עושה משהו נעים! מישהו יכול להאזין להאזנה עליך עכשיו (התקפה בין אדם לאמצע)! יתכן שמפתח המארח של RSA השתנה זה עתה. טביעת האצבע של מפתח RSA שנשלח על ידי המארח המרוחק is5c: 9b: 16: 56: a6: cd: 11: 10: 3a: cd: 1b: a2: 91: cd: e5: 1c. אנא פנה למנהל המערכת שלך. הוסף מפתח מארח נכון ב- /home/user/.ssh/known_hosts כדי להיפטר מהודעה זו. מפתח /home/user/.ssh/known_hosts:1 מפתח מארח RSA עבור ras.mydomain.com השתנה וביקשת בדיקה קפדנית. אימות מפתח המפתח נכשל.
האזהרה תקל. התקפה זו למשתמשים שכבר התחברו מלקוח מסוים זה.
סיכונים אחרים ופחות קריטיים לפתיחת SSH באינטרנט הם שיש הרבה בוטים שמוצאים וניסיון כניסה נגד שרתים כאלה. אם יש לך סיסמה חזקה בכל החשבונות, הסיכון לפשרה הוא נמוך מאוד (לפי חזק אני מתכוון לזה שבהחלט לא יהיה ברשימת מילים שהתוקף עשוי להשתמש בו או ליצור). חלים כללים רגילים - למשל, אין שימוש חוזר בסיסמה, סיסמה המאוחסנת בצורה מאובטחת וכו '. החיסרון הוא שקבצי יומן יצטברו במהירות עם כל ניסיונות האימות שהתקבלו.
לגבי SSH עצמו בכל מצב אימות, שכן זהו בשירות אחר יש סיכוי להתגלות פגיעות שיכולות להיות מנוצלות אוטומטית על ידי בוטים כאלה. עם זאת, הסיכון לכך אינו גדול יותר מזה של שרת אינטרנט או יישום אינטרנט שמנוצל. כמו כל שרת עם שירותים ציבוריים, מומלצת אסטרטגיית ניהול פגיעות טובה.
ראה גם תשובה זו, החלק הקשור להודעות אזהרה של SSH והסיכון להמשך, גם בציבור. אימות מפתח.
שמעתי מספר רב של פעמים לא להשאיר את SSH עם סיסמה פתוחה באינטרנט. מדוע זה כל כך גרוע?
אני מבין שניתן לאכזב את הסיסמה, אבל מה אם זו סיסמה חזקה מאוד שתצטרך לפצח עידנים?
היתרון הגדול של השבתת כניסות SSH באמצעות סיסמה הוא באמת במניעת אכזריות של חשבונות ברירת מחדל עם סיסמאות חלשות או שמשתמשים שבוחרים בסיסמאות חלשות. נכון לעכשיו יתכן שיהיו לך רק כמה חשבונות ללא סיסמאות חלשות, אך ייתכן שיתקין משהו בעתיד כאשר זה לא המקרה. ככל שיש לך יותר מערכות או יותר מורכבות לאורך זמן, כך הסיכון הופך להיות גבוה יותר.
מקרה אנקדוטלי: מכר שלי איבד את השרת שלו וכל מה שיש בו כי הוא נתן לחבר חשבון עם הסיסמה changeme שלא שונתה. גם לא נוצרו גיבויים מרוחקים, ולכן הוא איבד הכל.
מפתחות SSH מאובטחים באופן דרמטי כברירת מחדל. אלא אם כן יצירת המפתחות נשברת, הרמה הנמוכה ביותר של פשרה מחייבת להשיג את מפתח המשתמשים. ואילו עם סיסמאות הרמה רק מנחשת מתי מישהו חושף סיסמה חלשה. מדובר בלוודא שמוגנים על כישלונות אנושיים עתידיים.
דבר נוסף שיש לקחת בחשבון הוא האפשרות של פגיעויות (אם כי ידועות זמן מה או אפס יום) בדמון sshd עצמו, אשר יכול להיות מנוצל על ידי תוקף. כדי למתן זאת, עדיף לפתוח את sshd רק למשתמשים העובדים מכתובות IP ידועות שאתה סומך עליהם, או באמצעות VPN, אם אפשר.
יש כמה סיבות שונות מדוע בטוח יותר להשתמש באימות מפתח ציבורי ולא באימות סיסמה:
בהתחשב בכך שאני ממליץ נגד שימוש באימות סיסמאות, אני גם יעץ להשאיר את זה מופעל בשרת ssh שלך מהסיבות הבאות:
לפי הבנתי, מפתח לא שונה כל כך מסיסמה; זה פשוט הרבה יותר ארוך ולכן קשה יותר לפצח אותו. בנוסף אתה זקוק לסיסמה למעלה.
אבל אני גם מציין שזה הגיוני לאפשר לכתובות IP מסוימות להתחבר אפילו ליציאת SSH שלך. זה מקטין את קבצי היומן, ובדרך כלל נהוג לאפשר גישה רק (לא התחברות) לשירות במידת הצורך. כך למשל לטווח כתובות IP של VPN של החברה שלך. אבל לעולם אל תסתמך רק על זה.
העברת יציאת SSH מוצעת לפעמים, אבל אני רואה בכך תועלת מועטה.
כמו כן (מחוץ לנושא): לעולם אל תאפשר כניסה ל- SSH עבור root .