שאלה האם זה נורמלי לקבל מאות ניסיונות פריצה ליום?


אני רק בדק את השרת שלי /var/log/auth.log ומצאתי כי אני מקבל מעל 500 נכשל סיסמה / break-in הודעות ביום! האתר שלי קטן, וכתובת האתר שלו מעורפלת. האם זה נורמלי? האם עלי לנקוט צעדים כלשהם?


196
2018-03-08 11:26




עד שנעלנו את כל הנמלים החיצוניים המיותרים, אני זוכר שלא רק קיבלנו הרבה ניסיונות לפרוץ, אבל יום אחד זה היה כל כך גרוע שאנחנו נפרצו משתי מדינות שונות - באותו זמן! אז כן, 100 של ניסיונות פריצה הוא נורמלי לחלוטין. - Django Reinhardt
יש לנו שרתים שחווים "רצף" התקפה חדשה אחת ל -16 שניות. רצף אחד הוא בדרך כלל אצווה של כ -100 ניסיונות ברחבי יציאות שונות. רק בשביל בעיטות יום אחד הפעלתי שרת לא מתוכנן מחוץ לחומת האש שלנו; זה לקח פחות מ 10 דקות מרגע זה היה מופעל על זה כדי לקבל pwnd. הנקודה היא האינטרנט הוא באמת ג 'ונגל; נסו לא לאכול. - NotMe
אני יכול לראות שהפרסמתי את השאלה שלי לאתר הלא נכון: superuser.com/questions/200896/... - Justin C
בעוד אני מסכים עם אחרים זה נורמלי על יציאות משותפות נדרש (80, 443) אני למעשה חיסלו ניסיונות אלה נגד יציאת SSH שלי פשוט על ידי שינוי ברירת המחדל של יציאת מ 22 ל משהו מעורפל כמו 6022 למשל. רק עושה את זה, לבד, כמעט חיסל 99% של סוג זה של התקפה. - Kilo
אם אתה מתכוון לשנות את יציאת ה- SSH שלך, יש סיבות אבטחה לשמור את זה מתחת 1024 יציאת (רק שורש יכול לפתוח יציאות <1024, אז זה מגן עליך מפני משתמשים אחרים חטיפת SSH). - Brendan Long


תשובות:


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

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

לכן זה כל כך חשוב:

  • איסור כניסה שורש ב- SSH (איך ל)
  • השתמש בסיסמאות חזקות בכל מקום (גם ביישומי האינטרנט שלך)
  • עבור SSH, השתמש אימות מפתח ציבורי אם אפשר להשבית את הסיסמה auth לחלוטין (איך ל)

בנוסף, ניתן להתקין בית Favorite אשר יסרוק את authlog ואם הוא מוצא כמות מסוימת של ניסיונות הכניסה נכשלה מ IP, זה ימשיך להוסיף כי IP /etc/hosts.deny או iptables / netfilter כדי לנעול את התוקף במשך כמה דקות.

בנוסף להתקפות SSH, הוא גם הופך נפוץ לסרוק את שרת האינטרנט שלך עבור יישומי אינטרנט פגיעים (כמה יישומי בלוגים, CMSs, phpmyadmin, וכו '). אז הקפד לשמור את אלה מעודכנים ומאובטחות מדי!


207
2018-03-08 11:35



יישומים כגון fail2ban יכול לעזור הרבה "באופן זמני" להפסיק את הרובוטים האלה מלהכות את השרת שלך בשעות מטופשות בבוקר :-) יש לי להגדיר שלי לאסור 3 ניסיונות שגויים 24hours. - emtunc
ולהעביר את נמל ssh מ 22-222. זה עובד די טוב. - Tom O'Connor
+1, אימות מפתח ציבורי בלבד :) - 0xC0000022L
@STATUS_ACCESS_DENIED: הפעולות fail2ban לוקח הן רק רשימות של פקודות פגז לרוץ. אז זה באמת גמיש וקל לעשות עבודה כראוי עם כל תצורה מותאמת אישית. ההתייחסות הטובה ביותר היא להוריד אותו להסתכל action.d/iptables.conf. - mattdm
חסימת תוקפים כאלה היא בזבוז זמן. אם להשבית את הכניסה שורש, יש סיכוי טוב שאף אחד לא יהיה אפילו לנחש את שם הכניסה הנכון, שלא לדבר על הסיסמה. SSH עצמו הוא כבר קצב הגבלת בקשות הסיסמה, כך שגם אם הם יודעים את שם המשתמש שלך (בוטים אקראיים לא), אם יש לך סיסמה הגון, הם לעולם לא לנחש את זה. - Brendan Long


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

לאחר שיניתי את יציאת ssh ומיושם Port Knocking, מספר ירד ל 0 :-)


58
2018-03-08 11:36



מפת נחמד. אני אשמח לדעת איך לעשות את זה! - jftuga
@jftuga יש לי את כל ה- IP של יומני הראשון. grep 'Failed password' /var/log/secure* | grep sshd | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort | uniq(להסיר את uniq בסוף אם אתה רוצה לאפשר כפילויות). לאחר מכן תוכל להציב אותם ב- CSV ולהעלות אותו ל- zeemaps.com. ראיתי מפות טובות יותר ואז שלי, שם הם ישתמשו לספור כדי לצבוע את המפה (ירוק לאדום עבור מספר ניסיונות לכל המחוז), אבל אני לא סילוני הבנתי כי אחד החוצה - Bart De Vos
למה אתה מתכוון 'מיושם פורט נוקין'? האם יש App אני יכול להתקין דרך apt-get לעשות את זה? המספר יורד ל -0 נשמע נחמד
אבטחה באמצעות ערפול מקבל רע לעטוף. זה בסדר גמור חלק של האסטרטגיה הכוללת ולא את האסטרטגיה כולה. אחרי הכל, מה עוד היא סיסמה מלבד חוט מעורפל? - Joel Coel
@ Joel Coel, זה סוד , בניגוד לרוב הביטחון באמצעות סוגיות של אי-בהירות - תהליך סמוי, אך לא בהכרח סודי. - tobyodavies


אני אחד להשתמש "tarpit" בנוסף רק המאפשר אימות מפתח ציבורי ו disallowing כניסה שורש.

ב netfilter יש recent מודול, שבו אתה יכול להשתמש עם (INPUT שרשרת):

iptables -A INPUT -i if0 -p tcp --dport 22 -m state --state NEW -m recent --set --name tarpit --rsource
iptables -A INPUT -i if0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 180 --hitcount 6 --name tarpit --rsource -j DROP
iptables -A INPUT -i if0 -p tcp --dport 22 -j ACCEPT

מה זה עושה, כי כל ניסיון להתחבר לנמל 22 מופיע על ידי recent מודול עם IP ועוד כמה דברים תחת השם "tarpit" (אם אתה סקרן, תסתכל /proc/net/xt_recent/tarpit). ברור שאתה יכול להשתמש בשמות אחרים.

לרשימה או לעקיפת כתובות IP השתמש:

echo "+123.123.123.123" > /proc/net/xt_recent/tarpit
echo "-123.123.123.123" > /proc/net/xt_recent/tarpit

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

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

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

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

עריכה:

ניתן לנעול את עצמך עושה את זה, אז אתה יכול להוסיף משהו כמו זה מאפשר לך לנקות את האיסור על ידי דפיקות על יציאה מסוימת:

iptables -A INPUT -i if0 -p tcp --dport <knockport> -m state --state NEW -m recent --name tarpit --remove

29
2018-03-08 14:24



אני משתמש זה ולנהל לחסום את עצמי מדי פעם, אז כמו להגדיר עוד נמל עד שאתה יכול "לדפוק" על מנת להסיר את האיסור. - benlumley
@benlumley: נקודה טובה. נמל דפיקות יכול להיות שימושי גם כדי לשנות את יציאת ברירת המחדל - או אפילו את שניהם בשילוב ... - 0xC0000022L
@benlumley: ראה את ההערה שלך (הוסרה כעת על ידי סם). אני בהחלט לא אכפת לי אם התשובה נערכת / שיפור;) - 0xC0000022L


אתה יכול ליישם בית Favorite, או שיטות דומות כמו נעילת SSH ל- IP שלך. למרבה הצער הרובוטים מנסים גישה bruteforce כל הזמן אז זה נורמלי למדי, אתה צריך לוודא שיש לך סיסמה טובה.


15
2018-03-08 11:32



אם אתה משתמש ב- SSH, שקול את האימות של מפתח ציבורי. זה קצת יותר מאובטח אימות סיסמה. - Piskvor


כן. זה די נורמלי בימינו.

השתמש רק באימות מפתח ציבורי למטרות ניהוליות במידת האפשר. צור מפתח פרטי על תחנת העבודה שלך:

$ ssh-keygen -t dsa

Copipaste התוכן של ~ / .ssh / id_dsa.pub לשרתים שלך ~ / .ssh / author_keys (ו- /root /.ssh/authorized_keys, אם תזדקק לכניסה ישירה של שורש).

הגדר את השרתים שלך / etc / ssh / sshd_config לקבל רק אימות מפתח ציבורי:

PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin without-password

אם יש לך יותר מדי שרתים, אתה יכול להשתמש בובה כדי להפעיל את המפתחות הציבוריים ואת התצורות אליהם.

תסתכל Denyhosts ו בית Favorite כדי לחסום שוב ושוב ניסיונות התחברות SSH ולראות לנחור אם אתה זקוק IDS / IPS מלא.


12
2018-03-09 23:32



לא הייתי ממליץ להשתמש באימות מפתח ציבורי ב- SSH עבור גישה פגז לשרת שלך. אם תחנת העבודה שלך נפגעת, או אפילו גרוע יותר, אז מישהו עכשיו יש גישה פתוחה לשרתים שלך ללא צורך בסיסמה. אימות מפתח ציבורי הוא יותר במצבים שבהם אתה צריך משהו כמו סקריפט או תוכנית כדי להיות מסוגל לקבל גישה SSH למערכת אחרת ללא צורך בסיסמה אז אתה לא צריך להטביע סיסמאות טקסט רגיל סקריפט / תוכנית. - Registered User
@ Account Deletlet: ניתן להגדיר ביטוי סיסמה עבור המפתח הפרטי SSH. - Phil Cohen
"משתמש רשום" ההערה מוטעית. רק כדי להבהיר: תמיד להגדיר סיסמה טובה על המפתח הפרטי שלך, ולא לאחסן את המפתח הפרטי על כל השרתים. שמור את המפתח הפרטי בתחנת העבודה שלך. לאחר שתוסיף את המפתח לתוכנית ssh-agent, והזן את הסיסמה שלך, תוכל להיכנס לכל מערכת שבה מותקן המפתח הציבורי, מבלי שתצטרך להזין שוב את הסיסמה. אפשר העברת סוכן בלקוח ssh שלך כדי שתוכל להיכנס משרת לשרת. איך המפתח הפרטי שלך נגנב הוא רע, אבל עם סיסמה הגון על זה זה לא רע כמו סיסמה גנובה. - Martijn Heemels
נכון, אפילו לא חושב לאחסן את המפתחות הפרטיים של המנהל ללא הצפנה. - yarek


להשתמש http://denyhosts.sourceforge.net/

וכן, אתה צריך להשתמש אימות מפתח ציבורי ואת הסיסמה להשבית auth.


8
2018-03-09 09:37



השבתת הסיסמה Auth היא לא תמיד פתרון קיימא. - Publiccert


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


6
2018-03-08 11:33