Beskytt Zimbra OSE mot brute force og DoS-angrep

Zimbra Collaboration Suite Open-Source Edition har flere kraftige verktøy for å sikre informasjonssikkerhet. Blant dem Postscreen - en løsning for å beskytte en e-postserver mot angrep fra botnett, ClamAV - et antivirus som kan skanne innkommende filer og brev for infeksjon med skadelige programmer, samt SpamAssassin - et av de beste spamfiltrene i dag. Disse verktøyene er imidlertid ikke i stand til å beskytte Zimbra OSE mot brute force-angrep. Ikke de mest elegante, men likevel ganske effektive, brute-tvingende passordene ved hjelp av en spesiell ordbok er fulle av ikke bare sannsynligheten for vellykket hacking med alle påfølgende konsekvenser, men også med etableringen av en betydelig belastning på serveren, som behandler alle mislykkede forsøk på å hacke en server med Zimbra OSE.

Beskytt Zimbra OSE mot brute force og DoS-angrep

I prinsippet kan du beskytte deg mot brute force ved å bruke standard Zimbra OSE-verktøy. Innstillingene for passordsikkerhetspolicy lar deg angi antall mislykkede forsøk på passordinntasting, hvoretter den potensielt angrepne kontoen blokkeres. Hovedproblemet med denne tilnærmingen er at det oppstår situasjoner der kontoene til en eller flere ansatte kan bli blokkert på grunn av et brute force angrep som de ikke har noe å gjøre med, og den resulterende nedetiden i arbeidet til ansatte kan føre til store tap for firmaet. Det er derfor det er best å ikke bruke dette alternativet for beskyttelse mot brute force.

Beskytt Zimbra OSE mot brute force og DoS-angrep

For å beskytte mot brute force er et spesialverktøy kalt DoSFilter mye bedre egnet, som er innebygd i Zimbra OSE og kan automatisk avslutte forbindelsen til Zimbra OSE via HTTP. Med andre ord er driftsprinsippet til DoSFilter likt driftsprinsippet til PostScreen, bare det brukes for en annen protokoll. Opprinnelig designet for å begrense antall handlinger en enkelt bruker kan utføre, kan DoSFilter også gi brute force-beskyttelse. Den viktigste forskjellen fra verktøyet innebygd i Zimbra er at etter et visst antall mislykkede forsøk, blokkerer det ikke brukeren selv, men IP-adressen som det gjøres flere forsøk på å logge på en bestemt konto fra. Takket være dette kan en systemadministrator ikke bare beskytte mot brute force, men også unngå å blokkere selskapets ansatte ved ganske enkelt å legge til det interne nettverket til selskapet hans til listen over pålitelige IP-adresser og subnett.

Den store fordelen med DoSFilter er at i tillegg til mange forsøk på å logge på en bestemt konto, kan du ved å bruke dette verktøyet automatisk blokkere de angriperne som tok besittelse av en ansatts autentiseringsdata, og deretter logget på kontoen hans og begynte å sende hundrevis av forespørsler. til serveren.

Du kan konfigurere DoSFilter ved å bruke følgende konsollkommandoer:

  • zimbraHttpDosFilterMaxRequestsPerSec — Ved å bruke denne kommandoen kan du angi maksimalt antall tilkoblinger som er tillatt for én bruker. Som standard er denne verdien 30 tilkoblinger.
  • zimbraHttpDosFilterDelayMillis - Ved å bruke denne kommandoen kan du angi en forsinkelse i millisekunder for tilkoblinger som overskrider grensen spesifisert av forrige kommando. I tillegg til heltallsverdier kan administratoren spesifisere 0, slik at det ikke er noen forsinkelse i det hele tatt, og -1, slik at alle tilkoblinger som overskrider den angitte grensen bare blir avbrutt. Standardverdien er -1.
  • zimbraHttpThrottleSafeIPs — Ved å bruke denne kommandoen kan administratoren spesifisere pålitelige IP-adresser og subnett som ikke vil være underlagt begrensningene som er oppført ovenfor. Merk at syntaksen til denne kommandoen kan variere avhengig av ønsket resultat. Så for eksempel ved å skrive inn kommandoen zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, vil du fullstendig overskrive hele listen og la bare én IP-adresse stå i den. Hvis du skriver inn kommandoen zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, vil IP-adressen du skrev inn bli lagt til hvitelisten. På samme måte, ved å bruke subtraksjonstegnet, kan du fjerne enhver IP fra den tillatte listen.

Vær oppmerksom på at DoSFilter kan skape en rekke problemer ved bruk av Zextras Suite Pro-utvidelser. For å unngå dem anbefaler vi å øke antall samtidige tilkoblinger fra 30 til 100 ved å bruke kommandoen zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. I tillegg anbefaler vi å legge til bedriftens interne nettverk til listen over tillatte. Dette kan gjøres ved å bruke kommandoen zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Etter å ha gjort endringer i DoSFilter, sørg for å starte e-postserveren på nytt ved å bruke kommandoen zmmailboxdctl omstart.

Den største ulempen med DoSFilter er at den fungerer på applikasjonsnivå og derfor kun kan begrense muligheten for angripere til å utføre ulike handlinger på serveren, uten å begrense muligheten til å koble til nord. På grunn av dette vil forespørsler sendt til serveren for autentisering eller sending av brev, selv om de åpenbart mislykkes, fortsatt representere et godt gammelt DoS-angrep, som ikke kan stoppes på et så høyt nivå.

For å fullstendig sikre bedriftsserveren din med Zimbra OSE, kan du bruke en løsning som Fail2ban, som er et rammeverk som hele tiden kan overvåke informasjonssystemlogger for gjentatte handlinger og blokkere inntrengeren ved å endre brannmurinnstillingene. Blokkering på et så lavt nivå lar deg deaktivere angripere rett på stadiet av IP-tilkobling til serveren. Dermed kan Fail2Ban perfekt utfylle beskyttelsen bygget ved hjelp av DoSFilter. La oss finne ut hvordan du kan koble Fail2Ban til Zimbra OSE og dermed øke sikkerheten til bedriftens IT-infrastruktur.

Som alle andre applikasjoner i bedriftsklassen, fører Zimbra Collaboration Suite Open-Source Edition detaljerte logger over arbeidet. De fleste av dem er lagret i mappen /opt/zimbra/log/ i form av filer. Her er bare noen av dem:

  • mailbox.log — bryggeposttjenestelogger
  • audit.log - autentiseringslogger
  • clamd.log — antivirus operasjonslogger
  • freshclam.log - antivirusoppdateringslogger
  • convertd.log — vedleggskonverteringslogger
  • zimbrastats.csv - serverytelseslogger

Zimbra-logger finnes også i filen /var/log/zimbra.log, hvor logger over Postfix og selve Zimbra oppbevares.

For å beskytte systemet vårt mot brute force, vil vi overvåke mailbox.log, revisjonslogg и zimbra.log.

For at alt skal fungere, er det nødvendig at Fail2Ban og iptables er installert på serveren din med Zimbra OSE. Hvis du bruker Ubuntu, kan du gjøre dette ved å bruke kommandoene dpkg -s fail2ban, hvis du bruker CentOS, kan du sjekke dette ved å bruke kommandoene yum list installert fail2ban. Hvis du ikke har installert Fail2Ban, vil det ikke være noe problem å installere det, siden denne pakken er tilgjengelig i nesten alle standard depoter.

Når all nødvendig programvare er installert, kan du begynne å sette opp Fail2Ban. For å gjøre dette må du opprette en konfigurasjonsfil /etc/fail2ban/filter.d/zimbra.conf, der vi vil skrive regulære uttrykk for Zimbra OSE-logger som vil matche feil påloggingsforsøk og utløse Fail2Ban-mekanismer. Her er et eksempel på innholdet i zimbra.conf med et sett med regulære uttrykk som tilsvarer de forskjellige feilene som Zimbra OSE kaster når et autentiseringsforsøk mislykkes:

# 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 regulære uttrykkene for Zimbra OSE er kompilert, er det på tide å begynne å redigere konfigurasjonen av selve Fail2ban. Innstillingene til dette verktøyet er plassert i filen /etc/fail2ban/jail.conf. Bare i tilfelle, la oss lage en sikkerhetskopi av den ved å bruke kommandoen cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Etter det vil vi redusere denne filen til omtrent følgende form:

# 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

Selv om dette eksemplet er ganske generisk, er det likevel verdt å forklare noen av parameterne som du kanskje vil endre når du setter opp Fail2Ban selv:

  • Ignoreip — ved å bruke denne parameteren kan du spesifisere en spesifikk ip eller subnett som Fail2Ban ikke skal sjekke adresser fra. Som regel legges det interne nettverket til bedriften og andre pålitelige adresser til listen over ignorerte.
  • Bantime — Tiden som lovbryteren blir utestengt for. Målt i sekunder. En verdi på -1 betyr et permanent forbud.
  • Maxretry — Maksimalt antall ganger én IP-adresse kan prøve å få tilgang til serveren.
  • Sendmail — En innstilling som lar deg sende e-postvarsler automatisk når Fail2Ban utløses.
  • Finn tid — En innstilling som lar deg angi tidsintervallet etter hvilket IP-adressen kan prøve å få tilgang til serveren igjen etter at maksimalt antall mislykkede forsøk er oppbrukt (maxretry-parameter)

Etter å ha lagret filen med Fail2Ban-innstillingene, gjenstår det bare å starte dette verktøyet på nytt ved å bruke kommandoen tjeneste fail2ban omstart. Etter omstart vil Zimbra-hovedloggene begynne å bli konstant overvåket for samsvar med vanlige uttrykk. Takket være dette vil administratoren praktisk talt kunne eliminere enhver mulighet for at en angriper trenger ikke bare inn i Zimbra Collaboration Suite Open-Source Edition postbokser, men også beskytte alle tjenester som kjører i Zimbra OSE, og også være oppmerksom på eventuelle forsøk på å få uautorisert tilgang .

For alle spørsmål relatert til Zextras Suite, kan du kontakte representanten for Zextras Ekaterina Triandafilidi på e-post [e-postbeskyttet]

Kilde: www.habr.com

Legg til en kommentar