Aizsargājiet Zimbra OSE no brutāla spēka un DoS uzbrukumiem

Zimbra Collaboration Suite Open-Source Edition ir vairāki spēcīgi rīki, lai nodrošinātu informācijas drošību. Starp viņiem Postscreen - risinājums pasta servera aizsardzībai pret robottīklu uzbrukumiem, ClamAV - antivīruss, kas var skenēt ienākošos failus un vēstules, lai konstatētu inficēšanos ar ļaunprātīgām programmām, kā arī SpamAssassin - viens no šodienas labākajiem surogātpasta filtriem. Tomēr šie rīki nespēj aizsargāt Zimbra OSE no brutāla spēka uzbrukumiem. Ne tās elegantākās, bet tomēr diezgan efektīvās brutālās paroles, izmantojot īpašu vārdnīcu, ir saistītas ne tikai ar veiksmīgas uzlaušanas iespējamību ar visām no tā izrietošajām sekām, bet arī ar ievērojamas slodzes radīšanu serverī, kas apstrādā visu. neveiksmīgi mēģinājumi uzlauzt serveri ar Zimbra OSE.

Aizsargājiet Zimbra OSE no brutāla spēka un DoS uzbrukumiem

Principā jūs varat pasargāt sevi no brutāla spēka, izmantojot standarta Zimbra OSE rīkus. Paroles drošības politikas iestatījumi ļauj iestatīt neveiksmīgo paroles ievadīšanas mēģinājumu skaitu, pēc kuriem potenciāli uzbrukušais konts tiek bloķēts. Šīs pieejas galvenā problēma ir tāda, ka rodas situācijas, kurās var tikt bloķēti viena vai vairāku darbinieku konti rupja spēka uzbrukuma dēļ, kuram viņiem nav ko darīt, un no tā izrietošā dīkstāve darbinieku darbā var radīt lielus zaudējumus. kompānija. Tāpēc labāk neizmantot šo aizsardzības pret brutālu spēku iespēju.

Aizsargājiet Zimbra OSE no brutāla spēka un DoS uzbrukumiem

Lai aizsargātu pret brutālu spēku, daudz labāk ir piemērots īpašs rīks ar nosaukumu DoSFilter, kas ir iebūvēts Zimbra OSE un var automātiski pārtraukt savienojumu ar Zimbra OSE, izmantojot HTTP. Citiem vārdiem sakot, DoSFilter darbības princips ir līdzīgs PostScreen darbības principam, tikai tas tiek izmantots citam protokolam. Sākotnēji izstrādāts, lai ierobežotu darbību skaitu, ko var veikt viens lietotājs, DoSFilter var nodrošināt arī aizsardzību pret brutālu spēku. Tā galvenā atšķirība no Zimbra iebūvētā rīka ir tāda, ka pēc noteikta skaita neveiksmīgiem mēģinājumiem tas bloķē nevis pašu lietotāju, bet gan IP adresi, no kuras tiek veikti vairāki mēģinājumi pieteikties konkrētajā kontā. Pateicoties tam, sistēmas administrators var ne tikai aizsargāties pret brutālu spēku, bet arī izvairīties no uzņēmuma darbinieku bloķēšanas, vienkārši pievienojot sava uzņēmuma iekšējo tīklu uzticamo IP adrešu un apakštīklu sarakstam.

DoSFilter lielā priekšrocība ir tā, ka papildus daudziem mēģinājumiem pieteikties noteiktā kontā, izmantojot šo rīku, jūs varat automātiski bloķēt tos uzbrucējus, kuri pārņēma darbinieka autentifikācijas datus un pēc tam veiksmīgi pieteicās viņa kontā un sāka sūtīt simtiem pieprasījumu. uz serveri.

DoSFilter var konfigurēt, izmantojot šādas konsoles komandas:

  • zimbraHttpDosFilterMaxRequestsPerSec — Izmantojot šo komandu, varat iestatīt maksimālo vienam lietotājam atļauto savienojumu skaitu. Pēc noklusējuma šī vērtība ir 30 savienojumi.
  • zimbraHttpDosFilterDelayMillis - Izmantojot šo komandu, varat iestatīt aizkavi milisekundēs savienojumiem, kas pārsniegs iepriekšējā komandā norādīto ierobežojumu. Papildus veselu skaitļu vērtībām administrators var norādīt 0, lai vispār nebūtu aizkaves, un -1, lai visi savienojumi, kas pārsniedz noteikto ierobežojumu, tiktu vienkārši pārtraukti. Noklusējuma vērtība ir -1.
  • zimbraHttpThrottleSafeIP — Izmantojot šo komandu, administrators var norādīt uzticamas IP adreses un apakštīklus, uz kuriem netiks attiecināti iepriekš minētie ierobežojumi. Ņemiet vērā, ka šīs komandas sintakse var atšķirties atkarībā no vēlamā rezultāta. Tā, piemēram, ievadot komandu zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, jūs pilnībā pārrakstīsit visu sarakstu un atstāsiet tajā tikai vienu IP adresi. Ja ievadāt komandu zmprov mcf +zimbraHttpThrottleSafeIP 127.0.0.1, ievadītā IP adrese tiks pievienota baltajam sarakstam. Tāpat, izmantojot atņemšanas zīmi, jūs varat noņemt jebkuru IP no atļautā saraksta.

Lūdzu, ņemiet vērā, ka DoSFilter var radīt vairākas problēmas, izmantojot Zextras Suite Pro paplašinājumus. Lai no tiem izvairītos, mēs iesakām palielināt vienlaicīgo savienojumu skaitu no 30 līdz 100, izmantojot komandu zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. Turklāt mēs iesakām atļauto tīklu sarakstam pievienot uzņēmuma iekšējo tīklu. To var izdarīt, izmantojot komandu zmprov mcf +zimbraHttpThrottleSafeIP 192.168.0.0/24. Pēc DoSFilter izmaiņu veikšanas noteikti restartējiet pasta serveri, izmantojot komandu zmmailboxdctl restartējiet.

Galvenais DoSFilter trūkums ir tas, ka tas darbojas lietojumprogrammu līmenī un tāpēc var tikai ierobežot uzbrucēju iespējas veikt dažādas darbības serverī, neierobežojot iespēju izveidot savienojumu ar ziemeļiem. Šī iemesla dēļ serverim nosūtītie autentifikācijas vai vēstuļu sūtīšanas pieprasījumi, lai arī tie acīmredzami neizdosies, joprojām būs vecais, labais DoS uzbrukums, kuru nevar apturēt tik augstā līmenī.

Lai pilnībā aizsargātu savu korporatīvo serveri ar Zimbra OSE, varat izmantot tādu risinājumu kā Fail2ban, kas ir ietvars, kas var pastāvīgi uzraudzīt informācijas sistēmas žurnālus atkārtotām darbībām un bloķēt iebrucēju, mainot ugunsmūra iestatījumus. Bloķēšana tik zemā līmenī ļauj atspējot uzbrucējus tieši IP savienojuma posmā ar serveri. Tādējādi Fail2Ban var lieliski papildināt aizsardzību, kas izveidota, izmantojot DoSFilter. Noskaidrosim, kā jūs varat savienot Fail2Ban ar Zimbra OSE un tādējādi palielināt sava uzņēmuma IT infrastruktūras drošību.

Tāpat kā jebkura cita uzņēmuma klases lietojumprogramma, Zimbra Collaboration Suite Open-Source Edition glabā detalizētus žurnālus par savu darbu. Lielākā daļa no tiem tiek saglabāti mapē /opt/zimbra/log/ failu veidā. Šeit ir tikai daži no tiem:

  • mailbox.log — Jetty pasta pakalpojumu žurnāli
  • audit.log - autentifikācijas žurnāli
  • clamd.log — pretvīrusu darbību žurnāli
  • freshclam.log — pretvīrusu atjaunināšanas žurnāli
  • convertd.log — pielikumu pārveidotāja žurnāli
  • zimbrastats.csv — servera veiktspējas žurnāli

Zimbra žurnālus var atrast arī failā /var/log/zimbra.log, kur tiek glabāti Postfix un pašas Zimbra žurnāli.

Lai aizsargātu mūsu sistēmu no brutāla spēka, mēs uzraudzīsim pastkaste.log, audit.log и zimbra.log.

Lai viss darbotos, jūsu serverī ar Zimbra OSE ir nepieciešams instalēt Fail2Ban un iptables. Ja izmantojat Ubuntu, varat to izdarīt, izmantojot komandas dpkg -s fail2ban, ja izmantojat CentOS, varat to pārbaudīt, izmantojot komandas yum saraksts instalēts fail2ban. Ja jums nav instalēts Fail2Ban, tā instalēšana nebūs problēma, jo šī pakotne ir pieejama gandrīz visās standarta krātuvēs.

Kad visa nepieciešamā programmatūra ir instalēta, varat sākt Fail2Ban iestatīšanu. Lai to izdarītu, jums ir jāizveido konfigurācijas fails /etc/fail2ban/filter.d/zimbra.conf, kurā mēs rakstīsim regulāras izteiksmes Zimbra OSE žurnāliem, kas atbildīs nepareiziem pieteikšanās mēģinājumiem un aktivizēs Fail2Ban mehānismus. Šeit ir faila zimbra.conf satura piemērs ar regulāro izteiksmju kopu, kas atbilst dažādām kļūdām, kuras Zimbra OSE rada, ja autentifikācijas mēģinājums neizdodas:

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

Kad Zimbra OSE regulārās izteiksmes ir apkopotas, ir pienācis laiks sākt rediģēt pašas Fail2ban konfigurāciju. Šīs utilītas iestatījumi atrodas failā /etc/fail2ban/jail.conf. Katram gadījumam, izmantojot komandu, izveidosim tā rezerves kopiju cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Pēc tam mēs reducēsim šo failu līdz aptuveni šādai formai:

# 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

Lai gan šis piemērs ir diezgan vispārīgs, tomēr ir vērts izskaidrot dažus parametrus, kurus, iespējams, vēlēsities mainīt, pats iestatot Fail2Ban:

  • Ignorēt — izmantojot šo parametru, varat norādīt konkrētu IP vai apakštīklu, no kura Fail2Ban nevajadzētu pārbaudīt adreses. Parasti ignorēto sarakstam tiek pievienots uzņēmuma iekšējais tīkls un citas uzticamas adreses.
  • Bantime — Laiks, uz kuru likumpārkāpējam tiks piemērots aizliegums. Mērīts sekundēs. Vērtība -1 nozīmē pastāvīgu aizliegumu.
  • Maksretrija — Maksimālais reižu skaits, kad viena IP adrese var mēģināt piekļūt serverim.
  • Nosūtīt pastu — Iestatījums, kas ļauj automātiski nosūtīt e-pasta paziņojumus, kad tiek aktivizēts Fail2Ban.
  • Atrast laiku — Iestatījums, kas ļauj iestatīt laika intervālu, pēc kura IP adrese var mēģināt vēlreiz piekļūt serverim pēc tam, kad ir izsmelts maksimālais neveiksmīgo mēģinājumu skaits (maksimālā mēģinājuma parametrs)

Pēc faila saglabāšanas ar Fail2Ban iestatījumiem atliek tikai restartēt šo utilītu, izmantojot komandu pakalpojuma fail2ban restartēšana. Pēc restartēšanas sāks pastāvīgi uzraudzīt galveno Zimbra žurnālu atbilstību regulārajām izteiksmēm. Pateicoties tam, administrators varēs praktiski novērst jebkādu iespēju, ka uzbrucējs varētu iekļūt ne tikai Zimbra Collaboration Suite Open-Source Edition pastkastēs, bet arī aizsargāt visus pakalpojumus, kas darbojas Zimbra OSE, kā arī apzināties jebkādus mēģinājumus iegūt nesankcionētu piekļuvi. .

Par visiem jautājumiem, kas saistīti ar Zextras Suite, varat sazināties ar Zextras pārstāvi Jekaterinu Triandafilidi pa e-pastu katerina@zextras.com

Avots: www.habr.com

Pievieno komentāru