قم بحماية Zimbra OSE من القوة الغاشمة وهجمات DoS

يحتوي إصدار Zimbra Collaboration Suite المفتوح المصدر على العديد من أدوات أمان المعلومات القوية في ترسانته. فيما بينها الشاشة - حل لحماية خادم البريد من هجمات botnets ، ClamAV - مضاد فيروسات يمكنه فحص الملفات والرسائل الواردة بحثًا عن الإصابة بالبرامج الضارة ، وكذلك سباماساسين أحد أفضل عوامل تصفية البريد العشوائي اليوم. ومع ذلك ، فإن هذه الأدوات غير قادرة على حماية بيئة نظام التشغيل Zimbra من هذا النوع من الهجوم ، مثل القوة الغاشمة. ليست القوة الغاشمة لكلمة المرور الأكثر أناقة ، ولكنها لا تزال فعالة تمامًا باستخدام قاموس خاص ، محفوفة ليس فقط باحتمال حدوث اختراق ناجح مع كل العواقب المترتبة على ذلك ، ولكن أيضًا مع إنشاء عبء كبير على الخادم الذي يعالج جميع المحاولات الفاشلة لاختراق الخادم باستخدام Zimbra OSE.

قم بحماية Zimbra OSE من القوة الغاشمة وهجمات DoS

من حيث المبدأ، يمكنك حماية نفسك من القوة الغاشمة باستخدام أدوات Zimbra OSE القياسية. تسمح لك إعدادات سياسة أمان كلمة المرور بتعيين عدد محاولات إدخال كلمة المرور غير الناجحة، وبعد ذلك يتم حظر الحساب الذي يحتمل تعرضه للهجوم. المشكلة الرئيسية في هذا النهج هي أنه تنشأ مواقف قد يتم فيها حظر حسابات موظف واحد أو أكثر بسبب هجوم القوة الغاشمة الذي لا علاقة لهم به، ويمكن أن يؤدي التوقف الناتج عن عمل الموظفين إلى خسائر كبيرة الشركة. ولهذا السبب فمن الأفضل عدم استخدام خيار الحماية هذا ضد القوة الغاشمة.

قم بحماية Zimbra OSE من القوة الغاشمة وهجمات DoS

للحماية من القوة الغاشمة ، تعتبر الأداة الخاصة التي تسمى DoSFilter مناسبة بشكل أفضل ، وهي مدمجة في Zimbra OSE ويمكنها تلقائيًا إنهاء الاتصال بـ Zimbra OSE عبر HTTP. بمعنى آخر ، يشبه مبدأ DoSFilter مبدأ PostScreen ، حيث يتم استخدامه فقط لبروتوكول مختلف. تم تصميم DoSFilter في الأصل للحد من عدد الإجراءات التي يمكن لمستخدم واحد اتخاذها ، ويمكنه أيضًا توفير الحماية ضد القوة الغاشمة. يتمثل الاختلاف الرئيسي بين الأداة المضمنة في Zimbra في أنه بعد عدد معين من المحاولات غير الناجحة ، فإنه لا يحظر المستخدم نفسه ، بل يحظر عنوان IP الذي يتم من خلاله إجراء محاولات متعددة لتسجيل الدخول إلى حساب أو آخر. بفضل هذا ، لا يمكن لمسؤول النظام حماية نفسه من القوة الغاشمة فحسب ، بل يمكنه أيضًا تجنب حظر موظفي المؤسسة بمجرد إضافة الشبكة الداخلية لمؤسسته إلى قائمة عناوين IP والشبكات الفرعية الموثوقة.

الميزة الكبيرة لـ DoSFilter هي أنه بالإضافة إلى المحاولات العديدة لتسجيل الدخول إلى حساب أو آخر ، باستخدام هذه الأداة ، يمكنك تلقائيًا حظر هؤلاء المتسللين الذين استحوذوا على بيانات توثيق الموظف ، ثم نجحوا في تسجيل الدخول إلى حسابه وبدأوا في إرسال المئات من الطلبات إلى الخادم.

يمكنك تكوين DoSFilter باستخدام أوامر وحدة التحكم التالية:

  • zimbraHttpDosFilterMaxRequestsPerSec - باستخدام هذا الأمر ، يمكنك تعيين الحد الأقصى لعدد الاتصالات المسموح بها لكل مستخدم. بشكل افتراضي ، هذه القيمة هي 30 اتصالاً.
  • zimbraHttpDosFilterDelayMillis - باستخدام هذا الأمر ، يمكنك تعيين تأخير بالملي ثانية للاتصالات التي ستتجاوز الحد المحدد بواسطة الأمر السابق. بالإضافة إلى قيم الأعداد الصحيحة ، يمكن للمسؤول تحديد 0 لعدم وجود تأخير على الإطلاق ، وكذلك -1 لإنهاء جميع الاتصالات التي تتجاوز الحد المحدد. بشكل افتراضي ، هذه القيمة هي -1.
  • zimbraHttpThrottleSafeIPs — باستخدام هذا الأمر، يمكن للمسؤول تحديد عناوين IP والشبكات الفرعية الموثوقة التي لن تخضع للقيود المذكورة أعلاه. لاحظ أن بناء جملة هذا الأمر قد يختلف حسب النتيجة المطلوبة. لذلك، على سبيل المثال، عن طريق إدخال الأمر زمبروف mcf زيمبراHttpThrottleSafeIPs 127.0.0.1، ستقوم بالكتابة فوق القائمة بالكامل وترك عنوان IP واحد فقط فيها. إذا قمت بإدخال الأمر zmprov mcf + zimbraHttpThrottleSafeIPs 127.0.0.1، سيتم إضافة عنوان IP الذي أدخلته إلى القائمة البيضاء. وبالمثل ، باستخدام علامة الطرح ، يمكنك إزالة أي IP من القائمة المسموح بها.

لاحظ أن DoSFilter يمكنه إنشاء عدد من المشاكل عند استخدام ملحقات Zextras Suite Pro. لتجنبها ، نوصي بزيادة عدد الاتصالات المتزامنة من 30 إلى 100 باستخدام الأمر زمبروف mcf زيمبراHttpDosFilterMaxRequestsPerSec 100. بالإضافة إلى ذلك ، نوصي بإضافة الشبكة الداخلية للشركة إلى القائمة المسموح بها. يمكنك القيام بذلك باستخدام الأمر zmprov mcf + zimbraHttpThrottleSafeIPs 192.168.0.0/24. بعد إجراء أي تغييرات على DoSFilter ، تأكد من إعادة تشغيل خادم البريد باستخدام الأمر إعادة تشغيل zmmailboxdctl.

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

لتأمين خادم شركتك تمامًا باستخدام Zimbra OSE ، يمكنك استخدام حل مثل Fail2ban ، وهو إطار يمكنه مراقبة سجلات نظام المعلومات باستمرار من أجل الإجراءات المتكررة وحظر الدخيل عن طريق تغيير إعدادات جدار الحماية. يسمح لك الحظر عند هذا المستوى المنخفض بتعطيل المتسللين في مرحلة اتصال IP بالخادم. وبالتالي ، يمكن أن يكمل Fail2Ban الحماية التي تم إنشاؤها باستخدام DoSFilter بشكل مثالي. دعنا نتعرف على كيفية تكوين صداقات مع Fail2Ban Zimbra OSE وبالتالي زيادة أمان البنية التحتية لتكنولوجيا المعلومات الخاصة بمؤسستك.

مثل أي تطبيق آخر من فئة المؤسسات ، يحتفظ Zimbra Collaboration Suite Open-Source Edition بسجلات تفصيلية لعمله. يتم تخزين معظمها في المجلد / opt / zimbra / log / في شكل ملفات. هنا فقط بعض منهم:

  • mailbox.log - سجلات خدمة بريد الرصيف
  • Audit.log - سجلات المصادقة
  • clamd.log - سجلات عمليات مكافحة الفيروسات
  • freshclam.log - سجلات تحديث برامج مكافحة الفيروسات
  • Convertd.log — سجلات محول المرفقات
  • zimbrastats.csv - سجلات أداء الخادم

يمكن أيضًا العثور على سجلات Zimbra في الملف /var/log/zimbra.log، حيث يتم الاحتفاظ بسجلات Postfix وZimbra نفسها.

من أجل حماية نظامنا من القوة الغاشمة ، سنراقب mailbox.log, سجل التدقيق и zimbra.log.

لكي يعمل كل شيء ، يجب أن يكون لديك Fail2Ban و iptables مثبتين على خادم Zimbra OSE. إذا كنت تستخدم Ubuntu ، فيمكنك القيام بذلك باستخدام الأوامر dpkg -s Fail2ban، إذا كنت تستخدم CentOS ، فيمكنك التحقق من ذلك باستخدام الأوامر قائمة yum مثبتة fail2ban. إذا لم يكن لديك Fail2Ban مثبتًا، فلن يكون تثبيته مشكلة، نظرًا لأن هذه الحزمة متوفرة في جميع المستودعات القياسية تقريبًا.

بعد تثبيت جميع البرامج الضرورية ، يمكنك البدء في تكوين Fail2Ban. للقيام بذلك ، تحتاج إلى إنشاء ملف تكوين /etc/fail2ban/filter.d/zimbra.conf، حيث نكتب التعبيرات العادية لسجلات Zimbra OSE ، والتي ستطابق محاولات تسجيل الدخول غير الصالحة وتشغل آليات Fail2Ban. فيما يلي مثال لمحتويات zimbra.conf مع مجموعة من التعبيرات العادية المقابلة لأخطاء مختلفة تم إصدارها في بيئة نظام التشغيل Zimbra عند فشل محاولة المصادقة:

# Fail2Ban configuration file
 
[Definition]
failregex = [ip=<HOST>;] account - authentication failed for .* (no such account)$
                        [ip=<HOST>;] security - cmd=Auth; .* error=authentication failed for .*, invalid password;$
                        ;oip=<HOST>;.* security - cmd=Auth; .* protocol=soap; error=authentication failed for .* invalid password;$
                        ;oip=<HOST>;.* security - cmd=Auth; .* protocol=imap; error=authentication failed for .* invalid password;$
                        [oip=<HOST>;.* SoapEngine - handler exception: authentication failed for .*, account not found$
                        WARN .*;ip=<HOST>;ua=ZimbraWebClient .* security - cmd=AdminAuth; .* error=authentication failed for .*;$

ignoreregex =

بعد تجميع التعبيرات العادية لبيئة نظام التشغيل Zimbra ، حان الوقت لبدء تحرير تكوين Fail2ban نفسه. توجد إعدادات هذه الأداة المساعدة في الملف /etc/fail2ban/jail.conf. فقط في حالة حدوث ذلك ، سنقوم بعمل نسخة احتياطية منه باستخدام الأمر cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. بعد ذلك سنقوم بإحضار هذا الملف إلى النموذج التالي:

# Fail2Ban configuration file
 
[DEFAULT]
ignoreip = 192.168.0.1/24
bantime = 600
findtime = 600
maxretry = 5
backend = auto
 
[ssh-iptables]
enabled = false
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, [email protected], [email protected]]
logpath = /var/log/messages
maxretry = 5
 
[sasl-iptables]
enabled = false
filter = sasl
backend = polling
action = iptables[name=sasl, port=smtp, protocol=tcp]
sendmail-whois[name=sasl, [email protected]]
logpath = /var/log/zimbra.log
 
[ssh-tcpwrapper]
enabled = false
filter = sshd
action = hostsdeny
sendmail-whois[name=SSH, dest=support@ company.ru]
ignoreregex = for myuser from
logpath = /var/log/messages
 
[zimbra-account]
enabled = true
filter = zimbra
action = iptables-allports[name=zimbra-account]
sendmail[name=zimbra-account, [email protected] ]
logpath = /opt/zimbra/log/mailbox.log
bantime = 600
maxretry = 5
 
[zimbra-audit]
enabled = true
filter = zimbra
action = iptables-allports[name=zimbra-audit]
sendmail[name=Zimbra-audit, [email protected]]
logpath = /opt/zimbra/log/audit.log
bantime = 600
maxretry = 5
 
[zimbra-recipient]
enabled = true
filter = zimbra
action = iptables-allports[name=zimbra-recipient]
sendmail[name=Zimbra-recipient, [email protected]]
logpath = /var/log/zimbra.log
bantime = 172800
maxretry = 5
 
[postfix]
enabled = true
filter = postfix
action = iptables-multiport[name=postfix, port=smtp, protocol=tcp]
sendmail-buffered[name=Postfix, [email protected]]
logpath = /var/log/zimbra.log
bantime = -1
maxretry = 5

على الرغم من أن هذا المثال عام جدًا ، إلا أنه يستحق شرح بعض الإعدادات التي قد ترغب في تغييرها عند تكوين Fail2Ban بنفسك:

  • تجاهل - باستخدام هذه المعلمة ، يمكنك تحديد عنوان IP أو شبكة فرعية معينة ، وعناوين لا يجب على Fail2Ban التحقق منها. كقاعدة عامة ، تتم إضافة الشبكة الداخلية للمؤسسة والعناوين الموثوقة الأخرى إلى قائمة العناوين التي تم تجاهلها.
  • بانتيم - الوقت الذي سيتم فيه منع الجاني. تقاس بالثواني. تعني القيمة -1 حظرًا غير محدد.
  • ماكسريتري - الحد الأقصى لعدد المرات التي يمكن فيها لعنوان IP واحد محاولة الوصول إلى الخادم.
  • تنسخ - إعداد يتيح لك إرسال إشعارات بالبريد الإلكتروني تلقائيًا حول تشغيل Fail2Ban.
  • اوجد وقت - إعداد يسمح لك بتعيين الفاصل الزمني الذي يمكن لعنوان IP بعده محاولة الوصول إلى الخادم مرة أخرى بعد استنفاد الحد الأقصى لعدد المحاولات غير الناجحة (معلمة maxretry)

بعد حفظ الملف باستخدام إعدادات Fail2Ban ، يبقى فقط إعادة تشغيل هذه الأداة باستخدام الأمر إعادة تشغيل خدمة فشل 2ban. بعد إعادة التشغيل ، ستتم مراقبة سجلات Zimbra الرئيسية باستمرار بحثًا عن التعبيرات العادية. بفضل هذا ، سيكون المسؤول قادرًا على القضاء فعليًا على أي احتمال لاختراق المهاجم ليس فقط علب بريد Zimbra Collaboration Suite Open-Source Edition ، ولكن أيضًا حماية جميع الخدمات التي تعمل داخل Zimbra OSE ، ويكون على دراية بأي محاولات للحصول على وصول غير مصرح به.

لجميع الأسئلة المتعلقة بـ Zextras Suite ، يمكنك الاتصال بممثل Zextras Ekaterina Triandafilidi عن طريق البريد الإلكتروني [البريد الإلكتروني محمي]

المصدر: www.habr.com

إضافة تعليق