Zimbra Collaboration Suite Open-Source Edition ima nekoliko moćnih alata za osiguranje informatičke sigurnosti. Među njima su — rešenje za zaštitu poštanskog servera od botnet napada, ClamAV — antivirus koji može proveravati ulazne datoteke i e-poruke na zaraženost malicioznim programima, kao i — jedan od najboljih filtara za neželjenu poštu danas. Međutim, ovi alati nisu u stanju da zaštite Zimbra OSE od napada poput brute-force. Iako možda nije najsuptilnije rešenje, prenatrpavanje lozinkama putem specijalizovanog rečnika i dalje predstavlja značajan rizik od uspešnog hakovanja sa svim posljedicama, kao i stvaranje velike opterećenosti servera koji obrađuje sve neuspešne pokušaje hakovanja servera sa Zimbra OSE.

U načelu, zaštita od brute-force napada može se postići standardnim sredstvima Zimbra OSE. Podešavanja politike lozinke omogućuju postavljanje broja neuspešnih pokušaja unosa lozinke nakon kojih se potencijalno napadnuti nalog blokira. Glavni problem ovog pristupa je u tome što mogu nastati situacije kada su nalozi jednog ili više radnika blokirani zbog brute-force napada s kojim nemaju nikakve veze, a gubitak vremena u radu zaposlenih može doneti velik gubitak kompaniji. Iz tog razloga, ovakva vrsta zaštite od brute-force napada najbolje je ne primenjivati.

Za zaščito pred brute force napadi je najbolje uporabiti poseben instrument, imenovan DoSFilter, ki je vgrajen v Zimbra OSE in lahko samodejno prekine povezavo z Zimbra OSE prek HTTP. Z drugimi besedami, načelo delovanja DoSFilter je podobno načelu delovanja PostScreen, le da se uporablja za drug protokol. Sprva zasnovan za omejevanje števila dejanj, ki jih lahko izvede en uporabnik, DoSFilter prav tako lahko zagotovi zaščito pred brute force napadi. Njegova ključna razlika od vgrajenega orodja v Zimbra je ta, da po določenem številu neuspešnih poskusov ne blokira samega uporabnika, temveč IP-naslov, s katerega se izvajajo večkratni poskusi prijave v določen račun. S tem lahko sistemski skrbnik ne le zaščiti pred brute force napadi, ampak tudi prepreči blokiranje zaposlenih, tako da preprosto doda zaupne IP-naslove in omrežja svoje notranje podjetje v seznam zaupnih naslovov.
Velika prednost DoSFilter je v tem, da poleg številnih poskusov prijave v določen račun omogoča tudi samodejno blokiranje tistih napadalcev, ki so pridobili avtentikacijske podatke zaposlenega, nato pa uspešno vstopili v njegov račun in začeli pošiljati stotine zahtevkov strežniku.
DoSFilter lahko nastavite s pomočjo naslednjih konzolnih ukazov:
- zimbraHttpDosFilterMaxRequestsPerSec — S tem ukazom lahko določite največje število povezav, dovoljenih za enega uporabnika. Privzeto je ta vrednost 30 povezav.
- zimbraHttpDosFilterDelayMillis — S tem ukazom lahko določite zamudo v milisekundah za povezave, ki bodo presegle omejitev, določeno s prejšnjim ukazom. Poleg celoštevilski vrednosti lahko skrbnik navede 0, da zamude sploh ne bo, ter -1, da se vse povezave, ki presegajo določeno omejitev, preprosto prekinjajo. Privzeto je ta vrednost -1.
- zimbraHttpThrottleSafeIPs — S tem ukazom lahko skrbnik navede zaupne IP-naslove in omrežja, na katera ne bodo veljale zgoraj navedene omejitve. Opozoriti je treba, da se sintaksa tega ukaza lahko spreminja glede na želeni rezultat. Tako lahko na primer vnesete ukaz zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, boste popolnoma prepisali celoten seznam in pustili le eno IP-naslov. Če pa vnesete ukaz zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, se bo dodal v bel seznam, ki ste ga vnesli. Na podoben način lahko z znakom minus odstranite katero koli IP iz seznama dovoljenih.
Opazimo, da DoSFilter lahko povzroči vrsto težav pri uporabi razširitev Zextras Suite Pro. Da bi se jim izognili, priporočamo, da povečate število hkratnih povezav s 30 na 100 s pomočjo ukaza zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Poleg tega priporočamo, da dodate interno omrežje podjetja v seznam dovoljenih. To lahko storite s pomočjo ukaza zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Po vsakem spreminjanju DoSFilter obvezno ponovno zaženite poštni strežnik s pomočjo ukaza zmmailboxdctl restart.
Glavna slabost DoSFilterja je ta, da deluje na ravni aplikacije in lahko le omeji možnost napadljivcev, da izvajajo različna dejanja na strežniku, ne da bi omejila možnost povezovanja s strežnikom. Zaradi tega so zahtevki za avtentikacijo ali pošiljanje sporočil na strežnik, čeprav bodo zagotovo neuspešni, še vedno oblikovani kot stari dobri DoS napad, katerega ni mogoče zaustaviti na tako visoki ravni.
Da bi popolnoma zaščitili svoj korporativni strežnik z Zimbra OSE, lahko uporabite rešitev, kot je Fail2ban, ki je okvir, ki lahko nenehno spremlja dnevniške podatke informacijskih sistemov za ponavljajoče se dejavnosti in blokira kršitelja s spreminjanjem nastavitev požarnega zidu. Blokiranje na tako nizki ravni omogoča izklopitev napadljivcev že na stopnji IP povezave s strežnikom. Tako Fail2Ban lahko odlično dopolni zaščito, ki jo zagotavlja DoSFilter. Poglejmo, kako lahko povežemo Fail2Ban z Zimbra OSE in s tem povečamo varnost IT infrastrukture vašega podjetja.
Kot vsaka druga aplikacija korporativnega razreda, Zimbra Collaboration Suite Open-Source Edition vodi podrobne dnevnike svojega dela. Večina jih je shranjena v mapi /opt/zimbra/log/ v obliki datotek. Tukaj je le nekaj od njih:
- mailbox.log — dnevniki poštne storitve Jetty
- audit.log — dnevniki avtentikacije
- clamd.log — zapiski delovanja antivirusnega programa
- freshclam.log — zapiski o posodobitvah antivirusnega programa
- convertd.log — zapiski konverterja priponk
- zimbrastats.csv — zapiski o učinkovitosti strežnika
Zapiske Zimbra lahko najdete tudi v datoteki /var/log/zimbra.log, kjer so zapiski delovanja Postfixa in same Zimbre.
Da bi zaščitili naš sistem pred brute force napadi, bomo spremljali mailbox.log, audit.log in zimbra.log.
Da bi vse delovalo, mora biti na vašem strežniku z Zimbra OSE nameščen Fail2Ban in iptables. Če uporabljate Ubuntu, lahko to storite z ukazi dpkg -s fail2ban, če pa uporabljate CentOS, lahko to preverite z ukazi yum list installed fail2ban. Če Fail2Ban niste namestili, to ne bo težava, saj je pakete na voljo v skoraj vseh standardnih repozitorijih.
Ko je potrebno programsko opremo namestite, lahko začnete z nastavitvijo Fail2Ban. V ta namen morate ustvariti konfiguracijsko datoteko /etc/fail2ban/filter.d/zimbra.conf, v kateri bomo določili regularne izraze za zapise Zimbra OSE, ki bodo ustrezali napačnim poskusom prijave in povzročili aktivacijo mehanizmov Fail2Ban. Tukaj je primer vsebine zimbra.conf s sklopom regularnih izrazov, ki ustrezajo različnim napakam, ki jih Zimbra OSE izda ob neuspelem poskusu avtentikacije:
# 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 =Ko so regularni izrazi za Zimbra OSE sestavljeni, je čas, da se lotite urejanja konfiguracije samega Fail2ban. Nastavitve tega orodja se nahajajo v datoteki /etc/fail2ban/jail.conf. Za vsak primer, naredimo varnostno kopijo z ukazom cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Nato bomo to datoteko prilagodili nekemu približnemu videzu:
# 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 = 5Ta primer, čeprav je precej univerzalen, vseeno zahteva pojasnilo nekaterih parametrov, ki bi jih morda želeli spremeniti pri samostojni nastavitvi Fail2Ban:
- Ignoreip — s tem parametrom lahko določite določen IP ali subnet, naslov, ki ga Fail2Ban ne sme preverjati. Kot običajno so na seznamu izključenih notranje mreže podjetja in drugi zaupanja vredni naslovi.
- Bantime — Čas, za katerega bo kršitelj blokiran. Izraža se v sekundah. Vrednost -1 pomeni brezčasno blokado.
- Maxretry — Največje število poskusov, ki jih lahko en IP naslov opravi za dostop do strežnika.
- Sendmail — Nastavitev, ki omogoča samodejno pošiljanje e-poštnih obvestil o sprožitvi Fail2Ban.
- Findtime — Nastavitev, ki omogoča določitev časovnega intervala, po katerem lahko IP-naslov ponovno poskusi dostop do strežnika po doseženem maksimalnem številu neuspešnih poskusov (parameter maxretry)
Po shranjevanju datoteke z nastavitvami Fail2Ban, je potrebno le še ponovno zagnati to orodje z ukazom service fail2ban restart. Po ponovnem zagonu bodo glavni dnevniški zapisi Zimbre stalno spremljani glede na ustreznost regularnim izrazom. Tako bo skrbnik dejansko lahko izključil kakršno koli možnost vdorov hekerjev ne le v poštne predale Zimbra Collaboration Suite Open-Source Edition, temveč tudi zaščitil vse storitve, ki delujejo v okviru Zimbra OSE, ter bil obveščen o vseh poskusih nepooblaščenega dostopa.
Za vsa vprašanja, povezana z Zextras Suite, se lahko obrnete na predstavnico podjetja »Zextras« Katjino Triandaфiliidi na elektronski naslov katerina@zextras.com
Izvor: habr.com
