Zaštitite Zimbra OSE od grube sile i DoS napada

Zimbra Collaboration Suite Open-Source Edition ima nekoliko moćnih alata za osiguranje informacijske sigurnosti. Među njima Postscreen - rješenje za zaštitu poslužitelja e-pošte od napada s botneta, ClamAV - antivirus koji može skenirati dolazne datoteke i pisma na zarazu zlonamjernim programima, kao i SpamAssassin - jedan od najboljih filtera za neželjenu poštu danas. Međutim, ovi alati ne mogu zaštititi Zimbra OSE od napada grubom silom. Ne najelegantnije, ali još uvijek prilično učinkovite, brutalno forsiranje lozinki pomoću posebnog rječnika prepuno je ne samo vjerojatnosti uspješnog hakiranja sa svim posljedičnim posljedicama, već i stvaranjem značajnog opterećenja na poslužitelju, koji obrađuje sve neuspješni pokušaji hakiranja poslužitelja sa Zimbra OSE.

Zaštitite Zimbra OSE od grube sile i DoS napada

U principu, možete se zaštititi od grube sile koristeći standardne Zimbra OSE alate. Postavke sigurnosne politike zaporke omogućuju vam postavljanje broja neuspješnih pokušaja unosa zaporke, nakon kojih se potencijalno napadnuti račun blokira. Glavni problem ovakvog pristupa je što se javljaju situacije u kojima računi jednog ili više zaposlenika mogu biti blokirani brutalnim napadom na koji oni nemaju nikakve veze, a posljedični zastoji u radu zaposlenika mogu donijeti velike gubitke tvrtka. Zato je najbolje ne koristiti ovu opciju zaštite od grube sile.

Zaštitite Zimbra OSE od grube sile i DoS napada

Za zaštitu od grube sile puno je bolji poseban alat nazvan DoSFilter, koji je ugrađen u Zimbra OSE i može automatski prekinuti vezu sa Zimbra OSE putem HTTP-a. Drugim riječima, princip rada DoSFiltera sličan je principu rada PostScreena, samo što se koristi za drugačiji protokol. Izvorno dizajniran da ograniči broj radnji koje jedan korisnik može izvršiti, DoSFilter također može pružiti brute force zaštitu. Njegova ključna razlika u odnosu na alat ugrađen u Zimbru je što nakon određenog broja neuspješnih pokušaja ne blokira samog korisnika, već IP adresu s koje se višestruko pokušava ulogirati na određeni račun. Zahvaljujući tome, administrator sustava ne samo da se može zaštititi od grube sile, već i izbjeći blokiranje zaposlenika tvrtke jednostavnim dodavanjem interne mreže svoje tvrtke na popis pouzdanih IP adresa i podmreža.

Velika prednost DoSFiltera je što osim brojnih pokušaja prijave na određeni račun, pomoću ovog alata možete automatski blokirati one napadače koji su se domogli autentifikacijskih podataka zaposlenika, a zatim se uspješno prijavili na njegov račun i počeli slati stotine zahtjeva na poslužitelj.

DoSFilter možete konfigurirati pomoću sljedećih naredbi konzole:

  • zimbraHttpDosFilterMaxRequestsPerSec — Pomoću ove naredbe možete postaviti maksimalan broj dopuštenih veza za jednog korisnika. Standardno je ova vrijednost 30 veza.
  • zimbraHttpDosFilterDelayMillis - Pomoću ove naredbe možete postaviti odgodu u milisekundama za veze koje će premašiti ograničenje određeno prethodnom naredbom. Osim cjelobrojnih vrijednosti, administrator može odrediti 0, tako da uopće nema kašnjenja, i -1, tako da se sve veze koje prekorače navedeno ograničenje jednostavno prekidaju. Zadana vrijednost je -1.
  • zimbraHttpThrottleSafeIPs — Pomoću ove naredbe administrator može odrediti pouzdane IP adrese i podmreže koje neće podlijegati gore navedenim ograničenjima. Imajte na umu da se sintaksa ove naredbe može razlikovati ovisno o željenom rezultatu. Tako npr. unosom naredbe zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, potpuno ćete prebrisati cijeli popis i na njemu ostaviti samo jednu IP adresu. Ako unesete naredbu zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, IP adresa koju ste unijeli bit će dodana na bijeli popis. Slično, koristeći znak za oduzimanje, možete ukloniti bilo koji IP s popisa dopuštenih.

Imajte na umu da DoSFilter može stvoriti niz problema kada koristite proširenja Zextras Suite Pro. Kako bi ih izbjegli, preporučamo povećati broj istodobnih veza s 30 na 100 pomoću naredbe zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Osim toga, preporučujemo dodavanje interne mreže poduzeća na popis dopuštenih. To se može učiniti pomoću naredbe zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Nakon što napravite bilo kakve promjene u DoSFilteru, svakako ponovno pokrenite poslužitelj e-pošte pomoću naredbe ponovno pokretanje zmmailboxdctl.

Glavni nedostatak DoSFiltera je taj što radi na razini aplikacije i stoga može samo ograničiti mogućnost napadača da izvrše razne radnje na poslužitelju, bez ograničenja mogućnosti povezivanja na sjever. Zbog toga će zahtjevi poslani poslužitelju za autentifikaciju ili slanje pisama, iako očito neće uspjeti, ipak predstavljati dobri stari DoS napad, koji se ne može zaustaviti na tako visokoj razini.

Kako biste u potpunosti zaštitili svoj korporativni poslužitelj sa Zimbra OSE-om, možete koristiti rješenje kao što je Fail2ban, koji je okvir koji može stalno pratiti zapise informacijskog sustava radi ponovljenih radnji i blokirati uljeza promjenom postavki vatrozida. Blokiranje na tako niskoj razini omogućuje vam da onemogućite napadače odmah u fazi IP veze s poslužiteljem. Dakle, Fail2Ban može savršeno nadopuniti zaštitu izgrađenu korištenjem DoSFilter-a. Otkrijmo kako možete povezati Fail2Ban sa Zimbra OSE i time povećati sigurnost IT infrastrukture vašeg poduzeća.

Kao i svaka druga aplikacija poslovne klase, Zimbra Collaboration Suite Open-Source Edition vodi detaljne zapisnike svog rada. Većina ih je pohranjena u mapi /opt/zimbra/log/ u obliku datoteka. Ovdje su samo neki od njih:

  • mailbox.log — Dnevnici usluge Jetty mail
  • audit.log - dnevnici provjere autentičnosti
  • clamd.log — dnevnici rada antivirusa
  • freshclam.log - dnevnici ažuriranja antivirusnog programa
  • convertd.log — dnevnici pretvarača privitaka
  • zimbrastats.csv - dnevnici rada poslužitelja

U datoteci se također mogu pronaći zapisi Zimbre /var/log/zimbra.log, gdje se čuvaju dnevnici Postfixa i same Zimbre.

Kako bismo zaštitili naš sustav od grube sile, nadzirat ćemo poštanski sandučić.log, revizija.log и zimbra.log.

Kako bi sve radilo potrebno je da na vašem poslužitelju sa Zimbra OSE-om imate instaliran Fail2Ban i iptables. Ako koristite Ubuntu, to možete učiniti pomoću naredbi dpkg -s fail2ban, ako koristite CentOS, to možete provjeriti pomoću naredbi yum popis instaliran fail2ban. Ako nemate instaliran Fail2Ban, instaliranje neće predstavljati problem, budući da je ovaj paket dostupan u gotovo svim standardnim spremištima.

Nakon što je sav potreban softver instaliran, možete početi postavljati Fail2Ban. Da biste to učinili, morate izraditi konfiguracijsku datoteku /etc/fail2ban/filter.d/zimbra.conf, u kojem ćemo pisati regularne izraze za zapise Zimbra OSE koji će odgovarati netočnim pokušajima prijave i pokretati mehanizme Fail2Ban. Ovdje je primjer sadržaja zimbra.conf sa skupom regularnih izraza koji odgovaraju različitim pogreškama koje Zimbra OSE izbacuje kada pokušaj autentifikacije ne uspije:

# 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 kompilirani, vrijeme je da počnete uređivati ​​konfiguraciju samog Fail2bana. Postavke ovog uslužnog programa nalaze se u datoteci /etc/fail2ban/jail.conf. Za svaki slučaj, napravimo sigurnosnu kopiju pomoću naredbe cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Nakon toga ćemo ovu datoteku svesti na otprilike sljedeći oblik:

# 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, [email protected], [email protected]]
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, [email protected]]
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, [email protected] ]
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, [email protected]]
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, [email protected]]
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, [email protected]]
logpath = /var/log/zimbra.log
bantime = -1
maxretry = 5

Iako je ovaj primjer prilično generički, ipak vrijedi objasniti neke od parametara koje biste mogli promijeniti kada sami postavljate Fail2Ban:

  • Ignoreip — pomoću ovog parametra možete odrediti određenu IP adresu ili podmrežu s koje Fail2Ban ne bi trebao provjeravati adrese. U pravilu se interna mreža poduzeća i druge pouzdane adrese dodaju na popis zanemarenih.
  • Bantime — Vrijeme na koje će prekršitelju biti izrečena zabrana. Mjereno u sekundama. Vrijednost -1 znači trajnu zabranu.
  • Maxretry — Maksimalni broj puta koliko jedna IP adresa može pokušati pristupiti poslužitelju.
  • Poslati mail — Postavka koja vam omogućuje automatsko slanje obavijesti e-poštom kada se aktivira Fail2Ban.
  • Vrijeme pronalaska — Postavka koja vam omogućuje postavljanje vremenskog intervala nakon kojeg IP adresa može ponovno pokušati pristupiti poslužitelju nakon što je iscrpljen najveći broj neuspješnih pokušaja (parametar maxretry)

Nakon spremanja datoteke s postavkama Fail2Ban, sve što preostaje je ponovno pokrenuti ovaj uslužni program pomoću naredbe servis fail2ban ponovno pokretanje. Nakon ponovnog pokretanja, glavni zapisnici Zimbre počet će se stalno nadzirati radi usklađivanja s regularnim izrazima. Zahvaljujući tome, administrator će moći gotovo eliminirati bilo kakvu mogućnost prodora napadača ne samo u poštanske sandučiće Zimbra Collaboration Suite Open-Source Edition, već i zaštititi sve usluge koje se izvode unutar Zimbra OSE-a, a također će biti svjestan svih pokušaja neovlaštenog pristupa .

Za sva pitanja vezana uz Zextras Suite možete kontaktirati predstavnicu Zextrasa Ekaterinu Triandafilidi putem e-maila [e-pošta zaštićena]

Izvor: www.habr.com

Dodajte komentar