Auteur:


Date:
14/06/2012

Catégories:
Open-source
Planet-libre
Reseau

Tags:



Suivi graphique des attaques DDOS avec Munin

Les attaques DDOS sont une véritable plaie pour les sites Internet. Même pour des sites à forte audience et donc dimensionnés au niveau architecture système et réseau pour absorber ces aléas, il est important de surveiller de prêt ces attaques. Nous avions déjà abordé ce sujet ensemble en mettant en place une alerte Nagios sur attaque DDOS. Nous allons ici compléter cette supervision en apportant un suivi graphique de ces attaques en utilisant un plugin spécifique pour Munin.

Installation de Munin

Il suffit de vous reporter au billet que j'avais écrit sur le sujet il y a quelques mois. Le plugin qui va se charger de la détection des attaques DDOS doit être installé sur chacun des noeuds ("Munin node") à surveiller.

Principe du Plugin ddos_

Ce plugin se base sur le même principe que le plugin Nagios. Il va lire le nombre de connexions de type SYN_RECV ouvertes et les renvoyer au noeud Munin maître pour que ce dernier stocke l'information dans une base RRD et l'affiche à la demande dans un page Web.

Le plugin est disponible sur mon GitHub (il est donc possible de l'améliorer et d'en faire profiter la communauté).

Si vous êtes intéressé par l'écriture de vos propres plugins pour Munin, le plus simple est de commencer par la lecture de la documentation officielle.

Revenons à notre plugin ddos_.

Pour l'installer sur un noeud, la procédure à suivre est la suivante:

On peut vérifier que le plugin est bien actif en saisissant la commande:

Il faut ensuite attendre quelques heures pour voir apparaître le graphe au niveau de votre serveur Munin.

Par défaut, le plugin est configuré pour afficher les valeurs en WARNING quand le nombre de SYN_RECV dépasse le seuil des 50 et en CRITICAL au dessus de 70 (vous pouvez bien sûr changer ces valeurs dans le munin.conf).

C'est pas beau Munin :) ?

  • Pingback: Suivi graphique des attaques DDOS avec Munin | evalentin | Scoop.it

  • NourSs

    Un p’tit billet sur Munin 2 qui est sortit il n’y a pas longtemps c’est possible ? :-)

    • http://www.nicolargo.com nicolargo

      Les packages Debian et Ubuntu sont toujours en version 1.4. Wait and see…

  • Domi

    Dans les backports de squeeze la 2 est disponible et visuellement c’est une révolution, on peut enfin zoomer sur les graphiques, de plus tu peux laisser tes nodes en 1.4 (sauf si tu veux faire communiquer le serveur et les noeuds en ssh “nativement “)

  • Pingback: Suivi graphique des attaques DDOS avec Munin | LorfDotNet

  • Roro

    if [ -a -n "${NETSTAT}" -a -x "${NETSTAT}" ] ; then

    Ya un “-a” en trop chez moi…

    • http://www.nicolargo.com nicolargo

      C’est très vrai, le premier -a est une erreur… Je viens de le supprimer dans la version du plugin disponible sur le GitHub. D’un autre coté il ne faisait pas planter le plugin.

      Merci !

  • Pinault22

    Bonjour,

    Qu’est-ce qu’apporte Munin par rapport à ton script pour Nagios (ton ancien billet) ?

    C’est la même chose, c’est une solution bis, c’est bien ca ?

    Merci Nicolargo.

    • Pinault22

      Car pour le script sur Centreon (Nagis) il graph !

      # check_ddos
      # Check DDOS attack plugin for Nagios
      #
      # Nicolas Hennion (aka Nicolargo)
      #
      # History:
      # – 0.3: add the -t option to netstat
      #

  • Marcel

    Installer un vrai OS sur ses loadbalancers, ça peut également être utile pour éponger les DDoS :) On peut également faire le graphe directement depuis le LB dans ce cas, il fournit toutes les infos de manière synthétique on a juste à grapher.

    Hints: OpenBSD, pf, relayd.

  • http://s13d.fr Stéphane Péchard

    C’est normal les ‘\r\n’ à la fois du wget ? En tout cas, il faut les enlever pour que ça marche ;-)

    • http://www.nicolargo.com nicolargo

      Non mais je n’arrive pas à les enlever dans le billet… #wtf

  • http://www.shinken-monitoring.org naparuba

    “C’est pas beau Munin ?” Je n’irais pas jusque là, ça reste du rrd, donc pas ultra sexy graphiquement :p

    Tu devrais tester Graphite (graphite.wikidot.com/) c’est un peu “moins pire” de ce côté là :p

    • http://www.nicolargo.com nicolargo

      Je connais, mais niveau plugin c’est quand même mieux fait chez Munin…

      • Naparuba

        Ah oui en effet, graphite c’est juste pour les graphiques, il ne va pas aller piocher les infos. C’est une appli de flemmards quoi :p

  • Roro

    Pas de réponse pour mon “-a” ? :(

  • http://blog.crifo.org Dju

    roro +1, le 1er -a est en trop
    sinon dans munin, y’a deja un plugin nommé tcp qui compte tous les etats tcp, en plus des SYN_RECV
    c’est bien pratique ;)