Aller au contenu


A quoi sert Memcached dans Zimbra ?

Memcached port 11211 exploit attaque

  • Veuillez vous connecter pour répondre
4 réponses à ce sujet

#1 Media

Media

    Membre avancé

  • Membres
  • 50 messages

Posté 02 mars 2018 - 08:33

Bonjour à tous.
Depuis le 28 février en fin de journée, mon serveur zimbra a servi de relais à une "attaque par réflection".
Cet "exploit" est décrit dans plusieurs articles, par exemple :
https://blogs.akamai...ps-attacks.html

https://blog.cloudfl...rom-port-11211/

http://www.senki.org...eing-exploited/

http://seclists.org/nanog/2018/Feb/174

L'impact pour moi a été que mon hébergeur a du déconnecter ma machine car elle consommait à elle seule la totalité de la bande passante (1 Gbps) de mon hébergeur.

La solution d'urgence que j'ai trouvée a été de mettre en place des règles iptables bloquant le port 11211, en tcp et udp, en entrée et en sortie, tout en loggant les paquets bloqués. Ces logs m'ont permis de constater que même lorsque les attaquants cessaient d'envoyer des paquets sur le port 11211 de mon serveur, d'autres paquets continuaient à circuler sur l'ip locale ou sur le loopback de mon serveur, ainsi que sur les ip d'utilisateurs connectés au webmail.

Je voudrais donc savoir pour quelle raison Zimbra utilise Memcached et si le fait de le désactiver risque de poser des problèmes d'usage ou de performances.

Toujours est-il qu'il semble que tout serveur Zimbra "out of the box" sont susceptibles d'être utilisés pour cette attaque. Je conseille donc à tous les administrateurs de prendre les mesures nécessaires pour s'en protéger.
Version Zimbra : 8.6.0_GA_1225.NETWORK
Serveurs : 1
Comptes : 147
Domaines : 25

#2 Zimbra Guy

Zimbra Guy

    Zimbra Jedi

  • Modérateurs
  • 5 267 messages
  • LocalisationPlanète Terre

Posté 02 mars 2018 - 10:25

Bonjour,

C'est pour mettre en cache les sessions http ect. Et pour le partage de session entre les serveurs proxies.
Si tu es chez OVH tu as dû recevoir un mail expliquant comment gérer au niveau Iptables le blocage sur le port 11211.
Il y a également un article sur le blog Zimbra qui renvoie vers une page Wiki de Zimbra.

Cordialement,

Guy Carré, professionel certifié Zimbra, Contributeur Zimbra
tel : +33 (0)9 81 76 22 90 / mail : guy.carre@capensis.fr
http://www.capensis.fr / http://www.canopsis.com / https://community.capensis.org


#3 Media

Media

    Membre avancé

  • Membres
  • 50 messages

Posté 02 mars 2018 - 10:52

Merci pour ta réponse.
J'ai bien trouvé l'article du wiki
https://wiki.zimbra....emcached_Attack

Ils ont été très réactifs chez zimbra ;-)
Version Zimbra : 8.6.0_GA_1225.NETWORK
Serveurs : 1
Comptes : 147
Domaines : 25

#4 Media

Media

    Membre avancé

  • Membres
  • 50 messages

Posté 12 mars 2018 - 17:56

Bon, il ont été réactifs, sauf que la solution indiquée pour les "single servers", c'est à dire saisir :

Citation

su - zimbra
/opt/zimbra/bin/zmprov ms `zmhostname` zimbraMemcachedBindAddress 127.0.0.1
/opt/zimbra/bin/zmprov ms `zmhostname` zimbraMemcachedClientServerList 127.0.0.1
zmmemcachedctl restart
ne fonctionne pas. Après avoir saisi ça, en faisant le test indiqué :

Citation

echo -en "\x00\x00\x00\x00\x00\x01\x00\x00stats\r\n" | nc -q1 -u <Mon IP> 11211
J'ai toujours un retour du serveur.
Et en faisant comme indiqué un telnet sur le port 11211 de mon serveur j'arrive à me connecter.
Il semble donc que les paramètres indiqués : zimbraMemcachedBindAddress et zimbraMemcachedClientServerList ne fonctionnent pas.


Pour le coup j'ai tenté d'arrêter le service Memcached. Alors tous mes utilisateurs ont rencontré des problèmes pour l'affichage des calendriers et des comptes externes. J'ai donc du relancer Memcached.

J'ai donc appliqué la solution proposée pour les "multi servers" :

Citation

Drop all connections to port 11211.
iptables -I INPUT -p udp --dport 11211 -j DROP
iptables -I INPUT -p tcp --dport 11211 -j DROP

Accept connections from localhost.
iptables -I INPUT -p udp -s 127.0.0.1 --dport 11211 -j ACCEPT
iptables -I INPUT -p tcp -s 127.0.0.1 --dport 11211 -j ACCEPT

N'ayant qu'un serveur, je n'ai pas paramétré de proxys, et là ça a l'air de fonctionner : les tests indiqués ne renvoient plus rien.

Maintenant il ne me reste plus qu'à ajouter les règles iptables dans ma config de démarrage pour qu'elle s'appliquent systématiquement.

J'avoue être un peu déçu de constater que la première solution indiquée ne soit pas fonctionnelle.
Version Zimbra : 8.6.0_GA_1225.NETWORK
Serveurs : 1
Comptes : 147
Domaines : 25

#5 Zimbra Guy

Zimbra Guy

    Zimbra Jedi

  • Modérateurs
  • 5 267 messages
  • LocalisationPlanète Terre

Posté 13 mars 2018 - 11:17

Pour ma part j'ai fait comme ça en sachant que j'ai 2 interfaces (publique + privée) :
-A INPUT -p udp -s 0/0 -d IP_PUBLIQUE --dport 11211 -j DROP
-A INPUT -p tcp -s 0/0 -d IP_PUBLIQUE --dport 11211 -j DROP
Après le mieux c'est de mettre en DROP pour tout et autoriser uniquement par service.

Guy Carré, professionel certifié Zimbra, Contributeur Zimbra
tel : +33 (0)9 81 76 22 90 / mail : guy.carre@capensis.fr
http://www.capensis.fr / http://www.canopsis.com / https://community.capensis.org





0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)