Sorry, you need to enable JavaScript to visit this website.

Image CAPTCHA
Saisir les caractères affichés dans l'image.

Sécurité et spanning tree : le couple infernal ?

Sécurité et spanning tree : le couple infernal ?
2014-06-042014-06-04sécurité des réseauxfr
Si vous avez lu le blog book ou mon post précédent sur STP, vous savez combien je me méfie du protocole Spanning Tree (STP, pour Spanning Tree Protocol).
Publié le 4 Juin 2014 par Pascal Bonnard dans sécurité des réseaux
sécurité et spanning tree : le couple infernal ?

Si vous avez lu le blog book ou mon post précédent sur STP, vous savez combien je me méfie du protocole Spanning Tree (STP, pour Spanning Tree  Protocol). Si on fait du plug-and-play, on obtient un réseau avec des failles de sécurité importantes. Un défaut matériel mineur ou un logiciel gourmand en bande passante peuvent provoquer de longues heures d'indisponibilité. Aussi, je fais mon possible pour ne pas utiliser STP.

Mais quand même, il y a des cas où ça coûterait trop cher de s'en passer. Comment faire ?

STP, à quoi ça sert ?

STP fait en sorte qu'il n'y ait pas de boucle dans le réseau. Il élague les liens redondants. Au final, les liens actifs forment un arbre. Pour cela, les switches échangent des trames spéciales, les BPDU. Cela permet de déterminer où est la racine de l'arbre (root), et d'élaguer les liens redondants. Bien sûr, cela n'est pas instantané. Compter au minimum 20 secondes pour utiliser un lien situé en périphérie, et disons 1 minute ou plus pour obtenir un réseau fonctionnel. 

Tout cela car s’il y avait une boucle, on aurait une tempête de diffusion (broadcast storm). Quand cela arrive, le réseau devient inutilisable et souvent incontrôlable.

A bien retenir :"STP élimine les boucles dans des conditions normales. Mais il n'empêche pas les tempêtes …"

Ah bon, il y aurait des problèmes ?

Le premier problème, c'est que les BPDU ne sont pas authentifiés. Donc, un pirate peut facilement détourner le trafic ou produire un déni de service en créant des faux BPDU. Même sans pirate, Gaston Lagaffe peut aussi brancher un switch sauvage sur une prise murale.
Ensuite, l'algorithme nécessite du temps de calcul pour traiter chaque BPDU.  Si jamais le temps de calcul devient rare (par exemple, lors d'une tempête), le comportement de STP devient erratique. Le réseau est inutilisable.

STP part du principe que, si aucun BPDU n'est reçu pendant 20 secondes, il peut utiliser l'interface. Si jamais les BPDU ne circulent pas librement sur les liens, ça se passe mal. Le cas typique, c'est un  brin de fibre optique défectueux, tandis que l'autre brin fonctionne bien. Dans ce cas, STP créé une boucle qui passe par le brin resté intact. Cela provoque une tempête unidirectionnelle.

Pour terminer,  il n'y a aucune méthode simple, fiable et rapide pour venir à bout d'une tempête. Bien souvent, il est obligatoire de débrancher quelques câbles bien choisis. En dernière extrémité, y aller à la hache…

Bon, alors, on fait comment ?

1. Il est nécessaire de décider où se trouve la racine de l'arbre. Choisir pour cela un switch cœur de réseau, et y configurer :

  • spanning-tree vlan 1-4095 root primary

En général, il y a un switch cœur de réseau de secours et y configurer :

  • spanning-tree vlan 1-4095 root secondary

2. Il faut limiter les échanges de BPDU au strict nécessaire, c’est-à-dire exclusivement entre les switches. Un PC ou une imprimante ne doivent pas émettre de BPDU, ni en recevoir, ni attendre 20 secondes pour utiliser le réseau.

En mode global, configurer :

  • spanning-tree portfast default
  • spanning-tree portfast bpduguard default

Avec cela, il n'y a plus de BPDU émis vers les PC ou les imprimantes. Et si jamais un bricoleur branche un switch de récupération,  l'interface correspondante est immédiatement désactivée. Voir à ce sujet un excellent post de Cédric.

3.  Pour ne pas être victime d'une tempête et configurer SUR TOUTES les interfaces :

  •  storm-control broadcast
  •  storm-control broadcast level 0.01

4. Tenir à jour la documentation du réseau. Prévoir un schéma de réseau avec la forme de l'arbre. Cela va permettre une intervention raide et sûre en cas de gros problèmes.

5. Concevoir un réseau simple et de bon goût. Ne pas faire son malin. Laisser de côté des "optimisations" qui compliquent la documentation et la maintenance.

Pascal

Crédit photo : © Dooder - Fotolia.com

2 Commentaires

  • 6 Juin 2014
    2014-06-06
    par

    Merci, Jeff.

    Dans la "vraie vie", Spanning Tree tourne parce qu'il est actif par défaut. Du coup, on peut brancher des switches sans trop se poser de question. Les solutions pour faire un réseau de switches sans SPT sont marginales, pas enseignées et spécifiques aux constructeurs (pour prendre un exemple, le "flex link" de chez Cisco est simple, même moi je comprends !)

    J'ai déjà vu de nombreux incidents liés à SPT. Très souvent, on ne sait même pas ce qui s'est passé exactement. Au bout de quelques mois, c'est oublié. Et du coup, on ne fait rien pour éviter que cela se reproduise. Les tempêtes sont vécues comme une fatalité, une sorte de catastrophe naturelle.

    Le plus souvent, la recommandation de Cédric (spanning-tree portfast ...) est configurée. C'est déjà ça.

    Ce qui est rarement fait, c'est le storm-control. C'est pourtant le seul moyen de limiter les effets d'une tempête. Il n'y a aucune excuse si ce n'est pas fait. Il n'y a qu'à lire le blog sécurité, c'est quand même pas compliqué. J'ai du mal à convaincre, les gens me disent que ça va bloquer du traffic "broadcast" utile. Mais en fait, ils ne savent pas du tout quel débit cela représente ! A croire qu'un simple relevé de statistique, c'est trop compliqué ...

    Concernant la topologie à jour, avec le schéma de l'arbre, je n'en ai jamais vu. Par contre, des configurations complexes que personne ne sait maintenir, c'est monnaie courante.


     

  • 5 Juin 2014
    2014-06-06
    par
    Jeff Audenard
    Bravo Pascal pour cet article : Incisif, clair et pratique... J'ai le switch d'à côté qui en frétille d'impatience. :-) Vite, un Putty, faut le calmer... Plus sérieusement : ces réglages semblent simples. Sont-ils mis en oeuvre dans la vraie vie ? Merci ton feedback.

Ajouter un commentaire

comments

  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <br>

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Email HTML

  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
Image CAPTCHA
Saisir les caractères affichés dans l'image.
Changer d'affichage