Beskytter Zimbra OSE mod brute force og DoS-angreb

Zimbra Collaboration Suite Open-Source Edition har flere kraftfulde informationssikkerhedsværktøjer i sit arsenal. Blandt dem Postscreen - en løsning til at beskytte mailserveren mod angreb fra botnets, ClamAV - et antivirus, der kan scanne indgående filer og breve for malware-infektion, samt SpamAssassin et af de bedste spamfiltre i dag. Disse værktøjer er dog ikke i stand til at beskytte Zimbra OSE mod denne type angreb, såsom brute force. Ikke den mest elegante, men stadig ret effektive brute force med adgangskode, der bruger en speciel ordbog, er fyldt med ikke kun sandsynligheden for et vellykket hack med alle de efterfølgende konsekvenser, men også med skabelsen af ​​en betydelig belastning på serveren, der behandler alle mislykkede forsøg at hacke serveren med Zimbra OSE.

Beskytter Zimbra OSE mod brute force og DoS-angreb

I princippet kan du beskytte dig selv mod brute force ved at bruge standard Zimbra OSE-værktøjer. Indstillinger for adgangskodesikkerhedspolitik giver dig mulighed for at indstille antallet af mislykkede forsøg på adgangskodeindtastning, hvorefter den potentielt angrebne konto blokeres. Hovedproblemet med denne tilgang er, at der er situationer, hvor en eller flere medarbejderes konti kan blive blokeret på grund af et brute force angreb, som de ikke har noget at gøre med, og den resulterende nedetid i medarbejdernes arbejde kan medføre store tab. til virksomheden. Derfor er det bedst ikke at bruge denne mulighed for beskyttelse mod brute force.

Beskytter Zimbra OSE mod brute force og DoS-angreb

For at beskytte mod brute force er et særligt værktøj kaldet DoSFilter meget bedre egnet, som er indbygget i Zimbra OSE og automatisk kan afbryde forbindelsen til Zimbra OSE via HTTP. Med andre ord, princippet om DoSFilter ligner princippet for PostScreen, kun det bruges til en anden protokol. Oprindeligt designet til at begrænse antallet af handlinger, en enkelt bruger kan udføre, kan DoSFilter også yde beskyttelse mod brute force. Dens vigtigste forskel fra værktøjet indbygget i Zimbra er, at efter et vist antal mislykkede forsøg blokerer det ikke brugeren selv, men IP-adressen, hvorfra der gøres flere forsøg på at logge ind på en eller anden konto. Takket være dette kan systemadministratoren ikke kun beskytte sig selv mod brute force, men også undgå at blokere virksomhedens medarbejdere ved blot at tilføje det interne netværk i sin virksomhed til listen over betroede IP-adresser og undernet.

Den store fordel ved DoSFilter er, at udover adskillige forsøg på at logge ind på en eller anden konto ved hjælp af dette værktøj, kan du automatisk blokere de ubudne gæster, der tog besiddelse af medarbejderens autentificeringsdata og derefter med succes loggede ind på hans konto og begyndte at sende hundredvis. af anmodninger til serveren.

Du kan konfigurere DoSFilter ved hjælp af følgende konsolkommandoer:

  • zimbraHttpDosFilterMaxRequestsPerSec - Med denne kommando kan du indstille det maksimale antal tilladte forbindelser pr. bruger. Som standard er denne værdi 30 forbindelser.
  • zimbraHttpDosFilterDelayMillis - Med denne kommando kan du indstille en forsinkelse i millisekunder for forbindelser, der overskrider grænsen angivet af den forrige kommando. Ud over heltalværdier kan administratoren angive 0 for slet ikke at have nogen forsinkelse, samt -1 for blot at afslutte alle forbindelser, der overskrider den angivne grænse. Som standard er denne værdi -1.
  • zimbraHttpThrottleSafeIPs - Ved hjælp af denne kommando kan administratoren angive betroede IP-adresser og undernet, som ikke vil blive påvirket af begrænsningerne ovenfor. Bemærk, at syntaksen for denne kommando kan variere afhængigt af det ønskede resultat. Altså for eksempel ved at indtaste kommandoen zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, vil du fuldstændigt overskrive hele listen og efterlade kun én IP-adresse i den. Hvis du indtaster kommandoen zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, vil den IP-adresse, du indtastede, blive tilføjet til hvidlisten. På samme måde kan du ved hjælp af subtraktionstegnet fjerne enhver IP fra den tilladte liste.

Bemærk, at DoSFilter kan skabe en række problemer, når du bruger Zextras Suite Pro-udvidelser. For at undgå dem anbefaler vi at øge antallet af samtidige forbindelser fra 30 til 100 ved hjælp af kommandoen zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Derudover anbefaler vi, at du tilføjer virksomhedens interne netværk til listen over tilladte. Du kan gøre dette med kommandoen zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Når du har foretaget ændringer i DoSFilter, skal du sørge for at genstarte mailserveren med kommandoen zmmailboxdctl genstart.

Den største ulempe ved DoSFilter er, at den fungerer på applikationsniveau og derfor kun kan begrænse angribernes mulighed for at udføre forskellige handlinger på serveren, uden at begrænse muligheden for at oprette forbindelse til serveren. På grund af dette vil anmodninger, der sendes til serveren for godkendelse eller afsendelse af breve, selvom de åbenbart mislykkes, stadig være et godt gammelt DoS-angreb, som ikke kan stoppes på så højt et niveau.

For fuldstændigt at sikre din virksomhedsserver med Zimbra OSE, kan du bruge en løsning som Fail2ban, som er en ramme, der konstant kan overvåge informationssystemlogs for gentagne handlinger og blokere den ubudne gæst ved at ændre firewall-indstillingerne. Blokering på et så lavt niveau giver dig mulighed for at deaktivere ubudne gæster lige på tidspunktet for IP-forbindelsen til serveren. Således kan Fail2Ban perfekt komplementere beskyttelsen bygget med DoSFilter. Lad os finde ud af, hvordan du kan blive venner med Fail2Ban Zimbra OSE og derved øge sikkerheden i din virksomheds IT-infrastruktur.

Som enhver anden applikation i virksomhedsklassen opbevarer Zimbra Collaboration Suite Open-Source Edition detaljerede logfiler over sit arbejde. De fleste af dem er gemt i mappen /opt/zimbra/log/ i form af filer. Her er blot nogle få af dem:

  • mailbox.log - Jetty mail service logs
  • audit.log - godkendelseslogfiler
  • clamd.log - antivirus operationslogfiler
  • freshclam.log - antivirusopdateringslogfiler
  • convertd.log - vedhæftede konverterlogfiler
  • zimbrastats.csv - server performance logs

Også Zimbra-logfiler kan findes i filen /var/log/zimbra.log, hvor loggene for Postfix og Zimbra selv opbevares.

For at beskytte vores system mod brute force, vil vi overvåge mailbox.log, revision.log и zimbra.log.

For at alt kan fungere, skal du have Fail2Ban og iptables installeret på din Zimbra OSE-server. I tilfælde af at du bruger Ubuntu, kan du gøre dette ved hjælp af kommandoerne dpkg -s fail2ban, hvis du bruger CentOS, så kan du kontrollere dette ved hjælp af kommandoerne yum liste installeret fail2ban. I tilfælde af at du ikke har Fail2Ban installeret, så vil installationen ikke være et problem, da denne pakke findes i næsten alle standarddepoter.

Når al den nødvendige software er installeret, kan du begynde at konfigurere Fail2Ban. For at gøre dette skal du oprette en konfigurationsfil /etc/fail2ban/filter.d/zimbra.conf, hvori vi skriver regulære udtryk for Zimbra OSE-logfilerne, som vil matche ugyldige loginforsøg og udløse Fail2Ban-mekanismerne. Her er et eksempel på indholdet af zimbra.conf med et sæt regulære udtryk, der svarer til forskellige fejl, der udstedes i Zimbra OSE, når et autentificeringsforsøg 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 =

Efter de regulære udtryk for Zimbra OSE er kompileret, er det tid til at begynde at redigere konfigurationen af ​​selve Fail2ban. Indstillingerne for dette hjælpeprogram findes i filen /etc/fail2ban/jail.conf. For en sikkerheds skyld laver vi en sikkerhedskopi af den ved hjælp af kommandoen cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Derefter vil vi bringe denne fil til følgende formular:

# 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

Selvom dette eksempel er ret generisk, er det værd at forklare nogle af de indstillinger, du måske vil ændre, når du selv konfigurerer Fail2Ban:

  • Ignoreip - ved at bruge denne parameter kan du angive en specifik ip eller subnet, adresser, hvorfra Fail2Ban ikke skal kontrolleres. Som regel føjes virksomhedens interne netværk og andre betroede adresser til listen over ignorerede.
  • Bantime - Tidspunktet, for hvilket gerningsmanden vil blive udelukket. Målt i sekunder. En værdi på -1 betyder et forbud på ubestemt tid.
  • maxretry - Det maksimale antal gange, en ip-adresse kan forsøge at få adgang til serveren.
  • Send mail - En indstilling, der giver dig mulighed for automatisk at sende e-mail-meddelelser om driften af ​​Fail2Ban.
  • Find tid - En indstilling, der giver dig mulighed for at indstille det tidsinterval, hvorefter ip-adressen igen kan forsøge at få adgang til serveren, efter at det maksimale antal mislykkede forsøg er opbrugt (maxretry parameter)

Efter at have gemt filen med Fail2Ban-indstillingerne, er det kun tilbage at genstarte dette værktøj ved hjælp af kommandoen service fail2ban genstart. Efter genstart vil de vigtigste Zimbra-logfiler konstant blive overvåget for regulære udtryk. Takket være dette vil administratoren være i stand til praktisk talt at eliminere enhver mulighed for, at en hacker trænger ind i ikke kun Zimbra Collaboration Suite Open-Source Edition-postkasser, men også beskytte alle tjenester, der kører i Zimbra OSE, og være opmærksom på ethvert forsøg på at få uautoriseret adgang .

For alle spørgsmål relateret til Zextras Suite, kan du kontakte repræsentanten for Zextras Ekaterina Triandafilidi via e-mail [e-mail beskyttet]

Kilde: www.habr.com

Tilføj en kommentar