از Zimbra OSE در برابر خشونت و حملات DoS محافظت کنید

Zimbra Collaboration Suite نسخه منبع باز چندین ابزار قدرتمند برای تضمین امنیت اطلاعات دارد. در میان آنها پست اسکرین - راه حلی برای محافظت از سرور ایمیل در برابر حملات بات نت ها، ClamAV - آنتی ویروسی است که می تواند فایل ها و نامه های دریافتی را برای آلوده شدن به برنامه های مخرب و همچنین اسکن کند. از SpamAssassin - یکی از بهترین فیلترهای هرزنامه امروزی. با این حال، این ابزارها قادر به محافظت از Zimbra OSE در برابر حملات brute force نیستند. نه زیباترین، اما هنوز هم کاملاً مؤثرترین گذرواژه‌های اجباری با استفاده از یک فرهنگ لغت خاص، نه تنها مملو از احتمال هک موفقیت آمیز با تمام عواقب بعدی است، بلکه با ایجاد بار قابل توجهی بر روی سرور، که همه را پردازش می کند، مملو از آن است. تلاش های ناموفق برای هک سرور با Zimbra OSE.

از Zimbra OSE در برابر خشونت و حملات DoS محافظت کنید

در اصل، می توانید با استفاده از ابزار استاندارد Zimbra OSE از خود در برابر نیروی بی رحم محافظت کنید. تنظیمات خط‌مشی امنیتی رمز عبور به شما امکان می‌دهد تعداد تلاش‌های ناموفق وارد کردن رمز عبور را تنظیم کنید، پس از آن حساب مورد حمله بالقوه مسدود می‌شود. مشکل اصلی این رویکرد این است که شرایطی به وجود می‌آید که در آن ممکن است حساب‌های یک یا چند کارمند به دلیل حمله brute force که کاری به آن ندارند مسدود شود و خرابی ناشی از کار کارمندان می‌تواند خسارات زیادی را به آنها وارد کند. شرکت. به همین دلیل است که بهتر است از این گزینه محافظت در برابر نیروی بی رحم استفاده نکنید.

از Zimbra OSE در برابر خشونت و حملات DoS محافظت کنید

برای محافظت در برابر نیروی بی رحم، ابزار ویژه ای به نام DoSFilter بسیار مناسب تر است که در Zimbra OSE تعبیه شده است و می تواند به طور خودکار اتصال به Zimbra OSE را از طریق HTTP قطع کند. به عبارت دیگر، اصل عملکرد DoSFilter مشابه اصل عملکرد PostScreen است، فقط برای یک پروتکل متفاوت استفاده می شود. DoSFilter که در اصل برای محدود کردن تعداد اقداماتی که یک کاربر می تواند انجام دهد طراحی شده است، همچنین می تواند محافظت از نیروی brute force را ارائه دهد. تفاوت اصلی آن با ابزار تعبیه شده در زیمبرا این است که پس از تعداد معینی تلاش ناموفق، خود کاربر را مسدود نمی کند، بلکه آدرس 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 راه اندازی مجدد.

نقطه ضعف اصلی DoSFilter این است که در سطح برنامه کار می کند و بنابراین فقط می تواند توانایی مهاجمان را برای انجام اقدامات مختلف بر روی سرور، بدون محدود کردن توانایی اتصال به شمال، محدود کند. به همین دلیل، درخواست‌هایی که برای احراز هویت یا ارسال نامه‌ها به سرور ارسال می‌شوند، اگرچه بدیهی است که با شکست مواجه می‌شوند، اما همچنان نشان‌دهنده یک حمله DoS خوب قدیمی هستند که نمی‌توان آن را در چنین سطح بالایی متوقف کرد.

برای اینکه سرور شرکت خود را با Zimbra OSE به طور کامل ایمن کنید، می توانید از راه حلی مانند Fail2ban استفاده کنید که چارچوبی است که می تواند به طور مداوم گزارش های سیستم اطلاعاتی را برای اقدامات مکرر نظارت کند و با تغییر تنظیمات فایروال، نفوذگر را مسدود کند. مسدود کردن در چنین سطح پایینی به شما امکان می دهد مهاجمان را درست در مرحله اتصال IP به سرور غیرفعال کنید. بنابراین، Fail2Ban می تواند کاملاً حفاظتی را که با استفاده از DoSFilter ساخته شده است، تکمیل کند. بیایید دریابیم که چگونه می توانید Fail2Ban را با Zimbra OSE متصل کنید و در نتیجه امنیت زیرساخت فناوری اطلاعات شرکت خود را افزایش دهید.

مانند هر برنامه کاربردی دیگری در کلاس سازمانی، Zimbra Collaboration Suite نسخه منبع باز گزارش های دقیق کار خود را نگه می دارد. اکثر آنها در پوشه ذخیره می شوند /opt/zimbra/log/ در قالب فایل اینجا تنها تعداد کمی از آنها هستند:

  • mailbox.log - گزارش‌های سرویس پستی اسکله
  • audit.log - سیاهههای مربوط به احراز هویت
  • clamd.log - گزارش عملیات آنتی ویروس
  • freshclam.log - لاگ های به روز رسانی آنتی ویروس
  • convertd.log - سیاهههای مربوط به مبدل پیوست
  • zimbrastats.csv - گزارش عملکرد سرور

سیاهههای مربوط به زیمبرا نیز در فایل موجود است /var/log/zimbra.log، جایی که لاگ های پست فیکس و خود زیمبرا نگهداری می شوند.

به منظور محافظت از سیستم خود در برابر نیروی بی رحم، ما نظارت خواهیم کرد mailbox.log, audit.log и zimbra.log.

برای اینکه همه چیز کار کند، لازم است Fail2Ban و iptables با Zimbra OSE روی سرور شما نصب شوند. اگر از اوبونتو استفاده می کنید، می توانید این کار را با استفاده از دستورات انجام دهید dpkg -s fail2ban، اگر از CentOS استفاده می کنید، می توانید این را با استفاده از دستورات بررسی کنید yum list fail2ban نصب شد. اگر Fail2Ban را نصب نکرده اید، نصب آن مشکلی نخواهد داشت، زیرا این بسته تقریباً در تمام مخازن استاندارد موجود است.

پس از نصب تمام نرم افزارهای لازم، می توانید راه اندازی Fail2Ban را شروع کنید. برای انجام این کار باید یک فایل پیکربندی ایجاد کنید /etc/fail2ban/filter.d/zimbra.conf، که در آن عبارات منظمی را برای گزارش های OSE Zimbra می نویسیم که با تلاش های نادرست ورود به سیستم مطابقت دارند و مکانیسم های 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, [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 ارسال کنید.
  • Findtime - تنظیمی که به شما امکان می دهد فاصله زمانی را تنظیم کنید که پس از آن آدرس IP می تواند پس از اتمام حداکثر تعداد تلاش های ناموفق دوباره سعی کند به سرور دسترسی پیدا کند (پارامتر maxretry)

پس از ذخیره فایل با تنظیمات Fail2Ban، تنها راه اندازی مجدد این ابزار با استفاده از دستور باقی می ماند. راه اندازی مجدد سرویس fail2ban. پس از راه‌اندازی مجدد، لاگ‌های اصلی زیمبرا برای انطباق با عبارات منظم به طور مداوم نظارت می‌شوند. به لطف این، مدیر می‌تواند عملاً هرگونه احتمال نفوذ مهاجم را نه تنها به صندوق‌های پستی نسخه منبع باز Zimbra Collaboration Suite حذف کند، بلکه از تمام سرویس‌های در حال اجرا در Zimbra OSE نیز محافظت کند و همچنین از هرگونه تلاش برای دسترسی غیرمجاز آگاه شود. .

برای تمامی سوالات مربوط به سوئیت Zextras می توانید از طریق ایمیل با نماینده Zextras Ekaterina Triandafilidi تماس بگیرید. [ایمیل محافظت شده]

منبع: www.habr.com

اضافه کردن نظر