Modèle de configuration de routeur IOS sécurisé

Document trop vieux, donc préférer les guides Cisco SAFE ou les excellents recommandations & guides de l'ANSSI.

Documents utilisés

Configuration sécurisée

Pré-requis

Une architecture idéale demande un minimum de serveurs:

    • Un serveur SYSLOG pour sauvegarder les logs des différents équipements

    • Un serveur NTP (utilisant l’authentification md5) pour avoir des heures synchrones pour les logs : Ce peut-être un routeur Cisco.

    • FTP pour réceptionner éventuellement les crashs dump des routeurs.

    • Station d’admin (en SNMP v3) si possible : Paramétrage non traité ici.

    • Un accès physique sécurisé au niveau des équipements (ici, pas de mot de passe console, en mettre si le client le désire, ou dans un environnement physique non sécurisé)

Version d’IOS minimum : 12.1 (ainsi que les fonctionnalités de cryptage DES ou une version 12.2T pour le SSH)

AutoSecure

Depuis la version 12.3, la fonction AutoSecure permet d'exécuter un script de sécurisation du routeur qui désactive les services sensibles et actives les services de sécurité.

Modèle pour tout équipement sous IOS

Désactivation des services inutiles

Attention, ici on désactive le serveur WEB embarqué, dans le cas ou le client souhaite administrer un commutateur par http, il est conseillé de le faire en mode sécurisé, authentifié et limité en fonction de la source

no service pad ! Désactivation du service PAD

no ip http server ! Désactivation du serveur WEB

no ip http secure-server ! Désactivation du serveur WEB Securisé

no ip bootp server ! Désactivation su serveur BootP

no ip domain-lookup ! Désactivation de la résolution de nom

no ip finger ! Désactivation du service finger

no service tcp-small-servers ! Désactive les services TCP

no service udp-small-servers ! Désactive les services UDP

Protection de l'équipement

service tcp-keepalives-in ! Préviens les sessions orphelines

no logging console ! Empêche de bloquer le port console par trop de log

service password-encryption ! Cache les mots de passes dans les fichiers de configuration

scheduler max-task-time 5000 ! Protège des plantages ou bloquage de process

! En cas de crash: Envois d’un DUMP sur un serveur FTP:

ip ftp username USER-CISCO-SUR-FTP-SRV ! Déclaration du compte FTP

ip ftp password PASSWORD-CISCO-SUR-FTP-SRV ! Déclaration du mot de passe FTP

exception protocol ftp ! Déclare l’envoie du dump par FTP

exception dump IP-ADDRESS-FTP-SRV ! Adresse IP du serveur FTP

Protection juridique

banner login #

Attention !

Acces reserve au personnel du service informatique de NOM-ENTREPRISE.

Toutes activites sur ce systeme sont enregistrees.

Toutes preuves d activites non autorisees seront traitees par les autorites competentes.

Toute intrusion sur un systeme informatique est interdite par les articles 323-1 a 323-7 du Code penal.#

banner motd #

Attention !

Acces reserve au personnel du service informatique de NOM-ENTREPRISE.

Toutes activites sur ce systeme sont enregistrees.

Toutes preuves d activites non autorisees seront traitees par les autorites competentes.

Toute intrusion sur un systeme informatique est interdite par les articles 323-1 a 323-7 du Code penal.#

Activation du SSH

Version 12.2T ou fonctionnalités DES obligatoire

hostname NOM-MACHINE ! Nom de l’équipement

ip domain name CLIENT.FR ! Déclaration du nom de domaine (obligatoire pour le SSH)

crypto key generate rsa ! Génère la clef RSA : UTILISER UN MODULUS DE 1024 bits minimum !

line vty 0 4

transport input ssh ! N’accepte que le SSH

exec-timeout 70 0 ! Empêche une session orpheline de bloquer une ligne

!

Gestion des logs

! Déclaration du fuseau horaire et du changement d’heure :

clock timezone CET 1 ! Déclaration du fuseau horaire

clock summer-time CEST recurring last Sun Mar 2:00 last Sun Oct 3:00 ! Heure été/hiver

! Synchronisation NTP de l’heure :

ntp source-interface loopback0 ! Déclare l’IP de l’interface loopback comme source

ntp server IP-ADDRESS-NTP-SERVER ! Déclaration du serveur NTP

ntp authentication key 1 md5 CLEF-NTP ! Déclaration de la clef 1 d’authentification

ntp trusted-key 1 ! Utilisation de la clef 1

! Gestion des logs interne :

logging buffered 16384 debugging ! Reserve 16384 octects pour stocker les logs en RAM

service timestamps debug datetime msec localtime show-timezone ! Marque l’heure/date dans les debug

service timestamps log datetime msec localtime show-timezone ! Marque l’heure/date dans les logs

! Gestion de logs centralisé sur un serveur SYSLOG :

logging facility local NUMERO-FACILITY ! Change la facility par défaut (à voir avec le client)

logging trap

logging IP-ADDRESS-LOG-SERVER ! Adresse IP du serveur Syslog

Gestion des droits d'accès

Gestion des accès au routeur, l’avantage de gérer des utilisateurs fait que chaque modification de configuration est identifiée

enable secret MOT-DE-PASSE-ENABLE ! Mot de passe de l’accès super utilisateur

!

username NOM-UTILISATEUR1 secret MOT-DE-PASSE-UTILISATEUR1 ! Déclaration des users avec mot de passe crypté (version 12.2T minimum)

username NOM-UTILISATEUR1 password MOT-DE-PASSE-UTILISATEUR1 ! Déclaration des users (pour les versions IOS inférieures à la 12.2T)

! Activation du modèle sécurisé AAA:

!

aaa new-model ! Activation de l’AAA

!

aaa authentication login default local ! Utilise le paramétrage de la ligne par défaut

aaa authentication login Console none ! Déclaration du profil AAA « Console » n’utilisant pas d’authentification

aaa authorization exec default local ! Déclaration des droits d’accès locaux (dans le cas la gestion des niveau d’accès par login)

line con 0

login authentication Console ! Utilise le profil AAA « Console »

Spécificités pour un routeur

Optimisation de base

no ip source-route ! Empêche le routage par la source

ip cef ! Activation de la CEF (obligatoire pour ip verify unicast reverse-path)

Interface d'administration

Déclaration d’une interface et adresse IP de loopback (pour le management, DNS, OSPF, etc…)

interface loopback0 ! Déclare une interface de loopback

ip address IP-ADDRESS MASK ! Paramètre son adresse IP

logging source-interface loopback0 ! Utilise l’adresse de loopback comme IP source

Sécurisation des interfaces

! Définition de l’access-list appliqué à une interface donnant sur Internet

ip access-list standard Bad-Traffic-from-Internet

deny 192.168.0.0 0.0.255.255 ! Adresses Source en 192.168.X.X

deny 10.0.0.0 0.255.255.255 ! Adresses Source en 10.X.X.X

deny 172.16.0.0 0.15.255.255 ! Adresses Source en 127.16.X.X à 172.32.X.X

deny 127.0.0.0 0.255.255.255 ! Adresse Source « localhost »

permit any ! Autorise Le reste

!

interface INTERFACE-NAME

no ip proxy-arp ! Désactivation du proxy-arp

ip verify unicast reverse-path ! Active l’Anti-spoofing (« ip cef » obligatoire)

!

! Sécurité spéciale à ajouter au niveau des interfaces publiques uniquement (lien WAN, etc…):

!

no cdp enable ! Désactivation du CDP

no ip redirects ! Empêche les redirections ICMP

no ip unreachables ! Ne renvois de message d’erreur ICMP unreachables

no ip directed-broadcast ! Evite les broadcast dirigés (ex: 192.168.1.255)

ip access-group Bad-Traffic-from-Internet in

!

Spécificités pour un commutateur

VLAN d'administration

Déclaration de l’addressage IP sur le Vlan1 (pour le management, DNS, OSPF, etc…)

interface vlan1

ip address IP-ADDRESS MASK ! Paramètre son adresse IP

!

ip default-gateway GW-IP-ADDRESS ! Déclaration de la passerelle par défaut