Zimbra OSE-nin bruteforce və DoS hücumlarından qorunması

Zimbra Collaboration Suite Open-Source Edition, məlumat təhlükəsizliyini təmin etmək üçün bir neçə güclü alətə malikdir. Bunlar arasında Postscreen — botnetlərdən gələn hücumlara qarşı poçt serverini qorumaq üçün bir həll, ClamAV — daxil olan faylları və e-mailləri zərərli proqramlardan ötrü yoxlaya bilən antivirus, eləcə də SpamAssassin — bu günün ən yaxşı spam filterlərindən biridir. Ancaq bu alətlər Zimbra OSE-ni brut-forc hücumlarına qarşı qoruya bilmir. Çox da zərif olmasa da, hələ də kifayət qədər təsirli olan xüsusi lüğət üzrə parolun əl ilə sındırılması, yalnız uğurlu sındırma ehtimalı ilə deyil, həm də Zimbra OSE serverinə edilən bütün uğursuz sındırma cəhdlərinə səbəb olan əhəmiyyətli bir yük yaratmaqla nəticələnir.

Zimbra OSE-nin bruteforce və DoS hücumlarından qorunması

Əslində, brut-forc hücumlarından qorunmaq üçün Zimbra OSE-nin standart vasitələrindən istifadə edilə bilər. Parol siyasəti konfiqurasiyaları, istifadə edilməmiş parol cəhdləri sayını təyin etməyə imkan verir, bundan sonra potensial olaraq hədəf götürülmüş hesabın bloka alınması baş verir. Bu yanaşmanın əsas problemi, bir və ya bir neçə işçinin hesablarının qarşılıqlı təsiri olmayan brut-forc hücumu səbəbindən bloklanma vəziyyətlərinin yarana biləcəyidir; yaranan iş dalğalanması şirkətə böyük ziyan vura bilər. Beləliklə, brut-forc hücumuna qarşı belə bir müdafiə variantını istifadə etmək daha da məqsədiyəuyğun deyil.

Zimbra OSE-nin bruteforce və DoS hücumlarından qorunması

Brut-forc hücumlarına qarşı daha effektiv bir alət, Zimbra OSE-yə inteqrasiya olunmuş DoSFilter adlanan xüsusi bir vasitədir ki, bu da HTTP üzrə Zimbra OSE ilə əlaqəni avtomatik olaraq dayandıra bilir. Başqa sözlə, DoSFilter-in iş prinsipi PostScreen-in iş prinsipi ilə eynidir, lakin digər bir protokol üçün istifadə edilir. İstifadəçilərin edə biləcəyi hərəkətlərin sayını məhdudlaşdırmaq üçün əvvəldən təşkil edilən DoSFilter, eyni zamanda brut-forc-a qarşı müdafiə də təmin edə bilər. Bunun Zimbra-nın daxili alətindən əsas fərqi, uğursuz cəhdlərin müəyyən bir sayından sonra yalnız istifadəçini deyil, eyni zamanda müvafiq hesaba daxil olmaq üçün bir neçə cəhd edən IP ünvanını bloklamasıdır. Bu sayədə sistem administratoru yalnız brut-forc hücumuna qarşı qorunmaqla qalmır, həm də işçilərin bloklanmasından qaça bilir, sadəcə şirkətin daxili şəbəkəsini etibarlı IP ünvanları və alt şəbəkələr siyahısına əlavə etməklə.

DoSFilter-in böyük üstünlüyü ondadır ki, digər istifadəçilərin hesabına daxil olmağa cəhdlərdən əlavə, bu alət vasitəsilə işçinin identifikasiya məlumatlarını əlinə keçirən hər hansı bir təcavüzkar avtomatik olaraq bloklana bilər. Beləliklə, onun hesabına uğurla daxil olan və serverə yüzlərlə sorğu göndərən şəxsləri durdurma imkanı yaradır.

DoSFilter-i aşağıdakı konsol komandaları vasitəsilə tənzimləmək mümkündür:

  • zimbraHttpDosFilterMaxRequestsPerSec — Bu komanda vasitəsilə bir istifadəçi üçün icazə verilən maksimum bağlantı sayını müəyyənləşdirmək olar. Standart olaraq bu dəyər 30 bağlantıdır.
  • zimbraHttpDosFilterDelayMillis — Bu komanda vasitəsilə əvvəlki komandada təyin edilmiş limitləri aşan bağlantılar üçün millisekundlarla gecikmə müəyyənləşdirmək mümkündür. Ayrıca tam ədədi dəyərlərdən başqa, administrator 0 yazaraq gecikmə olmaması, həmçinin -1 yazaraq təyin edilmiş limiti aşan bütün bağlantıların sadəcə kəsilməsi üçün göstəriş verə bilər. Standart olaraq bu dəyər -1-dir.
  • zimbraHttpThrottleSafeIPs — Bu komanda vasitəsilə administrator etibarlı IP adreslərini və alt şəbəkələri göstərə bilər ki, bu məhdudiyyətlər onlara şamil olunmasın. Qeyd edək ki, bu komandanın sintaksisi arzu olunan nəticədən asılı olaraq dəyişə bilər. Məsələn, zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, bu komandada bütün siyahı tamamilə yenilənəcək və yalnız bir IP adresi qalacaq. Əgər siz zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, komandasını daxil etsəniz, əlavə etdiyiniz IP adresi ağ siyahıya əlavə ediləcək. Eyni prinsiplə, minus işarəsi istifadə edərək icazə verilən siyahıdan istənilən IP adresini silmək mümkündür.

Qeyd edək ki, DoSFilter Zextras Suite Pro əlavələri istifadəsi zamanı bir sıra problemlər yarada bilər. Bu problemlərin qarşısını almaq üçün əlaqə sayını 30-dan 100-ə yüksəltməyi tövsiyə edirik, bunu aşağıdakı komanda ilə edə bilərsiniz: zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Həmçinin, müəssisənin daxili şəbəkəsini icazə verilən siyahıya əlavə etməyə də tövsiyə edirik. Bunu aşağıdakı komanda ilə etmək mümkündür: zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. DoSFilter-də hər hansı dəyişiklik etdikdən sonra mütləq poçt serverini aşağıdakı komanda ilə yenidən başladın: zmmailboxdctl restart.

DoSFilter-in əsas çatışmazlığı isə onun proqram səviyyəsində işləməsidir və bu səbəbdən təcavüzkarların serverdə müxtəlif fəaliyyətlər göstərməsini məhdudlaşdıra bilər, lakin serverlə əlaqə qurma imkanını əngəlləmir. Buna görə, serverə göndərilən şifrə ilə giriş və ya məktub göndərmə sorğuları uğursuz olsa da, bunlar hər halda köhnə, yaxşı DoS hücumu sayıla bilər ki, bunu belə yüksək səviyyədə dayandırmaq mümkün deyil.

Zimbra OSE korporativ serverinizi tamamilə qorumaq üçün Fail2ban kimi bir həll istifadə edə bilərsiniz. Bu, informasiya sistemlərinin loqaritmlərini davamlı olaraq izləmək və təkrarlanan fəaliyyətlərə görə pozucunu bəndləmək üçün bir çərçivədir. Firewall parametrlərini dəyişdirmək yolu ilə pozucunun bloklanması mümkündür. Belə bir aşağı səviyyəli bloklama, cinayətkarları serverlə IP bağlantısı mərhələsində tamamilə cəld edə bilir. Beləliklə, Fail2Ban, DoSFilter ilə qurulmuş təhlükəsizliyi mükəmməl şəkildə tamamlayır. Gəlin, Fail2Ban ilə Zimbra OSE-ni necə dost edəcəyimizi öyrənək və bunun nəticəsində şirkətinizin İT infrastrukturunun müdafiəsini artıraq.

Korporativ sınıf digər tətbiqlər kimi, Zimbra Collaboration Suite Open-Source Edition də fəaliyyətinin loqaritmlərini ətraflı saxlayır. Onların çoxu aşağıdakı qovluqda saxlanılır /opt/zimbra/log/ şəklindəki fayllarda. Bunlardan bir neçəsi:

  • mailbox.log — Jetty poçt xidmətinin loqaritmləri
  • audit.log — autentifikasiya loqaritmləri
  • clamd.log — antivirusun fəaliyyət loqaritmləri
  • freshclam.log — antivirus yeniləmə loqaritmləri
  • convertd.log — əlavə konvertoru loqaritmləri
  • zimbrastats.csv — serverin performans loqaritmləri

Zimbra loqaritmlərini /var/log/zimbra.logfaylda tapa bilərsiniz, burada Postfix və Zimbra-nın loqaritmləri saxlanılır.

Sistemimizi brute force-a qarşı qorumaq üçün biz mailbox.log, audit.logzimbra.log.

Bütün bunların işləməsi üçün, Zimbra OSE ilə serverinizdə Fail2Ban və iptables-quraşdırılmış olmalıdır. Əgər siz Ubuntu istifadə edirsinizsə, bunu etmək üçün komanda istifadə edə bilərsiniz dpkg -s fail2ban, əgər CentOS istifadə edirsinizsə, bunu yoxlamaq üçün komanda istifadə edə bilərsiniz yum list installed fail2ban. Fail2Ban sizdə yoxdursa, onun quraşdırılması heç bir problem olmayacaq, çünki bu paket demək olar ki, bütün standart depolarda mövcuddur.

Lazım olan bütün proqram təminatı quraşdırıldıqdan sonra, Fail2Ban-in konfiqurasiya edilməsinə başlayın. Bu məqsədlə bir konfiqurasiya faylı yaratmaq lazımdır /etc/fail2ban/filter.d/zimbra.conf, burada Zimbra OSE-lərin loqaritmlərində yanlış giriş cəhdlərinə uyğun gələn müntəzəm ifadələri qeyd edəcəyik və Fail2Ban mexanizmlərini işə salacağıq. Burada feillərin uğursuz autentifikasiya cəhdləri zamanı Zimbra OSE tərəfindən verilən müxtəlif xətaların uyğun müntəzəm ifadələri ilə zimbra.conf-un mümkün nümunəsi:

# 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 üçün müntəzəm ifadələr tərtib edildikdən sonra, Fail2Ban konfiqurasiyasını redaktə etməyə başlayın. Bu alətin parametrləri /etc/fail2ban/jail.conffaylında yerləşir. Mümkün olduğunca, bunu cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bakkomandası ilə bir nüsxəsini çıxaraq. Daha sonra, bu faylı aşağıdakı təxminən görünüşdə gətirək:

# 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

Bu nümunə, olduqca universaldır, lakin bəlkə də Fail2Ban-i özünüz tənzimləyərkən dəyişdirmək istədiyiniz bəzi parametrləri izah etməyə dəyər:

  • Ignoreip — Bu parametr vasitəsilə Fail2Ban'ın yoxlamayacağı konkret IP və ya alt şəbəkə adresini təyin edə bilərsiniz. Adətən, etibarlı olan daxili şəbəkə və digər ünvanlar istisna siyahısına əlavə edilir.
  • Bantime — Pozuntunun həbsdə qalacağı vaxt. İkinci ilə ölçülür. -1 dəyəri müddətsiz həbs deməkdir.
  • Maxretry — Bir IP adresinin serverə daxil olmaq üçün cəhd edə biləcəyi maksimum say.
  • Sendmail — Fail2Ban aktivləşdikdə avtomatik e-poçt bildirişləri göndərmək üçün konfiqurasiya.
  • Findtime — IP adresinin maksimum uğursuz cəhddən (maxretry parametri) sonra serverə yenidən daxil olmaq üçün cəhd edə biləcəyi zaman intervalını təyin etməyə imkan verən konfiqurasiya.

Fail2Ban konfiqurasiya faylını saxlamaqdan sonra, sadəcə service fail2ban restartkomandası ilə bu aləti yenidən başladmaq qalır. Yenidən başladıqdan sonra Zimbra'nın əsas logları uyğun müntəzəm ifadələrlə davamlı olaraq izləniləcək. Bu sayədə, administrator faktik olaraq Zimbra Collaboration Suite Open-Source Edition poçt qutularına və Zimbra OSE çərçivəsində işləyən bütün xidmətlərə daxil olma cəhdləri haqqında məlumat sahibi ola bilər.

Zextras Suite ilə bağlı bütün suallarınız üçün şirkətimizin nümayəndəsi Yekaterina Triandafiliidi ilə katerina@zextras.com elektron poçtu vasitəsilə əlaqə saxlaya bilərsiniz.

Mənbə: habr.com

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster