8.7. Sécuriser le service Memcached


Memcached est un système de mise en cache d'objets en mémoire distribuée, open source et très performant. Il peut améliorer les performances des applications web dynamiques en réduisant la charge de la base de données.

Memcached est un magasin de valeurs clés en mémoire pour de petits morceaux de données arbitraires, telles que des chaînes de caractères et des objets, provenant des résultats d'appels de bases de données, d'appels d'API ou de rendus de pages. Memcached permet d'affecter la mémoire des zones sous-utilisées aux applications qui ont besoin de plus de mémoire.

En 2018, des vulnérabilités d'attaques par amplification DDoS en exploitant des serveurs Memcached exposés à l'internet public ont été découvertes. Ces attaques ont tiré parti de la communication Memcached utilisant le protocole UDP pour le transport. L'attaque était efficace en raison du taux d'amplification élevé où une requête d'une taille de quelques centaines d'octets pouvait générer une réponse d'une taille de quelques mégaoctets, voire de centaines de mégaoctets.

Dans la plupart des cas, le service memcached n'a pas besoin d'être exposé à l'Internet public. Une telle exposition peut poser ses propres problèmes de sécurité, en permettant à des attaquants distants de divulguer ou de modifier des informations stockées dans Memcached.

Suivez la section pour renforcer le système utilisant le service Memcached contre d'éventuelles attaques DDoS.

8.7.1. Renforcer Memcached contre les DDoS

Pour réduire les risques de sécurité, effectuez autant d'étapes que possible en fonction de votre configuration.

Procédure

  • Configurez un pare-feu dans votre réseau local. Si votre serveur Memcached ne doit être accessible que dans votre réseau local, n'acheminez pas le trafic externe vers les ports utilisés par le service memcached. Par exemple, supprimez le port par défaut 11211 de la liste des ports autorisés :

    # firewall-cmd --remove-port=11211/udp
    # firewall-cmd --runtime-to-permanent
  • Si vous utilisez un seul serveur Memcached sur la même machine que votre application, configurez memcached pour qu'il n'écoute que le trafic local. Modifiez la valeur de OPTIONS dans le fichier /etc/sysconfig/memcached:

    OPTIONS="-l 127.0.0.1,::1"
  • Activer l'authentification SASL (Simple Authentication and Security Layer) :

    1. Modifier ou ajouter le fichier /etc/sasl2/memcached.conf:

      sasldb_path: /path.to/memcached.sasldb
    2. Ajouter un compte dans la base de données SASL :

      # saslpasswd2 -a memcached -c cacheuser -f /path.to/memcached.sasldb
    3. Assurez-vous que la base de données est accessible à l'utilisateur et au groupe memcached:

      # chown memcached:memcached /path.to/memcached.sasldb
    4. Activez le support SASL dans Memcached en ajoutant la valeur -S au paramètre OPTIONS dans le fichier /etc/sysconfig/memcached:

      OPTIONS="-S"
    5. Redémarrez le serveur Memcached pour appliquer les modifications :

      # systemctl restart memcached
    6. Ajoutez le nom d'utilisateur et le mot de passe créés dans la base de données SASL à la configuration du client Memcached de votre application.
  • Crypter les communications entre les clients et les serveurs Memcached avec TLS :

    1. Activez la communication cryptée entre les clients et les serveurs Memcached avec TLS en ajoutant la valeur -Z au paramètre OPTIONS dans le fichier /etc/sysconfig/memcached:

      OPTIONS="-Z"
    2. Ajoutez le chemin d'accès au fichier de la chaîne de certificats au format PEM à l'aide de l'option -o ssl_chain_cert.
    3. Ajoutez un chemin d'accès au fichier de clé privée à l'aide de l'option -o ssl_key.
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.