Zaščitite Zimbra OSE pred grobo silo in napadi DoS

Zimbra Collaboration Suite Open-Source Edition ima več močnih orodij za zagotavljanje varnosti informacij. Med njimi Postscreen - rešitev za zaščito poštnega strežnika pred napadi botnetov, ClamAV - protivirusni program, ki lahko skenira dohodne datoteke in pisma za okužbo z zlonamernimi programi, kot tudi SpamAssassin - eden najboljših filtrov za neželeno pošto danes. Vendar ta orodja ne morejo zaščititi Zimbra OSE pred napadi s surovo silo. Ne najbolj elegantno, a še vedno precej učinkovito, brutalno vsiljevanje gesel z uporabo posebnega slovarja je preobremenjeno ne le z verjetnostjo uspešnega vdora z vsemi posledičnimi posledicami, temveč tudi z ustvarjanjem znatne obremenitve strežnika, ki obdeluje vse neuspešni poskusi vdora v strežnik z OSE Zimbra.

Zaščitite Zimbra OSE pred grobo silo in napadi DoS

Načeloma se lahko zaščitite pred grobo silo s standardnimi orodji Zimbra OSE. Nastavitve varnostne politike gesla vam omogočajo, da nastavite število neuspešnih poskusov vnosa gesla, po katerih se potencialno napaden račun blokira. Glavna težava pri tem pristopu je, da pride do situacij, v katerih so lahko računi enega ali več zaposlenih blokirani zaradi napada s surovo silo, s katerim nimajo nič opraviti, posledični izpadi pri delu zaposlenih pa lahko povzročijo velike izgube podjetje. Zato je najbolje, da te možnosti zaščite pred grobo silo ne uporabite.

Zaščitite Zimbra OSE pred grobo silo in napadi DoS

Za zaščito pred grobo silo je veliko bolj primerno posebno orodje, imenovano DoSFilter, ki je vgrajeno v Zimbra OSE in lahko samodejno prekine povezavo z Zimbra OSE prek HTTP. Z drugimi besedami, princip delovanja DoSFilterja je podoben principu delovanja PostScreen, le da se uporablja za drug protokol. DoSFilter, ki je bil prvotno zasnovan za omejevanje števila dejanj, ki jih lahko izvede en uporabnik, lahko zagotovi tudi zaščito pred grobo silo. Njegova ključna razlika od orodja, vgrajenega v Zimbro, je v tem, da po določenem številu neuspešnih poskusov ne blokira samega uporabnika, temveč naslov IP, s katerega se večkrat poskuša prijaviti v določen račun. Zahvaljujoč temu lahko sistemski skrbnik ne samo zaščiti pred grobo silo, ampak se tudi izogne ​​blokiranju zaposlenih v podjetju tako, da preprosto doda notranje omrežje svojega podjetja na seznam zaupanja vrednih naslovov IP in podomrežij.

Velika prednost DoSFilterja je, da poleg številnih poskusov prijave v določen račun, lahko s tem orodjem samodejno blokirate tiste napadalce, ki so se polastili avtentikacijskih podatkov zaposlenega, nato pa se uspešno prijavili v njegov račun in začeli pošiljati na stotine zahtevkov. na strežnik.

DoSFilter lahko konfigurirate z naslednjimi ukazi konzole:

  • zimbraHttpDosFilterMaxRequestsPerSec — S tem ukazom lahko nastavite največje dovoljeno število povezav za enega uporabnika. Privzeto je ta vrednost 30 povezav.
  • zimbraHttpDosFilterDelayMillis - S tem ukazom lahko nastavite zakasnitev v milisekundah za povezave, ki bodo presegle omejitev, določeno s prejšnjim ukazom. Poleg celoštevilskih vrednosti lahko skrbnik določi 0, da sploh ne pride do zamude, in -1, da se vse povezave, ki presežejo navedeno mejo, preprosto prekinejo. Privzeta vrednost je -1.
  • zimbraHttpThrottleSafeIPs — S tem ukazom lahko skrbnik določi zaupanja vredne naslove IP in podomrežja, za katere ne bodo veljale zgoraj navedene omejitve. Upoštevajte, da se sintaksa tega ukaza lahko razlikuje glede na želeni rezultat. Tako na primer z vnosom ukaza zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, boste popolnoma prepisali celoten seznam in na njem pustili samo en naslov IP. Če vnesete ukaz zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, bo naslov IP, ki ste ga vnesli, dodan na beli seznam. Podobno lahko z uporabo znaka za odštevanje odstranite kateri koli IP s seznama dovoljenih.

Upoštevajte, da lahko DoSFilter povzroči številne težave pri uporabi razširitev Zextras Suite Pro. Da bi se jim izognili, priporočamo, da povečate število hkratnih povezav s 30 na 100 z ukazom zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Poleg tega priporočamo, da interno omrežje podjetja dodate na seznam dovoljenih. To lahko storite z ukazom zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Ko naredite kakršne koli spremembe v DoSFilterju, ne pozabite znova zagnati poštnega strežnika z ukazom zmmailboxdctl znova zaženite.

Glavna pomanjkljivost DoSFilterja je, da deluje na ravni aplikacije in zato lahko le omeji zmožnost napadalcev, da izvajajo različna dejanja na strežniku, ne da bi omejil zmožnost povezovanja s severom. Zaradi tega bodo zahteve, poslane na strežnik za avtentikacijo ali pošiljanje pisem, čeprav bodo očitno neuspešne, še vedno predstavljale dobri stari DoS napad, ki ga ni mogoče ustaviti na tako visoki ravni.

Če želite popolnoma zaščititi svoj korporativni strežnik z Zimbra OSE, lahko uporabite rešitev, kot je Fail2ban, ki je ogrodje, ki lahko nenehno spremlja dnevnike informacijskega sistema glede ponavljajočih se dejanj in blokira vsiljivca s spreminjanjem nastavitev požarnega zidu. Blokiranje na tako nizki ravni vam omogoča, da onemogočite napadalce takoj v fazi povezave IP s strežnikom. Tako lahko Fail2Ban odlično dopolni zaščito, zgrajeno z DoSFilterjem. Ugotovimo, kako lahko Fail2Ban povežete z Zimbra OSE in s tem povečate varnost IT infrastrukture vašega podjetja.

Kot katera koli druga aplikacija v poslovnem razredu tudi Zimbra Collaboration Suite Open-Source Edition vodi podrobne dnevnike svojega dela. Večina jih je shranjenih v mapi /opt/zimbra/log/ v obliki datotek. Tukaj je le nekaj izmed njih:

  • mailbox.log — Dnevniki poštne storitve Jetty
  • audit.log - dnevniki preverjanja pristnosti
  • clamd.log — dnevniki delovanja protivirusnega programa
  • freshclam.log - dnevniki posodobitev protivirusnega programa
  • convertd.log — dnevniki pretvornika prilog
  • zimbrastats.csv - dnevniki delovanja strežnika

V datoteki najdete tudi dnevnike Zimbra /var/log/zimbra.log, kjer se hranijo dnevniki Postfixa in same Zimbre.

Da bi zaščitili naš sistem pred grobo silo, bomo spremljali mailbox.log, audit.log и zimbra.log.

Da vse deluje, morata biti Fail2Ban in iptables nameščena na vašem strežniku z Zimbra OSE. Če uporabljate Ubuntu, lahko to storite z ukazi dpkg -s fail2ban, če uporabljate CentOS, lahko to preverite z ukazi yum seznam nameščen fail2ban. Če Fail2Ban nimate nameščenega, potem namestitev ne bo predstavljala težav, saj je ta paket na voljo v skoraj vseh standardnih repozitorijih.

Ko je vsa potrebna programska oprema nameščena, lahko začnete nastavljati Fail2Ban. Če želite to narediti, morate ustvariti konfiguracijsko datoteko /etc/fail2ban/filter.d/zimbra.conf, v katerega bomo zapisali regularne izraze za dnevnike Zimbra OSE, ki se bodo ujemali z nepravilnimi poskusi prijave in sprožili mehanizme Fail2Ban. Tukaj je primer vsebine zimbra.conf z naborom regularnih izrazov, ki ustrezajo različnim napakam, ki jih sproži Zimbra OSE, ko poskus preverjanja pristnosti ne uspe:

# 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 prevedeni, je čas, da začnete urejati konfiguracijo Fail2ban. Nastavitve tega pripomočka se nahajajo v datoteki /etc/fail2ban/jail.conf. Za vsak slučaj naredimo varnostno kopijo z ukazom cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Po tem bomo to datoteko zmanjšali na približno naslednjo obliko:

# 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

Čeprav je ta primer precej splošen, je vseeno vredno pojasniti nekatere parametre, ki jih boste morda želeli spremeniti, ko sami nastavljate Fail2Ban:

  • Ignoreip — s tem parametrom lahko določite določen ip ali podomrežje, iz katerega Fail2Ban ne bi smel preverjati naslovov. Na seznam prezrtih se praviloma dodajo notranje omrežje podjetja in drugi zaupanja vredni naslovi.
  • Bantime — Čas, za katerega bo storilcu izrečena prepoved. Merjeno v sekundah. Vrednost -1 pomeni trajno prepoved.
  • Maxretry — Največje število, kolikokrat lahko en naslov IP poskusi dostopati do strežnika.
  • Pošlji pošto — Nastavitev, ki vam omogoča samodejno pošiljanje e-poštnih obvestil, ko se sproži Fail2Ban.
  • Findtime — Nastavitev, ki vam omogoča nastavitev časovnega intervala, po katerem lahko naslov IP znova poskusi dostopati do strežnika, potem ko je izčrpano največje število neuspešnih poskusov (parameter maxretry)

Ko shranite datoteko z nastavitvami Fail2Ban, ostane le, da ponovno zaženete ta pripomoček z ukazom ponovni zagon storitve fail2ban. Po ponovnem zagonu se bodo glavni dnevniki Zimbra začeli nenehno spremljati glede skladnosti z regularnimi izrazi. Zahvaljujoč temu bo skrbnik lahko praktično izničil kakršno koli možnost, da bi napadalec prodrl ne le v poštne predale Zimbra Collaboration Suite Open-Source Edition, ampak tudi zaščitil vse storitve, ki se izvajajo znotraj Zimbra OSE, in se zavedal morebitnih poskusov pridobitve nepooblaščenega dostopa. .

Za vsa vprašanja v zvezi z Zextras Suite se lahko obrnete na predstavnico Zextras Ekaterino Triandafilidi po elektronski pošti. [e-pošta zaščitena]

Vir: www.habr.com

Dodaj komentar