لقد قمت بالأمس بإعداد خادم Debian على HP ProLiant 360 G4. لقد بدأت مع الحد الأدنى من الخدمات ، وتشغيل SSH و Apache فقط ، وكل ذلك على المنافذ القياسية مع التكوينات الافتراضية.

منذ حوالي ساعة ، لاحظت سلوكًا غريبًا للنظام. تم رفع زمن الوصول بشكل ملحوظ ولم أتمكن من إجراء إعادة التشغيل عن بُعد. تمكنت من إخراج الخادم من الشبكة في حوالي 15 دقيقة.

لقد كنت أتصفح السجلات ووجدت هذه الإدخالات في auth.log:

Apr  3 17:31:35 karel sshd[25941]: input_userauth_request: invalid user takeuchi [preauth]
Apr  3 17:31:35 karel sshd[25941]: pam_unix(sshd:auth): check pass; user unknown
Apr  3 17:31:35 karel sshd[25941]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=rrcs-70-61-237-202.central.biz.rr.com 
Apr  3 17:31:37 karel sshd[25941]: Failed password for invalid user takeuchi from 70.61.237.202 port 53004 ssh2
Apr  3 17:31:37 karel sshd[25941]: Received disconnect from 70.61.237.202: 11: Bye Bye [preauth]
Apr  3 17:31:39 karel sshd[25943]: Invalid user takeuchi from 70.61.237.202
Apr  3 17:31:39 karel sshd[25943]: input_userauth_request: invalid user takeuchi [preauth]
Apr  3 17:31:39 karel sshd[25943]: pam_unix(sshd:auth): check pass; user unknown
Apr  3 17:31:39 karel sshd[25943]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=rrcs-70-61-237-202.central.biz.rr.com 
Apr  3 17:31:41 karel sshd[25943]: Failed password for invalid user takeuchi from 70.61.237.202 port 30756 ssh2
Apr  3 17:31:41 karel sshd[25943]: Received disconnect from 70.61.237.202: 11: Bye Bye [preauth]
Apr  3 17:31:42 karel sshd[25945]: Invalid user takeuchi from 70.61.237.202
Apr  3 17:31:42 karel sshd[25945]: input_userauth_request: invalid user takeuchi [preauth]
Apr  3 17:31:42 karel sshd[25945]: pam_unix(sshd:auth): check pass; user unknown
Apr  3 17:31:42 karel sshd[25945]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=rrcs-70-61-237-202.central.biz.rr.com 
Apr  3 17:31:45 karel sshd[25945]: Failed password for invalid user takeuchi from 70.61.237.202 port 43388 ssh2
Apr  3 17:31:45 karel sshd[25945]: Received disconnect from 70.61.237.202: 11: Bye Bye [preauth]
Apr  3 17:31:46 karel sshd[25947]: Invalid user takeuchi from 70.61.237.202
Apr  3 17:31:46 karel sshd[25947]: input_userauth_request: invalid user takeuchi [preauth]
Apr  3 17:31:46 karel sshd[25947]: pam_unix(sshd:auth): check pass; user unknown
Apr  3 17:31:46 karel sshd[25947]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=rrcs-70-61-237-202.central.biz.rr.com 
Apr  3 17:31:49 karel sshd[25947]: Failed password for invalid user takeuchi from 70.61.237.202 port 29640 ssh2
Apr  3 17:31:49 karel sshd[25947]: Received disconnect from 70.61.237.202: 11: Bye Bye [preauth]
Apr  3 17:31:50 karel sshd[25949]: Invalid user takeuchi from 70.61.237.202
Apr  3 17:31:50 karel sshd[25949]: input_userauth_request: invalid user takeuchi [preauth]
Apr  3 17:31:50 karel sshd[25949]: pam_unix(sshd:auth): check pass; user unknown
Apr  3 17:31:50 karel sshd[25949]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=rrcs-70-61-237-202.central.biz.rr.com 
Apr  3 17:31:52 karel sshd[25949]: Failed password for invalid user takeuchi from 70.61.237.202 port 56323 ssh2
Apr  3 17:31:52 karel sshd[25949]: Received disconnect from 70.61.237.202: 11: Bye Bye [preauth]
Apr  3 17:31:54 karel sshd[25951]: Invalid user takeuchi from 70.61.237.202
Apr  3 17:31:54 karel sshd[25951]: input_userauth_request: invalid user takeuchi [preauth]
Apr  3 17:31:54 karel sshd[25951]: pam_unix(sshd:auth): check pass; user unknown
Apr  3 17:31:54 karel sshd[25951]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=rrcs-70-61-237-202.central.biz.rr.com 
Apr  3 17:31:56 karel sshd[25951]: Failed password for invalid user takeuchi from 70.61.237.202 port 54603 ssh2
Apr  3 17:31:56 karel sshd[25951]: Received disconnect from 70.61.237.202: 11: Bye Bye [preauth]
Apr  3 17:31:57 karel sshd[25953]: Invalid user takeuchi from 70.61.237.202
Apr  3 17:31:57 karel sshd[25953]: input_userauth_request: invalid user takeuchi [preauth]
Apr  3 17:31:57 karel sshd[25953]: pam_unix(sshd:auth): check pass; user unknown
Apr  3 17:31:57 karel sshd[25953]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=rrcs-70-61-237-202.central.biz.rr.com 
Apr  3 17:31:59 karel sshd[25953]: Failed password for invalid user takeuchi from 70.61.237.202 port 30332 ssh2
Apr  3 17:31:59 karel sshd[25953]: Received disconnect from 70.61.237.202: 11: Bye Bye [preauth]
Apr  3 17:32:01 karel sshd[25955]: Invalid user takeuchi from 70.61.237.202
Apr  3 17:32:01 karel sshd[25955]: input_userauth_request: invalid user takeuchi [preauth]
Apr  3 17:32:01 karel sshd[25955]: pam_unix(sshd:auth): check pass; user unknown
Apr  3 17:32:01 karel sshd[25955]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=rrcs-70-61-237-202.central.biz.rr.com 
Apr  3 17:32:03 karel sshd[25955]: Failed password for invalid user takeuchi from 70.61.237.202 port 30855 ssh2
Apr  3 17:32:03 karel sshd[25955]: Received disconnect from 70.61.237.202: 11: Bye Bye [preauth]
Apr  3 17:32:04 karel sshd[25957]: Invalid user takeuchi from 70.61.237.202
Apr  3 17:32:04 karel sshd[25957]: input_userauth_request: invalid user takeuchi [preauth]
Apr  3 17:32:04 karel sshd[25957]: pam_unix(sshd:auth): check pass; user unknown
Apr  3 17:32:04 karel sshd[25957]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=rrcs-70-61-237-202.central.biz.rr.com 
Apr  3 17:32:07 karel sshd[25957]: Failed password for invalid user takeuchi from 70.61.237.202 port 31154 ssh2
Apr  3 17:32:07 karel sshd[25957]: Received disconnect from 70.61.237.202: 11: Bye Bye [preauth]
Apr  3 17:32:08 karel sshd[25959]: Invalid user wut from 70.61.237.202
Apr  3 17:32:08 karel sshd[25959]: input_userauth_request: invalid user wut [preauth]
Apr  3 17:32:08 karel sshd[25959]: pam_unix(sshd:auth): check pass; user unknown
Apr  3 17:32:08 karel sshd[25959]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=rrcs-70-61-237-202.central.biz.rr.com 
Apr  3 17:32:11 karel sshd[25959]: Failed password for invalid user wut from 70.61.237.202 port 59904 ssh2
Apr  3 17:32:11 karel sshd[25959]: Received disconnect from 70.61.237.202: 11: Bye Bye [preauth]
Apr  3 17:32:12 karel sshd[25961]: Invalid user wut from 70.61.237.202
Apr  3 17:32:12 karel sshd[25961]: input_userauth_request: invalid user wut [preauth]
Apr  3 17:32:12 karel sshd[25961]: pam_unix(sshd:auth): check pass; user unknown
Apr  3 17:32:12 karel sshd[25961]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=rrcs-70-61-237-202.central.biz.rr.com 
Apr  3 17:32:14 karel sshd[25961]: Failed password for invalid user wut from 70.61.237.202 port 45945 ssh2
Apr  3 17:32:14 karel sshd[25961]: Received disconnect from 70.61.237.202: 11: Bye Bye [preauth]
Apr  3 17:32:15 karel sshd[25963]: Invalid user wut from 70.61.237.202
Apr  3 17:32:15 karel sshd[25963]: input_userauth_request: invalid user wut [preauth]
Apr  3 17:32:15 karel sshd[25963]: pam_unix(sshd:auth): check pass; user unknown
Apr  3 17:32:15 karel sshd[25963]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=rrcs-70-61-237-202.central.biz.rr.com 
Apr  3 17:32:18 karel sshd[25963]: Failed password for invalid user wut from 70.61.237.202 port 52652 ssh2
Apr  3 17:32:18 karel sshd[25963]: Received disconnect from 70.61.237.202: 11: Bye Bye [preauth]
Apr  3 17:32:19 karel sshd[25965]: Invalid user wut from 70.61.237.202
Apr  3 17:32:19 karel sshd[25965]: input_userauth_request: invalid user wut [preauth]
Apr  3 17:32:19 karel sshd[25965]: pam_unix(sshd:auth): check pass; user unknown
Apr  3 17:32:19 karel sshd[25965]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=rrcs-70-61-237-202.central.biz.rr.com 
Apr  3 17:32:21 karel sshd[25965]: Failed password for invalid user wut from 70.61.237.202 port 34513 ssh2
Apr  3 17:32:21 karel sshd[25965]: Received disconnect from 70.61.237.202: 11: Bye Bye [preauth]
Apr  3 17:32:23 karel sshd[25967]: Invalid user wut from 70.61.237.202
Apr  3 17:32:23 karel sshd[25967]: input_userauth_request: invalid user wut [preauth]
Apr  3 17:32:23 karel sshd[25967]: pam_unix(sshd:auth): check pass; user unknown
Apr  3 17:32:23 karel sshd[25967]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=rrcs-70-61-237-202.central.biz.rr.com 
Apr  3 17:32:24 karel sshd[25967]: Failed password for invalid user wut from 70.61.237.202 port 32538 ssh2
Apr  3 17:32:24 karel sshd[25967]: Received disconnect from 70.61.237.202: 11: Bye Bye [preauth]

هل يجب أن أكون قلقًا بشأن حدوث خرق محتمل للنظام؟ أستخدم كلمة مرور قوية لحسابي وتم تعطيل تسجيل الدخول إلى الجذر في ذلك الوقت. هل سيساعد إذا فتحت منفذًا مختلفًا لـ SSH؟

شكرا!

answer

نعم ، أنت تتعرض للهجوم ، ونعم يجب أن تقلق بشأن اختراق النظام ، حتى مع وجود كلمة مرور SSH قوية.

يجب:

  1. نفِّذ fail2ban

  2. انقل SSH إلى منفذ غير قياسي.

    • لن يمنع نقل SSH مهاجمًا مخصصًا من العثور على مكان خدمتك على أي حال ، ولكنه سيحبط الروبوتات المستخدمة في الغالبية العظمى من هجمات القوة الغاشمة عن بُعد هذه. يذهبون فقط بعد المنفذ الافتراضي.

  3. قم بإعداد مصادقة الشهادة لعمليات تسجيل الدخول عبر SSH .

لتوسيع إجابة HopelessN00b أعلاه:

  • يمكنك أيضًا تقليل عدد المحاولات باستخدام وحدة تحديد iptables . أو ، إذا كنت تستخدم Shorewall ، فاستخدم إجراء LIMIT الخاص به لإنجاز نفس الشيء. بين fail2ban وهذا ، فإن خدمة SSH الخاصة بي على المنفذ القياسي ترى أكثر قليلاً من التخمين غير الحكيم عند مستخدم أو اثنين قبل أن ينتقل المهاجم المحتمل.
  • استخدم AllowGroupsالخيار في sshd_config لتقييد المستخدمين المسموح لهم بالدخول في المقام الأول (أقوم بإنشاء مجموعة خاصة تسمى sshusersلهذا الغرض بالضبط). تأكد من عدم وجود أسماء المستخدمين الشائعة (خاصة الجذر ، ولكن أيضًا الأسماء الشائعة الأخرى مثل مشرف الموقع ، مدير البريد ، وما إلى ذلك) في هذه المجموعة.
  • في نفس الملف ، تأكد من الضبط PermitRootLoginعلى no. تحاول بسهولة 50٪ من المحاولات التي يتم إجراؤها ضد خوادمي الوصول إلى الجذر ، وهذا يضمن عدم نجاحها أبدًا بغض النظر عن مدى صعوبة المحاولة. يجب عليك دائمًا تسجيل الدخول مع المستخدم الخاص بك واستخدامه sudoعند الضرورة على أي حال ، لذلك لا ينبغي أن يعيق ذلك مستخدم الخادم الخاص بك.

من المستبعد جدًا أن تكون مستهدفًا بنفسك ؛ على الأرجح أنه مجرد روبوت عشوائي يقوم بمسح نطاقات IP التي عثرت على الخادم الخاص بك وتحاول الدخول. يحدث هذا طوال الوقت ، وهو شائع جدًا. فقط تأكد من تأمين الخادم الخاص بك ، وراقب علامات الوصول غير المصرح به (نظام المراقبة مثل Zabbix الذي يمكن أن ينبهك على سبيل المثال إذا /etc/passwdتم تغييره يعد خطوة أولى ممتازة) ، وبخلاف ذلك لا تقلق بشأن ذلك.

للحصول على إجراء متقدم ، يمكنك استخدام تقنية تسمى "Port Knocking" لإخفاء وجود خدمة SSH تمامًا ما لم يعرف شخص ما "الضربة السرية" للكشف عنها. على الرغم من ذلك ، فهي ليست أسلوبًا بسيطًا في الإعداد ، وحتى أقل من ذلك للاستخدام ، نظرًا لعدم وجود عميل SSH هناك يمكنه العمل معه ، وبالتالي يتعين عليك استخدام أدوات إضافية لهذا الغرض. لهذا السبب لا أوصي به حقًا.

لن أكون قلقًا بشأن هذه السطور في سجلك. كل ما يظهرونه هو محاولة شخص ما تخمين كلمات مرور بعض المستخدمين ، والتي لا توجد في المقام الأول.

لا أعتقد أن سطور السجل هذه يمكن أن تفسر زيادة وقت الاستجابة. قد يكون من الصعب العثور على سبب زيادة وقت الاستجابة حتى إذا حاولت تثبيته أثناء حدوثه. قد يكون تحديد سبب زيادة وقت الاستجابة بعد وقوع الحدث مستحيلًا. قد يكون ازدحامًا مؤقتًا على جهاز توجيه في مكان ما بينك وبين الخادم.

إن عدم القدرة على إعادة تشغيل الجهاز أمر مقلق - إلا إذا كنت تقصد أنه لا يمكنك ببساطة إنشاء اتصال بالخادم بسبب مشكلة في الشبكة.

يمكنك البحث في السجلات الأخرى للحصول على تلميحات حول ما قد يحدث. إذا لم تكن قد قمت بذلك بالفعل ، فيجب أن تنظر في /var/log/syslog.