سؤال هل من الطبيعي الحصول على المئات من محاولات الاختراق في اليوم؟


لقد تحققت للتو من الخوادم الخاصة بي /var/log/auth.log ووجدت أنني أتلقى أكثر من 500 إخطار بمحاولة فاشلة لكلمات المرور / الإخطارات في اليوم! موقعي صغير ، وعنوان URL الخاص به غامض. هل هذا طبيعي؟ هل يجب علي اتخاذ أي تدابير؟


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


الأجوبة:


في الإنترنت اليوم ، هذا أمر طبيعي للغاية. هناك جحافل من برامج الروبوت تحاول الدخول إلى كل خادم تجده في شبكات IP بأكملها. عادة ، يستخدمون هجمات قاموس بسيطة على حسابات معروفة (مثل حسابات الجذر أو حسابات تطبيقات معينة).

لا يتم العثور على أهداف الهجوم عبر إدخالات Google أو DNS ، ولكن المهاجمين يحاولون فقط كل عنوان IP في شبكة فرعية معينة (على سبيل المثال من شركات استضافة خادم الجذر المعروفة). لذلك لا يهم أن عنوان URL الخاص بك (وبالتالي إدخال DNS) غامض إلى حد ما.

لهذا من المهم أن:

  • عدم السماح بتسجيل الدخول إلى الجذر في SSH (كيف)
  • استخدام كلمات مرور قوية في كل مكان (أيضًا في تطبيقات الويب الخاصة بك)
  • لـ SSH ، استخدم مصادقة المفتاح العام إن أمكن وتعطيل كلمة مرور المصادقة تمامًا (كيف)

بالإضافة إلى ذلك ، يمكنك تثبيت fail2ban والتي ستقوم بمسح authlog وإذا وجدت عددًا معينًا من محاولات تسجيل الدخول الفاشلة من عنوان IP ، فستستمر في إضافة عنوان IP هذا إلى /etc/hosts.deny أو iptables / netfilter من أجل تأمين المهاجم لبضع دقائق.

بالإضافة إلى هجمات SSH ، أصبح من الشائع أيضًا فحص خادم الويب الخاص بك لتطبيقات الويب الضعيفة (بعض تطبيقات التدوين ، CMSs ، phpmyadmin ، إلخ). لذا ، تأكد من تحديثها باستمرار وتهيئتها بشكل آمن أيضًا!


207
2018-03-08 11:35



تطبيقات مثل fail2ban يمكن أن تساعد كثيرا على "مؤقتا" وقف تلك البوتات من ضرب الخادم الخاص بك في أوقات سخيفة في الصباح: -) لدي مجموعة من الألغام لحظر 3 محاولات غير صحيحة لمدة 24 ساعة. - emtunc
ونقل ميناء ssh من 22 إلى 222. وهذا يعمل بشكل جيد. - Tom O'Connor
+1 ، مصادقة المفتاح العام فقط :) - 0xC0000022L
STATUS_ACCESS_DENIED: الإجراءات fail2ban يأخذ فقط قوائم أوامر shell لتشغيل. لذلك من المرونة والسهولة فعلاً جعل العمل بشكل صحيح مع أي تهيئة مخصصة. أفضل مرجع هو تنزيله وإلقاء نظرة عليه action.d/iptables.conf. - mattdm
منع المهاجمين مثل هذا هو مضيعة للوقت. إذا قمت بتعطيل تسجيل الدخول إلى الجذر ، فهناك احتمال كبير بأن لا أحد سيخمن حتى اسم تسجيل الدخول الصحيح ، ناهيك عن كلمة المرور. SSH نفسها هي بالفعل طلبات تحديد كلمة السر المحددة ، لذلك حتى لو كانوا يعرفون اسم المستخدم الخاص بك (لن تفعل كلمة السر العشوائية) ، إذا كان لديك كلمة مرور لائقة ، فلن يخمنوا ذلك. - Brendan Long


وهناك عدد قليل من 100 على ما يرام ... في الشهر الماضي وجدت واحدة من خوادم بلدي 40K فشل محاولات. ذهبت من خلال عناء التآمر عليهم: خريطة

بمجرد أن قمت بتغيير منفذ ssh وتطبيق Knocking Port ، انخفض العدد إلى 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
ماذا تقصد ب 'تطبيق طرقة الميناء'؟ هل هناك تطبيق يمكنني تثبيته عبر apt-get لإجراء ذلك؟ الرقم الذي ينخفض ​​إلى 0 يبدو لطيفًا
الأمن من خلال الغموض يحصل على التفاف سيئة. انها على ما يرام تماما طالما كان ذلك جزء من الاستراتيجية الشاملة بدلا من الاستراتيجية بأكملها. بعد كل شيء ، ما هو آخر غير كلمة مرور غير سلسلة غامضة؟ - Joel Coel
@ جويل كويل ، إنها سر سلسلة ، في مقابل معظم الأمن من خلال قضايا غامضة - وهي عملية غامضة ، ولكن ليس بالضرورة سرية. - tobyodavies


أنا واحد لاستخدام "tarpit" بالإضافة إلى السماح فقط بمصادقة المفتاح العام وعدم السماح بتسجيل الدخول الجذر.

في 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
@ بنلوملي: نقطة جيدة. يمكن أن تكون طرق المنافذ مفيدة بشكل مماثل لتغيير المنفذ الافتراضي - أو حتى كليهما في تركيبة ... - 0xC0000022L
benlumley: شاهد تعليقك (تمت إزالته الآن بواسطة Sam). أنا لا أمانع على الإطلاق إذا تم تحسين / تحسين الإجابة ؛) - 0xC0000022L


هل يمكن أن تنفذ fail2banأو أساليب مشابهة مثل قفل SSH إلى IP الخاص بك. المحاولة المزعجة لفرز الوصول إلى كل الوقت لذلك هو طبيعي جدا ، تحتاج إلى التأكد من أن لديك كلمة مرور جيدة.


15
2018-03-08 11:32



إذا كنت تستخدم SSH ، ففكر في مصادقة المفتاح العام. هذا هو أكثر أمنا قليلا من مصادقة كلمة المرور. - Piskvor


نعم فعلا. انها طبيعية جدا في الوقت الحاضر.

يرجى استخدام مصادقة المفتاح العام فقط لأغراض إدارية إن أمكن. إنشاء مفتاح خاص على محطة العمل الخاصة بك:

$ ssh-keygen -t dsa

نسخ محتويات ~ / .ssh / id_dsa.pub لخوادم لك ~ / .ssh / authorized_keys (و / org //hs/authorized_keys ، إذا كنت تحتاج إلى تسجيل الدخول المباشر الجذر).

تكوين الخوادم الخاصة بك / الخ / سه / sshd_config لقبول مصادقة المفتاح العام فقط:

PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin without-password

إذا كان لديك عدد كبير جدًا من الخوادم ، فيمكنك استخدامه دمية لتشغيل المفاتيح العامة والتكوينات لهم.

تفحص Denyhosts و fail2ban لمنع محاولات تسجيل الدخول المتكررة SSH ونرى تذمر إذا كنت تحتاج إلى IDS / IPS كاملة.


12
2018-03-09 23:32



لا أوصي باستخدام مصادقة المفتاح العام في SSH للوصول إلى shell إلى الخادم الخاص بك. إذا تعرضت محطة العمل الخاصة بك للاختراق ، أو حتى أسوأ سرقتها ، فسيكون لدى شخص ما الآن وصول مفتوح إلى الخوادم دون الحاجة إلى كلمة مرور. مصادقة المفتاح العام هي أكثر في الحالات التي تحتاج فيها إلى شيء مثل برنامج نصي أو برنامج حتى تتمكن من الوصول إلى نظام SSH إلى نظام آخر دون الحاجة إلى كلمة مرور حتى لا تضطر إلى تضمين كلمات مرور نص عادي في البرنامج النصي / البرنامج. - Registered User
@ حساب المحذوفة: يمكنك تعيين عبارة مرور للمفتاح الخاص SSH. - Phil Cohen
تعبير "العضو المسجل" مضلل. فقط للتوضيح: قم دائمًا بتعيين كلمة مرور جيدة على مفتاحك الخاص ، ولا تقم بتخزين المفتاح الخاص على أية خوادم. احتفظ بالمفتاح الخاص على محطة العمل الخاصة بك. بمجرد إضافة المفتاح إلى برنامج ssh-agent ، وإدخال كلمة المرور الخاصة بك ، يمكنك تسجيل الدخول إلى كل نظام تم تثبيت المفتاح العام عليه ، دون الحاجة إلى إعادة إدخال كلمة المرور مرة واحدة. تمكين إعادة توجيه الوكيل في عميل ssh بحيث يمكنك تسجيل الدخول من خادم إلى خادم. إن الحصول على مفتاحك الخاص المسروق أمر سيء ، ولكن مع كلمة مرور مناسبة ، لا يعد الأمر سيئًا مثل كلمة المرور المسروقة. - Martijn Heemels
صحيح ، لا تفكر حتى في تخزين مفاتيح المسؤول الخاصة بدون تشفير. - yarek


استعمال http://denyhosts.sourceforge.net/

ونعم ، يجب عليك استخدام مصادقة المفتاح العام وتعطيل مصادقة كلمة المرور.


8
2018-03-09 09:37



لا يمثل تعطيل مصادقة كلمة المرور دائمًا حلًا قابلاً للتطبيق. - Publiccert


يتم إجراء المحاولات آليًا ، لذا تبدو الأرقام جيدة (نعم ، إنها عالية مقارنة ببعض المواقع وقلة مقارنة بالآخرين). يجب أن تتخذ الخطوات التي يجب عليك اتباعها عادةً: تعتبر مواقعك أهدافًا للهجمات كل يوم ، حتى عندما لا تكتشف هجومًا. لا يكشف عن هجوم ، لا يعني أنه غير موجود.


6
2018-03-08 11:33





أود أن أقول فقط الحصول على 500 فقط هو نوع من انخفاض.

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


6
2018-03-08 17:06