Zaštita Zimbra OSE od brutalne sile i DoS napada

Zimbra Collaboration Suite Open-Source Edition ima nekoliko moćnih alata za osiguranje sigurnosti informacija. Među njima Postscreen - rješenje za zaštitu mail servera od napada sa botnet-a, ClamAV - antivirus koji može skenirati dolazne datoteke i pisma za infekciju zlonamjernim programima, kao i SpamAssassin - jedan od najboljih spam filtera danas. Međutim, ovi alati nisu u mogućnosti da zaštite Zimbra OSE od napada grube sile. Ne najelegantnije, ali ipak prilično efikasne, brutalne lozinke pomoću posebnog rječnika pune su ne samo vjerojatnosti uspješnog hakovanja sa svim posljedicama koje slijede, već i stvaranjem značajnog opterećenja na serveru, koji obrađuje sve neuspješni pokušaji hakovanja servera sa Zimbra OSE.

Zaštita Zimbra OSE od brutalne sile i DoS napada

U principu, možete se zaštititi od grube sile koristeći standardne Zimbra OSE alate. Postavke sigurnosne politike lozinke vam omogućavaju da podesite broj neuspješnih pokušaja unosa lozinke, nakon čega se potencijalno napadnuti nalog blokira. Glavni problem kod ovakvog pristupa je što se javljaju situacije u kojima računi jednog ili više zaposlenih mogu biti blokirani zbog napada grubom silom do kojeg nemaju nikakve veze, a zastoji u radu zaposlenika mogu donijeti velike gubitke. kompanija. Zato je najbolje ne koristiti ovu opciju zaštite od grube sile.

Zaštita Zimbra OSE od brutalne sile i DoS napada

Za zaštitu od grube sile mnogo je bolje prilagođen poseban alat pod nazivom 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 DoSFilter-a je sličan principu rada PostScreen-a, samo što se koristi za drugačiji protokol. Prvobitno dizajniran da ograniči broj radnji koje jedan korisnik može izvršiti, DoSFilter također može pružiti zaštitu od grube sile. Njegova ključna razlika od alata ugrađenog u Zimbru je u tome što nakon određenog broja neuspješnih pokušaja ne blokira samog korisnika, već IP adresu s koje se više puta pokušava prijaviti na određeni nalog. Zahvaljujući tome, administrator sistema može ne samo da zaštiti od grube sile, već i da izbegne blokiranje zaposlenih u kompaniji jednostavnim dodavanjem interne mreže svoje kompanije na listu pouzdanih IP adresa i podmreža.

Velika prednost DoSFiltera je u tome što pored brojnih pokušaja da se prijavite na određeni nalog, pomoću ovog alata možete automatski blokirati one napadače koji su zauzeli autentifikacione podatke nekog zaposlenog, a zatim se uspešno prijavili na njegov nalog i počeli da šalju stotine zahteva. na server.

DoSFilter možete konfigurirati koristeći sljedeće naredbe konzole:

  • zimbraHttpDosFilterMaxRequestsPerSec — Koristeći ovu naredbu, možete postaviti maksimalan broj dozvoljenih veza za jednog korisnika. Podrazumevano je ova vrijednost 30 veza.
  • zimbraHttpDosFilterDelayMillis - Koristeći ovu naredbu, možete postaviti kašnjenje 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 prelaze navedeno ograničenje jednostavno prekinu. Zadana vrijednost je -1.
  • zimbraHttpThrottleSafeIPs — Koristeći ovu naredbu, administrator može odrediti pouzdane IP adrese i podmreže koje neće biti predmet gore navedenih ograničenja. Imajte na umu da sintaksa ove naredbe može varirati ovisno o željenom rezultatu. Tako, na primjer, unosom naredbe zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, potpuno ćete prebrisati cijelu listu i ostaviti samo jednu IP adresu u njoj. Ako unesete naredbu zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, IP adresa koju ste unijeli bit će dodana na bijelu listu. Slično, koristeći znak za oduzimanje, možete ukloniti bilo koju IP adresu sa liste dozvoljenih.

Imajte na umu da DoSFilter može stvoriti brojne probleme kada koristite ekstenzije Zextras Suite Pro. Kako biste ih izbjegli, preporučujemo povećanje broja istovremenih veza sa 30 na 100 pomoću naredbe zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Pored toga, preporučujemo da internu mrežu preduzeća dodate na listu dozvoljenih. Ovo se može uraditi pomoću naredbe zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Nakon što izvršite bilo kakve promjene u DoSFilteru, obavezno ponovo pokrenite svoj mail server pomoću naredbe zmmailboxdctl restart.

Glavni nedostatak DoSFilter-a je to što radi na nivou aplikacije i stoga može samo ograničiti mogućnost napadača da izvode različite radnje na serveru, bez ograničavanja mogućnosti povezivanja na sjever. Zbog toga će zahtjevi koji se šalju serveru za autentifikaciju ili slanje pisama, iako očito neće uspjeti, i dalje predstavljati dobar stari DoS napad, koji se ne može zaustaviti na tako visokom nivou.

Kako biste u potpunosti osigurali svoj korporativni server sa Zimbra OSE, možete koristiti rješenje kao što je Fail2ban, koji je okvir koji može stalno pratiti evidencije informacionog sistema za ponovljene radnje i blokirati uljeza promjenom postavki zaštitnog zida. Blokiranje na tako niskom nivou omogućava vam da onemogućite napadače odmah u fazi IP konekcije sa serverom. Dakle, Fail2Ban može savršeno nadopuniti zaštitu izgrađenu pomoću DoSFilter-a. Hajde da saznamo kako možete povezati Fail2Ban sa Zimbra OSE i na taj način povećati sigurnost IT infrastrukture vašeg preduzeća.

Kao i svaka druga aplikacija poslovne klase, Zimbra Collaboration Suite Open-Source Edition čuva detaljne dnevnike svog rada. Većina ih je pohranjena u folderu /opt/zimbra/log/ u obliku fajlova. Evo samo neke od njih:

  • mailbox.log — Dnevnici usluge Jetty pošte
  • audit.log - dnevnici provjere autentičnosti
  • clamd.log — evidencije rada antivirusa
  • freshclam.log - evidencija ažuriranja antivirusa
  • convertd.log — evidencije pretvarača priloga
  • zimbrastats.csv - zapisnici performansi servera

Zimbra zapisnici se također mogu naći u datoteci /var/log/zimbra.log, gdje se čuvaju logovi Postfixa i same Zimbre.

Kako bismo zaštitili naš sistem od grube sile, pratit ćemo mailbox.log, audit.log и zimbra.log.

Da bi sve funkcionisalo, potrebno je da su Fail2Ban i iptables instalirani na vašem serveru sa Zimbra OSE. Ako koristite Ubuntu, to možete učiniti pomoću naredbi dpkg -s fail2ban, ako koristite CentOS, ovo možete provjeriti pomoću naredbi yum lista instalirana fail2ban. Ako nemate instaliran Fail2Ban, onda njegova instalacija neće biti problem, jer je ovaj paket dostupan u skoro svim standardnim spremištima.

Nakon što je sav potreban softver instaliran, možete započeti postavljanje Fail2Ban. Da biste to učinili, morate kreirati konfiguracijski fajl /etc/fail2ban/filter.d/zimbra.conf, u kojem ćemo pisati regularne izraze za Zimbra OSE dnevnike koji će odgovarati netačnim pokušajima prijavljivanja i pokrenuti Fail2Ban mehanizme. Evo primjera sadržaja zimbra.conf sa skupom regularnih izraza koji odgovaraju različitim greš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 se kompajliraju regularni izrazi za Zimbra OSE, vrijeme je da počnemo uređivati ​​konfiguraciju samog Fail2ban-a. Postavke ovog uslužnog programa nalaze se u datoteci /etc/fail2ban/jail.conf. Za svaki slučaj, napravimo njegovu rezervnu kopiju koristeći naredbu cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Nakon toga, ovaj fajl ćemo svesti na približno 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 je vrijedno objasniti neke od parametara koje biste možda željeli promijeniti kada sami postavljate Fail2Ban:

  • Ignoreip — pomoću ovog parametra možete odrediti određeni IP ili podmrežu iz koje Fail2Ban ne bi trebao provjeravati adrese. Po pravilu se interna mreža preduzeća i druge pouzdane adrese dodaju na listu zanemarenih.
  • Bantime — Vrijeme na koje će počinitelj biti zabranjen. Mjereno u sekundama. Vrijednost -1 znači trajnu zabranu.
  • Maxretry — Maksimalan broj puta da jedna IP adresa može pokušati da pristupi serveru.
  • sendmail — Postavka koja vam omogućava da automatski šaljete obavještenja putem e-pošte kada se Fail2Ban aktivira.
  • Findtime — Postavka koja vam omogućava da postavite vremenski interval nakon kojeg IP adresa može ponovo pokušati pristupiti serveru nakon što je iscrpljen maksimalni broj neuspješnih pokušaja (parametar maxretry)

Nakon što sačuvate datoteku sa Fail2Ban postavkama, sve što ostaje je da ponovo pokrenete ovaj uslužni program pomoću naredbe restart servisa fail2ban. Nakon ponovnog pokretanja, glavni Zimbra dnevniki će početi da se stalno nadziru radi usklađenosti sa regularnim izrazima. Zahvaljujući tome, administrator će moći praktično da eliminiše svaku mogućnost napadača da prodre ne samo u poštanske sandučiće Zimbra Collaboration Suite Open-Source Edition, već i da zaštiti sve servise koji rade u okviru Zimbra OSE, kao i da bude svjestan bilo kakvih pokušaja neovlaštenog pristupa. .

Za sva pitanja vezana za Zextras Suite, možete kontaktirati predstavnicu Zextras Ekaterinu Triandafilidi putem e-maila [email zaštićen]

izvor: www.habr.com

Dodajte komentar