Protégez Zimbra OSE contre les attaques par force brute et DoS

Zimbra Collaboration Suite Open-Source Edition dispose de plusieurs outils puissants pour garantir la sécurité des informations. Parmi eux Post-écran - une solution pour protéger un serveur de messagerie contre les attaques de botnets, ClamAV - un antivirus capable d'analyser les fichiers et les lettres entrants à la recherche d'infections par des programmes malveillants, ainsi que SpamAssassin - l'un des meilleurs filtres anti-spam aujourd'hui. Cependant, ces outils ne sont pas en mesure de protéger Zimbra OSE des attaques par force brute. Pas le mot de passe le plus élégant, mais néanmoins assez efficace, le forçage brutal des mots de passe à l'aide d'un dictionnaire spécial comporte non seulement la probabilité d'un piratage réussi avec toutes les conséquences qui en découlent, mais également la création d'une charge importante sur le serveur, qui traite tout. tentatives infructueuses de pirater un serveur avec Zimbra OSE.

Protégez Zimbra OSE contre les attaques par force brute et DoS

En principe, vous pouvez vous protéger de la force brute à l'aide des outils standard de Zimbra OSE. Les paramètres de la politique de sécurité des mots de passe vous permettent de définir le nombre de tentatives infructueuses de saisie du mot de passe, après quoi le compte potentiellement attaqué est bloqué. Le principal problème de cette approche est que des situations surviennent dans lesquelles les comptes d'un ou plusieurs employés peuvent être bloqués en raison d'une attaque par force brute dans laquelle ils n'ont rien à voir, et le temps d'arrêt qui en résulte dans le travail des employés peut entraîner des pertes importantes. l'entreprise. C'est pourquoi il est préférable de ne pas utiliser cette option de protection contre la force brute.

Protégez Zimbra OSE contre les attaques par force brute et DoS

Pour se protéger contre la force brute, un outil spécial appelé DoSFilter est bien mieux adapté, intégré à Zimbra OSE et peut mettre automatiquement fin à la connexion à Zimbra OSE via HTTP. En d’autres termes, le principe de fonctionnement de DoSFilter est similaire à celui de PostScreen, sauf qu’il est utilisé pour un protocole différent. Conçu à l'origine pour limiter le nombre d'actions qu'un seul utilisateur peut effectuer, DoSFilter peut également fournir une protection contre la force brute. Sa principale différence avec l'outil intégré à Zimbra est qu'après un certain nombre de tentatives infructueuses, il ne bloque pas l'utilisateur lui-même, mais l'adresse IP à partir de laquelle plusieurs tentatives de connexion à un compte particulier sont effectuées. Grâce à cela, un administrateur système peut non seulement se protéger contre la force brute, mais également éviter de bloquer les employés de l'entreprise en ajoutant simplement le réseau interne de son entreprise à la liste des adresses IP et sous-réseaux de confiance.

Le gros avantage de DoSFilter est qu'en plus des nombreuses tentatives de connexion à un compte particulier, cet outil vous permet de bloquer automatiquement les attaquants qui ont pris possession des données d'authentification d'un employé, puis se sont connectés avec succès à son compte et ont commencé à envoyer des centaines de demandes. au serveur.

Vous pouvez configurer DoSFilter à l'aide des commandes de console suivantes :

  • zimbraHttpDosFilterMaxRequestsPerSec — À l'aide de cette commande, vous pouvez définir le nombre maximum de connexions autorisées pour un utilisateur. Par défaut, cette valeur est de 30 connexions.
  • zimbraHttpDosFilterDelayMillis - À l'aide de cette commande, vous pouvez définir un délai en millisecondes pour les connexions qui dépasseront la limite spécifiée par la commande précédente. En plus des valeurs entières, l'administrateur peut spécifier 0, pour qu'il n'y ait aucun délai, et -1, pour que toutes les connexions dépassant la limite spécifiée soient simplement interrompues. La valeur par défaut est -1.
  • zimbraHttpThrottleSafeIPs — À l'aide de cette commande, l'administrateur peut spécifier des adresses IP et des sous-réseaux de confiance qui ne seront pas soumis aux restrictions répertoriées ci-dessus. Notez que la syntaxe de cette commande peut varier en fonction du résultat souhaité. Ainsi, par exemple, en entrant la commande zmprov mcf zimbraHttpThrottleSafeIPs 127.0.0.1, vous écraserez complètement toute la liste et n’y laisserez qu’une seule adresse IP. Si vous entrez la commande zmprov mcf +zimbraHttpThrottleSafeIPs 127.0.0.1, l'adresse IP que vous avez saisie sera ajoutée à la liste blanche. De même, en utilisant le signe de soustraction, vous pouvez supprimer n'importe quelle adresse IP de la liste autorisée.

Veuillez noter que DoSFilter peut créer un certain nombre de problèmes lors de l'utilisation des extensions Zextras Suite Pro. Afin de les éviter, nous recommandons d'augmenter le nombre de connexions simultanées de 30 à 100 à l'aide de la commande zmprov mcf zimbraHttpDosFilterMaxRequestsPerSec 100. De plus, nous vous recommandons d'ajouter le réseau interne de l'entreprise à la liste des réseaux autorisés. Cela peut être fait en utilisant la commande zmprov mcf +zimbraHttpThrottleSafeIPs 192.168.0.0/24. Après avoir apporté des modifications à DoSFilter, assurez-vous de redémarrer votre serveur de messagerie à l'aide de la commande redémarrage de zmmailboxdctl.

Le principal inconvénient de DoSFilter est qu'il fonctionne au niveau de l'application et ne peut donc que limiter la capacité des attaquants à effectuer diverses actions sur le serveur, sans limiter la possibilité de se connecter au nord. De ce fait, les demandes envoyées au serveur pour s'authentifier ou envoyer des lettres, même si elles échoueront évidemment, représenteront toujours une bonne vieille attaque DoS, qui ne peut être arrêtée à un niveau aussi élevé.

Afin de sécuriser complètement votre serveur d'entreprise avec Zimbra OSE, vous pouvez utiliser une solution telle que Fail2ban, qui est un framework capable de surveiller en permanence les journaux du système d'information pour les actions répétées et de bloquer l'intrus en modifiant les paramètres du pare-feu. Le blocage à un niveau aussi bas vous permet de désactiver les attaquants dès la phase de connexion IP au serveur. Ainsi, Fail2Ban peut parfaitement compléter la protection construite à l'aide de DoSFilter. Découvrons comment vous pouvez connecter Fail2Ban à Zimbra OSE et ainsi augmenter la sécurité de l'infrastructure informatique de votre entreprise.

Comme toute autre application d'entreprise, Zimbra Collaboration Suite Open-Source Edition conserve des journaux détaillés de son travail. La plupart d'entre eux sont stockés dans le dossier /opt/zimbra/log/ sous forme de fichiers. Voici quelques-uns d'entre eux:

  • mailbox.log — Journaux du service de messagerie Jetty
  • audit.log - journaux d'authentification
  • clamd.log — journaux d'opérations antivirus
  • freshclam.log - journaux de mise à jour antivirus
  • convertd.log — journaux du convertisseur de pièces jointes
  • zimbrastats.csv - journaux de performances du serveur

Les journaux Zimbra peuvent également être trouvés dans le fichier /var/log/zimbra.log, où sont conservés les journaux de Postfix et de Zimbra lui-même.

Afin de protéger notre système de la force brute, nous surveillerons boîte aux lettres.log, audit.log и zimbra.log.

Pour que tout fonctionne, il faut que Fail2Ban et iptables soient installés sur votre serveur avec Zimbra OSE. Si vous utilisez Ubuntu, vous pouvez le faire en utilisant les commandes dpkg -s fail2ban, si vous utilisez CentOS, vous pouvez le vérifier à l'aide des commandes miam liste installée fail2ban. Si Fail2Ban n'est pas installé, son installation ne posera pas de problème, car ce package est disponible dans presque tous les référentiels standard.

Une fois tous les logiciels nécessaires installés, vous pouvez commencer à configurer Fail2Ban. Pour ce faire, vous devez créer un fichier de configuration /etc/fail2ban/filter.d/zimbra.conf, dans lequel nous écrirons des expressions régulières pour les journaux Zimbra OSE qui correspondront aux tentatives de connexion incorrectes et déclencheront les mécanismes Fail2Ban. Voici un exemple du contenu de zimbra.conf avec un ensemble d'expressions régulières correspondant aux différentes erreurs que Zimbra OSE renvoie lorsqu'une tentative d'authentification échoue :

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

Une fois les expressions régulières pour Zimbra OSE compilées, il est temps de commencer à éditer la configuration de Fail2ban lui-même. Les paramètres de cet utilitaire se trouvent dans le fichier /etc/fail2ban/jail.conf. Juste au cas où, faisons-en une copie de sauvegarde à l'aide de la commande cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.conf.bak. Après cela, nous réduirons ce fichier approximativement à la forme suivante :

# 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

Bien que cet exemple soit assez générique, il vaut la peine d'expliquer certains des paramètres que vous souhaiterez peut-être modifier lors de la configuration vous-même de Fail2Ban :

  • Ignorer — en utilisant ce paramètre, vous pouvez spécifier une adresse IP ou un sous-réseau spécifique à partir duquel Fail2Ban ne doit pas vérifier les adresses. En règle générale, le réseau interne de l'entreprise et d'autres adresses de confiance sont ajoutées à la liste des adresses ignorées.
  • Bantime — La durée pendant laquelle le contrevenant sera banni. Mesuré en secondes. Une valeur de -1 signifie un bannissement permanent.
  • Réessai maximum — Le nombre maximum de fois qu'une adresse IP peut tenter d'accéder au serveur.
  • Sendmail — Un paramètre qui vous permet d'envoyer automatiquement des notifications par e-mail lorsque Fail2Ban est déclenché.
  • Trouver le temps — Un paramètre qui vous permet de définir l'intervalle de temps après lequel l'adresse IP peut tenter à nouveau d'accéder au serveur une fois le nombre maximum de tentatives infructueuses épuisé (paramètre maxretry)

Après avoir enregistré le fichier avec les paramètres Fail2Ban, il ne reste plus qu'à redémarrer cet utilitaire à l'aide de la commande redémarrage du service fail2ban. Après le redémarrage, les principaux journaux Zimbra commenceront à être constamment surveillés pour vérifier leur conformité aux expressions régulières. Grâce à cela, l'administrateur sera en mesure d'éliminer pratiquement toute possibilité qu'un attaquant pénètre non seulement dans les boîtes aux lettres de Zimbra Collaboration Suite Open-Source Edition, mais également de protéger tous les services exécutés dans Zimbra OSE, et également d'être au courant de toute tentative d'accès non autorisé. .

Pour toutes les questions relatives à Zextras Suite, vous pouvez contacter le représentant de Zextras Ekaterina Triandafilidi par e-mail [email protected]

Source: habr.com

Ajouter un commentaire