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

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

للحماية من القوة الغاشمة ، هناك أداة خاصة تسمى DoSFilter أفضل بكثير ، وهي مدمجة في بيئة نظام التشغيل Zimbra ويمكنها قطع الاتصال تلقائيًا من Zimbra OSE عبر HTTP. بمعنى آخر ، يشبه مبدأ تشغيل DoSFilter مبدأ تشغيل PostScreen ، المستخدم فقط لبروتوكول آخر. مصمم أصلاً للحد من عدد الإجراءات التي يمكن أن يقوم بها مستخدم واحد ، يمكن لـ DoSFilter أيضًا توفير الحماية ضد القوة الغاشمة. الاختلاف الرئيسي بينه وبين الأداة المدمجة في Zimbra هو أنه بعد عدد معين من المحاولات غير الناجحة ، فإنه لا يمنع المستخدم نفسه ، ولكن عنوان IP الذي تتم منه محاولات متعددة لتسجيل الدخول إلى حساب واحد أو آخر. بفضل هذا ، لا يستطيع مسؤول النظام حماية نفسه من القوة الغاشمة فحسب ، ولكن أيضًا تجنب حظر موظفي الشركة عن طريق إضافة الشبكة الداخلية لشركته ببساطة إلى قائمة عناوين IP والشبكات الفرعية الموثوقة.
الإضافة الكبيرة لـ DoSFilter هي أنه بالإضافة إلى المحاولات العديدة لتسجيل الدخول إلى حساب واحد أو آخر ، باستخدام هذه الأداة يمكنك تلقائيًا حظر مجرمي الإنترنت الذين استولوا على بيانات المصادقة الخاصة بالموظف ، ثم قاموا بتسجيل الدخول بنجاح إلى حسابه وبدأوا في إرسال مئات الطلبات إلى الخادم.
يمكنك تكوين DoSFilter باستخدام أوامر وحدة التحكم التالية:
- zimbraHttpDosFilterMaxRequestsPerSec - باستخدام هذا الأمر ، يمكنك تعيين الحد الأقصى لعدد الاتصالات المسموح بها لمستخدم واحد. بشكل افتراضي ، هذه القيمة هي 30 اتصالات.
- zimbraHttpDosFilterDelayMillis - باستخدام هذا الأمر ، يمكنك تعيين التأخير بالمللي ثانية للاتصالات التي تتجاوز الحد الذي حدده الأمر السابق. بالإضافة إلى قيم الأعداد الصحيحة ، يمكن للمسؤول تحديد 0 بحيث لا يوجد أي تأخير على الإطلاق ، وكذلك -1 بحيث تتم مقاطعة كل الاتصالات التي تتجاوز الحد المحدد. بشكل افتراضي ، هذه القيمة هي -1.
- zimbraHttpThrottleSafeIPs - باستخدام هذا الأمر ، يمكن للمسؤول تحديد عناوين IP والشبكات الفرعية الموثوقة التي لن تتأثر بالقيود المذكورة أعلاه. لاحظ أن بناء جملة هذا الأمر قد يختلف حسب النتيجة المطلوبة. لذلك ، على سبيل المثال ، عن طريق إدخال الأمر zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1 ، فأنت تعيد كتابة القائمة بالكامل وتترك عنوان IP واحدًا فقط فيها. إذا قمت بإدخال الأمر zmprov mcf + zimbraHttpThrottleSafeIPs 127.0.0.1 ، فسيتم إضافة عنوان IP الذي أدخلته إلى القائمة البيضاء. وبالمثل ، باستخدام علامة الطرح ، يمكنك إزالة أي IP من قائمة المسموح بها.
لاحظ أن DoSFilter يمكن أن يسبب عددًا من المشكلات عند استخدام ملحقات Zextras Suite Pro. من أجل تجنبها ، نوصي بزيادة عدد الاتصالات المتزامنة من 30 إلى 100 باستخدام الأمر
zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100 . بالإضافة إلى ذلك ، نوصي بإضافة الشبكة الداخلية للمؤسسة إلى قائمة المسموح بها. يمكن القيام بذلك باستخدام الأمر
zmprov mcf + zimbraHttpThrottleSafeIPs 192.168.0.0/24 . بعد إجراء أي تغييرات على DoSFilter ، تأكد من إعادة تشغيل خادم البريد باستخدام الأمر
zmmailboxdctl restart .
العيب الرئيسي DoSFilter هو أنه يعمل على مستوى التطبيق ، وبالتالي لا يمكن إلا أن تحد من قدرة المهاجمين على تنفيذ إجراءات مختلفة على الخادم ، دون الحد من القدرة على الاتصال بالشمال. لهذا السبب ، ستظل طلبات المصادقة أو إرسال الرسائل المرسلة إلى الخادم ، رغم فشلها الواضح ، هجوم DoS قديم جيدًا ، لا يمكن إيقافه عند هذا المستوى العالي.
من أجل تأمين خادم شركتك بشكل كامل باستخدام Zimbra OSE ، يمكنك استخدام حل مثل Fail2ban ، وهو إطار يمكنه مراقبة سجلات نظام المعلومات باستمرار عن الإجراءات المتكررة وحظر الدخيل عن طريق تغيير إعدادات جدار الحماية. يسمح لك الحظر عند هذا المستوى المنخفض بتعطيل المهاجمين مباشرةً في مرحلة اتصال IP بالخادم. وبالتالي ، يمكن Fail2Ban تكملة الحماية المضمنة مع DoSFilter تماما. دعنا نتعرف على كيفية تكوين صداقات Fail2Ban مع برنامج Zimbra OSE وبالتالي زيادة أمان البنية التحتية لتكنولوجيا المعلومات في مؤسستك.
مثل أي تطبيق آخر على مستوى المؤسسات ، يحتفظ Zimbra Collaboration Suite Open-Source Edition بسجلات مفصلة عن عمله. يتم تخزين معظمها في
/ opt / zimbra / log / المجلد كملفات. فيما يلي عدد قليل منها:
- علبة البريد - سجلات خدمة بريد جيتي
- audit.log - سجلات المصادقة
- clamd.log - سجلات مكافحة الفيروسات
- freshclam.log - سجلات تحديث برامج مكافحة الفيروسات
- convertd.log - سجلات المحول المرفق
- zimbrastats.csv - سجلات أداء الخادم
يمكن أيضًا العثور على سجلات Zimbra في ملف
/var/log/zimbra.log ، حيث يتم الاحتفاظ بسجلات Postfix و Zimbra نفسها.
من أجل حماية نظامنا من القوة الغاشمة ، سنراقب
صندوق البريد ، و
audit.log و
zimbra.log .
لكي يعمل كل شيء ، من الضروري تثبيت Fail2Ban و iptables على الخادم الخاص بك باستخدام Zimbra OSE. إذا كنت تستخدم Ubuntu ، يمكنك القيام بذلك باستخدام
أوامر fail2ban dpkg -s ، ولكن إذا كنت تستخدم CentOS ، فيمكنك التحقق من ذلك باستخدام
أوامر yum fail2ban المثبتة بقائمة yum . في حالة عدم تثبيت Fail2Ban ، لن يكون تثبيته مشكلة ، لأن هذه الحزمة موجودة في جميع المستودعات القياسية تقريبًا.
بعد تثبيت جميع البرامج الضرورية ، يمكنك المتابعة لتكوين Fail2Ban. للقيام بذلك ، قم بإنشاء ملف تكوين
/etc/fail2ban/filter.d/zimbra.conf ، حيث نكتب تعبيرات منتظمة لسجلات نظام التشغيل Zimbra OSE والتي تتوافق مع محاولات تسجيل الدخول غير الصحيحة وتشغل آليات Fail2Ban. فيما يلي مثال لمحتويات zimbra.conf مع مجموعة من التعبيرات العادية التي تتوافق مع العديد من الأخطاء التي تم إنشاؤها بواسطة Zimbra OSE عند فشل محاولة المصادقة:
# 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 OSE ، فقد حان الوقت لبدء تحرير تكوين 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, dest=admin@company.ru, sender=fail2ban@company.ru] 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, dest=support@company.ru] 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, dest=support@company.ru ] 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, dest=support@company.ru] 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, dest=support@company.ru] 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, dest=support@company.ru] logpath = /var/log/zimbra.log bantime = -1 maxretry = 5
على الرغم من أن هذا المثال عالمي تمامًا ، إلا أنه يجدر شرح بعض المعلمات التي قد ترغب في تغييرها عند إعداد Fail2Ban بنفسك:
- التجاهل - باستخدام هذه المعلمة ، يمكنك تحديد عنوان IP أو شبكة فرعية محددة ، وهو العنوان الذي يجب ألا يتحقق منه Fail2Ban. عادةً ما تتم إضافة الشبكة الداخلية للمؤسسة والعناوين الموثوقة الأخرى إلى القائمة التي تم تجاهلها.
- Bantime - الوقت الذي يحظر فيه المتطفل. تقاس في ثوان. قيمة -1 تعني فرض حظر غير محدود.
- Maxretry - أقصى عدد مرات محاولة عنوان IP واحد الوصول إلى الخادم.
- Sendmail - إعداد يتيح لك إرسال تنبيهات عبر البريد الإلكتروني تلقائيًا حول تشغيل Fail2Ban.
- Findtime - إعداد يسمح لك بتعيين الفاصل الزمني الذي يمكن بعده عنوان IP محاولة مرة أخرى للوصول إلى الخادم بعد استنفاد الحد الأقصى لعدد المحاولات الفاشلة (معلمة maxretry)
بعد حفظ الملف بإعدادات Fail2Ban ، يبقى فقط إعادة تشغيل هذه الأداة المساعدة باستخدام
أمر إعادة تشغيل خدمة fail2ban . بعد إعادة التشغيل ، ستبدأ مراقبة سجلات Zimbra الرئيسية باستمرار من أجل الامتثال للتعبيرات المعتادة. بفضل هذا ، سيكون المسؤول قادرًا على القضاء فعليًا على أي احتمال لقيام مهاجم باختراق ليس فقط صناديق البريد الخاصة بـ Zimbra Collaboration Suite Open-Source Edition ، ولكن أيضًا يحمي جميع الخدمات التي تعمل داخل Zimbra OSE ، فضلاً عن إدراكه لأي محاولات للوصول غير المصرح به.
لجميع الأسئلة المتعلقة بجناح Zextras ، يمكنك الاتصال بممثل Zextras ، Ekaterina Triandafilidi ، عن طريق البريد الإلكتروني katerina@zextras.com