l'essentiel du « port-security »

à quoi ça sert ?

Le « port-security » est sans doute la fonctionnalité la plus connue pour la sécurité sur les Catalyst. Le « port-security » permet de contrôler les addresses mac des équipements connectés sur une ou plusieurs interfaces d’un switch. Il sert typiquement à éviter les attaques « mac-address flooding » en limitant le nombre des adresses mac apprises sur une interface donnée. Il peut même ne laisser passer que certaines adresses connues, et bloquer les autres. Enfin, il protège du vol d’adresse mac (mac@ spoofing).

le mac@ flooding, c’est quoi ?

A la base du fonctionnement d'un switch, il y a la « mac address-table » qui mémorise les mac@ source des équipements connectés. De la sorte, le switch apprend où se trouvent les divers équipements. Si un équipement reste muet pendant 300 secondes, sa mac@ est effacée de la table. Mais cette table a une taille limitée : disons quelques milliers d’adresses pour la gamme Catalyst.

L’attaque mac@ flooding consiste à émettre un flot de trames avec des mac@ source différentes. Suite à cette attaque, la mac@ table est pleine, et donc aucune nouvelle adresse ne peut être apprise pendant 300 secondes. Si un nouvel équipement commence à traffiquer, les réponses qui lui sont destinées seront diffusées à toutes les interfaces qui sont dans son Vlan, y compris celle de l’attaquant... Il peut ainsi prendre durablement connaissance d’une bonne partie du traffic pour peu qu’il prenne soin de maintenir la mac@ table bien pleine.

une configuration simple et facile

Si on configure tout simplement « switchport port-security » sur une interface, port-security laisse passer une seule mac@ source sur l’interface. Si jamais il en vient une autre, la réaction est brutale : l’interface est désactivée. Par défaut, il faut une action de l’administrateur pour la réactiver. Ce n’est pas très pratique, surtout si un chef bricoleur a posé un hub sur la table ronde dans son bureau. En complément de la désactivation de l’interface, le switch inscrit un message dans le journal et il émet une alarme SNMP. Pour palier ce comportement extrême, il suffit d’augmenter le nombre d’adresses tolérées. Configurer par exemple :

switchport port-security maximum 8

Cela devrait suffire pour le hub du chef bricoleur, même s'il a branché son hub derrière un téléphone IP. De plus, les adresses mac ainsi admises sont protégées contre le vol depuis les autres interfaces du switch (dans le même vlan).

pourquoi faire simple, quand on peut faire compliqué ? (proverbe Shadok)

Si on choisit d’autoriser seulement deux adresses, le jour où le chef bricoleur branche un second PC, plus rien ne va marcher, ni ses PC, ni son téléphone IP. Il va appeler l’administrateur depuis son smartphone pour se plaindre amèrement… La parade est simple : il suffit de demander au switch de réactiver spontanément l’interface du chef au bout de cinq minutes par exemple (et de ne pas répondre au téléphone, dès lors qu’un trap s’affiche sur la console de supervision). Configurer, en mode global :

errdisable recovery cause psecure-violation

Bon, ce n’est pas très satisfaisant. On peut aussi adoucir la punition, en ajoutant à la configuration :

switchport port-security violation protect

Comme cela, le PC et le téléphone IP fonctionnent s'ils sont activés en premier, mais le traffic des mac@ en excès ne passera pas. C'est un peu plus supportable.

On peut encore perfectionner avec une journalisation et une alarme, en mettant « restrict » au lieu de « protect » :

switchport port-security violation restrict

Cependant, rien n'est parfait en ce bas monde, il reste à signaler un problème avec les alarmes : leur préparation et leur émission consomme de la CPU. S'il y a un trop grand nombre de violations, la CPU va saturer, et le comportement du switch devient erratique. Et cela reste vrai même si on limite le flux d’alarmes sortant. Quelle tristesse !

Dans le genre compliqué, on peut bien sûr faire mieux, en configurant le port-security par Vlan, ou en spécifiant la durée de rémanence des adresses et autres finesses. Quant aux administrateurs parano, ils peuvent même configurer explicitement les adresses autorisées (bonne chance avec les nouveaux PC). Je vous fais grâce des détails.

en résumé… simple et de bon goût

Vérifier que la charte sécurité contient un paragraphe bien senti sur ce qu’on a le droit de brancher.
Sur les interfaces exposées, configurer :

switchport port-security
switchport port-security maximum 8

Et, en mode global :

errdisable recovery cause psecure-violation

Nota bene: et le dot1x, c'est pas mieux que le port-security ? allez lire un post très intéressant écrit par mon collègue  Cédric.

Doc Ethernet vous souhaite de bonnes fêtes de fin d’année !

credit photo : © endostock - Fotolia.com

Pascal Bonnard

Depuis 2004, je m’occupe d'ingénierie de commutateurs Ethernet (switches en anglais). Comme je suis curieux de nature, j'ai voulu savoir ce qu'il y avait sous le capot ... et c'est là que j'ai vu tous ces protocoles qui ne nous veulent que du bien, mais qui posent d'inévitables questions de sécurité. Sont-ils fiables ? Peuvent-ils être trompés ? Il me semble que ce domaine est peu documenté, et que les informations disponibles sont souvent incomplètes, parfois erronées. Je désire vous faire partager mes connaissances qui s'appuient sur des tests en laboratoire ainsi que sur plusieurs centaines de machines opérationnelles.