Zimbra OSE Bescherming tegen brute force en DoS-aanvallen

Zimbra Collaboration Suite Open-Source Edition beschikt over verschillende krachtige tools om informatiebeveiliging te waarborgen. Onder deze tools zijn Postscreen — een oplossing voor de bescherming van de mailserver tegen aanvallen van botnets, ClamAV — een antivirusprogramma dat binnenkomende bestanden en e-mails kan controleren op besmettingen met malware, evenals SpamAssassin — een van de beste spamfilters van dit moment. Echter, deze tools zijn niet in staat om Zimbra OSE te beschermen tegen een soort aanval, zoals brute force. Hoewel het geen elegante oplossing is, blijft een bruteforce-aanval via een speciale woordenlijst behoorlijk effectief en kan deze niet alleen leiden tot een succesvolle hack met alle gevolgen van dien, maar ook een aanzienlijke belasting op de server veroorzaken, die alle mislukte inbraakpogingen van de Zimbra OSE-server verwerkt.

Zimbra OSE Bescherming tegen brute force en DoS-aanvallen

In principe kan Zimbra OSE worden beschermd tegen brute force-aanvallen met de standaardmogelijkheden. De instellingen voor het beveiligingsbeleid van wachtwoorden maken het mogelijk om het aantal mislukte wachtwoordinvoerpogingen vast te stellen, waarna het potentieel aangevallen account wordt geblokkeerd. Het grootste probleem van deze aanpak is dat er situaties kunnen ontstaan waarin de accounts van een of meerdere medewerkers kunnen worden geblokkeerd vanwege een brute force-aanval, waarbij ze er geen enkele relatie mee hebben, en de opgetreden stilstand in het werk van de medewerkers aanzienlijke verliezen voor het bedrijf kan veroorzaken. Daarom is het het beste om deze vorm van bescherming tegen brute force niet toe te passen.

Zimbra OSE Bescherming tegen brute force en DoS-aanvallen

Voor bescherming tegen brute force-aanvallen is een speciaal hulpmiddel genaamd DoSFilter veel beter geschikt. Dit hulpmiddel is ingebouwd in Zimbra OSE en kan automatisch de verbinding met Zimbra OSE via HTTP onderbreken. Met andere woorden, de werking van DoSFilter is vergelijkbaar met die van PostScreen, maar het wordt gebruikt voor een ander protocol. Oorspronkelijk bedoeld om het aantal handelingen dat één gebruiker kan uitvoeren te beperken, kan DoSFilter ook bescherming bieden tegen brute force-aanvallen. Het belangrijkste verschil met het in Zimbra ingebouwde hulpmiddel is dat het, na een bepaald aantal mislukte pogingen, niet de gebruiker zelf blokkeert, maar het IP-adres van waaruit meerdere inlogpogingen worden gedaan. Hierdoor kan de systeembeheerder niet alleen zichzelf beschermen tegen brute force-aanvallen, maar ook de blokkering van werknemers van het bedrijf vermijden door eenvoudig de interne netwerk-IP-adressen en subnetten aan de lijst van vertrouwde IP-adressen toe te voegen.

Een groot voordeel van DoSFilter is dat, naast het blokkeren van meerdere inlogpogingen naar een bepaalde account, dit hulpmiddel automatisch de aanvallers kan blokkeren die in het bezit zijn gekomen van de authenticatiegegevens van een werknemer, en vervolgens succesvol hebben ingelogd op zijn of haar account en honderden verzoeken naar de server zijn gaan sturen.

DoSFilter kan worden ingesteld met behulp van de volgende consolecommando's:

  • zimbraHttpDosFilterMaxRequestsPerSec — Met dit commando kan het maximale aantal verbindingen worden ingesteld dat voor één gebruiker is toegestaan. Dit is standaard ingesteld op 30 verbindingen.
  • zimbraHttpDosFilterDelayMillis — Met dit commando kan de vertraging in milliseconden worden ingesteld voor verbindingen die het door het vorige commando ingestelde limiet overschrijden. Naast gehele getallen kan de beheerder 0 opgeven zodat er helemaal geen vertraging is, en ook -1, zodat alle verbindingen die het opgegeven limiet overschrijden, eenvoudig worden verbroken. Dit is standaard ingesteld op -1.
  • zimbraHttpThrottleSafeIPs — Met dit commando kan de beheerder vertrouwde IP-adressen en subnetten opgeven waarop de bovenstaande beperkingen niet van toepassing zijn. Het is belangrijk op te merken dat de syntaxis van dit commando kan variëren afhankelijk van het gewenste resultaat. Zo kan de gebruiker bijvoorbeeld een commando invoeren... zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, u schrijft de hele lijst volledig opnieuw en laat er slechts één IP-adres in over. Als u de opdracht invoert zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, zal het opgegeven IP-adres aan de witte lijst worden toegevoegd. Op dezelfde manier kan een IP-adres uit de toegestane lijst worden verwijderd door gebruik te maken van het minteken.

Merk op dat de DoSFilter problemen kan veroorzaken bij het gebruik van de Zextras Suite Pro uitbreidingen. Om deze te vermijden, raden we aan het aantal gelijktijdige verbindingen van 30 naar 100 te verhogen met de opdracht zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Daarnaast raden we aan om het interne netwerk van het bedrijf aan de toegestane lijst toe te voegen. Dit kan met de opdracht zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Vergeet niet om de mailserver opnieuw op te starten met de opdracht na het aanbrengen van wijzigingen in de DoSFilter. zmmailboxdctl restart.

Het grootste nadeel van de DoSFilter is dat deze op applicatieniveau werkt en daardoor alleen de mogelijkheid voor aanvallers kan beperken om verschillende acties op de server uit te voeren, zonder de mogelijkheid om verbinding te maken met de server te beperken. Daarom zullen de verzoeken die naar de server worden verzonden voor authenticatie of het verzenden van e-mails, hoewel ze bij voorbaat mislukt zijn, nog steeds worden beschouwd als een oude vertrouwde DoS-aanval, die op zo'n hoog niveau niet kan worden gestopt.

Om uw bedrijfsserver met Zimbra OSE volledig te beveiligen, kunt u een oplossing zoals Fail2ban gebruiken, dat een framework is dat voortdurend de logboeken van informatiesystemen controleert op herhaalde acties en de overtreder blokkeert door de firewallinstellingen te wijzigen. Blokkering op zo'n laag niveau maakt het mogelijk aanvallers al in een vroeg stadium van de IP-verbinding met de server uit te schakelen. Op deze manier kan Fail2Ban de beveiliging die met behulp van DoSFilter is opgezet, uitstekend aanvullen. Laten we kijken hoe we Fail2Ban met Zimbra OSE kunnen integreren en zo de beveiliging van de IT-infrastructuur van uw onderneming kunnen verbeteren.

Zoals elk ander enterprise-level applicatie, houdt Zimbra Collaboration Suite Open-Source Edition gedetailleerde logs van zijn activiteiten. De meeste hiervan worden opgeslagen in de map /opt/zimbra/log/ in de vorm van bestanden. Hier zijn slechts enkele daarvan:

  • mailbox.log — logs van de maildienst Jetty
  • audit.log — logs van authenticatie
  • clamd.log — logboeken van de antivirus
  • freshclam.log — logboeken van antivirusupdates
  • convertd.log — logboeken van de conversietool
  • zimbrastats.csv — logboeken van serverprestaties

Logboeken van Zimbra zijn ook te vinden in het bestand /var/log/zimbra.log, waarin logboeken worden bijgehouden van Postfix en Zimbra zelf.

Om ons systeem te beschermen tegen brute force-aanvallen, zullen we mailbox.log, audit.log en zimbra.log.

Om alles goed te laten werken, moet op uw server met Zimbra OSE Fail2Ban en iptables zijn geïnstalleerd. Als u Ubuntu gebruikt, kunt u dit doen met de opdrachten dpkg -s fail2ban, als u CentOS gebruikt, kunt u dit controleren met de opdrachten yum list installed fail2ban. Als u Fail2Ban niet heeft geïnstalleerd, zal de installatie geen probleem zijn, omdat dit pakket in vrijwel alle standaardrepositories beschikbaar is.

Zodra alle benodigde software is geïnstalleerd, kunt u beginnen met het configureren van Fail2Ban. Hiervoor moet u een configuratiebestand maken /etc/fail2ban/filter.d/zimbra.conf, waarin we reguliere expressies voor de logboeken van Zimbra OSE zullen definiëren, die overeenkomen met onjuiste inlogpogingen en de mechanismen van Fail2Ban activeren. Hier is een voorbeeld van de inhoud van zimbra.conf met een set reguliere expressies die overeenkomen met verschillende fouten die door Zimbra OSE worden weergegeven bij een mislukte authenticatiepoging:

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

Nadat de reguliere expressies voor Zimbra OSE zijn opgesteld, is het tijd om de configuratie van Fail2ban zelf aan te passen. De instellingen van deze tool bevinden zich in het bestand /etc/fail2ban/jail.conf. Voor de zekerheid maken we een back-up met behulp van de opdracht cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Daarna brengen we dit bestand ongeveer in de volgende vorm:

# 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

Dit voorbeeld, hoewel vrij universeel, verdient enige uitleg over bepaalde parameters die u mogelijk wilt aanpassen bij het handmatig configureren van Fail2Ban:

  • Ignoreip — met deze parameter kunt u een specifiek ip of subnet opgeven waarvan Fail2Ban geen controles moet uitvoeren. Gewoonlijk worden de interne netwerken van het bedrijf en andere vertrouwde adressen aan de lijst met genegeerde adressen toegevoegd.
  • Bantime — De tijd dat de overtreder geblokkeerd zal worden. Gemeten in seconden. Een waarde van -1 betekent een levenslange ban.
  • Maxretry — Het maximum aantal keren dat één ip-adres toegang tot de server kan proberen te krijgen.
  • Sendmail — Een instelling die automatisch e-mailmeldingen verzendt wanneer Fail2Ban afgaat.
  • Findtime — Een instelling waarmee je het tijdsinterval kunt instellen waarna een IP-adres opnieuw toegang kan proberen te krijgen tot de server nadat het maximale aantal mislukte pogingen (parameter maxretry) is bereikt.

Na het opslaan van het bestand met de instellingen van Fail2Ban, is het voldoende om dit hulpprogramma opnieuw op te starten met het commando service fail2ban restart. Na herstarten beginnen de belangrijkste logs van Zimbra continu te worden gecontroleerd op overeenstemming met reguliere expressies. Hierdoor kan de beheerder feitelijk alle mogelijkheden voor ongeoorloofde toegang tot niet alleen de e-mailboxen van Zimbra Collaboration Suite Open-Source Edition uitsluiten, maar ook alle diensten die binnen Zimbra OSE draaien beschermen, en op de hoogte blijven van alle pogingen tot ongeautoriseerde toegang.

Voor vragen over Zextras Suite kunt u contact opnemen met de vertegenwoordiger van het bedrijf 'Zextras', Ekaterina Triandafiliadi, via e-mail katerina@zextras.com

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster