Sécurité : Sécuriser l’IOS Cisco
Sécurité : Depuis la forte croissance d’internet, de nombreuses menaces pour la sécurité sont apparues !
VIRUS
Que ce soit des virus, Cheval de Troie, Pirates informatiques et même les propres employés d'une entreprise, tout ça représente des risques pour la sécurité.
Types de menaces
- Menaces à distance : si aucun système n’est mis en place pour protéger les accès, des personnes malveillantes pourront s’y connecter très facilement !
- Menace liée à l’accès du local informatique : il peut y avoir des dommages physiques ou des vols sur le matériel réseau.
- Menaces environnementales : des températures extrêmes (que ce soit chaud ou froid) ou même de l'humidité sont des menaces pour la sécurité !
- Menaces électriques : des pointes ou chute de tension peuvent avoir de gros impacts sur la sécurité des données !
- Menaces de maintenance : que ce soit une mauvaise manipulation des composants réseau, un stock insuffisant de pièce de rechange et câblage, ou bien même simplement un mauvais étiquetage, tout cela présente une menace pour la sécurité !
Sécurité : Sécuriser l’IOS
Il est possible de sécuriser un routeur ou un switch en utilisant un mot de passe pour accéder au mode privilège de l’IOS.
Pour ça, il existe deux commandes pour sécuriser cet accès :
- enable password
Mot de passe affiché en clair dans le fichier de configuration !
- enable secret
Mot de passe crypté avec un hachage en MD5
SERVICE PASSWORD-ENCRYPTION
Il est possible d’ajouter encore une autre couche de sécurité pour les mots de passe qui circulent dans le réseau ou qui sont stockés sur un serveur TFTP.
La commande « service password-encryption » permet de crypter l’ensemble des mots de passe qui sont présents sur l’IOS.
Sécurité : Sécuriser l'accès au port console
La commande : « ligne console 0 » permet de rentrer dans le mode de configuration du port console.
La commande « password » permet de spécifier le mot de passe que l’on veut mettre.
Et la commande « login » permet d’activer cette fonctionnalité !
Exec-timeout
La commande « exec-timeout » ajoute un tempo pour éviter que l’accès reste connecté lorsque l’admin s’absente de son bureau !
Telnet et SSH
Le VLAN 1 peut être utilisé pour la gestion.
La commande « interface vlan » permet de rentrer dans le mode de configuration du vlan.
La commande « ip address » permet d’affecter une adresse IP et un masque de sous-réseau.
Un commutateur ou un routeur comporte des lignes virtuelles que l’on peut utiliser pour l'accès à distance. Ce sont des lignes VTY.
La commande « line vty 0 4 » permet de rentrer en configuration sur les 5 lignes VTY, de 0 à 4.
Le 0 comptant pour une ligne VTY, ce qui en fait 5 au total.
Pour le port console, il faut utiliser la commande « Password » pour spécifier un mot de passe et terminer par la commande « login » pour l’activer.
Telnet
...est pratique et facile à configurer, mais il n’est pas sécurisé…
C’est-à-dire que tout circule en clair.
C’est pourquoi il est préférable de configurer et d’utiliser SSH. Avec ce dernier, tout le trafic sera crypté.
Les versions d'IOS n'offrent pas SSH par défaut.
Vérifiez bien avant s’il est possible d’installer SSH sur votre version D’IOS.
Configurer SSH :
SSH fonctionne avec les noms d'utilisateur. La commande « Username » permet de spécifier le nom d’utilisateur et la commande « password » le mot de passe lié à ce compte utilisateur.
Ensuite, il faut obligatoirement configurer un nom de domaine, car SSH utilise des certificats. La commande « ip domain-name » permet de renseigner le nom de domaine.
La commande « crypto key generate rsa » permet de générer des clés RSA pour SSH. La clé doit avoir au moins 1024 bits. Par défaut, il activera la version 1 de SSH mais pour des raisons de sécurité, il vaut mieux utiliser la V2 :
Pour cela, il faut utiliser la commande « ip ssh version 2 ».
Et la dernière étape consiste à taguer les lignes VTY en SSH :
On se connecte sur les accès VTY avec la commande « line vty 0 4 »
Ensuite, il faut lui indiquer d’utiliser l'utilisateur qu'on a créé juste avant, avec la commande « login local ».
Et pour finir, il faut autoriser uniquement SSH et pas Telnet, avec la commande « transport input ssh »
Reste plus qu’à se connecter en Telnet avec PuTTY
Configuration SSH
Il est possible de lancer une connexion SSH ou Telnet à l'aide d'un client comme Putty qui est installé sur son PC.
Putty
PuTTY c’est un émulateur pour les protocoles SSH ou Telnet. On peut aussi faire des connexions directes avec un câble série RS-232.
À l’origine, ce logiciel n’était disponible que sur Windows. Maintenant il est aussi dispo sur les plates-formes Unix !
Ouvrir accès Telnet
La commande « line vty 0 4 » permet de rentrer dans la configuration des 5 lignes d’accès à distance.
Le « 0 » compte comme un accès, c’est pour ça qu’il y en a 5.
La commande « password » permet d’attribuer un mot de passe.
Et la commande « login » active la connexion à distance avec un mot de passe pour les sessions Telnet qui rentre.
Ouvrir un accès SSH
- Configurer un hostname avec la commande « hostname + le nom ».
Il ne faut surtout pas que le sigle soit marqué Switch ou router.
- Configurer un nom de domaine avec la commande « ip domain name ». C’est indispensable, pour pouvoir générer la clé du certificat.
- Les commandes « username » et « secret » permettent de configurer un utilisateur avec mot de passe.
Qui servira pour se connecter en SSH.
- La commande « crypto key generate rsa » servira à l’utilisateur pour s’authentifier !
Une clé codée sur 1024 bits est recommandée
- Dans la configuration des lignes VTY, faire un « login local » .
Pour forcer la connexion avec un nom d’utilisateur + mot de passe.
- La commande « transport input ssh » permet d’interdire les accès Telnet, et forcer les connexions SSH avec un nom d’utilisateur !
Ce qui est beaucoup + sécure !
SSH VERSION 2
La commande « ssh version 2 » permet de supporter les bannières de connexion et dispose d’un algorithme de chiffrement beaucoup + sécurisé que la version 1.
Show ip ssh
Si on veut vérifier que le protocole SSH est bien activé, on peut utiliser la commande « show ip ssh »
Show SSH
La commande « show ssh » permet de voir si une session SSH est en cours.
Telnet et SSH
Les protocoles Telnet ou SSH sont très utilisés.
C’est pourquoi il vaut mieux limiter les accès VTY à des adresses IP spécifiques ou à des sous-réseaux, pour mieux contrôler l'administration à distance !
Sécurité: Sécuriser les accès Telnet et SSH avec une ACL
La commande « access-list » permet de créer l’ACL en mode de configuration global.
Et appliquer l’ACL sur les VTY de 0 à 4 !
Log ACL
La commande « deny any log » n’est pas obligatoire car implicitement il y a une règle qui supprime tous les paquets qui n’ont pas étés matchés par une ACL !
Mais cette commande permet en quelque sorte de l’officialiser pour avoir des traces dans le journal !
Comme ça, toutes les tentatives qui ont été rejetées seront affichées dans le journal !
Banner Motd
Il est possible de configurer une bannière d'accueil qui sera affichée lorsqu’un utilisateur se connectera sur l’IOS ! Ce message peut être un message d’avertissement, ou bien pour informer d’une prochaine mise à jour !
Pour créer cette bannière de connexion, il faut utiliser la commande « banner motd ».
Banner login
La commande « banner login » affiche le message avant le login de l’utilisateur.
Port Security
Des ports non utilisés sur un switch est un risque pour la sécurité !
Une personne mal-attentionnée pourrait très bien se connecter sur un des ports non utilisés du switch et accéder au réseau !
Désactiver les ports inutilisés
La méthode la plus simple pour ajouter une sécurité et que la plupart des admin utilise, c’est de désactiver tous les ports qui ne sont pas utilisés.
Interface range
Pour arrêter plusieurs ports d’un coup, on peut utiliser la commande « interface range ».
Cette commande évite de se connecter sur chacun des ports, pour au final taper les mêmes commandes.
Déplacer les ports inutilisés dans un vlan non utilisés
La commande « switchport access vlan 99 » ajoute en plus un niveau de sécurité, en plaçant les interfaces dans un vlan qui n’est pas utilisé.
Port-security
Avec un switch, il est possible de contrôler les ports en limitant l’accès à certaines adresses MAC. Cette fonctionnalité très utilisée pour la sécurité s’appelle « port-security »
2 manières différentes :
• Enregistrer manuellement l’adresse MAC qui sera autorisée à se connecter sur le port !
• Autoriser dynamiquement la première adresse MAC qui se connectera sur le port !
Rappel
L’adresse MAC correspond à l’adresse physique de la machine, c'est-à-dire de sa carte réseau.
Types de sécurité sur le port :
- Apprentissage statique :
Configurée manuellement par un admin réseau.
- Apprentissage dynamique :
L’adresse MAC est récupérée dynamiquement pour être stockée dans la table MAC du switch. Comme c’est dynamique, l’adresse sera supprimée après un redémarrage du switch.
- Apprentissage sticky :
L’adresse MAC est aussi apprise dynamiquement, sauf qu’elle est enregistrée dans le fichier de la running-config.
Mode de protection
3 façons différentes de traiter le paquet qui n’est pas autorisé :
- Mode Protect :
Supprime les paquets qui ont une adresse MAC inconnue.
- Mode Restrict :
Identique au mode Protect, sauf qu’il garde une trace de la violation dans son journal et génère même une trappe SNMP.
- Mode Shutdown :
Mode par défaut. Dès qu’une violation de sécurité intervient, il désactivera automatiquement le port qui ne pourra être réactivé que par un admin réseau, en faisant un shut/no shut sur l’interface.
Configuration
Sw1(config)# interface FastEthernet 0/3
Se connectent sur le port 0/3 du Switch
Sw1(config-if)# switchport mode access
Le port doit être, soit en mode accès ou soit en mode trunk
Sw1(config-if)# switchport port-security
permet d’activer la sécurité du port
Sw1(config-if)# switchport port-security maximum 1
n'autorise qu’une seule adresse Mac à se connecter sur ce port.
Sw1(config-if)# switchport mac-address sticky
Comme le paramètre précédent est à 1, la première adresse que le port apprendra sera autorisée et inscrite dans le fichier de configuration du switch.
Aucune autre adresse ne pourra se connecter à ce port. À moins que le switch redémarre.
Sw1(config-if)# switchport port-security violation shutdown
Le mode « Shutdown » désactivera l’interface dès qu’une violation de sécurité interviendra.
Port sécurity Statique
On aurait pu aussi lui indiquer une adresse mac statique avec la commande : « switchport port-sécurité mac-address + la mac-address à autoriser ».
Show port-security
La commande « show port-sécurity » sur une interface affiche les paramètres de sécurité du switch.
Show interface status
La commande « show interface status » affiche des infos sur l’état des différents ports du switch.
Show port-security address
La commande « show port-security address » affiche les adresses Mac sécurisées de l’ensemble des ports du switch.
Services non utilisés et NTP
Pour faciliter le déploiement, les routeurs et les switchs démarrent avec une liste de services activés par défaut, qui sont jugés utiles pour la plupart des environnements !
Mais comme tous les réseaux n'ont pas les mêmes exigences, certains de ces services ne sont pas forcement nécessaires.
Le fait de désactiver les services qu’on ne considère pas utiles permet de libérer des ressources système et d’éliminer d’éventuelles failles de sécurité sur l’exploitation de ces services.
show control-plane host open-ports
Cette commande permet de contrôler les ports UDP ou TCP que le routeur est en train d'écouter.
Identifier les ports ouverts
Une bonne pratique consiste à identifier les ports ouverts, afin de pouvoir déterminer quels services doivent être désactivés.
Désactiver CDP
Une seconde pratique serait de désactiver le protocole CDP sur les interfaces qui pourraient représenter un risque. Par exemple, sur celles qui sont connectées directement à internet.
La commande « no cdp run » permet de désactiver CDP sur toutes les interfaces de l’équipement.
Et si on souhaite désactiver CDP seulement sur une interface, il faut se connecter dessus et entrer la commande « no cdp enable »
Désactiver HTTP
Une dernière pratique fortement recommandée serait de désactiver le service HTTP qui est activé par défaut sur le routeur. Car s’il est activé, il sera alors possible d’accéder aux routeurs avec une simple page web.
La commande « no ip HTTP server » désactive le HTTP.
Pour le réactiver, il faut simplement faire un « ip HTTP server »
Network Time Protocol (NTP)
NTP permet de synchroniser les horloges de plusieurs périphériques sur un réseau, ce qui est indispensable pour pouvoir utiliser des certificats numériques, et aussi pour pouvoir bien interpréter les évènements qui sont dans les logs.
Il est possible de configurer un routeur en tant que serveur NTP, pour que les autres périphériques, qui eux, seront configurés en client, puissent synchroniser leurs horloges !
Configuration NTP
La commande « ntp server + l’ip » permet de configurer l’équipement en tant que client NTP en lui indiquant l’adresse du serveur NTP.
Les commandes « show ntp associations » et « show ntp status » permettent de vérifier les paramètres NTP
Syslog
Le protocole Syslog permet de centraliser les logs de plusieurs équipements réseau.
Le fait de centraliser toutes les logs de l’ensemble de ces équipements,permet de mieux surveiller et dépanner son propre réseau !
Debug
La commande « debug » permet d’afficher en direct les logs sur la console !
Severity
Différents degrés de sévérité :
- Sévérité 0 => Urgence (Emergency)
- Sévérité 1 => Alerte (Alert)
- Sévérité 2 => Critique (Critical)
- Sévérité 3 => Erreur (Error)
- Sévérité 4 => Avertissement (Warning)
- Sévérité 5 => Notification
- Sévérité 6 => Information (Informational)
- Sévérité 7 => Debug (Debugging)
Si le niveau de sévérité est configuré sur 0, ça signifie que seuls les messages de type « Emergency » seront affichés dans la CLI.
Si c’est configuré avec un niveau 4, et bien tous les messages avec des niveaux de sévérité inférieur ou égal à 4 seront affichés, c’est-à-dire, Emergency, Alert, Critique, erreur et Warning !
Mode Débogage
Le niveau qui donne le plus d’information est donc le niveau 7, qui est le mode de débogage.
S’il est activé, alors beaucoup d'informations seront affichées dans le journal et sur la console. C’est donc à utiliser avec prudence car ça diminue fortement les performances du réseau.
Debug all
La commande « debug all » peut faire complètement tomber un switch.
Configuration
Pour mettre en service un serveur syslog, il faut indiquer l’IP du serveur syslog et le degré de gravité des logs à tous les équipements dont on souhaite récupérer les logs.
La commande « logging » permet d’indiquer l’IP du serveur Syslog.
La commande « logging trap » permet de définir le degré de sévérité.
Exemple :
R1(config)# logging trap warning
Ou
R1(config)# logging trap 4
Retrouvez tous nos cours pour réussir votre CCNA sur la chaîne YouTube de Formip.