Bescherm Zimbra OSE tegen brute force- en DoS-aanvallen

Zimbra Collaboration Suite Open-Source Edition heeft verschillende krachtige tools om informatiebeveiliging te garanderen. Onder hen Postscherm - een oplossing om een ​​mailserver te beschermen tegen aanvallen van botnets, ClamAV - een antivirusprogramma dat inkomende bestanden en brieven kan scannen op infectie met kwaadaardige programma's, en SpamAssassin - een van de beste spamfilters van dit moment. Deze tools zijn echter niet in staat Zimbra OSE te beschermen tegen brute force-aanvallen. Niet de meest elegante, maar nog steeds behoorlijk effectieve, brute forcerende wachtwoorden die een speciaal woordenboek gebruiken, zijn niet alleen beladen met de waarschijnlijkheid van succesvol hacken met alle gevolgen van dien, maar ook met het creëren van een aanzienlijke belasting van de server, die alles verwerkt mislukte pogingen om een ​​server te hacken met Zimbra OSE.

Bescherm Zimbra OSE tegen brute force- en DoS-aanvallen

Met standaard Zimbra OSE-tools kun je jezelf in principe tegen brute kracht beschermen. Met de wachtwoordbeveiligingsbeleidsinstellingen kunt u het aantal mislukte pogingen om het wachtwoord in te voeren instellen, waarna het mogelijk aangevallen account wordt geblokkeerd. Het grootste probleem met deze aanpak is dat zich situaties voordoen waarin de accounts van een of meer werknemers kunnen worden geblokkeerd als gevolg van een brute force-aanval waar zij niets mee te maken hebben, en de daaruit voortvloeiende stilstand in het werk van werknemers kan grote verliezen met zich meebrengen. het bedrijf. Daarom kun je deze beschermingsoptie tegen brute kracht het beste niet gebruiken.

Bescherm Zimbra OSE tegen brute force- en DoS-aanvallen

Ter bescherming tegen brute kracht is een speciale tool genaamd DoSFilter veel geschikter, die in Zimbra OSE is ingebouwd en via HTTP automatisch de verbinding met Zimbra OSE kan verbreken. Met andere woorden, het werkingsprincipe van DoSFilter is vergelijkbaar met het werkingsprincipe van PostScreen, alleen wordt het voor een ander protocol gebruikt. Oorspronkelijk ontworpen om het aantal acties dat een enkele gebruiker kan uitvoeren te beperken, kan DoSFilter ook bescherming tegen brute kracht bieden. Het belangrijkste verschil met de tool die in Zimbra is ingebouwd, is dat deze na een bepaald aantal mislukte pogingen niet de gebruiker zelf blokkeert, maar het IP-adres van waaruit meerdere pogingen worden gedaan om in te loggen op een bepaald account. Dankzij dit kan een systeembeheerder niet alleen beschermen tegen brute kracht, maar ook voorkomen dat hij werknemers van het bedrijf blokkeert door simpelweg het interne netwerk van zijn bedrijf toe te voegen aan de lijst met vertrouwde IP-adressen en subnetten.

Het grote voordeel van DoSFilter is dat u, naast talloze pogingen om in te loggen op een bepaald account, met behulp van deze tool automatisch die aanvallers kunt blokkeren die bezit hebben genomen van de authenticatiegegevens van een medewerker en zich vervolgens met succes hebben aangemeld bij zijn account en honderden verzoeken zijn gaan verzenden. naar de server.

U kunt DoSFilter configureren met de volgende consoleopdrachten:

  • zimbraHttpDosFilterMaxRequestsPerSec — Met deze opdracht kunt u het maximale aantal toegestane verbindingen voor één gebruiker instellen. Standaard is deze waarde 30 verbindingen.
  • zimbraHttpDosFilterDelayMillis - Met dit commando kunt u een vertraging in milliseconden instellen voor verbindingen die de limiet overschrijden die is opgegeven in het vorige commando. Naast gehele waarden kan de beheerder 0 opgeven, zodat er helemaal geen vertraging optreedt, en ook -1, zodat alle verbindingen die de opgegeven limiet overschrijden, eenvoudigweg worden onderbroken. De standaardwaarde is -1.
  • zimbraHttpThrottleSafeIPs — Met deze opdracht kan de beheerder vertrouwde IP-adressen en subnetten opgeven waarvoor de hierboven genoemde beperkingen niet gelden. Houd er rekening mee dat de syntaxis van deze opdracht kan variëren, afhankelijk van het gewenste resultaat. Dus bijvoorbeeld door het commando in te voeren zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, overschrijft u de hele lijst volledig en laat u er slechts één IP-adres in staan. Als u de opdracht invoert zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, wordt het door u ingevoerde IP-adres toegevoegd aan de witte lijst. Op dezelfde manier kunt u met behulp van het aftrekkingsteken elk IP-adres uit de toegestane lijst verwijderen.

Houd er rekening mee dat DoSFilter een aantal problemen kan veroorzaken bij het gebruik van Zextras Suite Pro-extensies. Om ze te vermijden, raden we aan het aantal gelijktijdige verbindingen te verhogen van 30 naar 100 met behulp van de opdracht zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Daarnaast raden we aan om het interne bedrijfsnetwerk toe te voegen aan de lijst met toegestane netwerken. Dit kan gedaan worden met behulp van het commando zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Nadat u wijzigingen in DoSFilter hebt aangebracht, moet u uw mailserver opnieuw opstarten met behulp van de opdracht zmmailboxdctl opnieuw opstarten.

Het grootste nadeel van DoSFilter is dat het op applicatieniveau werkt en daardoor alleen de mogelijkheid van aanvallers om verschillende acties op de server uit te voeren kan beperken, zonder de mogelijkheid om verbinding te maken met het noorden te beperken. Hierdoor zullen verzoeken die naar de server worden verzonden voor authenticatie of het verzenden van brieven, hoewel deze uiteraard zullen mislukken, nog steeds een goede oude DoS-aanval vertegenwoordigen, die niet op zo'n hoog niveau kan worden gestopt.

Om uw bedrijfsserver volledig te beveiligen met Zimbra OSE, kunt u een oplossing gebruiken zoals Fail2ban, een raamwerk dat de logboeken van informatiesystemen voortdurend kan controleren op herhaalde acties en de indringer kan blokkeren door de firewallinstellingen te wijzigen. Door op zo'n laag niveau te blokkeren, kunt u aanvallers uitschakelen in de fase van de IP-verbinding met de server. Fail2Ban kan dus een perfecte aanvulling zijn op de bescherming die is gebouwd met DoSFilter. Laten we eens kijken hoe u Fail2Ban kunt verbinden met Zimbra OSE en zo de beveiliging van de IT-infrastructuur van uw onderneming kunt vergroten.

Net als elke andere enterprise-class applicatie houdt Zimbra Collaboration Suite Open-Source Edition gedetailleerde logboeken bij van zijn werk. De meeste ervan worden in de map opgeslagen /opt/zimbra/log/ in de vorm van bestanden. Hier zijn er maar een paar:

  • mailbox.log — Logboeken van de Jetty-mailservice
  • audit.log - authenticatielogboeken
  • clamd.log — logbestanden van antivirusactiviteiten
  • freshclam.log - logboeken voor antivirusupdates
  • convertd.log — logboeken voor bijlageconversie
  • zimbrastats.csv - serverprestatielogboeken

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

Om ons systeem tegen brute kracht te beschermen, zullen we monitoren mailbox.log, audit.log и zimbra.log.

Om alles te laten werken is het noodzakelijk dat Fail2Ban en iptables op uw server met Zimbra OSE zijn geïnstalleerd. Als u Ubuntu gebruikt, kunt u dit doen met behulp van de opdrachten dpkg -s fail2banAls u CentOS gebruikt, kunt u dit controleren met behulp van de opdrachten yum lijst geïnstalleerd fail2ban. Als je Fail2Ban niet hebt geïnstalleerd, zal het installeren ervan geen probleem zijn, aangezien dit pakket in vrijwel alle standaardrepository's beschikbaar is.

Zodra alle benodigde software is geïnstalleerd, kunt u beginnen met het instellen van Fail2Ban. Om dit te doen, moet u een configuratiebestand maken /etc/fail2ban/filter.d/zimbra.conf, waarin we reguliere expressies zullen schrijven voor Zimbra OSE-logboeken die onjuiste inlogpogingen matchen en Fail2Ban-mechanismen activeren. Hier is een voorbeeld van de inhoud van zimbra.conf met een reeks reguliere expressies die overeenkomen met de verschillende fouten die Zimbra OSE genereert wanneer een authenticatiepoging mislukt:

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

Zodra de reguliere expressies voor Zimbra OSE zijn gecompileerd, is het tijd om de configuratie van Fail2ban zelf te gaan bewerken. De instellingen van dit hulpprogramma bevinden zich in het bestand /etc/fail2ban/jail.conf. Laten we, voor het geval dat, er een reservekopie van maken met behulp van de opdracht cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Daarna zullen we dit bestand verkleinen tot ongeveer 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, [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

Hoewel dit voorbeeld vrij algemeen is, is het toch de moeite waard om enkele parameters uit te leggen die u mogelijk wilt wijzigen als u Fail2Ban zelf instelt:

  • Negeer het — met deze parameter kunt u een specifiek IP-adres of subnet opgeven waarvandaan Fail2Ban geen adressen mag controleren. In de regel worden het interne netwerk van de onderneming en andere vertrouwde adressen toegevoegd aan de lijst met genegeerde adressen.
  • Bantime — De tijd waarvoor de overtreder wordt uitgesloten. Gemeten in seconden. Een waarde van -1 betekent een permanente ban.
  • Maxretry — Het maximale aantal keren dat één IP-adres kan proberen toegang te krijgen tot de server.
  • Sendmail — Een instelling waarmee u automatisch e-mailmeldingen kunt verzenden wanneer Fail2Ban wordt geactiveerd.
  • Vind tijd — Een instelling waarmee u het tijdsinterval kunt instellen waarna het IP-adres opnieuw kan proberen toegang te krijgen tot de server nadat het maximale aantal mislukte pogingen is bereikt (maxretry-parameter)

Nadat u het bestand met de Fail2Ban-instellingen hebt opgeslagen, hoeft u dit hulpprogramma alleen nog maar opnieuw op te starten met behulp van de opdracht service fail2ban opnieuw opstarten. Na het opnieuw opstarten worden de belangrijkste Zimbra-logboeken voortdurend gecontroleerd op naleving van reguliere expressies. Hierdoor kan de beheerder vrijwel elke mogelijkheid elimineren dat een aanvaller niet alleen de mailboxen van Zimbra Collaboration Suite Open-Source Edition binnendringt, maar ook alle services beschermen die binnen Zimbra OSE draaien, en zich ook bewust zijn van pogingen om ongeautoriseerde toegang te verkrijgen .

Voor alle vragen met betrekking tot Zextras Suite kunt u per e-mail contact opnemen met de vertegenwoordiger van Zextras Ekaterina Triandafilidi [e-mail beveiligd]

Bron: www.habr.com

Voeg een reactie