Ochrana Zimbra OSE před hrubou silou a DoS útoky

Zimbra Collaboration Suite Open-Source Edition má ve svém arzenálu několik výkonných nástrojů pro bezpečnost informací. Mezi nimi Postscreen - řešení pro ochranu poštovního serveru před útoky botnetů, ClamAV - antivirus, který dokáže skenovat příchozí soubory a dopisy na výskyt malwaru a také SpamAssassin jeden z nejlepších spamových filtrů současnosti. Tyto nástroje však nejsou schopny ochránit Zimbra OSE před tímto typem útoku, jako je hrubá síla. Ne nejelegantnější, ale stále docela účinná hrubá síla hesla pomocí speciálního slovníku je plná nejen pravděpodobnosti úspěšného hacknutí se všemi z toho vyplývajícími důsledky, ale také vytvoření značné zátěže na serveru, který zpracovává všechny neúspěšné pokusy k hacknutí serveru pomocí Zimbra OSE.

Ochrana Zimbra OSE před hrubou silou a DoS útoky

V zásadě se můžete chránit před hrubou silou pomocí standardních nástrojů Zimbra OSE. Nastavení zásad zabezpečení hesel umožňuje nastavit počet neúspěšných pokusů o zadání hesla, po kterých je potenciálně napadený účet zablokován. Hlavním problémem tohoto přístupu je, že existují situace, kdy může dojít k zablokování účtů jednoho nebo více zaměstnanců kvůli útoku hrubou silou, se kterým nemají co dělat, a z toho vyplývající prostoje v práci zaměstnanců mohou přinést velké ztráty společnosti. Proto je nejlepší tuto možnost ochrany před hrubou silou nevyužívat.

Ochrana Zimbra OSE před hrubou silou a DoS útoky

K ochraně před hrubou silou se mnohem lépe hodí speciální nástroj s názvem DoSFilter, který je zabudován do Zimbra OSE a dokáže automaticky ukončit spojení se Zimbra OSE přes HTTP. Jinými slovy, princip DoSFilter je podobný principu PostScreen, jen se používá pro jiný protokol. DoSFilter, původně navržený tak, aby omezoval počet akcí, které může provést jeden uživatel, může také poskytnout ochranu proti hrubé síle. Jeho klíčový rozdíl oproti nástroji zabudovanému do Zimbry spočívá v tom, že po určitém počtu neúspěšných pokusů neblokuje samotného uživatele, ale IP adresu, ze které se vícenásobně pokouší přihlásit k jednomu nebo druhému účtu. Díky tomu se může správce systému nejen chránit před hrubou silou, ale také se vyhnout blokování zaměstnanců podniku tím, že jednoduše přidá interní síť svého podniku do seznamu důvěryhodných IP adres a podsítí.

Velkou výhodou DoSFilter je, že kromě četných pokusů o přihlášení k jednomu nebo druhému účtu můžete pomocí tohoto nástroje automaticky zablokovat ty vetřelce, kteří se zmocnili autentizačních údajů zaměstnance a poté se úspěšně přihlásili k jeho účtu a začali posílat stovky požadavků na server.

DoSFilter můžete nakonfigurovat pomocí následujících příkazů konzoly:

  • zimbraHttpDosFilterMaxRequestsPerSec - Pomocí tohoto příkazu můžete nastavit maximální povolený počet připojení na uživatele. Ve výchozím nastavení je tato hodnota 30 připojení.
  • zimbraHttpDosFilterDelayMillis - Pomocí tohoto příkazu můžete nastavit zpoždění v milisekundách pro připojení, která překročí limit určený předchozím příkazem. Kromě celočíselných hodnot může administrátor zadat 0, aby nedocházelo k žádnému zpoždění, a také -1 pro jednoduché ukončení všech připojení, která překračují zadaný limit. Ve výchozím nastavení je tato hodnota -1.
  • zimbraHttpThrottleSafeIPs - Pomocí tohoto příkazu může administrátor zadat důvěryhodné IP adresy a podsítě, které nebudou ovlivněny výše uvedenými omezeními. Všimněte si, že syntaxe tohoto příkazu se může lišit v závislosti na požadovaném výsledku. Tedy například zadáním příkazu zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, kompletně přepíšete celý seznam a ponecháte v něm pouze jednu IP adresu. Pokud zadáte příkaz zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, zadaná IP adresa bude přidána do seznamu povolených. Podobně pomocí znaménka odečítání můžete odstranit jakoukoli IP ze seznamu povolených.

Pamatujte, že DoSFilter může způsobit řadu problémů při používání rozšíření Zextras Suite Pro. Abyste 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. Kromě toho doporučujeme přidat interní síť společnosti do seznamu povolených. Můžete to udělat pomocí příkazu zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Po provedení jakýchkoli změn v DoSFilter nezapomeňte restartovat poštovní server pomocí příkazu restartování zmmailboxdctl.

Hlavní nevýhodou DoSFilter je, že funguje na aplikační úrovni, a proto může pouze omezit schopnost útočníků provádět různé akce na serveru, aniž by byla omezena možnost připojení k serveru. Z tohoto důvodu budou požadavky zaslané na server k ověření nebo zaslání dopisů, i když zjevně selžou, stále starým dobrým DoS útokem, který nelze zastavit na tak vysoké úrovni.

Pro úplné zabezpečení vašeho podnikového serveru pomocí Zimbra OSE můžete použít řešení, jako je Fail2ban, což je rámec, který dokáže neustále monitorovat protokoly informačního systému pro opakující se akce a blokovat narušitele změnou nastavení firewallu. Blokování na tak nízké úrovni vám umožňuje zakázat vetřelce přímo ve fázi IP připojení k serveru. Fail2Ban tak může dokonale doplnit ochranu postavenou pomocí DoSFilter. Pojďme zjistit, jak se můžete s Fail2Ban Zimbra OSE spřátelit, a tím zvýšit bezpečnost vaší podnikové IT infrastruktury.

Jako každá jiná aplikace podnikové třídy i Zimbra Collaboration Suite Open-Source Edition uchovává podrobné záznamy o své práci. Většina z nich je uložena ve složce /opt/zimbra/log/ ve formě souborů. Zde je jen několik z nich:

  • mailbox.log – protokoly poštovní služby mola
  • audit.log - protokoly ověřování
  • clamd.log - protokoly provozu antiviru
  • freshclam.log - protokoly aktualizace antiviru
  • convertd.log - protokoly převodníku příloh
  • zimbrastats.csv - protokoly výkonu serveru

V souboru lze nalézt také protokoly Zimbra /var/log/zimbra.log, kde jsou uloženy protokoly Postfixu a samotné Zimbry.

Za účelem ochrany našeho systému před hrubou silou budeme monitorovat schránka.log, audit.log и zimbra.log.

Aby vše fungovalo, musíte mít na svém serveru Zimbra OSE nainstalovaný Fail2Ban a iptables. V případě, že používáte Ubuntu, můžete to provést pomocí příkazů dpkg -s fail2ban, pokud používáte CentOS, můžete to zkontrolovat pomocí příkazů yum list nainstalovaný fail2ban. V případě, že nemáte nainstalovaný Fail2Ban, tak jeho instalace nebude problém, jelikož tento balíček je téměř ve všech standardních repozitářích.

Po instalaci veškerého potřebného softwaru můžete začít konfigurovat Fail2Ban. Chcete-li to provést, musíte vytvořit konfigurační soubor /etc/fail2ban/filter.d/zimbra.conf, ve kterém píšeme regulární výrazy pro protokoly Zimbra OSE, které budou odpovídat neplatným pokusům o přihlášení a spouštějí mechanismy Fail2Ban. Zde je příklad obsahu zimbra.conf se sadou regulárních výrazů odpovídajících různým chybám vydaným v Zimbra OSE, když selže pokus o ověření:

# 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 =

Po zkompilování regulárních výrazů pro Zimbra OSE je čas začít upravovat konfiguraci samotného Fail2ban. Nastavení pro tento nástroj se nachází v souboru /etc/fail2ban/jail.conf. Pro každý případ vytvoříme jeho záložní kopii pomocí příkazu cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Poté tento soubor přeneseme do následující podoby:

# 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

I když je tento příklad docela obecný, stojí za to vysvětlit některá nastavení, která možná budete chtít změnit při konfiguraci Fail2Ban sami:

  • Ignoreip - pomocí tohoto parametru můžete určit konkrétní IP nebo podsíť, adresy, ze kterých by Fail2Ban neměl kontrolovat. Do seznamu ignorovaných se zpravidla přidává interní síť podniku a další důvěryhodné adresy.
  • Bantime - Doba, na kterou bude pachatel trestán. Měřeno v sekundách. Hodnota -1 znamená zákaz na dobu neurčitou.
  • maxretry - Maximální počet pokusů jedné IP adresy o přístup k serveru.
  • Sendmail - Nastavení, které vám umožní automaticky zasílat e-mailová upozornění o fungování Fail2Ban.
  • Najděte si čas - Nastavení, které umožňuje nastavit časový interval, po kterém se může IP adresa znovu pokusit o 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 zbývá pouze restartovat tuto utilitu pomocí příkazu restart služby fail2ban. Po restartu budou hlavní protokoly Zimbry neustále sledovány kvůli regulárním výrazům. Díky tomu bude moci administrátor prakticky eliminovat jakoukoli možnost pronikání útočníka nejen do schránek Zimbra Collaboration Suite Open-Source Edition, ale také ochránit všechny služby běžící v rámci Zimbra OSE a být si vědom případných pokusů o neoprávněný přístup.

Se všemi dotazy týkajícími se Zextras Suite můžete kontaktovat zástupkyni Zextras Ekaterinu Triandafilidi e-mailem [chráněno e-mailem]

Zdroj: www.habr.com

Přidat komentář