Zimbra Collaboration Suite Open-Source Edition nudi nekoliko moćnih alata za osiguranje informacijske sigurnosti. Među njima su — rješenje za zaštitu mail servera od napada botnetova, ClamAV — antivirus koji može provjeravati dolazne datoteke i poruke zbog infekcije zlonamjernim softverom, kao i — jedan od najboljih filtara za spam danas. Međutim, ovi alati nisu u stanju zaštititi Zimbra OSE od napada poput brute force. Iako nije najobjektivnija opcija, ali i dalje prilično učinkovita, metoda isprobavanja lozinki putem posebnog rječnika može dovesti ne samo do vjerojatnosti uspješnog hakiranja sa svim posljedicama, nego i do značajnog opterećenja servera koji obrađuje sve neuspješne pokušaje hakiranja servera s Zimbra OSE.

Principijelno, zaštita od brute force napada može se postići standardnim sredstvima Zimbra OSE. Postavke sigurnosne politike lozinki omogućuju postavljanje broja neuspješnih pokušaja unosa lozinke, nakon čega se potencijalno napadnuti račun blokira. Glavni problem ovog pristupa je u tome što se mogu pojaviti situacije u kojima računi jednog ili više zaposlenika mogu biti blokirani zbog brute force napada s kojima nemaju nikakve veze, a nastali zastoj u radu zaposlenika može donijeti kompaniji velike gubitke. Stoga je najbolje ne primjenjivati ovu opciju zaštite od brute force napada.

Za zaštitu od brute force napada mnogo je prikladniji posebno razvijen alat pod imenom DoSFilter, koji je ugrađen u Zimbra OSE i može automatski prekinuti vezu s Zimbra OSE putem HTTP-a. Drugim riječima, princip rada DoSFiltera sličan je principu rada PostScreen-a, s tim da se koristi za drugi protokol. Prvotno namijenjen ograničavanju broja radnji koje jedan korisnik može poduzeti, DoSFilter također može osigurati zaštitu od brute force napada. Ključna razlika u odnosu na ugrađeni alat u Zimbri je ta što nakon određenog broja neuspješnih pokušaja blokira ne samog korisnika, već IP adresu s koje se vrše višestruki pokušaji prijave na određeni račun. Zahvaljujući tome, sistemski administrator može se zaštititi od brute force napada i izbjeći blokiranje zaposlenika tvrtke jednostavno dodavanjem interne mreže svoje tvrtke na popis pouzdanih IP adresa i podmreža.
Velika prednost DoSFiltera je u tome što, osim brojnih pokušaja prijave na određeni račun, pomoću ovog alata možete automatski blokirati one napadače koji su prisvojili autentifikacijske podatke zaposlenika, a zatim uspješno ušli u njegov račun i počeli slati stotine zahtjeva serveru.
DoSFilter se može konfigurirati pomoću sljedećih konzolnih komandi:
- zimbraHttpDosFilterMaxRequestsPerSec — Pomoću ove komande možete postaviti maksimalan broj veza koji jedan korisnik može imati. Po defaultu, ova vrijednost iznosi 30 veza.
- zimbraHttpDosFilterDelayMillis — Pomoću ove komande možete odrediti odgađanje u milisekundama za veze koje će premašiti limit postavljen prethodnom komandom. Osim cijelih brojeva, administrator može navesti 0 kako ne bi bilo odgađanja, kao i -1 kako bi se jednostavno prekinule sve veze koje nadmašuju postavljeni limit. Po defaultu, ova vrijednost iznosi -1.
- zimbraHttpThrottleSafeIPs — Pomoću ove komande administrator može navesti pouzdane IP adrese i podmreže na koje neće vrijediti gore navedena ograničenja. Napominjemo da se sintaksa ove komande može mijenjati ovisno o željenom rezultatu. Tako, na primjer, unosom komande zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, potpuno ćete prepisati cijeli popis i ostaviti samo jednu IP adresu. Ako unesete naredbu zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, tada će unesena IP adresa biti dodana na popis. Na sličan način, pomoću znaka oduzimanja, možete ukloniti neku IP adresu s popisa dozvoljenih.
Napominjemo da DoSFilter može stvoriti niz problema prilikom korištenja ekstenzija Zextras Suite Pro. Da biste ih izbjegli, preporučujemo da povećate broj istodobnih veza s 30 na 100 pomoću naredbe zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Također, preporučujemo da dodate unutarnju mrežu poduzeća na popis dozvoljenih. To možete učiniti pomoću naredbe zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Nakon svake promjene u DoSFilteru, obavezno ponovo pokrenite poštanski poslužitelj pomoću naredbe zmmailboxdctl restart.
Glavna mana DoSFiltera je ta što radi na razini aplikacije i stoga može samo ograničiti mogućnost napadača da izvode razne radnje na poslužitelju, ne ograničavajući pritom mogućnost povezivanja sa serverom. Zbog toga, zahtjevi za autentifikaciju ili slanje poruka koji se šalju na poslužitelj, iako će biti unaprijed neuspješni, i dalje će predstavljati klasični DoS napad, kojeg nije moguće prekinuti na tako visokoj razini.
Da biste potpuno osigurali svoj poslovni poslužitelj s Zimbra OSE, možete iskoristiti rješenje poput Fail2ban, koje je okvir sposoban kontinuirano nadzirati zapise informacijskih sustava zbog ponavljajućih radnji i blokirati prekršitelja promjenom postavki vatrozida. Blokiranje na tako niskoj razini omogućuje isključivanje napadača već u fazi IP veze s poslužiteljem. Na taj način, Fail2Ban može odlično dopuniti zaštitu koju pruža DoSFilter. Hajdemo saznati kako možemo povezati Fail2Ban s Zimbra OSE i time poboljšati sigurnost IT infrastrukture vašeg poduzeća.
Kao i svaka druga aplikacija razredne klase, Zimbra Collaboration Suite Open-Source Edition vodi detaljne zapise o svom radu. Većina njih se pohranjuje u mapu /opt/zimbra/log/ u obliku datoteka. Evo samo nekoliko od njih:
- mailbox.log — zapisi poštanske usluge Jetty
- audit.log — zapisi o autentifikaciji
- clamd.log — zapisi rada antivirusnog softvera
- freshclam.log — zapisi ažuriranja antivirusnog softvera
- convertd.log — zapisi konvertora priloga
- zimbrastats.csv — zapisi o performansama poslužitelja
Također, Zimbra zapisi se mogu pronaći u datoteci /var/log/zimbra.log, gdje se vode zapisi rada Postfixa i same Zimbre.
Kako bismo zaštitili naš sustav od brute force napada, pratimo mailbox.log, audit.log i zimbra.log.
Da bi sve radilo, potrebno je da na vašem poslužitelju s Zimbra OSE budu instalirani Fail2Ban i iptables. Ako koristite Ubuntu, možete to učiniti pomoću sljedećih naredbi dpkg -s fail2ban, dok u slučaju da koristite CentOS, to možete provjeriti pomoću yum list installed fail2ban. U slučaju da Fail2Ban nije instaliran, njegova instalacija neće biti problem, jer ovaj paket postoji u praktično svim standardnim repozitorijima.
Nakon što je sav potrebni softver instaliran, možete početi s postavljanjem Fail2Ban. Da biste to učinili, potrebno je stvoriti konfiguracijsku datoteku /etc/fail2ban/filter.d/zimbra.conf, u kojoj ćemo definirati regularne izraze za zapise Zimbra OSE koji odgovaraju neuspješnim pokušajima prijave i pokretat će mehanizme Fail2Ban. Evo primjera sadržaja zimbra.conf s nizom regularnih izraza koji odgovaraju raznim greškama koje Zimbra OSE isporučuje prilikom neuspješnog pokušaja autentikacije:
# 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 =Nakon što su regularni izrazi za Zimbra OSE sastavljeni, pravo je vrijeme da se počne s uređivanjem konfiguracije same aplikacije Fail2ban. Postavke ovog alata nalaze se u datoteci /etc/fail2ban/jail.conf. U svakom slučaju, napravit ćemo njegovu rezervnu kopiju pomoću naredbe cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Nakon toga, prilagodit ćemo ovu datoteku približno sljedećem obliku:
# 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 = 5Ovaj primjer, iako prilično univerzalan, ipak zahtijeva razjašnjenje nekih parametara koje možda želite promijeniti prilikom vlastitog postavljanja Fail2Ban:
- Ignoreip — pomoću ovog parametra možete navesti određenu IP adresu ili podmrežu čije adrese Fail2Ban ne bi trebao provjeravati. Obično se u popis ignoriranih dodaju interne mreže poduzeća i druge pouzdane adrese.
- Bantime — Vrijeme tijekom kojeg će prekršilac biti blokiran. Mjeri se u sekundama. Vrijednost -1 označava neodređenu blokadu.
- Maxretry — Maksimalni broj puta koliko jedan IP može pokušati pristupiti poslužitelju.
- Sendmail — Postavka koja automatski šalje email obavijesti o aktivaciji Fail2Ban.
- Findtime — Postavka koja određuje vremenski interval nakon kojeg se IP adresa može ponovno pokušati povezati sa serverom nakon što su iscrpljeni maksimalni broj neuspjelih pokušaja (parametar maxretry)
Nakon spremanja datoteke s postavkama Fail2Ban, potrebno je samo ponovno pokrenuti ovu alatku pomoću komande service fail2ban restart. Nakon ponovnog pokretanja, glavni logovi Zimbra će se neprekidno provjeravati na usklađenost s regularnim izrazima. Zbog toga, administrator će moći praktički isključiti bilo kakvu mogućnost provale napadača ne samo u poštanske sandučiće Zimbra Collaboration Suite Open-Source Edition, već i zaštititi sve usluge koje rade unutar Zimbra OSE, kao i biti obaviješten o svim pokušajima neovlaštenog pristupa.
Za sva pitanja vezana uz Zextras Suite možete se obratiti predstavnici kompanije „Zextras“ Ekaterini Triandafiliidi putem e-pošte katerina@zextras.com
Izvor: habr.com
