Ang Zimbra Collaboration Suite Open-Source Edition ay may ilang makapangyarihang tool upang matiyak ang seguridad ng impormasyon. Sa kanila - isang solusyon para sa pagprotekta sa isang mail server mula sa mga pag-atake mula sa mga botnet, ClamAV - isang antivirus na maaaring mag-scan ng mga papasok na file at mga titik para sa impeksyon sa mga nakakahamak na programa, pati na rin - isa sa mga pinakamahusay na filter ng spam ngayon. Gayunpaman, hindi kayang protektahan ng mga tool na ito ang Zimbra OSE mula sa mga malupit na pag-atake. Hindi ang pinaka-elegante, ngunit medyo epektibo pa rin, malupit na pagpilit na mga password gamit ang isang espesyal na diksyunaryo ay puno hindi lamang sa posibilidad ng matagumpay na pag-hack sa lahat ng mga kasunod na kahihinatnan, kundi pati na rin sa paglikha ng isang makabuluhang pag-load sa server, na nagpoproseso ng lahat hindi matagumpay na mga pagtatangka na i-hack ang isang server gamit ang Zimbra OSE.

Sa prinsipyo, maaari mong protektahan ang iyong sarili mula sa malupit na puwersa gamit ang karaniwang mga tool ng Zimbra OSE. Binibigyang-daan ka ng mga setting ng patakaran sa seguridad ng password na itakda ang bilang ng mga hindi matagumpay na pagtatangka sa pagpasok ng password, pagkatapos nito ay ma-block ang potensyal na inaatakeng account. Ang pangunahing problema sa diskarteng ito ay ang mga sitwasyon na lumitaw kung saan ang mga account ng isa o higit pang mga empleyado ay maaaring ma-block dahil sa isang malupit na puwersa na pag-atake kung saan wala silang magagawa, at ang nagresultang downtime sa trabaho ng mga empleyado ay maaaring magdulot ng malaking pagkalugi sa ang kompanya. Kaya naman pinakamainam na huwag gamitin ang opsyong ito ng proteksyon laban sa brute force.

Upang maprotektahan laban sa malupit na puwersa, ang isang espesyal na tool na tinatawag na DoSFilter ay mas angkop, na binuo sa Zimbra OSE at maaaring awtomatikong wakasan ang koneksyon sa Zimbra OSE sa pamamagitan ng HTTP. Sa madaling salita, ang prinsipyo ng pagpapatakbo ng DoSFilter ay katulad ng prinsipyo ng pagpapatakbo ng PostScreen, ginagamit lamang ito para sa ibang protocol. Orihinal na idinisenyo upang limitahan ang bilang ng mga aksyon na maaaring gawin ng isang user, ang DoSFilter ay maaari ding magbigay ng brute force na proteksyon. Ang pangunahing pagkakaiba nito mula sa tool na binuo sa Zimbra ay na pagkatapos ng isang tiyak na bilang ng mga hindi matagumpay na pagtatangka, hindi nito hinaharangan ang mismong gumagamit, ngunit ang IP address kung saan maraming mga pagtatangka ang ginawa upang mag-log in sa isang partikular na account. Salamat dito, hindi lamang mapoprotektahan ng isang system administrator laban sa malupit na puwersa, ngunit maiwasan din ang pagharang sa mga empleyado ng kumpanya sa pamamagitan lamang ng pagdaragdag ng panloob na network ng kanyang kumpanya sa listahan ng mga pinagkakatiwalaang IP address at subnet.
Ang malaking bentahe ng DoSFilter ay bilang karagdagan sa maraming mga pagtatangka na mag-log in sa isang partikular na account, gamit ang tool na ito maaari mong awtomatikong harangan ang mga umaatake na kumuha ng data ng pagpapatunay ng isang empleyado, at pagkatapos ay matagumpay na naka-log in sa kanyang account at nagsimulang magpadala ng daan-daang mga kahilingan sa server.
Maaari mong i-configure ang DoSFilter gamit ang mga sumusunod na console command:
- zimbraHttpDosFilterMaxRequestsPerSec — Gamit ang command na ito, maaari mong itakda ang maximum na bilang ng mga koneksyon na pinapayagan para sa isang user. Bilang default, ang halagang ito ay 30 koneksyon.
- zimbraHttpDosFilterDelayMillis - Gamit ang command na ito, maaari kang magtakda ng pagkaantala sa mga millisecond para sa mga koneksyon na lalampas sa limitasyon na tinukoy ng nakaraang command. Bilang karagdagan sa mga halaga ng integer, maaaring tukuyin ng administrator ang 0, upang walang anumang pagkaantala, at -1, upang ang lahat ng mga koneksyon na lumampas sa tinukoy na limitasyon ay magambala lamang. Ang default na halaga ay -1.
- zimbraHttpThrottleSafeIPs — Gamit ang command na ito, maaaring tukuyin ng administrator ang mga pinagkakatiwalaang IP address at subnet na hindi sasailalim sa mga paghihigpit na nakalista sa itaas. Tandaan na ang syntax ng command na ito ay maaaring mag-iba depende sa nais na resulta. Kaya, halimbawa, sa pamamagitan ng pagpasok ng command zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, ganap mong i-overwrite ang buong listahan at mag-iiwan lamang ng isang IP address dito. Kung ipinasok mo ang utos zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, ang IP address na iyong inilagay ay idaragdag sa puting listahan. Katulad nito, gamit ang tanda ng pagbabawas, maaari mong alisin ang anumang IP mula sa pinapayagang listahan.
Pakitandaan na ang DoSFilter ay maaaring lumikha ng ilang mga problema kapag gumagamit ng mga extension ng Zextras Suite Pro. Upang maiwasan ang mga ito, inirerekumenda namin ang pagtaas ng bilang ng mga sabay-sabay na koneksyon mula 30 hanggang 100 gamit ang command zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Bilang karagdagan, inirerekomenda namin ang pagdaragdag ng panloob na network ng enterprise sa listahan ng mga pinapayagan. Magagawa ito gamit ang command zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Pagkatapos gumawa ng anumang mga pagbabago sa DoSFilter, siguraduhing i-restart ang iyong mail server gamit ang command zmmailboxdctl i-restart.
Ang pangunahing kawalan ng DoSFilter ay gumagana ito sa antas ng aplikasyon at samakatuwid ay maaari lamang limitahan ang kakayahan ng mga umaatake na magsagawa ng iba't ibang mga aksyon sa server, nang hindi nililimitahan ang kakayahang kumonekta sa hilaga. Dahil dito, ang mga kahilingang ipinadala sa server para sa pagpapatunay o pagpapadala ng mga liham, bagama't halatang mabibigo ang mga ito, ay kumakatawan pa rin sa isang magandang lumang pag-atake ng DoS, na hindi mapipigilan sa ganoong mataas na antas.
Upang ganap na ma-secure ang iyong corporate server gamit ang Zimbra OSE, maaari kang gumamit ng solusyon gaya ng Fail2ban, na isang framework na patuloy na maaaring subaybayan ang mga log ng system ng impormasyon para sa paulit-ulit na pagkilos at harangan ang nanghihimasok sa pamamagitan ng pagbabago sa mga setting ng firewall. Ang pag-block sa mababang antas ay nagbibigay-daan sa iyo na huwag paganahin ang mga umaatake sa yugto ng koneksyon ng IP sa server. Kaya, ang Fail2Ban ay maaaring ganap na makadagdag sa proteksyong binuo gamit ang DoSFilter. Alamin natin kung paano mo maikokonekta ang Fail2Ban sa Zimbra OSE at sa gayon ay mapapataas ang seguridad ng IT infrastructure ng iyong enterprise.
Tulad ng anumang iba pang enterprise-class na application, ang Zimbra Collaboration Suite Open-Source Edition ay nagpapanatili ng mga detalyadong log ng trabaho nito. Karamihan sa kanila ay naka-imbak sa folder /opt/zimbra/log/ sa anyo ng mga file. Narito ang ilan lamang sa kanila:
- mailbox.log — Mga tala ng serbisyo ng jetty mail
- audit.log - mga log ng pagpapatunay
- clamd.log — mga log ng pagpapatakbo ng antivirus
- freshclam.log - mga log ng pag-update ng antivirus
- convertd.log — attachment converter logs
- zimbrastats.csv - mga log ng pagganap ng server
Ang mga log ng Zimbra ay matatagpuan din sa file /var/log/zimbra.log, kung saan ang mga log ng Postfix at Zimbra mismo ay pinananatili.
Para maprotektahan ang aming system mula sa brute force, susubaybayan namin mailbox.log, audit.log и zimbra.log.
Para gumana ito, kailangan mong naka-install ang Fail2Ban at iptables sa iyong Zimbra OSE server. Kung gumagamit ka ng Ubuntu, magagawa mo ito gamit ang mga utos dpkg -s fail2ban, kung gagamitin mo CentOS, pagkatapos ay maaari mo itong suriin gamit ang mga utos yum list install fail2ban. Kung wala kang naka-install na Fail2Ban, hindi magiging problema ang pag-install nito, dahil available ang package na ito sa halos lahat ng karaniwang mga repositoryo.
Kapag na-install na ang lahat ng kinakailangang software, maaari mong simulan ang pag-set up ng Fail2Ban. Upang gawin ito kailangan mong lumikha ng isang configuration file /etc/fail2ban/filter.d/zimbra.conf, kung saan magsusulat kami ng mga regular na expression para sa mga log ng Zimbra OSE na tutugma sa mga maling pagtatangka sa pag-log in at magti-trigger ng mga mekanismo ng Fail2Ban. Narito ang isang halimbawa ng mga nilalaman ng zimbra.conf na may set ng mga regular na expression na tumutugma sa iba't ibang mga error na ibinabato ng Zimbra OSE kapag nabigo ang isang pagtatangka sa pagpapatunay:
# 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 =Kapag naipon na ang mga regular na expression para sa Zimbra OSE, oras na para simulan ang pag-edit ng configuration ng Fail2ban mismo. Ang mga setting ng utility na ito ay matatagpuan sa file /etc/fail2ban/jail.conf. Kung sakali, gumawa tayo ng backup na kopya nito gamit ang command cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Pagkatapos nito, babawasan namin ang file na ito sa humigit-kumulang sumusunod na form:
# 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 = 5Bagama't medyo generic ang halimbawang ito, sulit pa ring ipaliwanag ang ilan sa mga parameter na maaaring gusto mong baguhin kapag ikaw mismo ang nagse-set up ng Fail2Ban:
- Ignoreip — gamit ang parameter na ito maaari kang tumukoy ng isang partikular na ip o subnet kung saan hindi dapat suriin ng Fail2Ban ang mga address. Bilang isang patakaran, ang panloob na network ng negosyo at iba pang mga pinagkakatiwalaang address ay idinagdag sa listahan ng mga hindi pinansin.
- Bantime — Ang oras kung kailan ipagbabawal ang nagkasala. Sinusukat sa mga segundo. Ang halaga ng -1 ay nangangahulugang isang permanenteng pagbabawal.
- Maxretry — Ang maximum na bilang ng beses na maaaring subukan ng isang IP address na i-access ang server.
- sendmail — Isang setting na nagbibigay-daan sa iyong awtomatikong magpadala ng mga abiso sa email kapag na-trigger ang Fail2Ban.
- Findtime — Isang setting na nagpapahintulot sa iyo na itakda ang agwat ng oras pagkatapos kung saan maaaring subukan ng IP address na i-access muli ang server pagkatapos maubos ang maximum na bilang ng mga hindi matagumpay na pagtatangka (maxretry parameter)
Pagkatapos i-save ang file gamit ang mga setting ng Fail2Ban, ang natitira lang ay i-restart ang utility na ito gamit ang command i-restart ang serbisyo fail2ban. Pagkatapos ng pag-restart, magsisimulang patuloy na subaybayan ang pangunahing mga log ng Zimbra para sa pagsunod sa mga regular na expression. Dahil dito, halos maaalis ng administrator ang anumang posibilidad ng isang umaatake na tumagos hindi lamang sa mga mailbox ng Zimbra Collaboration Suite Open-Source Edition, ngunit mapoprotektahan din ang lahat ng serbisyong tumatakbo sa loob ng Zimbra OSE, at magkaroon din ng kamalayan sa anumang mga pagtatangka upang makakuha ng hindi awtorisadong pag-access .
Para sa lahat ng tanong na nauugnay sa Zextras Suite, maaari kang makipag-ugnayan kay Zextras Representative Ekaterina Triandafilidi sa pamamagitan ng email katerina@zextras.com
Pinagmulan: www.habr.com
