Zimbra Collaboration Suite Open-Source Edition har flera kraftfulla verktyg för att sĂ€kerstĂ€lla informationssĂ€kerhet. Bland dem â en lösning för att skydda e-postservrar mot attacker frĂ„n botnĂ€t, ClamAV â ett antivirusprogram som kan kontrollera inkommande filer och e-post för skadlig programvara, samt â en av de bĂ€sta skrĂ€ppostfiltren idag. Men dessa verktyg kan inte skydda Zimbra OSE mot en typ av attack som kallas brute force. Ăven om det inte Ă€r den mest eleganta metoden Ă€r brute force-attacker fortfarande rĂ€tt effektiva. Att pröva lösenord med hjĂ€lp av en speciell ordlista medför inte bara risken för framgĂ„ngsrika intrĂ„ng med alla relaterade konsekvenser, utan ocksĂ„ en betydande belastning pĂ„ servern som hanterar alla misslyckade inloggningsförsök pĂ„ Zimbra OSE.

I princip kan man skydda sig mot brute force-attacker med de standardverktyg som erbjuds av Zimbra OSE. InstÀllningarna för sÀkerhetspolicyer för lösenord gör det möjligt att stÀlla in antalet misslyckade inloggningsförsök efter vilka det potentiellt attackerade kontot blockeras. Den största nackdelen med denna metod Àr att det kan uppstÄ situationer dÀr konton för en eller flera anstÀllda kan bli blockerade pÄ grund av en brute force-attack som de inte har nÄgot med att göra, vilket kan leda till driftstopp och stora förluster för företaget. DÀrför Àr det bÀttre att inte tillÀmpa denna typ av skydd mot brute force-attacker.

För att skydda mot brute force-attacker Àr det mycket bÀttre att anvÀnda ett sÀrskilt verktyg som kallas DoSFilter, vilket Àr inbyggt i Zimbra OSE och automatiskt kan bryta anslutningen till Zimbra OSE via HTTP. Med andra ord fungerar DoSFilter pÄ samma sÀtt som PostScreen, men anvÀnds för ett annat protokoll. Ursprungligen designat för att begrÀnsa antalet ÄtgÀrder som en anvÀndare kan utföra, kan DoSFilter Àven ge skydd mot brute force-attacker. Dess huvudsakliga skillnad frÄn det inbyggda verktyget i Zimbra Àr att efter ett visst antal misslyckade försök blockerar det inte sjÀlva anvÀndaren utan IP-adressen frÄn vilken flera inloggningsförsök görs. Tack vare detta kan systemadministratörer inte bara skydda sig mot brute force-attacker utan ocksÄ undvika att blockera företagsanstÀllda, genom att bara lÀgga till sin interna företagsnÀtverks IP-adresser och subnÀt i listan över betrodda.
En stor fördel med DoSFilter Àr att utöver att blockera mÄnga försök att logga in pÄ ett konto, kan detta verktyg ocksÄ automatiskt blockera de illvilliga aktörer som har fÄtt tag pÄ en anstÀllds autentiseringsuppgifter och sedan framgÄngsrikt loggat in pÄ deras konto för att börja skicka hundratals förfrÄgningar till servern.
Du kan konfigurera DoSFilter med hjÀlp av följande kommandon i konsolen:
- zimbraHttpDosFilterMaxRequestsPerSec â Med detta kommando kan du stĂ€lla in det maximala antal anslutningar som tillĂ„ts för en anvĂ€ndare. Som standard Ă€r detta vĂ€rde 30 anslutningar.
- zimbraHttpDosFilterDelayMillis â Genom detta kommando kan du stĂ€lla in en fördröjning i millisekunder för anslutningar som överskrider det angivna grĂ€nsvĂ€rdet frĂ„n föregĂ„ende kommando. Utöver heltalsvĂ€rden kan administratören ange 0, sĂ„ att det inte blir nĂ„gon fördröjning överhuvudtaget, eller -1, sĂ„ att alla anslutningar som överskrider det angivna begrĂ€nsningen helt enkelt avbryts. Som standard Ă€r detta vĂ€rde -1.
- zimbraHttpThrottleSafeIPs â Med detta kommando kan administratören ange betrodda IP-adresser och subnĂ€t som inte kommer att pĂ„verkas av de ovan nĂ€mnda begrĂ€nsningarna. Det bör noteras att syntaxen för detta kommando kan variera beroende pĂ„ önskat resultat. Till exempel, genom att skriva kommandot zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, du kommer helt att skriva över hela listan och lĂ€mna endast en IP-adress. Om du anger kommandot zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, kommer den angivna IP-adressen att lĂ€ggas till i vitlistan. PĂ„ samma sĂ€tt kan du anvĂ€nda minustecknet för att ta bort en IP frĂ„n den tillĂ„tna listan.
Observera att DoSFilter kan skapa en rad problem nÀr man anvÀnder Zextras Suite Pro-funktioner. För att undvika detta rekommenderar vi att öka antalet samtidiga anslutningar frÄn 30 till 100 med kommandot zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Vi rekommenderar ocksÄ att lÀgga till företagets interna nÀtverk i den tillÄtna listan. Detta kan göras med kommandot zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Efter att ha gjort Àndringar i DoSFilter, se till att starta om e-postservern med kommandot zmmailboxdctl restart.
Huvudnackdelen med DoSFilter Àr att det arbetar pÄ applikationsnivÄ och dÀrför bara kan begrÀnsa angriparnas förmÄga att utföra olika ÄtgÀrder pÄ servern, utan att begrÀnsa möjligheten att ansluta till servern. DÀrför, Àven om de skickade autentiserings- eller e-postförfrÄgningarna till servern kommer att misslyckas, kommer de fortfarande att utgöra en klassisk DoS-attack, som Àr svÄr att stoppa pÄ en sÄ hög nivÄ.
För att helt skydda din företagsserver med Zimbra OSE kan du anvÀnda en lösning som Fail2ban, som Àr en ram som kontinuerligt övervakar loggarna för informationssystem efter upprepade ÄtgÀrder och blockerar angriparen genom att Àndra brandvÀggens instÀllningar. Blockeringen pÄ en sÄ lÄg nivÄ gör det möjligt att stÀnga av angripare redan vid IP-anslutningen till servern. DÀrför kan Fail2Ban komplettera de skyddsÄtgÀrder som Àr uppstÀllda med DoSFilter. LÄt oss ta reda pÄ hur man kan integrera Fail2Ban med Zimbra OSE för att öka sÀkerheten i ditt företags IT-infrastruktur.
Som med alla andra företagsapplikationer hÄller Zimbra Collaboration Suite Open-Source Edition detaljerade loggar över sin verksamhet. De flesta av dessa lagras i mappen /opt/zimbra/log/ som filer. HÀr Àr nÄgra av dem:
- mailbox.log â loggar för e-posttjĂ€nsten Jetty
- audit.log â loggar för autentisering
- clamd.log â antiviruslogs
- freshclam.log â antivirusuppdateringsloggar
- convertd.log â loggar för bilagakonverterare
- zimbrastats.csv â serverprestandaloggar
Du kan ocksÄ hitta Zimbra-loggar i filen /var/log/zimbra.log, dÀr loggar för Postfix och Zimbra sjÀlva sparas.
För att skydda vÄrt system mot bruteforce-attacker kommer vi att övervaka mailbox.log, audit.log och zimbra.log.
För att allt ska fungera mÄste din server med Zimbra OSE ha Fail2Ban och iptables installerade. Om du anvÀnder Ubuntu kan du göra detta med kommandona dpkg -s fail2ban, om du anvÀnder CentOS kan du kontrollera detta med kommandona yum list installed fail2ban. Om du inte har Fail2Ban installerat, kommer installationen inte att vara ett problem, eftersom detta paket finns i nÀstan alla standardregister.
NÀr all nödvÀndig programvara har installerats kan du börja konfigurera Fail2Ban. För detta behöver du skapa en konfigurationsfil /etc/fail2ban/filter.d/zimbra.conf, dÀr vi skriver regelbundna uttryck för loggarna för Zimbra OSE, som kommer att matcha felaktiga inloggningsförsök och aktivera Fail2Bans mekanismer. HÀr Àr ett exempel pÄ innehÄllet i zimbra.conf med en uppsÀttning regelbundna uttryck som motsvarar olika fel som genereras i Zimbra OSE vid misslyckade autentiseringar:
# 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 =NÀr de regelbundna uttrycken för Zimbra OSE har skapats Àr det dags att börja redigera konfigurationen för sjÀlva Fail2ban. InstÀllningarna för detta verktyg finns i filen /etc/fail2ban/jail.conf. Som en försiktighetsÄtgÀrd gör vi en sÀkerhetskopia av den med kommandot cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Efter detta justerar vi denna fil till ungefÀr följande utseende:
# 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 = 5Detta exempel Àr ganska universellt, men det kan vara bra att förklara vissa parametrar som du kanske vill Àndra vid egen konfiguration av Fail2Ban:
- Ignoreip â med denna parameter kan du ange en specifik ip eller subnĂ€t, adresser frĂ„n vilka Fail2Ban inte ska kontrollera. Vanligtvis lĂ€ggs intern nĂ€tverksaddress i företagets lista över ignorerade adresser.
- Bantime â Tiden en gĂ€rningsman kommer att bli blockerad. MĂ€tt i sekunder. VĂ€rdet -1 innebĂ€r en livstidsblockering.
- Maxretry â Maximalt antal gĂ„nger som en ip-adress kan försöka fĂ„ tillgĂ„ng till servern.
- Sendmail â En instĂ€llning som automatiskt skickar e-postnotifikationer vid aktivering av Fail2Ban.
- Findtime â En instĂ€llning som gör det möjligt att ange ett tidsintervall efter vilket IP-adressen kan försöka fĂ„ Ă„tkomst till servern igen efter att det maximala antalet misslyckade försök (parameter maxretry) har uppnĂ„tts.
Efter att ha sparat filen med instÀllningar för Fail2Ban behöver du bara starta om det hÀr verktyget med kommandot service fail2ban restart. Efter omstart kommer de viktigaste loggarna för Zimbra att övervakas kontinuerligt för överensstÀmmelse med reguljÀra uttryck. Tack vare detta kan administratören effektivt utesluta varje möjlighet för obehöriga att bryta sig in, inte bara i e-postlÄdor för Zimbra Collaboration Suite Open-Source Edition, utan ocksÄ skydda alla tjÀnster som arbetar inom Zimbra OSE, samt hÄlla sig informerad om eventuella försök till obehörig Ätkomst.
För alla frÄgor relaterade till Zextras Suite kan ni kontakta företagets representant "Zextras", Ekaterina Triandafiliidi, via e-post katerina@zextras.com
KĂ€lla: habr.com
