Cisco : Restreindre l’accès SSH, Telnet et Web avec une Access-List

Cisco network switch rack in a datacenter showing patch cables and status LEDs

Sur un commutateur ou un routeur Cisco, sécuriser le plan de gestion (management plane) est l’une des premières actions à mener en production. Par défaut, si des lignes virtuelles (VTY) sont activées, n’importe quelle adresse IP ayant une route vers l’équipement peut tenter de s’y connecter en SSH ou en Telnet. Pour éviter les attaques par force brute ou les tentatives d’accès non autorisées, la méthode la plus efficace consiste à associer une liste de contrôle d’accès (ACL) standard aux lignes VTY et au serveur Web d’administration.

Comprendre le rôle de l’ACL standard et du masque inversé

Une ACL standard (numérotée de 1 à 99 ou de 1300 à 1999) filtre le trafic uniquement sur la base de l’adresse IP source. C’est exactement ce dont nous avons besoin pour autoriser un sous-réseau d’administration ou un bastion et rejeter le reste du trafic grâce au deny implicite situé en fin de liste.

Rappelons que Cisco utilise ici des masques inversés (wildcard masks). Pour calculer ce masque, on soustrait chaque octet du masque de sous-réseau à 255. Par exemple :

  • Un masque en /24 (255.255.255.0) devient 0.0.0.255.
  • Un masque en /29 (255.255.255.248, soit un bloc de 8 adresses) devient 0.0.0.7.
  • Une machine isolée (/32) utilise 0.0.0.0 ou le mot-clé host.

Étape 1 : Création de la liste d’accès d’administration

Dans notre scénario, nous souhaitons autoriser uniquement le pool des techniciens (10.10.10.0/29) et le réseau d’administration central (10.2.50.0/24). Connectez-vous en mode de configuration globale :

Router(config)# access-list 23 permit 10.10.10.0 0.0.0.7
Router(config)# access-list 23 permit 10.2.50.0 0.0.0.255

Toute source non explicitement déclarée dans cette liste sera automatiquement bloquée à la fin du traitement de l’ACL.

Étape 2 : Application aux lignes VTY (SSH et Telnet)

Pour appliquer une ACL aux connexions distantes, on n’utilise pas la commande classique ip access-group (réservée aux interfaces physiques ou VLAN), mais la commande access-class directement sous la configuration des lignes VTY.

Router(config)# line vty 0 4
Router(config-line)# access-class 23 in
Router(config-line)# privilege level 15
Router(config-line)# login local
Router(config-line)# transport input ssh

Remarque sécurité : Bien que l’instruction transport input telnet ssh permette les deux protocoles, il est fortement conseillé de bannir Telnet au profit de SSH sur tous vos équipements réseau d’entreprise. Si vous devez maintenir des protocoles spécifiques sur d’autres briques de votre infrastructure, n’hésitez pas à consulter notre mémo pour Installer xinetd et telnet serveur linux dans un environnement de test isolé.

Prenez garde à ne pas vous enfermer dehors lors de l’application de la règle. En cas de mauvaise manipulation ou de perte d’accès console, la procédure de secours reste le reset mot de passe cisco via le registre de configuration (0x2142).

Étape 3 : Sécurisation de l’accès Web (HTTP / HTTPS)

Si vous utilisez l’interface Web intégrée pour administrer l’équipement ou monitorer des services comme une liaison Cisco PPPOE, appliquez également cette même liste de contrôle d’accès au serveur HTTP de l’IOS :

Router(config)# ip http access-class 23
Router(config)# ip http authentication local
Router(config)# ip http secure-server
Router(config)# no ip http server

Désactiver le serveur HTTP non chiffré (no ip http server) tout en forçant l’usage de HTTPS (ip http secure-server) restreint aux seules IP de l’ACL 23 réduit drastiquement la surface d’attaque.

Vérification et diagnostic

Pour vérifier que vos filtres interceptent bien les flux de connexion et identifier d’éventuels refus, examinez les compteurs de correspondances en mode privilégié :

Router# show access-lists 23

Cette commande affiche le nombre de paquets validés par chaque ligne permit, ce qui permet de s’assurer en quelques secondes que vos administrateurs accèdent correctement au matériel.

À lire aussi