Protejați Zimbra OSE de forța brută și atacurile DoS

Zimbra Collaboration Suite Open-Source Edition are mai multe instrumente puternice pentru a asigura securitatea informațiilor. Printre ei Postscreen - o soluție pentru protejarea unui server de e-mail de atacurile de la botnet, ClamAV - un antivirus care poate scana fișierele și scrisorile primite pentru infectarea cu programe rău intenționate, precum și SpamAssassin - unul dintre cele mai bune filtre de spam de astăzi. Cu toate acestea, aceste instrumente nu pot proteja Zimbra OSE de atacurile de forță brută. Nu cele mai elegante, dar totuși destul de eficiente, parolele de forțare brută care utilizează un dicționar special sunt pline nu numai de probabilitatea de a pirata cu succes cu toate consecințele care decurg, ci și de crearea unei sarcini semnificative pe server, care procesează toate încercări nereușite de a pirata un server cu Zimbra OSE.

Protejați Zimbra OSE de forța brută și atacurile DoS

În principiu, vă puteți proteja de forța brută folosind instrumente standard Zimbra OSE. Setările politicii de securitate a parolei vă permit să setați numărul de încercări nereușite de introducere a parolei, după care contul potențial atacat este blocat. Principala problemă a acestei abordări este că apar situații în care conturile unuia sau mai multor angajați pot fi blocate din cauza unui atac de forță brută cu care nu au nicio legătură, iar timpul de nefuncționare care rezultă din munca angajaților poate aduce pierderi mari pentru Compania. De aceea, cel mai bine este să nu folosiți această opțiune de protecție împotriva forței brute.

Protejați Zimbra OSE de forța brută și atacurile DoS

Pentru a proteja împotriva forței brute, este mult mai potrivit un instrument special numit DoSFilter, care este încorporat în Zimbra OSE și poate opri automat conexiunea la Zimbra OSE prin HTTP. Cu alte cuvinte, principiul de funcționare al DoSFilter este similar cu principiul de funcționare al PostScreen, doar că este folosit pentru un alt protocol. Proiectat inițial pentru a limita numărul de acțiuni pe care le poate efectua un singur utilizator, DoSFilter poate oferi și protecție împotriva forței brute. Diferența sa esențială față de instrumentul încorporat în Zimbra este că, după un anumit număr de încercări nereușite, acesta nu blochează utilizatorul însuși, ci adresa IP de la care se fac mai multe încercări de conectare la un anumit cont. Datorită acestui fapt, un administrator de sistem nu poate doar să se protejeze împotriva forței brute, ci și să evite blocarea angajaților companiei prin simpla adăugare a rețelei interne a companiei sale la lista de adrese IP și subrețele de încredere.

Marele avantaj al DoSFilter este că, pe lângă numeroasele încercări de a vă conecta la un anumit cont, folosind acest instrument puteți bloca automat acei atacatori care au intrat în posesia datelor de autentificare ale unui angajat, apoi s-au conectat cu succes la contul său și au început să trimită sute de solicitări. la server.

Puteți configura DoSFilter folosind următoarele comenzi din consolă:

  • zimbraHttpDosFilterMaxRequestsPerSec — Folosind această comandă, puteți seta numărul maxim de conexiuni permise pentru un utilizator. În mod implicit, această valoare este de 30 de conexiuni.
  • zimbraHttpDosFilterDelayMillis - Folosind această comandă, puteți seta o întârziere în milisecunde pentru conexiunile care vor depăși limita specificată de comanda anterioară. Pe lângă valorile întregi, administratorul poate specifica 0, astfel încât să nu existe deloc întârziere, precum și -1, astfel încât toate conexiunile care depășesc limita specificată să fie pur și simplu întrerupte. Valoarea implicită este -1.
  • zimbraHttpThrottleSafeIPs — Folosind această comandă, administratorul poate specifica adrese IP și subrețele de încredere care nu vor fi supuse restricțiilor enumerate mai sus. Rețineți că sintaxa acestei comenzi poate varia în funcție de rezultatul dorit. Deci, de exemplu, introducând comanda zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, veți suprascrie complet întreaga listă și veți lăsa în ea o singură adresă IP. Dacă introduceți comanda zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, adresa IP pe care ați introdus-o va fi adăugată la lista albă. În mod similar, folosind semnul de scădere, puteți elimina orice IP din lista permisă.

Vă rugăm să rețineți că DoSFilter poate crea o serie de probleme atunci când utilizați extensiile Zextras Suite Pro. Pentru a le evita, vă recomandăm să creșteți numărul de conexiuni simultane de la 30 la 100 folosind comanda zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. În plus, vă recomandăm să adăugați rețeaua internă a întreprinderii la lista celor permise. Acest lucru se poate face folosind comanda zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. După ce faceți orice modificări în DoSFilter, asigurați-vă că reporniți serverul de e-mail folosind comanda reporniți zmmailboxdctl.

Principalul dezavantaj al DoSFilter este că funcționează la nivel de aplicație și, prin urmare, poate limita doar capacitatea atacatorilor de a efectua diverse acțiuni pe server, fără a limita capacitatea de a se conecta la nord. Din această cauză, cererile trimise către server pentru autentificare sau trimiterea de scrisori, deși vor eșua evident, vor reprezenta totuși un vechi atac DoS, care nu poate fi oprit la un nivel atât de înalt.

Pentru a vă securiza complet serverul corporativ cu Zimbra OSE, puteți utiliza o soluție precum Fail2ban, care este un cadru care poate monitoriza constant jurnalele sistemului de informații pentru acțiuni repetate și poate bloca intrusul prin modificarea setărilor paravanului de protecție. Blocarea la un nivel atât de scăzut vă permite să dezactivați atacatorii chiar în stadiul conexiunii IP la server. Astfel, Fail2Ban poate completa perfect protecția construită folosind DoSFilter. Să aflăm cum puteți conecta Fail2Ban cu Zimbra OSE și, prin urmare, creșteți securitatea infrastructurii IT a întreprinderii dumneavoastră.

Ca orice altă aplicație de clasă enterprise, Zimbra Collaboration Suite Open-Source Edition păstrează jurnalele detaliate ale activității sale. Cele mai multe dintre ele sunt stocate în folder /opt/zimbra/log/ sub formă de dosare. Iată doar câteva dintre ele:

  • mailbox.log — Jurnalele serviciului de e-mail de la debarcader
  • audit.log - jurnalele de autentificare
  • clamd.log — jurnalele de operare antivirus
  • freshclam.log - jurnalele de actualizare antivirus
  • convertd.log — jurnalele convertorului de atașamente
  • zimbrastats.csv - jurnalele de performanță ale serverului

Jurnalele Zimbra pot fi găsite și în fișier /var/log/zimbra.log, unde sunt păstrate jurnalele Postfix și Zimbra în sine.

Pentru a ne proteja sistemul de forța brută, vom monitoriza cutie poştală.log, Jurnal de audit и zimbra.log.

Pentru ca totul să funcționeze, este necesar ca Fail2Ban și iptables să fie instalate pe serverul tău cu Zimbra OSE. Dacă utilizați Ubuntu, puteți face acest lucru folosind comenzile dpkg -s fail2ban, dacă utilizați CentOS, puteți verifica acest lucru folosind comenzile lista yum instalată fail2ban. Dacă nu aveți instalat Fail2Ban, atunci instalarea acestuia nu va fi o problemă, deoarece acest pachet este disponibil în aproape toate depozitele standard.

Odată ce tot software-ul necesar este instalat, puteți începe configurarea Fail2Ban. Pentru a face acest lucru, trebuie să creați un fișier de configurare /etc/fail2ban/filter.d/zimbra.conf, în care vom scrie expresii regulate pentru jurnalele Zimbra OSE care se vor potrivi cu încercările de conectare incorecte și vor declanșa mecanismele Fail2Ban. Iată un exemplu de conținut al zimbra.conf cu un set de expresii regulate corespunzătoare diferitelor erori pe care Zimbra OSE le aruncă atunci când o încercare de autentificare eșuează:

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

Odată ce expresiile regulate pentru Zimbra OSE au fost compilate, este timpul să începeți editarea configurației lui Fail2ban în sine. Setările acestui utilitar se află în fișier /etc/fail2ban/jail.conf. Pentru orice eventualitate, să facem o copie de rezervă a acesteia folosind comanda cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. După aceea, vom reduce acest fișier la aproximativ următoarea 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

Deși acest exemplu este destul de generic, merită totuși explicați câțiva dintre parametrii pe care poate doriți să îi modificați atunci când configurați singur Fail2Ban:

  • Ignorați — folosind acest parametru puteți specifica o anumită IP sau o subrețea de la care Fail2Ban nu ar trebui să verifice adrese. De regulă, rețeaua internă a întreprinderii și alte adrese de încredere sunt adăugate la lista celor ignorate.
  • Bantime — Timpul pentru care infractorul va fi interzis. Măsurat în secunde. O valoare de -1 înseamnă un ban permanent.
  • Maxretry — Numărul maxim de ori când o adresă IP poate încerca să acceseze serverul.
  • sendmail — O setare care vă permite să trimiteți automat notificări prin e-mail când este declanșat Fail2Ban.
  • Găsește timp — O setare care vă permite să setați intervalul de timp după care adresa IP poate încerca să acceseze din nou serverul după ce numărul maxim de încercări nereușite a fost epuizat (parametru maxretry)

După salvarea fișierului cu setările Fail2Ban, tot ce rămâne este să reporniți acest utilitar folosind comanda repornirea serviciului fail2ban. După repornire, jurnalele principale Zimbra vor începe să fie monitorizate constant pentru conformitatea cu expresiile regulate. Datorită acestui fapt, administratorul va putea elimina practic orice posibilitate ca un atacator să pătrundă nu numai în cutiile poștale Zimbra Collaboration Suite Open-Source Edition, ci și să protejeze toate serviciile care rulează în Zimbra OSE și, de asemenea, să fie conștient de orice încercări de a obține acces neautorizat. .

Pentru toate întrebările legate de Zextras Suite, puteți contacta Reprezentantul Zextras Ekaterina Triandafilidi prin e-mail [e-mail protejat]

Sursa: www.habr.com

Adauga un comentariu