Zimbra Collaboration Suite Open-Source Edition má ve své výbavě několik silných nástrojů pro zajištění informační bezpečnosti. Mezi ně patří — řešení pro ochranu poštovního serveru před útoky ze strany botnetů, ClamAV — antivir, který je schopen kontrolovat příchozí soubory a e-maily na přítomnost škodlivých programů, a také — jeden z nejlepších spamových filtrů dnes. Tyto nástroje však nedokážou ochránit Zimbra OSE před typem útoku známým jako bruteforce. I když to není nejestetičtější, stále docela efektivní procházení hesel pomocí speciálních slovníků nese nejen pravděpodobnost úspěšného prolomení s veškerými důsledky, ale také vytváří značné zatížení serveru, který zpracovává všechny neúspěšné pokusy o prolomení serveru s Zimbra OSE.

V zásadě se proti bruteforce dá chránit standardními prostředky Zimbra OSE. Nastavení bezpečnostní politiky hesel umožňuje stanovit počet neúspěšných pokusů o zadání hesla, po kterých je potenciálně ohrožený účet zablokován. Hlavním problémem takového přístupu je, že mohou nastat situace, kdy jsou účty jednoho nebo více zaměstnanců zablokovány kvůli bruteforce útoku, se kterým nemají nic společného, a způsobená nečinnost zaměstnanců může firmě přinést velké ztráty. Proto je tento způsob ochrany proti bruteforce nejlépe vůbec nepoužívat.

Pro ochranu před brute-force útoky je mnohem vhodnější speciální nástroj nazvaný DoSFilter, který je vestavěn v Zimbra OSE a může automaticky přerušit spojení s Zimbra OSE po HTTP. Jinými slovy, princip fungování DoSFilter je obdobný principu fungování PostScreen, pouze se používá pro jiný protokol. Původně určený k omezení počtu akcí, které může vykonat jeden uživatel, může DoSFilter také zajistit ochranu před brute-force útoky. Klíčovým rozdílem oproti vestavěnému nástroji v Zimbra je, že po určitém počtu neúspěšných pokusů blokuje nikoli uživatele, ale IP adresu, z níž jsou prováděny opakované pokusy o přihlášení do určitého účtu. Díky tomu se může systémový administrátor nejen chránit před brute-force útoky, ale také se vyhnout blokování zaměstnanců podniku, jednoduše přidáním své vnitřní sítě do seznamu důvěryhodných IP adres a podsítí.
Velkým plusem DoSFilter je to, že kromě mnoha pokusů o přihlášení do různých účtů může tento nástroj automaticky zablokovat ty útočníky, kteří získali autentifikační údaje zaměstnance, a poté úspěšně vstoupili do jeho účtu a začali na server posílat stovky požadavků.
Nastavit DoSFilter lze pomocí následujících příkazů v konzoli:
- zimbraHttpDosFilterMaxRequestsPerSec — Pomocí tohoto příkazu lze nastavit maximální povolený počet připojení pro jednoho uživatele. Ve výchozím nastavení je tato hodnota 30 připojení.
- zimbraHttpDosFilterDelayMillis — Pomocí tohoto příkazu lze nastavit zpoždění v milisekundách pro připojení, která překročí limit stanovený předchozím příkazem. Kromě celočíselných hodnot může administrátor zadat 0, aby nebylo zpoždění vůbec, a také -1, aby se všechna připojení, která překročí stanovený limit, jednoduše přerušila. Ve výchozím nastavení je tato hodnota -1.
- zimbraHttpThrottleSafeIPs — Pomocí tohoto příkazu může administrátor určit důvěryhodné IP adresy a podsítě, na které se nebudou vztahovat výše uvedené limity. Upozorňujeme, že syntaxe tohoto příkazu se může lišit v závislosti na požadovaném výsledku. Například zadáním příkazu zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, zcela přepíšete celý seznam a ponecháte pouze jednu IP adresu. Pokud zadáte příkaz zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, přidaná IP adresa bude vložena do bílého seznamu. Stejným způsobem, pomocí znaménka minus, můžete odstranit jakoukoli IP adresu ze seznamu povolených.
Upozorňujeme, že DoSFilter může způsobovat řadu problémů při používání rozšíření Zextras Suite Pro. Abychom se jim vyhnuli, doporučujeme zvýšit počet současných připojení z 30 na 100 pomocí příkazu zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Dále doporučujeme přidat interní síť podniku do povoleného seznamu. To můžete provést pomocí příkazu zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Po jakýchkoli změnách v DoSFilter nezapomeňte restartovat poštovní server pomocí příkazu zmmailboxdctl restart.
Hlavní nevýhodou DoSFilter je, že funguje na úrovni aplikace a proto může pouze omezit možnost útočníků provádět různé akce na serveru, aniž by omezil možnost připojení k serveru. Proto požadavky na autentizaci nebo odesílání e-mailů, ačkoliv budou zjevně neúspěšné, i nadále představují dobrou starou DoS útok, který nelze na této vysoké úrovni zastavit.
Abychom úplně zabezpečili náš firemní server se Zimbra OSE, můžeme využít řešení, jako je Fail2ban, což je framework, který neustále monitoruje logy informačních systémů na opakující se jednání a blokuje porušovatele změnou nastavení firewallu. Blokace na tak nízké úrovni umožňuje vypnout útočníky přímo na úrovni IP připojení k serveru. Takto může Fail2Ban skvěle doplnit ochranu postavenou pomocí DoSFilter. Pojďme zjistit, jak lze propojit Fail2Ban se Zimbra OSE a tím zvýšit zabezpečení IT infrastruktury vaší firmy.
Stejně jako jakákoli jiná aplikace podnikové třídy, Zimbra Collaboration Suite Open-Source Edition vede podrobné logy své činnosti. Většina z nich je uložena v adresáři /opt/zimbra/log/ ve formě souborů. Zde je jen několik z nich:
- mailbox.log — logy poštovní služby Jetty
- audit.log — logy autentizace
- clamd.log — protokoly činnosti antiviru
- freshclam.log — protokoly aktualizací antiviru
- convertd.log — protokoly převodníku příloh
- zimbrastats.csv — protokoly výkonu serveru
Také protokoly Zimbra lze nalézt v souboru /var/log/zimbra.log, kde se vedou protokoly činnosti Postfixu a samotné Zimbry.
Abychom ochránili náš systém před bruteforcem, budeme sledovat mailbox.log, audit.log a zimbra.log.
Aby vše fungovalo, je nutné mít na vašem serveru s Zimbra OSE nainstalováno Fail2Ban a iptables. Pokud používáte Ubuntu, můžete to provést pomocí příkazů dpkg -s fail2ban, pokud však používáte CentOS, ověřit to můžete pomocí příkazů yum list installed fail2ban. Pokud Fail2Ban nemáte nainstalováno, jeho instalace nebude problémem, protože tento balíček je dostupný ve většině standardních repozitářů.
Po nainstalování veškerého potřebného softwaru lze přistoupit k nastavení Fail2Ban. K tomu je nutné vytvořit konfigurační soubor /etc/fail2ban/filter.d/zimbra.conf, do kterého zapíšeme regulární výrazy pro protokoly Zimbra OSE, které budou odpovídat nesprávným pokusům o přihlášení a spouštět mechanismy Fail2Ban. Zde je příklad obsahu zimbra.conf s sadou regulárních výrazů odpovídajících různým chybám, které se v Zimbra OSE objevují při neúspěšné autentifikaci:
# 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 =Jakmile jsou regulární výrazy pro Zimbra OSE sestaveny, je čas začít upravovat konfiguraci samotného Fail2Ban. Nastavení této utility se nachází v souboru /etc/fail2ban/jail.conf. Pro jistotu vytvoříme jeho zálohu pomocí příkazu cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Poté upravíme tento soubor na přibližně následující podobu:
# 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 = 5Tento příklad, i když je poměrně univerzální, vyžaduje vysvětlení některých parametrů, které možná budete chtít změnit při samostatném nastavení Fail2Ban:
- Ignoreip — pomocí tohoto parametru můžete uvést konkrétní IP nebo podsíť, adresy, které by Fail2Ban neměl kontrolovat. Obvykle se do seznamu ignorovaných přidávají interní sítě podniku a další důvěryhodné adresy.
- Bantime — Doba, po kterou bude útočník blokován. Měří se v sekundách. Hodnota -1 znamená trvalou blokaci.
- Maxretry — Maximální počet pokusů, které jedna IP adresa může učinit o přístup na server.
- Sendmail Nastavení, které automaticky odesílá e-mailová upozornění na spuštění Fail2Ban.
- Findtime Nastavení, které umožňuje stanovit časový interval, po kterém se může IP adresa pokusit znovu získat přístup k serveru po vyčerpání maximálního počtu neúspěšných pokusů (parametr maxretry)
Po uložení souboru s nastavením Fail2Ban stačí tuto utilitu restartovat pomocí příkazu service fail2ban restart. Po restartu budou hlavní protokoly Zimbra neustále monitorovány podle pravidelných výrazů. Díky tomu může administrátor prakticky vyloučit jakoukoli možnost proniknutí útočníka nejen do poštovních schránek Zimbra Collaboration Suite Open-Source Edition, ale také chránit všechny služby běžící v rámci Zimbra OSE a být informován o všech pokusech o neautorizovaný přístup.
Na všechny otázky týkající se Zextras Suite se můžete obrátit na zástupce společnosti „Zextras“ Ekaterinu Triandafilidi na e-mailu katerina@zextras.com
Zdroj: habr.com
