You are on page 1of 10

Scuriser un routeur Cisco

Par scurit, comme sur tout systme informatique, la scurit dicte de dsactiver tout ce qui ne sert pas afin d'viter que cela soit utilis par une personne malintentionne. Il s'agit donc, sur un routeur, de dsactiver les services inutiles (beaucoup sont activs par dfaut) et les interfaces inutilises.

Cisco AutoSecure (CLI)


La fonctionnalit Cisco AutoSecure permet d'auditer la configuration d'un routeur afin de dtecter les ventuelles failles de scurit ; il existe 2 modes :

le mode interactif qui demande des informations et fait des propositions que l'administrateur valide ou non le mode non-interactif qui applique automatiquement les bonnes pratiques (pas conseill)

Sur les versions rcentes d'IOS ( partir de la 12.3(8)T), il existe une fonctionnalit de rollback qui permet de revenir la configuration du routeur AVANT le lancement de l'AutoSecure : une version de sauvegarde de la configuration est enregistre dans la flash, pour la restaurer il faut saisir (NB : ce n'est pas une fonctionnalit lie l'AutoSecure) :
configure replace flash:pre_autosec.cfg

Utilisation de la commande :
auto secure [management | forwarding] [no-interact | full] [ntp | login | ssh | firewall | tcp-intercept]

n'affecte que le management/forwarding plane ; en mode interactif (par dfaut) ou non ; prcise la configuration du ntp/login/ssh/firewall ou tcp-intercept.

Security Audit (SDM)


C'est un fonction accessible via la SDM qui compare la configuration courante du routeur une base de bonnes bonnes pratiques. Il existe 2 possibilits :

security audit : la configuration est passe en revue et chaque point ngatif est affich ; on peut alors corriger le point ngatif (fix it !) ou ne rien faire. one-step lockdown : analyser et appliquer les paramtres recommands sans interaction avec l'utilisateur.

Configuration

Politique de scurit

Imposer des mots de passe d'au moins 10 caractres (on peut aller de 0 16) :

security passwords min-length 10

Chiffrer les mots de passe inscrits dans la configuration :

service password-encryption

Ils n'apparaissent plus en clair dans la conf :


password 7 051F091B2E

Le 7 indique que l'algorithme utilis est celui propritaire Cisco (peu fiable en ralit) 5 indique un hash MD5 (c'est le cas du enable secret ; plus secur (plus d'informations : dtails sur les hashs des mots de passe IOS)) utiliser le mot cl secret la place de password afin de hasher le mot de passe en MD5 dans la configuration, par exemple :

enable secret toto [..] username toto secret toto

Cette best practice ne rentre pas en contradiction avec celle d'avant car il existe certains mots de passe que l'on ne peut pas hasher en MD5 : les mots de passe d'accs aux lignes (con, aux, vty,)

Dsactiver l'accs au ROMMON par la console (pas du tout conseill car cela dsactive la procdure de rcupration du mot de passe - et tout le monde le perd un jour ou l'autre ;) ) :

no service password-recovery

Pour imposer un temps d'attente (ici de 10 secondes) entre chaque tentative de login :

login delay 10

Par dfaut, les routeurs Cisco permettent 10 tentatives de login infructueuses avant d'initier un dlai de 15 secondes pour la prochaine tentative. Pour modifier le seuil de tentatives infructueuses (et mettre un message dans le syslog) 5 :

security authentication failure rate 5 log

Pour viter les attaques par force brute, on peut bloquer les tentatives de login aprs un certains seuil d'chec par seconde : par exemple pour bloquer les logins pendant 100 secondes si on dpasse 3 checs de login en 10 secondes :

login block-for 100 attemps 3 within 10

On peut dfinir une ACL dont les IPs qui matchent ne dclencheront pas le blocage des logins, et qui, mme une fois le routeur bloqu, pourront quand mme se logguer dessus. En clair cela permet d'outrepasser la commande block-for :
login quiet-mode access-class MYACL

On peut logguer/mettre un trap avec le rsultat des tentatives de login, et mme dterminer un seuil :

login on-success log [every 10]


login on-failure trap

dfinir un timeout d'inactivit : exec-timeout minutes [seconds] en mode (config-line) ; pour dfinir un timeout infini on spcifie 0 (! pas conseill car cela bloc la ligne si l'utilisateur ne se dconnecte pas proprement - et aussi par scurit (poste non verrouill)) :

exec-timeout 0

Les privilges
Il y a 16 niveaux de privilges :

le 0 qui est le user-mode le 15 qui est le enable-mode ou mode privilgi les niveaux intermdiaires, de 1 14, qui peuvent tre configurs

Pour configurer un mode de privilge, on doit lui attribuer un mot de passe et des droits : privilege mode {level level command | reset command} ; par exemple pour le mode privigi n2 on donne le mdp toto ; ce mode n'aura le droit qu' la commande ping :
privilege exec level 2 ping enable secret level 2 toto

Pour accder ce mode, un utilisateur doit se logguer en mode utilisateur (normal), puis taper enable 2. Pour voir ses privilges du mode courant, on utilise :
show privilege Current privilege level is 2

Les vues
Les vues permettent d'tendre les possibilits des privilges (et de palier leurs limitations). Pour crer une vue, qui permet de limiter les commandes vues par un utilisateur, il faut crer un nouveau modle aaa, et activer la root view (c'est le mot de passe enable ; s'il n'existe pas il faut le crer) :
conf t aaa new-model enable view

Puis on crer la vue premiere_view, on lui affecte un mot de passe et on lui attribut des droits sur les commandes (en mode (config)#):
parser view premiere_vue secret mon_mdp commands exec include show version ! parser view seconde_vue secret second_mdp commands exec include show ip interface brief

On peut crer des super vues qui aggrgent les droits de plusieurs vues ; pour cela on ajoute le mot cl superview lors de la cration de la vue :
parser view super_vue superview secret superview_mdp view premiere_vue view seconde_vue

On ne peut pas ajouter de commandes une superview, elle ne peut qu'avoir les droits d'une vue existante.

Resilient configuration feature


Fonctionnalit d'IOS qui permet de conserver une version safe de l'image IOS et/ou de la running-config afin de contrecarrer la compromission du routeur. La facilit de restauration de la version safe permet de rduire le downtime. Activer la rsilience de l'image IOS et de la configuration :
secure boot-image secure boot-config

Pour restaurer l'IOS : dmarrer en rommon puis charger l'IOS :


rommon 1 >boot disk0:c3825-advipservicesk9-mz.124-21.bin

Pour restaurer la conf :


secure boot-config restore slot0:rescue copy slot0:rescue running-config

Vrifs :
show secure bootset

Management
Syslog / trap
Configurer un syslog externe :
logging <IP_du_serveur_syslog>

Configurer la priority (priorit) (de 0 7, cd de emergencies debugging) de trap :


logging trap <level>

Configurer la facility (service) (valeurs de local0 local7) :


logging facility <facility-type>

PS : signification des valeurs du syslog (priorit et service) Les messages de log sont de la forme :
Jul 16 19:51:00: %SYS-5-CONFIG_I: Configured from console by resadm on vty0 (10.0.0.100)

avec 3 champs distincts, spars par une virgule :


Jul 16 19:51:00 %SYS-5-CONFIG_I

le timestamp indique le niveau de scurit de 0 7 (ici 5 Notification) suivi du nom du message de log (ici un message touchant la configuration du routeur) le reste : le texte du message

Si on les rcupre dans un syslog ils sont prcds (dpend du syslogd utilis) du timestamp de rception du serveur syslog et de l'IP source/hostname du paquet reu. D'autres commandes utiles :

activer la journalisation : logging on ( valider l'intrt de cette commande)

pour prciser l'interface source des paquets syslog mis logging sourceinterface <interface>

pour ajouter un timestamp dans les messages de log : service timestamps log
datetime msec

Il faut que l'horloge des quipements soient synchroniss afin de pouvoir exploiter les logs NTP.

NTP
Pour synchroniser l'horloge de toutes les machines il est recommands d'utiliser NTP (Network Time Protocole) qui est un protocole de synchronisation d'horloge fonctionnant sur udp/123. Le terme strate dsigne le nombre de hop pour atteindre une autorit de temps (par exemple une horloge atomique). On peut dfinir diffrents types rle :

client : se synchronise auprs d'une autorit de temps = le routeur met des requtes pour se synchroniser auprs d'un serveur serveur : autorit de temps ; synchronise les clients qui lui demandent l'heure peer : les requtes NTP vont dans les 2 sens ; chacun peut tre soit client soit serveur

ntp client Configuration type : dclaration d'un serveur/peer NTP sur lequel le routeur va se synchroniser :
ntp {server | peer} 10.0.0.111

On peut en dfinir plusieurs, ainsi qu'un ordre de prfrence :


ntp server 10.0.0.111 ntp server 192.168.0.1 prefer

Pour mettre en place de l'authentification :


ntp authenticate ntp authenticate-key 1 md5 <mdp_secret> ntp trust-key 1 ntp server 10.0.0.111 key 1

Pour couter (et se synchroniser dessus) les broadcasts NTP reus sur une interface :
interface fa0/0 ntp broadcast client

Utilisation d'une ACL filtrante :


ntp access-group {query-only | serve-only | serve | peer} <ACL-number>

Les machines qui matchent l'ACL auront le droit indiqu. Serveur ntp NB : il me semble que les routeurs agissent par dfaut comme serveur NTP. Pour faire d'un routeur un serveur ntp autoritatif :
ntp master [stratum]

stratum indique la prcision suppose (de 1 15) : plus la valeur est faible plus le serveur sera considr comme fiable par les clients NTP (les strates 1 sont directement relies une horloge atomique) Pour mettre des broadcasts NTP sur une interface (en config-if) :
interface fa0/0 ntp broadcast

SNMP
Pour monitorer/interroger les routeurs, le SNMP est parfait ceci prs qu'il n'est pas scuris (jusqu' la version 2). Il est conseill d'utilis SNMPv3 (pour ses fonctions d'authentification et de chiffrement), ou dfaut de dsactiver l'accs rw (criture) et configurer un nom de communaut (~ sorte de mot de passe, mais qui transite en clair) pour l'accs ro (lecture). Procdure de configuration du SNMPv3 :

configurer le server-ID local du routeur ; Il est optionnel de prciser l'IP, l'ID et le numro de port (par dfaut 161) d'un quipement distant. configurer les noms de groupes configurer les utilisateurs configurer les machines

Exemple :
snmp-server engineID local 0123456789 snmp-server engineID remote 10.0.0.100 00000063000100a1c0b4011b snmp-server group authgroup v3 auth snmp-server group authgroup v3 priv

snmp-server user authuser authgroup v3 auth md5 mypassword priv des56 encryptedpasswd snmp-server user authuser authgroup v3 auth md5 mypassword snmp-server host 10.0.0.111 traps version 3 priv authuser snmp-server snmp-server snmp-server snmp-server enable traps cpu enable traps config inform retries 0 source-interface traps loopback 0

Liens :

http://www.cisco.com/en/US/docs/switches/lan/catalyst3560/software/release/12. 2_46_se/configuration/guide/swsnmp.html

AAA
Authentication, Authorization and Accounting est un mcanisme de scurit qui permet d'authentifier une personne, de lui attribuer des droits et d'auditer ce qu'il fait. Cela permet de contrler les accs au rseau. Il existe 3 types de configurations possibles :

Self-contained AAA : il s'agit d'un serveur inclus dans l'IOS (authentification locale) Cisco Secure ACS Server for Windows Server : un logiciel install sur un serveur pour crer un serveur AAA externe Cisco Secure ACS Solution Engine quipement ddi

2 modes d'accs au routeur :


character mode pour les line (vty, con) on dfinit les droits exec packet mode pour les interfaces (async, serial) on dfinit les droits network

RADIUS
Le RADIUS est, avec TACACS+, l'un des 2 protocoles AAA les plus connus ; il est normalis par l'IETF (RFC 2865) et utilise des datagrammes udp/1812 et 1813 (le serveur Cisco Secure ACS utilise lui udp/1645 et 1646). A chaque compte sont associs zro ou plusieurs paires AV (Attribute-Value) qui dfinissent ses droits. Il y a une 50aine de paires AV prdfinies, mais RADIUS permet des extensions propritaires. Le RADIUS permet :

le chiffrement du mot de passe (uniquement) en MD5 l'authentification des paquets par hash MD5

Mise en place :
aaa new-model radius-server host 10.0.0.111 radius-server key <secretkey>

TACACS+
Le TACACS+ ressemble au RADIUS ceci prs qu'il est propritaire Cisco et utilise tcp/49. Lui aussi associe chaque compte zro ou plusieurs AV. On peut s'en servir pour identifier un utilisateur et appliquer un profil rseau (ses VLAN/ACL/adresse IP/droits persos). TACACS+ permet :

de chiffrer tout le contenu des transactions

Mise en place :
aaa new-model tacacs-server host 10.0.0.111 tacacs-server key <secretkey>

aaa authentication
Crer une mthode d'authentification par dfaut :
aaa authentication login default group tacacs+ local

Elle utilisera en premier lieu le serveur TACACS+ ; si ce dernier ne rpond pas on essaie dans la base locale. S'il renvoie une erreur d'authentification le routeur ne recherche pas dans la base locale. On peut lister jusqu' 4 mthodes parmi celles-ci : enable, group, krb5, line, local, local-case, none. Pour crer un groupe, applicable sur une ou plusieurs interfaces, on remplace default par un nom :
aaa authentication login ma_liste group tacacs+ local

Puis on l'applique sur une ou des interfaces :


line vty 0 4 login authentication ma_liste

aaa authorization
Pour dfinir les droits associs un compte.

aaa authorization exec default group radius local none

aaa accounting
L'accounting permet d'auditer et de facturer un compte utilisateur.
aaa accouting exec default start-stop group tacacs+

Cette commande permet de logger chaque dbut et fin de processus lanc par n'importe quel profil (default) du groupe tacacs+.

Vrifs
debug aaa authentication debug aaa authorization debug aaa accounting

Vrifs
show login [failure]

You might also like