Zimbra OSE kaitse bruteforce'i ja DoS-rĂŒnnakute eest

Zimbra Collaboration Suite Open-Source Edition sisaldab mitmeid tugevaid tööriistu teabe turvalisuse tagamiseks. Nende hulka kuuluvad Postscreen — lahendus, mis kaitseb meiliserverit botnet'ide rĂŒnnakute eest, ClamAV — viirusetĂ”rje, mis suudab kontrollida sissetulevaid faile ja e-kirju pahavara tunnuste suhtes, samuti SpamAssassin — ĂŒks parimaid rĂ€mpsposti filtreid praegu. Siiski ei suuda need tööriistad tagada Zimbra OSE kaitset selliste rĂŒnnakute, nagu bruteforce, eest. Kuigi see pole kĂ”ige elegantsem, on sĂ”naraamatute pĂ”hjal tehtav paroolide jĂ€rkjĂ€rguline katsetamine endiselt tĂ”hus ning vĂ”ib pĂ”hjustada mitte ainult eduka hĂ€kkimise tĂ”enĂ€osust, vaid ka mĂ€rkimisvÀÀrset koormust serverile, mis töötab lĂ€bi kĂ”ik ebaĂ”nnestunud sissepÀÀsukatseted Zimbra OSE serverisse.

Zimbra OSE kaitse bruteforce'i ja DoS-rĂŒnnakute eest

PĂ”himĂ”tteliselt on Zimbra OSE-ga bruteforce'i vastu kaitsmiseks olemas standardseid mehhanisme. Paroolipoliitika seaded vĂ”imaldavad mÀÀrata ebaĂ”nnestunud paroolisisestamise katsete arvu, mille jĂ€rel potentsiaalselt rĂŒnnatav konto lukustatakse. Selle lĂ€henemise peamine probleem on, et vĂ”ivad tekkida olukorrad, kus ĂŒhe vĂ”i mitme töötaja kontod lukustatakse bruteforce'i rĂŒnnaku tĂ”ttu, millega nad ei ole kuidagi seotud, ja töötajate töökatkestused vĂ”ivad ettevĂ”ttele tekitada suuri kahjusid. Just seetĂ”ttu on selline kaitse bruteforce'i eest kĂ”ige parem mitte rakendada.

Zimbra OSE kaitse bruteforce'i ja DoS-rĂŒnnakute eest

Bruteforce'i kaitsmiseks sobib palju paremini spetsiaalne tööriist nimega DoSFilter, mis on integreeritud Zimbra OSE-sse ja suudab automaatselt katkestada ĂŒhenduse Zimbra OSE-ga HTTP kaudu. TeisisĂ”nu, DoSFilteri toimimise pĂ”himĂ”te on sarnane PostScreenile, kuid seda kasutatakse teise protokolli jaoks. Algusest peale on selle eesmĂ€rk piirata ĂŒhe kasutaja tegevuste arvu, kuid DoSFilter suudab ka bruteforce'i vastu kaitsta. Peamine erinevus Zimbra integreeritud tööriistast on see, et pĂ€rast ettenĂ€htud ebaĂ”nnestunud katsete arvu lukustab see mitte kasutaja, vaid IP-aadress, millest tehakse korduvaid katseid siseneda erinevatesse kontodesse. TĂ€nu sellele saab sĂŒsteemiadministraator mitte ainult kaitsta end bruteforce'i eest, vaid vĂ€ltida ka ettevĂ”tte töötajate lukustamist, lisades oma ettevĂ”tte sisevĂ”rgu usaldusvÀÀrsete IP-aadresside nimekirja.

DoSFilteri suur eelis on see, et lisaks arvukatele katsetele siseneda erinevatesse kontodesse suudab see tööriist automaatselt blokeerida neid kurjategijaid, kes on saadud töötajate autentimisandmeid, pÀÀsenud nende kontodesse ja alustanud serverile sadade pÀringute saatmist.

DoSFilteri seadistamiseks saab kasutada jÀrgmisi konsooli kÀske:

  • zimbraHttpDosFilterMaxRequestsPerSec — selle kĂ€su abil saab mÀÀrata maksimaalse ĂŒhenduste arvu, mis on lubatud ĂŒhe kasutaja jaoks. Vaikimisi on see vÀÀrtus 30 ĂŒhendust.
  • zimbraHttpDosFilterDelayMillis — selle kĂ€su abil saab mÀÀrata viivituse millisekundites ĂŒhendustele, mis ĂŒletavad eelmise kĂ€su mÀÀratud limiidi. Lisaks tĂ€isarvulistele vÀÀrtustele saab administraator mÀÀrata 0, et viivitusi ei oleks, vĂ”i -1, et kĂ”ik ĂŒhendused, mis ĂŒletavad mÀÀratud limiidi, katkestataks. Vaikimisi on see vÀÀrtus -1.
  • zimbraHttpThrottleSafeIPs — selle kĂ€su abil saab administraator mĂ€rkida usaldusvÀÀrsed IP-aadressid ja alamvĂ”rgud, millele ei kohaldata eelpool loetletud piiranguid. Tuleb mĂ€rkida, et selle kĂ€su sĂŒntaks vĂ”ib varieeruda sĂ”ltuvalt soovitud tulemusest. NĂ€iteks sisestades kĂ€su zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, kirjutate te tĂ€ielikult ĂŒle kogu nimekirja ja jĂ€tate sinna vaid ĂŒhe IP-aadressi. Kui kirjutate kĂ€su zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, lisatakse sisestatud IP-aadress valgesse nimekirja. Samamoodi saab miinusmĂ€rki kasutades eemaldada mĂ”ne IP aadressi lubatud nimekirjast.

Tuleb mĂ€rkida, et DoSFilter vĂ”ib pĂ”hjustada mitmeid probleeme Zextras Suite Pro laienduste kasutamisel. Selle vĂ€ltimiseks soovitame suurendada samade ĂŒhenduste arvu 30-lt 100-le kĂ€su abil zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Lisaks soovitame lisada ettevĂ”tte sisevĂ”rk lubatud nimekirja. Seda saab teha kĂ€su kaudu zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. PĂ€rast muudatuste tegemist DoSFilteris peate kindlasti oma meiliserveri taaskĂ€ivitama kĂ€suga zmmailboxdctl restart.

DoSFilteri peamiseks puuduseks on, et see töötab rakendustasandil, mistĂ”ttu suudab see vaid piirata rĂŒndajate vĂ”imalusi erinevates tegevustes serveris, mitte aga ĂŒhenduse loomist serveriga. SeetĂ”ttu saadetud autentimis- vĂ”i e-kirjade saatmise pĂ€ringud, kuigi need on eelnevalt ebaĂ”nnestunud, tĂ”enĂ€oliselt siiski esindavad endist head DoS-rĂŒnnakut, mida on kĂ”rgel tasemel peatada vĂ”imatu.

Et tĂ€ielikult kaitsta oma Zimbra OSE ettevĂ”tte serverit, saate kasutada lahendust nimega Fail2ban, mis on raamistik, mis suudab pidevalt jĂ€lgida teabe sĂŒsteemide logisid korduvate tegevuste osas ja blokeerida rikkumise autorit, muutes tulemĂŒĂŒri seadeid. Madalal tasemel blokkimine vĂ”imaldab katkestada rĂŒndajat juba IP-ĂŒhenduse loomise etapil serveriga. Seega saab Fail2Ban suurepĂ€raselt tĂ€iendada DoSFilteriga loodud kaitset. Uurime, kuidas saab Fail2Ban't ĂŒhendada Zimbra OSE-ga, et tĂ”sta teie ettevĂ”tte IT-infrastruktuuri turvalisust.

Nagu iga teinegi ettevÔtte klassi rakendus, sÀilitab Zimbra Collaboration Suite Open-Source Edition pÔhjalikke logisid oma tööst. Enamik neist salvestatakse kausta /opt/zimbra/log/ failide kujul. Siin on vaid mÔned neist:

  • mailbox.log — Jetty meiliteenuse logid
  • audit.log — autentimislogid
  • clamd.log — viirusetĂ”rje tööl logid
  • freshclam.log — viirusetĂ”rje uuenduste logid
  • convertd.log — manusede konversiooni logid
  • zimbrastats.csv — serveri jĂ”udluse logid

Lisaks leiate Zimbra logid failist /var/log/zimbra.log, kus sÀilitatakse Postfixi ja Zimbra enda logisid.

Kaitseks meie sĂŒsteemi brute-force rĂŒnnakute eest, jĂ€lgime me mailbox.log, audit.log ja zimbra.log.

Selleks, et kÔik sujuks, peab teie Zimbra OSE serveris olema installitud Fail2Ban ja iptables. Kui kasutate Ubuntu't, saate seda kontrollida kÀskudega dpkg -s fail2ban, samas kui CentOSi puhul saate selle kontrollida kÀskudega yum list installed fail2ban. Kui Fail2Ban'i ei ole paigaldatud, ei tohiks selle installeerimine olla probleem, kuna see pakett on peaaegu kÔigis standardsetes hoidlatest olemas.

PĂ€rast kĂ”igi vajalike tarkvarade installimist vĂ”ite alustada Fail2Ban'i seadistamisega. Selleks peate looma konfigureerimisfaili /etc/fail2ban/filter.d/zimbra.conf, kuhu kirjutame regulaaravaldised Zimbra OSE logide jaoks, mis vastavad valele sisselogimise katsele ja aktiveerivad Fail2Ban'i sĂŒsteemid. Siin on nĂ€idis zimbra.conf'i sisu, kus on kogumik regulaaravaldisi, mis vastavad Zimbra OSE-s antud erinevatele vigadele, mis tekivad ebaĂ”nnestunud autentimisĂŒrituste korral:

# 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 =

Kui regulaaravaldised Zimbra OSE-le on koostatud, on aeg hakata redigeerima Fail2Ban'i enda konfigureerimist. Selle utiliidi seadistused asuvad failis /etc/fail2ban/jail.conf. Juhuks, kui teeme selle varukoopia kÀsuga cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. PÀrast seda kohandame seda faili jÀrgmiseks:

# 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

See nĂ€idis on kĂŒllaltki universaalne, kuid tasub selgitada mĂ”ningaid parameetreid, mida vĂ”ite soovida muuta, kui seadistate Fail2Ban'i iseseisvalt:

  • Ignoreip — selle parameetri abil saate mÀÀrata konkreetse IP vĂ”i alamvĂ”rgu, mille aadresse Fail2Ban ei peaks kontrollima. TĂŒĂŒpiliselt lisatakse ignoreeritavate nimekirja ettevĂ”tte sisemine vĂ”rk ja teised usaldusvÀÀrsed aadressid.
  • Bantime — Aeg, mille jooksul rikkuja on bansitud. Aeg on antud sekundites. VÀÀrtus -1 tĂ€hendab eluaegset banni.
  • Maxretry — Maksimaalne arv, kui palju ĂŒks IP-aadress vĂ”ib proovida serverisse pÀÀseda.
  • Sendmail — Seade, mis vĂ”imaldab automaatselt saata e-posti teateid Fail2Ban'i aktiveerumise kohta.
  • Findtime — Seade, mis vĂ”imaldab mÀÀrata ajavahemiku, pĂ€rast mille möödumist saab IP-aadress uuesti proovida pÀÀseda serverisse pĂ€rast maksimaalse ebaĂ”nnestunud katsete arvu ammendumist (parameeter maxretry).

PÀrast Fail2Ban'i seadistamiseks mÔeldud faili salvestamist tuleb see utiliit taaskÀivitada kÀsuga service fail2ban restart. PÀrast taaskÀivitamist hakkavad Zimbra peamised logid pidevalt jÀlgima regulaaravaldiseid. TÀnu sellele suudab administraator praktiliselt vÀlistada vÔimaluse, et kurjategija pÀÀseks juurde mitte ainult Zimbra Collaboration Suite Open-Source Edition'i postkastidele, vaid ka kaitsta kÔiki Zimbra OSE raames töötavaid teenuseid ning olla kursis vÔimalike volitamata juurdepÀÀsu katsetega.

KĂŒsimuste korral, mis on seotud Zextras Suite'iga, vĂ”ite pöörduda Zextra esindaja Ekaterina Triandafiliidi poole e-posti teel katerina@zextras.com

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster