Zimbra Collaboration Suite Open-Source Edition har flera kraftfulla verktyg i sin arsenal för att sĂ€kerstĂ€lla informationssĂ€kerhet. Bland dem â en lösning för att skydda en e-postserver frĂ„n botnĂ€tattacker, ClamAV â ett antivirusprogram som kan skanna inkommande filer och e-postmeddelanden efter skadlig programvara, och â ett av de bĂ€sta spamfiltren idag. Dessa verktyg kan dock inte skydda Zimbra OSE mot sĂ„dana typer av attacker som brute force. Inte den mest eleganta, men Ă€ndĂ„ ganska effektiva, lösenordsbrote-force-attacken med en speciell ordbok Ă€r fylld inte bara med sannolikheten för ett lyckat hack med alla efterföljande konsekvenser, utan ocksĂ„ med skapandet av en betydande belastning pĂ„ servern som bearbetar alla misslyckade försök att hacka servern med Zimbra OSE.

I princip kan du skydda dig mot brute force med hjÀlp av vanliga Zimbra OSE-verktyg. Med instÀllningar för lösenordssÀkerhetspolicyer kan du stÀlla in antalet misslyckade lösenordsförsök efter vilka ett potentiellt attackerat konto blockeras. Det största problemet med denna metod Àr att den skapar situationer dÀr konton för en eller flera anstÀllda kan blockeras pÄ grund av en brute-force-attack som de inte hade nÄgot att göra med, och den resulterande driftstoppen för anstÀllda kan orsaka betydande förluster för företaget. Det Àr dÀrför det Àr bÀst att inte anvÀnda den hÀr typen av brute force-skydd.

För brute force-skydd Àr ett mycket bÀttre alternativ ett specialverktyg som heter DoSFilter, vilket Àr inbyggt i Zimbra OSE och automatiskt kan avsluta anslutningen till Zimbra OSE via HTTP. Med andra ord, principen för DoSFilter liknar principen för PostScreen, bara att den anvÀnds för ett annat protokoll. DoSFilter, som ursprungligen utformades för att begrÀnsa antalet ÄtgÀrder en enskild anvÀndare kan utföra, kan ocksÄ ge skydd mot brute force-attacker. Dess viktigaste skillnad frÄn verktyget som Àr inbyggt i Zimbra Àr att det efter ett visst antal misslyckade försök blockerar inte anvÀndaren sjÀlv, utan IP-adressen frÄn vilken flera försök görs att logga in pÄ ett visst konto. Tack vare detta kan en systemadministratör inte bara skydda sig mot brute force, utan ocksÄ undvika att blockera företagets anstÀllda genom att helt enkelt lÀgga till företagets interna nÀtverk i listan över betrodda IP-adresser och subnÀt.
En stor fördel med DoSFilter Àr att förutom mÄnga försök att logga in pÄ ett visst konto, kan detta verktyg automatiskt blockera de inkrÀktare som har tagit besittning av en anstÀllds autentiseringsdata och sedan framgÄngsrikt loggat in pÄ hans konto och börjat skicka hundratals förfrÄgningar till servern.
Du kan konfigurera DoSFilter med följande konsolkommandon:
- zimbraHttpDosFilterMaxRequestsPerSec â Med det hĂ€r kommandot kan du ange det maximala antalet anslutningar som tillĂ„ts för en anvĂ€ndare. Som standard Ă€r detta vĂ€rde 30 anslutningar.
- zimbraHttpDosFilterDelayMillis â Med det hĂ€r kommandot kan du stĂ€lla in en fördröjning i millisekunder för anslutningar som överskrider grĂ€nsen som angetts av föregĂ„ende kommando. Förutom heltal kan administratören ange 0 för att inte ha nĂ„gon fördröjning alls och -1 för att helt enkelt avsluta alla anslutningar som överskrider den angivna grĂ€nsen. Som standard Ă€r detta vĂ€rde -1.
- zimbraHttpThrottleSafeIP:er â Med hjĂ€lp av det hĂ€r kommandot kan administratören ange betrodda IP-adresser och delnĂ€t som inte omfattas av ovanstĂ„ende begrĂ€nsningar. Observera att syntaxen för det hĂ€r kommandot kan variera beroende pĂ„ önskat resultat. Till exempel genom att ange kommandot zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, kommer du att skriva om hela listan helt och bara lĂ€mna en IP-adress i den. Om du anger kommandot zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, dĂ„ lĂ€ggs IP-adressen du angav till i den vita listan. PĂ„ samma sĂ€tt kan du med hjĂ€lp av subtraktionstecknet ta bort vilken IP-adress som helst frĂ„n listan över tillĂ„tna.
Observera att DoSFilter kan skapa ett antal problem nÀr du anvÀnder Zextras Suite Pro-tillÀgg. För att undvika dem rekommenderar vi att öka antalet samtidiga anslutningar frÄn 30 till 100 med hjÀlp av kommandot zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Dessutom rekommenderar vi att du lÀgger till företagets interna nÀtverk i listan över tillÄtna. Detta kan göras med hjÀlp av kommandot zmprov mcf +zimbraHttpThrottleSafeIP:er 192.168.0.0/24. Efter att du har gjort nÄgra Àndringar i DoSFilter, se till att starta om e-postservern med kommandot omstart av zmmailboxdctl.
Den största nackdelen med DoSFilter Àr att det fungerar 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. PÄ grund av detta kommer förfrÄgningar som skickas till servern för autentisering eller för att skicka brev, Àven om de uppenbarligen kommer att misslyckas, fortfarande att representera en hederlig DoS-attack, som Àr omöjlig att stoppa pÄ en sÄ hög nivÄ.
För att helt sÀkra din företagsserver med Zimbra OSE kan du anvÀnda en lösning som Fail2ban, ett ramverk som stÀndigt kan övervaka informationssystemens loggar för upprepade ÄtgÀrder och blockera inkrÀktaren genom att Àndra brandvÀggsinstÀllningarna. Blockering pÄ en sÄ lÄg nivÄ gör att du kan inaktivera inkrÀktare direkt i IP-anslutningsstadiet till servern. SÄledes kan Fail2Ban perfekt komplettera skyddet som byggs med DoSFilter. LÄt oss ta reda pÄ hur du kan bli vÀn med Fail2Ban och Zimbra OSE och dÀrmed öka sÀkerheten för ditt företags IT-infrastruktur.
Precis som alla andra företagsapplikationer upprÀtthÄller Zimbra Collaboration Suite Open-Source Edition detaljerade loggar över sin drift. De flesta av dem Àr lagrade i en mapp /opt/zimbra/log/ i form av filer. HÀr Àr bara nÄgra av dem:
- mailbox.log â Jetty e-posttjĂ€nstloggar
- audit.log â autentiseringsloggar
- clamd.log â antivirusdriftsloggar
- freshclam.log â antivirusuppdateringsloggar
- convertd.log â loggar för konvertering av bilagor
- zimbrastats.csv â prestandaloggar för servern
Ăven Zimbra-loggar finns i filen /var/log/zimbra.log, dĂ€r loggarna för Postfix och Zimbra sjĂ€lva förvaras.
För att skydda vÄrt system frÄn brute force kommer vi att övervaka mailbox.log, audit.log О zimbra.log.
För att allt ska fungera behöver du ha Fail2Ban och iptables installerade pÄ din server med Zimbra OSE. Om du anvÀnder Ubuntu kan du göra detta med hjÀlp av kommandona dpkg -s fail2ban, om du anvÀnder CentOS kan du kontrollera detta med hjÀlp av kommandona yum-lista installerad fail2ban. Om du inte har Fail2Ban installerat kommer det inte vara ett problem att installera det, eftersom det hÀr paketet finns tillgÀngligt i nÀstan alla standardförrÄd.
NÀr all nödvÀndig programvara Àr installerad kan du börja konfigurera Fail2Ban. För att göra detta behöver du skapa en konfigurationsfil. /etc/fail2ban/filter.d/zimbra.conf, dÀr vi kommer att skriva reguljÀra uttryck för Zimbra OSE-loggar som matchar ogiltiga inloggningsförsök och utlöser Fail2Ban-mekanismer. HÀr Àr ett exempel pÄ zimbra.conf-innehÄll med en uppsÀttning reguljÀra uttryck som matchar olika fel som returneras av Zimbra OSE nÀr autentiseringen misslyckas:
# 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 reguljÀra uttrycken för Zimbra OSE Àr skrivna Àr det dags att börja redigera sjÀlva Fail2ban-konfigurationen. InstÀllningarna för det hÀr verktyget finns i filen /etc/fail2ban/jail.conf. För sÀkerhets skull, lÄt oss göra en sÀkerhetskopia av det med kommandot cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Efter detta kommer vi att fÄ filen att se ungefÀr ut i följande format:
# 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 = 5Ăven om det hĂ€r exemplet Ă€r ganska generiskt Ă€r det vĂ€rt att förtydliga nĂ„gra instĂ€llningar som du kanske vill Ă€ndra nĂ€r du konfigurerar Fail2Ban sjĂ€lv:
- Ignorera â med den hĂ€r parametern kan du ange en specifik IP-adress eller ett subnĂ€t, adresser frĂ„n vilka Fail2Ban inte ska kontrollera. Vanligtvis lĂ€ggs företagets interna nĂ€tverk och andra betrodda adresser till i ignoreringslistan.
- Bantime â Den tid under vilken gĂ€rningsmannen kommer att vara avstĂ€ngd. MĂ€tt i sekunder. VĂ€rdet -1 innebĂ€r en permanent avstĂ€ngning.
- Maxretry â Det maximala antalet gĂ„nger en IP-adress kan försöka komma Ă„t servern.
- Skicka brev â En instĂ€llning som lĂ„ter dig automatiskt skicka e-postmeddelanden om Fail2Ban-utlösning.
- Hitta tid â En instĂ€llning som lĂ„ter dig ange ett tidsintervall efter vilket en IP-adress kan försöka komma Ă„t servern igen efter att det maximala antalet misslyckade försök har förbrukats (parametern maxretry)
Efter att du har sparat filen med Fail2Ban-instÀllningarna Àr allt som ÄterstÄr att starta om verktyget med kommandot omstart av tjÀnsten fail2ban. Efter omstart kommer Zimbras huvudloggar kontinuerligt att övervakas för matchningar av reguljÀra uttryck. Detta gör det möjligt för administratören att praktiskt taget eliminera alla möjligheter för en inkrÀktare att trÀnga in, inte bara i Zimbra Collaboration Suite Open-Source Edition-postlÄdor, utan ocksÄ att skydda alla tjÀnster som körs inom Zimbra OSE, och att vara medveten om eventuella försök att fÄ obehörig Ätkomst.
För alla frÄgor relaterade till Zextras Suite kan du kontakta Zextras representant Ekaterina Triandafilidi via e-post katerina@zextras.com
KĂ€lla: will.com
