J’utilisais Memcached depuis des années sans soucis. Jusqu’à ce début de semaine.
Il aura fallu une méchante attaque sur un serveur de production pour mettre celui-ci à genoux (et le site d’e-commerce sous Magento qu’il hébergeait) à cause d’un Memcached mal configuré.
Pour les détails techniques de ce type d’attaque par amplification visant Memcached, se reporter à cet article sur le blog de CloudFlare : Memcrashed – Major amplification attacks from UDP port 11211.
Sécuriser Memcached
Par défaut Memcached écoute sur toute les interfaces et sur le protocole UDP. Il faut donc désactiver UDP et le faire écouter seulement en localhost :
$ sudo vim /etc/sysconfig/memcached
Ajouter (ou adapter) ceci dans le champ OPTIONS :
OPTIONS="-l 127.0.0.1 -U 0"
Redémarrage de Memcached :
$ sudo systemctl restart memcached
Vérification que Memcached écoute bien seulement 127.0.0.1 en TCP :
$ sudo netstat -plunt (...) tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 31938/memcached