5.7. Limitation des sessions d'utilisateurs et de la mémoire pour éviter une attaque DoS

L'authentification par certificat est protégée en séparant et en isolant les instances du serveur web cockpit-ws contre les attaquants qui veulent se faire passer pour un autre utilisateur. Cependant, cela introduit un risque d'attaque par déni de service (DoS) : Un attaquant distant pourrait créer un grand nombre de certificats et envoyer un grand nombre de requêtes HTTPS à cockpit-ws, chacune utilisant un certificat différent.

Pour éviter ce déni de service, les ressources collectives de ces instances de serveur web sont limitées. Par défaut, les limites du nombre de connexions et de l'utilisation de la mémoire sont fixées à 200 threads et à une limite de mémoire de 75 % (soft) / 90 % (hard).

La procédure suivante décrit la protection des ressources en limitant le nombre de connexions et la mémoire.

Procédure

  1. Dans le terminal, ouvrez le fichier de configuration system-cockpithttps.slice:

    # systemctl edit system-cockpithttps.slice
  2. Limitez les TasksMax à 100 et les CPUQuota à 30%:

    [Slice]
    # change existing value
    TasksMax=100
    # add new restriction
    CPUQuota=30%
  3. Pour appliquer les modifications, redémarrez le système :

    # systemctl daemon-reload
    # systemctl stop cockpit

Désormais, les nouvelles limites de mémoire et de session utilisateur protègent le serveur web cockpit-ws contre les attaques DoS.