Vous êtes sur la page 1sur 32

Scurit des rseaux informatiques

Prof : ABAZINE Karima

Rseaux informatiques : Prsentation et configuration dAAA


Pr-requis et objectifs
1. Pr-requis
Matriser lusage ordinaire du PC dans un environnement Windows.

2. Objectifs
la fin de ce chapitre, vous serez en mesure de : Mettre en place une authentification locale sur un routeur, fonde sur lutilisation de couples {nom dutilisateur/mot de passe}. Mettre en place une authentification c entralise laide dun serveur RADIUS. Mettre en place un serveur SYSLOG. tablir une connexion scurise via SSH. Objectifs : Dcrire les menaces de scurit courantes pour le rseau et expliquer comment mettre en place une stratgie de scurit complte permettant de faire face aux menaces les plus courantes sur les priphriques, les htes et les applications du rseau. Dcrire les fonctions des appareils et des applications de scurit les plus courants. Dcrire les pratiques de scurit recommandes pour la scurisation des priphriques rseau.

Identification des utilisateurs


1. Les niveaux de privilge
La notion de modes du routeur expose prcdemment dans cet ouvrage est en ralit associer avec cette nouvelle notion de niveaux de privilge. LIOS supporte seize niveaux de privilge, numrots de 0 15. chaque commande de lIOS est associ un niveau de privilge. Par dfaut, lIOS rpartit lensemble de ses commandes sur les trois niveaux [0, 1, 15] : Le niveau 0 ne comporte que cinq commandes : disable, enable, exit, help et logout. Le niveau 1 correspond ce que nous avons appel mode utilisateur et comporte un large ensemble de commandes qui ont en commun de ne pouvoir affecter que la configuration du routeur. Le niveau 15 correspond ce que nous avons appel mode privilgi ou enable et donne accs lensemble des commandes de lIOS. La commande show privilege que lon peut abrger par sh priv confirme le niveau de privilge de la session en cours : Ainsi, la connexion via les ports console, auxiliaire ou vty, aprs ventuelle entre dun mot de passe, place la session au niveau de privilge 1 par dfaut. Les commandes enable et disable peuvent tre associes un argument spcifiant le niveau de privilge cible, suprieur au niveau en cours dans le cas de la commande enable, infrieur au niveau en cours dans le cas de la commande disable : Dans les versions actuelles de lIOS, seuls les trois niveaux 0, 1 et 15 sont utiliss. Il est parfaitement possible de crer des niveaux de privilge intermdiaires entre le niveau 1 et le niveau 15 : La squence de commandes de cette capture provoque la cration des deux niveaux de privilge supplmentaires 5 et 10. Le niveau 5 est associ au mot de passe ccent, le niveau 10 est associ au mot de passe ccie. Observez qu une lvation du niveau de privilge en cours rclame le mot de passe correspondant. Une diminution du niveau de privilge en cours seffectue sans dlai. Observez galement que linvite de commandes reste la mme quel que soit le niveau de privilge ds quil est suprieur 1 : Mode utilisateur Niveau de privilge 1 Invite de commandes : Nantes> Modes privilgis Niveaux de privilge 2 15 Invite de commandes : Nantes# . On peut sans doute regretter que l IOS ne rappelle pas le niveau de privilge en cours dans linvite de commandes, un affichage du type Nantes#5# par exemple aurait t bien commode. 1

Scurit des rseaux informatiques

Prof : ABAZINE Karima

Venons-en la vritable utilit de ces diffrents niveaux de privilge. Ils vont permettre de raliser une dlgation des privilges de ladministrateur granularit fine. L administrateur peut donner un administrateur dlgu laccs tous les outils dont ce dlgu a besoin mais pas plus. L administrateur parvient ce rsultat en associant l un des niveaux de privilge infrieur 15 avec le sous-ensemble de commandes adquat. Imaginons par exemple appartenir un fournisseur d accs Internet. Une quipe de techniciens a pour activit principale le dploiement de routeurs d accs chez les clients. Ces techniciens ont besoin de configurer des interfaces serial (c est--dire leur affecter une adresse IP). Ils doivent donc disposer des commandes configure terminal, interface et ip address. De plus, ils doivent pouvoir tester la connectivit du routeur et ont besoin pour ce faire des commandes ping et trace. Ladministrateur dcide daffecter ces commandes au niveau de privilge 5 :

Mais comment s assurer que les techniciens disposeront bien de ces commandes mais pas plus ? Fort propos, l aide contextuelle vient au secours de l administrateur :

L administrateur, rassur sur la porte de sa dlgation, provoque une commande show run afin de visualiser le rsultat des commandes passes dans le but de dlguer. Une petite surprise l attend : En effet, il ne sattendait pas trouver les lignes privilege interface level 5 ip et privilege exec level 5 configure . Ce n est trange qu en premire approche. Pour que la commande ip address puisse tre au niveau de privilge 5, il faut que la commande ip le soit galement. De faon globale, que la commande aaa bbb ccc soit au niveau de privilge x suppose que la commande aaa bbb le soit galement. 2

Scurit des rseaux informatiques

Prof : ABAZINE Karima

2. Quest-ce que lauthentification ?


Pour mmoire, l identification rpond la question qui est-il ? . Pour viter que la question ne se transforme en Qui prtend-il tre ? , il faut accompagner l identification d une authentification qui rpond la question Est-ce bien lui ? . Le nom d utilisateur est ncessairement accompagn d un mot de passe, qui joue le rle de preuve vis--vis de lidentit numrique. Malgr nos efforts, la scurit mise en place jusqu prsent est somme toute assez limite. Il y manque prcisment un aspect essentiel : l authentification. Les mots de passe affects aux lignes ainsi quau passage vers le mode privilgi doivent tre confis toute personne appele intervenir sur l quipement. Si l administrateur dcide de mettre en place un serveur SYSLOG en vue de collecter les vnements qui affectent le routeur, chaque vnement provoqu par un intervenant reste anonyme dans le journal d vnements. Les messages se bornent restituer quelle est la ligne qui a servi lintervenant. Cest ainsi que jusqu prsent, nous avons d nous contenter des messages console de ce type :
*Nov *Nov 6 19:13:43.115: %SYS-5-CONFIG_I: Configured from console by vty0(172.31.1.104) 6 20:04:19.271: %SYS-5-CONFIG_I: Configured from console by console

Les hommes ntant que des hommes, lanonymat dresponsabilise, une relle politique de scurit doit minima attribuer chaque utilisateur un ensemble [identifiant / mot de passe]. Bien sr, lIOS offre cette possibilit et propose ladministrateur deux alternatives : 1. Grer les identifiants localement. Ces identifiants sont stocks dans les fichiers de configuration du routeur. Linconvnient est que la procdure doit tre rpte autant de fois que le rseau comporte de routeurs. Imaginez la somme de travail que peut reprsenter le simple ajout dun utilisateur ou le changement de mot de passe pour un utilisateur existant. Grer les identifiants de faon centralise sur un ou plusieurs serveurs. L IOS supporte deux technologies, l une normalise par l IETF est RADIUS (Remote Authentication Dial- In User Service), lautre propritaire est TACACS+ ( Terminal Access Controller Access-Control System Plus).

2.

a. Le modle AAA
Authentifier un utilisateur sur le rseau nest pas suffisant. La question globale ne peut se rsumer Qui ? mais doit tre Qui peut faire quoi, quand latil fait et pendant combien de temps ? . CISCO prend en compte ces trois questions, qui, quoi, quand en proposant un modle de scurit baptis AAA (Authentication, Authorization, Accounting/Auditing) : Authentication : cest le pralable inco ntournable car autoriser un utilisateur entreprendre une action ou profiter dun service suppose dtre certain de son identit. De la mme faon, il ne servirait rien denregistrer les faits et gestes dun utilisateur dans un journal si un doute pes ait sur son identit. Le modle AAA identifie un certain nombre de mthodes dauthentification. Ladministrateur cre des listes nommes dans lesquelles il place la ou les diffrentes mthodes quil souhaite utiliser. Il reste ensuite appliquer la liste convenable une ou plusieurs interfaces du routeur. LIOS appliquera la premire mthode linterface puis la seconde si la premire choue et ainsi de suite. Authorization : autoriser devrait tre traduit par contrler laccs, cestdire autoriser un utilisateur accder une entit ou un service, de faon plus ou moins partielle ou complte, le niveau daccs tant modul selon le niveau de privilge du demandeur. Exemples dautorisations : affectation dune ad resse IP, restriction daccs selon lheure du jour, temps de connexion maximal, qualit de service, bande passante... Accounting : il sagit ici de rendre traable les faits et gestes de lutilisateur, les objectifs sont multiples, ce peut tre datteindre la nonrpudiation, cestdire lincapacit pour un utilisateur de nier une action quil a effectue, ce peut tre galement le souhait de comptabiliser des temps daccs ou des volumes changs dans un but de facturation (billing).

3. Mthode dauthentification locale


Nantes(config)#username ycousin password sangria Nantes(config)#username avaucamps password fantasia Nantes(config)#aaa new-model Nantes(config)#aaa authentication login auth_locale local Nantes(config)#^Z Nantes#

Scurit des rseaux informatiques

Prof : ABAZINE Karima

En mode de configuration globale, la commande aaa new- model tablit lauthentification selon le modle AAA sur le routeur Nantes. La commande aaa authentication login cre la liste nomme auth_locale. Cette liste ne comporte qu une seule mthode d authentification appele local. La mthode dauthentification locale s appuie sur la base de comptes locale pour assurer sa fonction. Attention ici au risque dtreinte fatale. De faon gnrale, tre victime d une treinte fatale, cest avoir verrouill un mcanisme sans possibilit de le dverrouiller. Exemple dtreinte fatale : joublie les cls de ma voiture dans le coffre puis machinalement, je referme le coffre alors que ma voiture est dj verrouille. Dans le cas prsent, l treinte fatale consisterait entrer la commande de configuration globale aaa new- model sans avoir au pralable cr de compte utilisateur l aide de la commande username. Puis par maladresse ou par accident, mettre fin la session en cours. Peut-tre est-il prudent lors de ce dlicat passage au modle aaa, douvrir deux sessions d interface ILC. Ainsi, si par erreur ladministrateur provoque un verrouillage lors de ses essais sur la session 1, il peut rtablir la situation l aide de la session 2. En dernier recours, il reste la possibilit dentamer une procdure de recouvrement de mot de passe.

Observez l effet de la commande aaa authentication login qui contraint l IOS effectuer une double demande nom d utilisateur puis mot de passe lors de louverture de session via une ligne vty. La commande show user permet d afficher les sessions actives sur le routeur Nantes. La session accompagne dune toile est celle depuis laquelle on a entr cette commande. Nous nous tions plaints de lanonymat qui rgnait dans les vnements rapports par les messages console. Dsormais, cet anonymat n existe plus, ce que confirme lobservation des quelques messages console ci-dessous :

Depuis la version 12.0(18)S de l IOS, il existe une version encrypte de la commande username :

Une commande show run confirme le cryptage obtenu :


! username ycousin secret 5

Scurit des rseaux informatiques


$1$TKN1$7EpYz5pTBLW.0B9nKo71/0 username avaucamps secret 5 $1$WGjm$XRCQXBc0GYi1gbxPJmhqr1 !

Prof : ABAZINE Karima

Tout comme pour la commande enable secret, cest lalgorithme MD5 qui est utilis. nouveau, les recommandations de longueur et de complexit sappliquent. Dans lexemple qui prcde et dans celui qui suit, un administrateur habilit modifier la configuration du routeur doit saisir un mot de passe deux fois conscutivement : le premier mot de passe est associ son nom douverture de session, cest celui de lauthentification, le second mot de passe est ncessaire pour passer au mode privilgi. Avec la mise en place de l authentification l aide du modle AAA, le mot de passe du passage au mode privilgi ne se justifie plus (ou se justifie moins). Une solution consiste associer le niveau de privilge 15 la configuration des lignes vty :

Vrifions le rsultat en ouvrant nouveau une session via Telnet :

Immdiatement aprs stre identifi et avoir t authentifi, la session s ouvre dans le mode privilgi ainsi que le rappelle linvite de commandes. Une commande sh priv confirme le niveau de privilge en cours.

4. Mthode dautorisation locale


Trs modestement, il sagit ici de montrer au lecteur ce que peut tre lintrt du second A dans le modle AAA. Cet exemple cre un utilisateur seule fin dexcuter une et une seule commande :
Nantes#conf t Enter configuration commands, one per line. End with CNTL/Z. Nantes(config)#username run nopasswordnoescape Nantes(config)#username run autocommand show ip interface brief Nantes(config)#aaa authorization exec default local Nantes(config)#^Z Nantes#

Pour ce faire, on adjoint la commande username, le paramtre autocommand qui provoque lexcution de la commande spcifie aprs ce mot-cl, ce ds la connexion de lutilisateur dsign, dans le cas prsent run . Puisqu une commande est de longueur quelconque et peut comprendre des espaces, la commande spcifie l aide du mot-cl autocommand doit tre la dernire option de la commande username. Le mot-cl nopassword entrane que lorsque le nom d utilisateur est run , lIOS ne demande pas de mot de passe. Le mot-cl noescape vite que l utilisateur run ne puisse revenir au mode utilisateur en tapant la touche [Echap], ce qui lui permettrait ensuite de taper d autres commandes. Observez galement que ladministrateur a utilis plusieurs instances de la commande username pour spcifier plusieurs options qui concernent le mme compte utilisateur run . Une fois la commande spcifie l aide du mot-cl autocommand excute, show ip interface brief dans le cas prsent, le routeur met fin la session. Il faut configurer Putty afin dviter quil ne ferme la fentre ds l excution termine empchant ainsi la lecture du rsultat :

Scurit des rseaux informatiques

Prof : ABAZINE Karima

La capture suivante montre le rsultat de la connexion avec le nom dutilisateur run :

Opportunment, observez le rsultat de la commande show ip interface brief, qu il est possible d agrger en sh ip int br : cette commande fournit un rsum qui renseigne sur ltat des interfaces du routeur. Chaque interface est concerne par la couche daccs du modle TCP/IP, cest--dire les couches 1 et 2 du modle OSI-RM. La colonne Status du rsum renseigne sur ltat de la couche physique : dans le cas prsent, seule linterface fa1/0 a t active par l administrateur l aide de la commande no shutdown, ce qui explique l tat administratively down sur l interface fa0/0. La colonne Protocol renseigne sur l tat de la couche Liaison. Quand la couche 1 est ltat down, la couche 2 ne peut que ltre galement. Quand la couche 1 est up, la couche 2 est up si le protocole associ a pu tablir le lien avec la couche 2 de linterface en vis--vis.

5. Mthode dauthentification RADIUS


Puisque nous sommes dj largement hors cadre du CCNA, nous nous en tiendrons ces quelques lments sur RADIUS, normalis par l IETF, et ngligerons TACACS+, technologie propritaire de CISCO. Comme le rappelle son nom (Remote Authentication Dial- In User Service ), RADIUS a t conu pour rsoudre un problme qui se posait aux fournisseurs daccs Internet. En effet, les FAI devaient authentifier des utilisateurs distants qui se connectaient par modems via le rseau tlphonique commut. Les serveurs taient multiples mais il fallait que la base de comptes d utilisateurs soit unique. Cette base de comptes doit permettre l authentification, c est--dire la vrification des couples {nom dutilisateur/mot de passe} mais doit galement pouvoir fournir des informations de configuration qui prciseront le type de service dont doit bnficier l utilisateur. RADIUS est dcrit dans deux RFC: RFC 2865 - RADIUS - Juin 2000 traite de lauthentification 6

Scurit des rseaux informatiques

Prof : ABAZINE Karima

RFC 2866 - RADIUS Accouting - Juin 2000 traite de la comptabilit et de la journalisation des connexions. La figure suivante dtaille les dispositifs cls dune architecture RADIUS : Lusager fait une demande douverture de session sur un serveur daccs rseau, retenons l acronyme anglais NAS. Le NAS ne traite pas directement la demande mais la sous-traite auprs du serveur RADIUS. Le serveur daccs rseau est donc client de RADIUS, ce client est charg de transmettre les informations dutilisateur un serveur ou un groupe de serveurs RADIUS dsigns, puis d agir en fonction de la rponse retourne. Un serveur RADIUS, quand il reoit une demande de connexion dusager, demande transmise par un NAS, authentifie lusager (ou rejette la demande) puis retourne les informations de configuration ncessaires afin que le client livre le service convenable l usager. aucun moment lusager ne dialogue directement avec le serveur RADIUS et il peut parfaitement ignorer que son authentification a t prise en charge par ce dernier. Tout quipement rseau susceptible douvrir des sessions peut confier lauthentification mais aussi les autorisations et la comptabilit de connexion un serveur RADIUS. Il devient alors serveur d accs NAS et client RADIUS. Ladministrateur dun inter- rseau compos de plusieurs routeurs peut ainsi centraliser la gestion des identifiants. Si les routeurs de son inter-rseau proviennent exclusivement de CISCO, alors il peut mettre en place un serveur TACACS+. Dans le cas contraire, un ou plusieurs serveurs RADIUS sont une solution. RADIUS s appuie sur le protocole de transport UDP, il y a d excellentes raisons pour avoir fait ce choix, raisons bien expliques dans le RFC. La figure suivante dtaille le format du paquet RADIUS encapsul dans le champ de donnes du datagramme UDP. Les premiers dveloppements de RADIUS utilisaient le numro de port UDP 1645 mais actuellement, le port officiellement allou est 1812 :

Le champ Code sur un octet identifie le type de paquet RADIUS. Le champ Identifiant sur un octet permet de faire correspondre demandes et rponses.La valeur du champ nest pas modifie dans le cas dune retransmission, le serveur RADIUS peut ainsi dtecter une demande duplique. Le champ Longueur, sur deux octets, indique la longueur du paquet RADIUS en incluant les champs Code, Identifiant, Longueur, Authentifiant et Attribut. Les octets qui seraient reus au- del de la longueur indique doivent tre ignors la rception. linverse, si le paquet est plus court quindiqu dans le champ Longueur, alors le paquet est limin en silence. Lauthentifiant est un lment cl de la scurit fournie par RADIUS. Le NAS et le serveur RADIUS partagent un secret. Lorsque le client gnre une demande daccs, il g nre un nombre alatoire sur 16 octets (aussi long quune adresse IPv6 !) appel authentifiant de demande et dont la valeur devrait tre imprvisible et unique, pendant la dure de vie du secret partag. En effet, une rptition dun mme authentifi ant de demande conjugu un mme secret permettrait un attaquant de jouer une fausse rponse avec un authentifiant de rponse prcdemment intercept. Le serveur RADIUS qui reoit une demande gnre une rponse (accs accept, accs rejet, preuve daccs) dans laquelle lauthentifiant de rponse contient un hachage MD5 calcul sur lensemble {code, identifiant, longueur, authentifiant de demande, attributs, secret partag}. Le secret partag doit tre aussi long et imprvisible qu un mot de passe convenablement choisi. Il est conseill dadopter une longueur gale au moins 16 octets.

a. Type de paquet Demande daccs


7

Scurit des rseaux informatiques

Prof : ABAZINE Karima

La demande d accs envoye un serveur RADIUS porte les informations ncessaires lauthentification mais aussi les services particuliers demands pour cet usager. Si le client est valide, le serveur doit rpondre. La demande d accs devrait contenir lattribut nom d utilisateur (Type 1) et doit contenir lattribut Adresse IP de NAS (Attribut type 4) ou lattribut Identifiant de NAS (Attribut type 32) ou les deux. La demande d accs doit galement contenir un mot de passe utilisateur (Attribut type 2) ou un mot de passe CHAP (Challenge- Handshake Authentification Protocol ) (Attribut type 3). Quand le NAS distingue ses diffrents accs, la demande d accs devrait contenir lattribut Ligne d accs de NAS (type 5) ou lattribut Type daccs de NAS (type 61) ou les deux. Lorsque le mot de passe est prsent, il est crypt selon une mthode fonde sur MD5.

b. Type de paquet Accs accept


L accs accept envoy par le serveur RADIUS fournit les informations spcifiques de configuration dont le NAS a besoin pour dbuter la livraison du service lusager. Quand toutes les valeurs dattributs reues dans une demande d accs sont acceptables, le serveur RADIUS doit transmettre ce paquet dont la valeur Code est positionne 2 (Accs accept).

6. Atelier RADIUS
Notre objectif n est videmment pas de construire un serveur RADIUS d envergure mais d observer comment configurer le routeur pour que, dans le cadre du modle AAA, il fasse appel un serveur RADIUS quand il doit authentifier un administrateur qui souhaite ouvrir une session. Toujours en s aidant de VMware et de GNS3, lauteur vous propose de reproduire latelier suivant : Effectuez un snapshot (une photographie instantane) de vos machines virtuelles avant toute installation. Ainsi, il est facile de restaurer ltat antrieur. Tlchargez le logiciel RADL (radlv150- ab.exe, 218 Ko au moment o ces lignes sont crites) et installez- le sur la machine virtuelle VMWKS01 qui fera office de serveur RADIUS. Une fois RADL lanc, configurez le serveur conformment la capture ci- dessous :

Sil fallait revenir aux numros de ports officiels qui sont 1812 et 1813, il serait facile de le faire ici. Patientons jusqu avoir configur le routeur. Toujours dans RADL, configurez le client conformment la capture ci-dessous :

Scurit des rseaux informatiques

Prof : ABAZINE Karima

Le serveur RADIUS connat dsormais l adresse IP du NAS 172.31.1.1 et le secret partager avec lui : macleradius . Pour en finir avec la configuration de RADIUS, ajoutez la base de comptes, l usager ycousin , mot de passe sangria conformment la capture ci-dessous :

videmment, cette configuration est trs sommaire, RADL est capable de faire plus mais ce n est pas lobjet de cet atelier. Ouvrez une session console sur le routeur Nantes puis entrez la squence de commandes suivante : La commande aaa new- model nest peuttre pas utile si le modle AAA a dj t activ au cours dun atelier prcdent mais entrer nouveau une commande dj prsente dans le fichier de configuration est sans consquence. La commande aaa authentication login cre une liste de mthodes dauthentification nomme liste_eni et place dans cette liste les deux mthodes radius et local. Ainsi lors dune ouverture de session, si le ou les serveurs radius sont injoignables, lIOS tente une authentification avec la seconde mthode de la liste. La mthode locale est celle qui fait appel la base de comptes locale, cestdire la base de comptes alimente laide des commandes username. La liste de mthode peut comprendre jusqu quatre mthodes dauthentification, on pourrait ajouter la mthode enable qui utilise le mot de passe associ au passage en mode privilgi sil existe et/ou la mthode none qui autorisera laccs sans aut hentification. La commande radius- server host informe lIOS de lexistence dun serveur radius ladresse 172.31.1.101. La commande radius- server key configure le secret partag. Dans cet exemple, il nest ni suffisamment long, ni suffisamment complexe. Il reste affecter la liste de mthodes dauthentification une ou plusieurs lignes, cest lobjet de la commande login authentication en sous- mode de configuration de lignes vty. Une commande show running-config (extrait) confirme le rsultat obtenu :
! aaa authentication login liste_eni group radius local ! usernameycousin secret 5 $1$TKN1$7EpYz5pTBLW.0B9nKo71/0 usernameavaucamps secret 5 $1$vy6K$arNsNrc9CZ.LtEvf0jzSJ. ! radius-server host 172.31.1.101 auth-port 1645 acctport 1646 radius-server key macleradius ! Linevty 0 4 privilege level 15 Login authentication liste_eni ! end

Scurit des rseaux informatiques

Prof : ABAZINE Karima

Observez que l IOS a complt la ligne de commande radius-server host en ajoutant les numros de ports UDP qu il utilisera pour joindre le service authentification du serveur RADIUS (port 1645) et pour joindre le service de comptage (Accounting, port 1646). Nous aurions donc pu complter la commande et entrer ces paramtres sil avait fallu imposer les ports UDP 1812 et 1813. Mais dans le cas prsent, nous pouvons en rester l car cette configuration est galement celle de notre serveur RADL. Observez que l IOS a ajout le mot-cl group devant la mthode radius. Cela signifie que la mthode utilisera lensemble des serveurs RADIUS dclars dans le fichier de configuration pour authentifier. Une autre faon de procder aurait t de crer un groupe de serveurs RADIUS, groupe nomm : L exemple ci- dessus cre le groupe de serveurs RADIUS nomm grp_radius puis utilise ce groupe dans la liste de mthodes dauthentification nomme liste_eni. Il est temps de vrifier que lauthentification selon la mthode RADIUS fonctionne : Si Wireshark est install sur lune des machines virtuelles, lancez- le puis dmarrez une capture. Revenez la machine hte puis dmarrez une session Telnet 172.31.1.1 l aide de PuTTY : Stoppez puis analysez la capture Wireshark (cette capture cap_2L_01.pcap est disponible en tlchargement sur le site des Editions ENI) :

laide du format de paquet RADIUS fourni prcdemment, portez notamment votre attention sur le paquet de demande daccs en trame n94. Cet atelier est maintenant termin.

10

Scurit des rseaux informatiques

Prof : ABAZINE Karima

Journalisation, le protocole SYSLOG


RFC utiles : RFC 5424 - The Syslog Protocol - mars 2009 RFC 5425 - Transport Layer Security (TLS) Transport Mapping for Syslog - mars 2009 RFC 5426 - Transmission of Syslog Messages over UDP - mars 2009. Parmi les multiples tches accomplies par l IOS, l une delles intresse particulirement ladministrateur parce quelle lui permet de dcouvrir ou mieux comprendre les vnements qui affectent le fonctionnement du routeur et donc du rseau. Il sagit de lactivit de journalisation des vnements. En la matire, CISCO comme une majorit de constructeurs se conforme au protocole SYSLOG normalis dans le RFC 5424. Par dfaut, la manifestation de SYSLOG sur un routeur se limite lmission des messages dvnements vers le port console. Quel administrateur au cours de son travail depuis la console na pas t agac par larrive impromptue de ces messages qui viennent perturber la saisie en cours ? Problme facile rsoudre dailleurs car il existe une commande de configuration de ligne logging synchronous qui peut tre applique la console ainsi quaux lignes vty et qui modifie le comportement de l IOS quand il envoie un message : si une commande est en cours de saisie, alors l IOS raffiche le contenu de la ligne saisie dans l tat o elle se trouvait immdiatement avant l envoi du message. L IOS gnre des messages SYSLOG lis son activit de faon naturelle mais ladministrateur peut susciter une production beaucoup plus intense de ces messages lorsqu il provoque une commande debug. Cette commande constitue l un des outils majeurs dans la rsolution de problmes sur un routeur et dispose d options plthoriques qui permettent d ajuster le rsultat selon le type dactivit surveiller. ce sujet, rappelons quil faut tre prudent car certaines options peuvent entraner une production de messages telle qu elle consomme la majeure partie des ressources processeur de la machine empchant le routeur daccomplir sa tche normale. La commande undebug all ou no debug all dsactive toutes les commandes debug qui seraient en cours de traitement. Une mesure sage consiste entrer cette commande de faon systmatique avant d entrer une quelconque commande debug. La commande undebug all se trouve alors dans l historique de commandes et il suffit d une action sur la touche [Flche en haut] puis de valider par la touche [Entre] pour la provoquer. Ladministrateur peut ainsi esprer arrter une commande debug malheureuse mme avec un processeur noy . La figure ci-aprs rsume les cinq flux possibles de messages SYSLOG : Par dfaut, lIOS envoie lensemble des messages sur le port console, ce qui correspond la commande console logging. Depuis le mode privilgi, la commande Terminal monitor provoque laffichage des mess ages SYSLOG, messages debug compris, sur la session en cours. Cette commande est utile pour obtenir les messages depuis une session ouverte via une ligne vty. Puisquil ne sagit pas dune commande de configuration, cette commande nest pas mmorise et so n effet cesse lorsque la session prend fin (ceci est vrai pour toutes les commandes Terminal). Plus intressante encore est cette facult qui consiste mmoriser les messages dans un tampon, ce qui permet ladministrateur de les consulter quand bon lui semble laide dune commande show logging. Le tampon, cr par la commande de configuration globale logging buffered, est circulaire, les vnements les plus rcents remplacent les plus anciens. La commande admet deux paramtres importants : Il est possible de prciser la taille du tampon de 4096 2 147 483 647 octets, la taille par dfaut dpend de la plate- forme. Entrer la commandedefault logging buffered pour revenir la taille par dfaut. 4000 octets permettent de mmoriser environ 50 messages. Un dimensionnement 16000 octets et donc la possibilit de mmoriser 200 messages semble un bon compromis, attention ne pas approcher les limites de la plateforme ce que ladministrateur pourra vrifier laide dune commande show memory.

11

Scurit des rseaux informatiques

Prof : ABAZINE Karima

Il est possible de filtrer les vnements mmoriss dans le tampon selon un critre de svrit. En la matire, les messages davertissement CISCO IOS se conforment au RFC 5424 qui tablit huit niveaux de svrit de 0 7, la gravit crot quand le niveau de svrit diminue, il est quasi impossible dobtenir un message de svrit 0 puisque ce niveau correspond un systme inexploitable. Le tableau ci- dessous rpertorie les niveaux de svrit :
Niveau 0 1 2 3 4 5 6 7 Mot-cl emergencies alerts critical errors warnings notifications informational debugging Objet System isunusable - Systme inexploitable. Action must be taken immediately - Il faut agir sans tarder. Critical conditions - Contexte critique. Error conditions - Erreurs. Warning conditions - Avertissements. Normal but significant condition - vnement normal mais important. Informational messages - Information. Debug-level messages - Messages rsultant dune commande debug.

Exemple : la commande logging buffered 16384 critical entrane que seuls les vnements de svrit 0, 1 et 2 sont mmoriss dans le tampon fix ici 16 Ko. De la mme manire que nous avions souhait centraliser la gestion des comptes utilisateur avec la mthode RADIUS, il peut tre intressant de centraliser la gestion des messages SYSLOG. Un serveur SYSLOG mmorise sur des supports disques, dimportantes quantits dvnements en provenance dquipements trs diffrents pourvu quils se conforment au RFC 5424 (*). Les avantages sont nombreux : les historiques peuvent remonter sur de longues priodes ; en vitant demprunter de la mmoire vive pour stocker les messages, on ne pnalise pas le fonctionnement des quipements il devient possible de filtrer les vnements de faon fine selon diffrents critre s de date, de svrit, de type Le protocole SYSLOG sappuie sur le protocole de transport UDP, le serveur SYSLOG est lcoute sur le port UDP 514, il nexiste pas dacquittements de messages SYSLOG. Une commande de configuration globale logging host @IP_serveur_syslog provoque lenvoi des messages vers le serveur dont ladresse IP est @IP_serveur_syslog. Latelier SYSLOG propos dans ce chapitre fournira loccasion de tester une mise en uvre mais la commande logging host admet de nombreux paramtres et il est prfrable de se reporter loutil Command Lookup Tool de CISCO pour des mises en uvre plus complexes de cette commande. Pour tre complet, citons la possibilit dmettre les messages SYSLOG sous forme dinterceptions SNMP (SNMP traps) une station dadministration SNMP. La commande snmp- server enable trapsindique lIOS de transm ettre les interceptions SNMP, notifications SYSLOG incluses, condition bien sr que SNMP ait t configur au pralable. (*) ce sujet, il faut se rappeler que la loi sur la scurit quotidienne, dite LSQ et promulgue le 26 mars 2006, comporte entre autres obligations, celle faite aux oprateurs de communications lectroniques (dont les FAI) de conserver pendant un an les activits de leurs clients. Ceci comprend lidentification de lutilisateur du service et du terminal utilis, les destinataires de la communication, la date, lheure ainsi que les services complmentaires utiliss et leurs fournisseurs.

1. Atelier SYSLOG
Pour cet atelier, lauteur propose de mettre profit la plate- forme cre pour tester les listes tendues du chapitre prcdent : Objectifs : Installer le serveur SYSLOG sur la machine VMSRV01 Configurer les routeurs R100m et R120m afin de centraliser les messages SYSLOG des deux routeurs sur le serveur SYSLOG : Le routeur R100m enverra les messages SYSLOG laide du protocole de transport par dfaut, soit UDP, port 514. Le routeur R120m enverra les messages SYSLOG comme le ferait un botier PIX de Cisco (Private Internet eXchange, le botier pare-feu de CISCO), c est--dire laide du protocole de transport TCP

12

Scurit des rseaux informatiques

Prof : ABAZINE Karima

sur le port 1468. Les messages DEBUG devraient tre exclus des messages SYSLOG enregistrs sur le serveur. tape1:installationduserveurSYSLOG Tlchargez la version gratuite ou mieux la version dvaluation de Kiwi SYSLOG qui pendant 30 jours offre les fonctionnalits de la version payante puis bascule sur les fonctionnalits de la version gratuite. Au moment o ces lignes sont crites, la version 9 est disponible, le fichier tlcharger occupe 28784 Ko. Rendez-vous sur le site de l diteur : http://www.kiwisyslog.com/ Par tout moyen votre convenance, transfrez le fichier dinstallation sur la machine virtuelle VMSRV01. Exemple : par les fonctionnalits Shared Folders de Vmware. Installez Kiwi SYSLOG. Le programme d installation propose dinstaller le logiciel en tant que service ou en tant que programme. Pour une installation qui viserait crer un serveur de production, l administrateur devrait prfrer linstallation en tant que service. Mais pour notre phmre atelier, une installation en tant que programme convient parfaitement. Lancez Kiwi SYSLOG puis configurez-le de faon ce quil soit lcoute des messages sur : Ladresse 10.0.8.1 et le port UDP 514 Ladresse 10.0.8.1 et le port TCP 1468.

tape2:configurationdeR100m Vrifiez qu aucune liste de contrle d accs n est applique sur linterface f0/1 du routeur R100m :

R100m#sh run Building configuration... ......... ! interface FastEthernet0/1 ip address 10.0.8.254 255.255.255.0 duplex auto speed auto ......... R100m#

Provoquez lmission des messages SYSLOG vers le serveur :


R100m#conf t Enter configuration commands, one per line. End with CNTL/Z. R100m(config)#logging ? Hostname or A.B.C.D IP address of the logging host ......... R100m(config)#logging host ? Hostname or A.B.C.D IP address of the syslog server R100m(config)#logging host 10.0.8.1 ? filtered Enable filtered logging transport Specify the transport protocol (default=UDP) vrf Set VRF option xml Enable logging in XML

13

Scurit des rseaux informatiques


<cr> R100m(config)#logging host 10.0.8.1 transport ? tcp Transport Control Portocol udp User Datagram Protocol R100m(config)#logging host 10.0.8.1 transport udp ? filtered Enable filtered logging port Specify the UDP port number (default=514) xml Enable logging in XML <cr> R100m(config)#logging host 10.0.8.1 transport udp port ? <1-65535> Port number R100m(config)#logging host 10.0.8.1 transport udp port 514 ? filtered Enable filtered logging xml Enable logging in XML <cr> R100m(config)#logging host 10.0.8.1 transport udp port 514

Prof : ABAZINE Karima

Rglez le niveau de svrit pour que seuls les messages de 0 6 soient envoys au serveur :

R100m(config)#logging trap ? <0-7> Logging severity level alerts Immediate action needed (severity=1) criticalCritical conditions (severity=2) debuggingDebugging messages (severity=7) emergencies System is unusable (severity=0) errors Error conditions (severity=3) informational Informational messages (severity=6) notifications Normal but significant conditions (severity=5) warnings Warning conditions (severity=4) <cr> R100m(config)#logging trap 6 R100m(config)#^Z R100m#

tape3:configurationdeR120m Cette fois, imposez le transport via TCP :

R120m(config)#logging host 10.0.8.1 transport ? tcp Transport Control Portocol udp User Datagram Protocol R120m(config)#logging host 10.0.8.1 transport tcp port ? <1-65535> Port number R120m(config)#logging host 10.0.8.1 transport tcp port 1468 R120m(config)#logging trap 6 R120m(config)#^Z R120m#

tape4:test Provoquez sur chacun des routeurs quelques vnements gnrant des messages SYSLOG. Exemples : Entrez en mode de configuration puis revenez au mode privilgi. Effacez les compteurs (commande clear counters). Ajoutez l option log quelques lments de listes daccs puis provoquez du trafic afin de solliciter les listes d accs. Vous devriez observer ces diffrents vnements collects par Kiwi. Lcran pourrait alors ressembler la capture suivante : L outil serveur Kiwi recle sans doute des trsors dingniosit pour extraire l information utile des messages bruts SYSLOG. Mais leur dcouverte sort du cadre de l ouvrage et de plus, nul doute que l outil qui semble dutilisation trs intuitive se laissera prendre en main sans autre assistance que l aide intgre. Cet atelier est maintenant termin.

14

Scurit des rseaux informatiques

Prof : ABAZINE Karima

1. Contexte Quelques RFC utiles autour de SSH : RFC 4250 - The Secure Shell (SSH) Protocol Assigned Numbers - Janvier 2006 RFC 4251 - The Secure Shell (SSH) Protocol Architecture - Janvier 2006 RFC 4252 - The Secure Shell (SSH) Authentication Protocol - Janvier 2006 RFC 4253 - The Secure Shell (SSH) Transport Layer Protocol - Janvier 2006 RFC 4254 - The Secure Shell (SSH) Connection Protocol - Janvier 2006 RFC 4255 - Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints - Janvier 2006 RFC 4256 - Generic Message Exchange Authentication for the Secure Shell Protocol (SSH) Janvier 2006 RFC 4335 - The Secure Shell (SSH) Session Channel Break Extension - Janvier 2006 RFC 4344 - Secure Shell (SSH) Transport Layer Encryption Modes - Janvier 2006 RFC 4345 - Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol - Janvier 2006 RFC 4419 - Diffie-Hellman Group Exchange for the Secure Shell (SSH) Transport Layer Protocol Mars 2006; RFC 4432 - RSA Key Exchange for the Secure Shell (SSH) Transport Layer Protocol - Mars 2006 RFC 4716 - The Secure Shell (SSH) Public Key File Format - Novembre 2006 Le RFC 4253 est disponible en franais sur le site http://abcdrfc.free.fr/. SSH et TLS (Transport Layer Security) sont deux protocoles qui proposent une rponse au manque de scurit des protocoles de communication de l Internet. Ils intercalent une couche de scurit entre TCP et les protocoles applicatifs. SSH permet, entre autres, l administration de machines distance tandis que TLS est plus gnralement charg de scuriser les changes dans un contexte Web ou mail. Telnet (Teletype Network) est l application historique de la pile TCP/IP qui permet la prise de main distance. Hlas, les changes de Telnet se font en clair et labsence totale de scurit dune telle prise de main est devenue quasi- rdhibitoire. Secure Shell (SSH) offre une solution alternative dont lusage est appel s tendre depuis son adoption par lIETF. La premire version de SSH (dsormais appele SSH-1) date de 1995 et on la doit M. Tatu Ylnen, chercheur de l universit dHelsinki. Pour lanecdote, M. Ylnen avait d faire face une attaque type dcouverte de mot de passe par sniffer. M. Ylnen a ensuite fond sa socit SSH communications Security dans le but de dvelopper et commercialiser SSH. En janvier 2006, le groupe de travail secsh de l IETF a publi le standard SSH- 2 Cette version est compatible avec les premires implmentations fondes sur le brouillon (draft) de SSH-2. M. Ylnen fait partie des auteurs des RFC 4251 4254. Attention, cet ouvrage n est ni ddi la scurit, ni ddi l tude du protocole SSH. Un ouvrage entier ne suffirait pas couvrir ces deux sujets. Soyons pragmatiques et limitons notre ambition la mise en uvre de SSH sur nos plates-formes CISCO afin quil puisse se substituer Telnet.

Adoptez SSH

2. Les bases du chiffrement


Un texte lisible et comprhensible sans intervention particulire est un texte en clair. Le chiffrement est la mthode permettant de transformer ce texte en clair en charabia inintelligible que lon appelle texte chiffr. Seules les personnes auxquelles le message est destin doivent pouvoir raliser lopration inverse, le retour au texte d origine, cest--dire le dchiffrement. L auteur confesse une approximation commise dans louvrage prcdent Cisco - Notions de base sur les rseaux dans la collection Certifications aux Editions ENI qui consiste confondre dcryptage et dchiffrement. Les dfinitions suivantes ont t extraites du site http://www.larousse.fr/dictionnaires/francais/ : Chiffrer : transformer un message par un procd de chiffrement. Chiffrement : opration qui consiste transformer un message transmettre, dit message clair , en un autre message, inintelligible pour un tiers, dit message chiffr , en vue d assurer le secret de sa transmission. Dchiffrer : rtablir dans sa forme primitive un texte chiffr en utilisant en sens inverse le procd de transformation adopt par le chiffreur et connu du dchiffreur. Dcrypter : retrouver le sens clair d un message chiffr en criture secrte, sans connatre la clef ayant 15

Scurit des rseaux informatiques

Prof : ABAZINE Karima

servi le transcrire.

a. Les objectifs du chiffrement


Par essence, les informations mises disposition sur Internet sont publiques (si elles ne le sont pas, leur publication est illgale). La communication entre un navigateur et lun des sites qui met ces informations disposition na pas besoin dtre scurise. Posezvous la question : quelles informations ou quels changes mritent dtre scuriss ? La premire rponse qui vient spontanment est la scurisation des transactions commerciales. Valider un achat sur un site de ecommerce suppose que lacheteur envoie en ligne des informations bancaires (numro de carte de crdit, date de fin de validit...). Imaginez le dsastre si un pirate parvient rcuprer ces informations en coutant le rseau. Pour ce qui nous concerne, les changes avec nos matriels rseaux en vue de les administrer mritent autant de vigilance. Imaginez nouveau la catastrophe si un pirate parvenait prendre la main sur un ou plusieurs de nos routeurs pour ensuite refaire une configuration sur mesures. Notre belle poque voit une bonne partie dexperts informaticiens ou mathmaticiens qui singnient proposer des solutions de chiffrement de plus en plus labores pendant quune autre partie singnie trouver des failles dans les dispositifs mis en place, motivs par largent, le got de dtruire ou la vanit, chaque pirate se prenant pour un petit gnie injustement mconnu. Le chiffrement poursuit quatre objectifs essentiels : L authentification Lusurpation didentit est une technique trs accessible et donc trs apprcie des pirates. Les outils sont lgion qui permettent dcouter le rseau puis d usurper l identit dune machine, d un service rseau, le plus grave tant naturellement dusurper l identit dune personne. L authentification, cest tre sr de lidentit de celui avec qui on s apprte communiquer et davoir pu le rassurer sur notre propre identit. Une authentification russie repose sur le chiffrement des informations sensibles ncessaires sa ralisation, par exemple les mots de passe. L intgrit Attention au risque de confusion. Lintgrit dont nous avons parl jusqu prsent garantissait quun flux de donnes reu tait identique au flux de donnes mis. Cette garantie est obtenue en ajoutant de la redondance l information transporte. Pour mmoire : L metteur (la source) segmente le flux de bits en squences de bits. chaque squence, lmetteur ajoute de la redondance, c est--dire un certain nombre de bits calculs partir de la squence de bits d information. L metteur expdie le nouveau tronon ainsi constitu (bits d information + bits de redondance). Le rcepteur (le puits) reoit le tronon et partir des bits d information tels qu il les peroit calcule les bits de redondance tels quils devraient tre. Le rcepteur (le puits) compare les bits de redondance tels quil les a calculs avec les bits de redondance qu il a reus. Si les deux squences de redondance sont identiques, le message est intgre. Cette intgrit est suffisante pour protger des altrations que peut engendrer le transport de l information mais ne l est plus face au piratage. Dans la squence dcrite ci- dessus, rien n interdit un pirate de modifier le contenu de l information puis de calculer la squence de redondance adquate. L intgrit assure par le chiffrement va bien au- del en garantissant que le fichier reu est bien tel quil tait lorsque son auteur la engendr et qu aucune modification na t effectue par une tierce personne. On peut raisonner par couches : lintgrit assure par TCP est une intgrit de couche 4. L intgrit assure par le chiffrement est une intgrit de couche 6 (couche Prsentation). L intgrit assure par le chiffrement pourrait tre particulirement utile dans la lutte contre les virus. Sil est possible de garantir l origine et lintgrit dun fichier, lutilisation d un logiciel anti-virus est sans objet. Un fichier ayant fait lobjet d un chiffrement est un fichier sign, l utilisation de fichiers signs est certainement appele stendre. La confidentialit On le sait, impossible de faire confiance notre infrastructure rseau en imaginant ne pouvoir tre cout. Puisqu on ne peut empcher lcoute frauduleuse, rendons-la sans intrt en chiffrant les informations transportes. Signature lectronique Si lauthentification avait rpondu la question : mon destinataire est-il bien celui quil prtend 16

Scurit des rseaux informatiques

Prof : ABAZINE Karima

tre ? , la signature rpond la question l auteur ou lexpditeur de ce message ou de ce document est-il bien celui annonc ? Le chiffrement est mis profit par la signature lectronique de documents afin de garantir formellement l identit de lexpditeur ou de l auteur. Il arrive que la sensibilit du message lui-mme ne justifie pas vraiment un chiffrement. Mais le destinataire peut vouloir la garantie que les donnes sont distribues dans leur forme originale et qu elles n ont pas t envoyes par un imposteur. Et si ces deux garanties sont obtenues, on obtient naturellement une caractristique importante dite de non-rpudiation . Puisqu on est certain de l identit de lexpditeur et du contenu de son message, impossible pour lui de nier en tre lauteur. La non-rpudiation, cest redonner du sens au mot engagement, le contraire de l anonymat. Exemple de secteur o l usage de la signature lectronique apporterait un bnfice indniable : celui du courrier lectronique l heure o nos botes courrier sont inondes de courriers non sollicits (Spam). Un premier pas vers le rglement de ce problme serait de gnraliser la signature lectronique puis de refuser les courriers anonymes.

b. Les algorithmes de chiffrement


Chiffrement symtrique galement appel chiffrement cl secrte, le chiffrement symtrique utilise une seule cl pour chiffrer et dchiffrer les donnes. Les deux parties doivent donc partager la cl et cest bien l le point faible du dispositif car un moment donn, les deux correspondants vont devoir schanger la cl, par un moyen sr de prfrence. L intrt du chiffrement symtrique rside dans le fait quil est peu consommateur de ressources et qu il s excute rapidement. Son inconvnient est que chaque nouvelle paire de correspondants ncessite une nouvelle cl et que rapidement un matriel rseau peut avoir grer un grand nombre de cls. Sa robustesse est videmment lie sa longueur, un second point faible du dispositif. Claude Shannon a dmontr dans les annes 1980 que pour que cette mthode de chiffrement soit totalement sre, il faudrait que la longueur de cl utilise soit au moins gale la longueur du message encoder. Sans aller jusque-l, une mthode mise profit par la version 2 de SSH consiste changer de cl symtrique (la cl de session, patientez) de faon rgulire par exemple aprs une heure d utilisation ou 1 Mo de donnes changes. Nous sommes sur un milieu mouvant et une longueur donne est lie un stade de technologie donn. Si l volution des processeurs et mmoires est modlisable l aide de la fameuse loi de Moore, il est probable que lvolution de la longueur des cls de chiffrement suit une progression semblable. Quelques exemples d algorithmes de chiffrement symtrique dusage courant l heure o ces lignes sont crites : DES (Data Encryption Standard) issu dun logiciel dIBM nomm Lucifer et modifi par la NSA (National Security Agency), organisme gouvernemental amricain, DES fut publi en 1977. Il manipule des cls de 56 bits. 3DES (ou Triple DES) enchane trois applications successives de DES avec deux ou trois cls diffrentes. Quel que soit le nombre de cls diffrentes utilises, la longueur effective de cl et donc la robustesse du chiffrement est de 112 bits. RC2 (RivestCipher) conu par Ronald Rivest en 1987. Dveloppement financ par lditeur Lotus qui avait besoin dun chiffrement personnalis pour son produit de messagerie Lotus Notes. Longueur de cl 64 bits. RC4 cl de taille variable de 40 256 bits. RC5 cl de taille variable jusqu 2048 bits. IDEA (International Data Encryption Algorithm) cl de 128 bits. Blowfish conu par Bruce Schneier en 1993. Cl de taille variable de 32 448 bits. Cinq fois plus rapide que Triple DES, demeure trs solide, la version complte nayant ce jour pas montr de faille. Utilis dans de nombreux logiciels dont des logiciels du monde libre (notamment OpenSSH). AES (Advanced Encryption Standard) choisi en novembre 2000 par le NIST (National Institute of Standards and Technology) pour devenir le standard de chiffrement du gouvernement des Etats- Unis et donc remplacer DES. AES est issu dun appel candidatures lanc en 1977. Le NIST a reu quinze propositions, RC6 faisait partie des candidats. Le candidat retenu a t conu par deux cryptologues belges Joan Daemen et 17

Scurit des rseaux informatiques

Prof : ABAZINE Karima

Vincent Rijmen. La longueur de cl peut tre choisie parmi 128, 192 ou 256 bits. Chiffrementasymtrique galement appel chiffrement cl publique, un utilisateur qui dsire mettre profit ce chiffrement doit disposer dun couple de cls compos d une cl publique et d une cl prive. Comme son nom lindique, la cl publique est destine tre diffuse le plus largement possible tandis que la cl prive doit rester connue de son seul propritaire. On peut chiffrer les donnes soit avec la cl publique, soit avec la cl prive : Les donnes chiffres avec la cl publique ne peuvent tre dchiffres qu avec la cl prive correspondante. Exemple : Brett envoie un message confidentiel Danny. Brett chiffre le message avec la cl publique de Danny. Danny dchiffre le message avec sa cl prive. Rciproquement, les donnes chiffres avec la cl prive ne peuvent tre dchiffres qu avec la cl publique. Exemple : Brett souhaite envoyer un message Danny en lui donnant la certitude quil en est bien l auteur, c est--dire en signant le message. Brett chiffre le message avec sa cl prive. Si Danny parvient dchiffrer le message avec la cl publique de Brett, alors Brett est bien lauteur du message. Brett souhaite envoyer un message Danny en signant le document et en garantissant la confidentialit. Brett procde un double chiffrement : les donnes sont dabord chiffres avec sa cl prive (signature) puis une seconde fois avec la cl publique de Danny (confidentialit). En thorie, il n est pas possible de deviner la cl prive partir de la cl publique. Quelques exemples d algorithmes de chiffrement cl asymtrique : DSA ( Digital Signature Algorithm) standard du NIST quand l algorithme RSA tait encore brevet. DSA peut tre utilis gratuitement. RSA (du nom de ses auteurs Rivest, Shamir, Adleman ) dcrit en 1977, protg par un brevet dpos par le MIT en 1983, brevet qui a expir le 21 septembre 2000. Certainement le systme cl publique le plus utilis, exemples : e-commerce, cartes bancaires, SSH... Gnration des cls RSA C est entendu, il ne sagit que de satisfaire, humblement, un peu de curiosit intellectuelle : Choisir deux nombres premiers trs grands p et q (plus de 100 chiffres) Calculer n = p x q, n est le modulo du chiffrement Choisir un nombre e plus petit que n et premier avec (p - 1)(q - 1). Pour mmoire, un nombre a est premier avec le nombre b si a et b ne partagent aucun facteur premier autre que 1 Calculer d tel que d x e = 1 mod [(p - 1) x ( q - 1)]. d est calcul laide de l algorithme dit dEuclide tendu. Cet algorithme permet d exprimer linverse d un nombre modulo n. d est donc linverse de e dans l arithmtique modulo [(p - 1)(q - 1)]. La cl publique est donne par le couple (n, e) et la cl prive est d Dcouper le message en blocs de longueur identique (200 octets ou plus) Chiffrer en appliquant la formule c = (m)emod n Dchiffrer en appliquant la formule m = (c)dmod n = (m) demod n = m . On comprend pourquoi la mthode est coteuse en ressources machine. Il est difficile de trouver de grands nombres premiers et les oprations dans l arithmtique modulo n sont difficiles raliser. La scurit de l algorithme reste assure tant que : Les nombres p et q qui ont servi la gnration dune paire ne sont pas divulgus Factoriser de grands nombres restera une opration difficile Calculer la cl prive d partir de la cl publique (n, e) restera sans mthode de rsolution. Les tentatives, nombreuses, pour casser l algorithme de chiffrement asymtrique sont pour le moment mises en chec si les cls sont de longueur suffisante. On frmit lide que lensemble de la scurit rseau de la plante repose sur le pari que les choses resteront ainsi. Combinaison asymtrique- symtrique 18

Scurit des rseaux informatiques

Prof : ABAZINE Karima

En termes de consommation de ressources machine, les algorithmes cl asymtrique sont beaucoup moins performants que leurs homologues cl symtrique. Les protocoles rseau dont l objet est la scurit les utilisent par consquent dans les phases de ngociation et d authentification pralables ltablissement d une connexion scurise. Une fois en accord pour ouvrir un circuit scuris, les deux parties mettent profit la phase chiffre l aide du chiffrement asymtrique pour s changer une cl de session qui servira de cl de chiffrement symtrique pour la totalit des changes dans la suite de la connexion. On peut mme imaginer changer de cl de session de faon rgulire, les cls prissables expirant aprs un certain temps d activit ou un certain volume d informations transport. Attaque Man in the middle Les algorithmes de chiffrement dcrits empchent lcoute frauduleuse mais restent susceptibles aux attaques dites du milieu ou attaques par interception. Le pirate a intercept la cl publique du serveur. Il envoie au client sa propre cl publique. Le client utilise ses informations de connexion pour tablir une session avec ce quil crot tre le serveur. Le pirate rcupre ces informations quil peut dchiffrer avec sa cl prive. Il lui reste encoder ces informations avec la cl publique du serveur. Le pirate est la fois client (illgitime) du serveur et serveur (illgitime) du client. Client et serveur croient tre directement connects. O est la faille qui a rendu cette attaque possible ? Les certificats Le problme nat du fait que le client a accept la cl publique du pirate comme tant celle du serveur. En fait, la question est Comment tablir la confiance avec un inconnu ? Une fois de plus, le comportement que nous faisons adopter nos machines se calque sur nos propres comportements. On aborde que difficilement un inconnu dans la rue. Mais si un tiers de confiance vous prsente un inconnu, alors la confiance peut stablir sans dlai et selon la formule les amis de mes amis sont mes amis . Lquivalent du tiers de confiance en matire de rseaux est lautorit de certification. Cette autorit rend le service attendu en dlivrant des certificats. Un certificat de cl publique, gnralement appel simplement un certificat, est un document lectronique sign num riquement qui lie la valeur dune cl publique lidentit de la personne, de la machine ou du service qui contient la cl prive correspondante. La plupart des certificats communment utiliss sont bass sur la norme de certificat X.509 v3 : Un certificat contient les informations suivantes : La cl publique du sujet. Des informations identifiant le sujet, par exemple son nom et son adresse de messagerie. La priode de validit (dure pendant laquelle le certificat est valide). Des informations identifiant lautorit de certification. La signature numrique de lautorit de certification qui atteste de la validit de la liaison entre la cl publique du sujet et les informations didentification de ce dernier. Le demandeur d un certificat envoie les informations demandes dont la cl publique quil utilise un organisme de certification (VeriSign par exemple). L organisme vrifie ces informations puis y ajoute ses propres informations. Il signe ensuite le certificat c est--dire qu il ajoute un rsum des informations contenues encod avec sa cl prive. Il reste au client qui rcupre le certificat dcoder la signature l aide de la cl publique de lorganisme de certification (une cl bien connue en quelque sorte). Un certificat n est valide que pour la dure spcifie lintrieur chaque certificat contient les dates Valide partir du et Valide jusquau qui dfinissent les limites de la priode de validit. Une fois que la priode de validit d un certificat est dpasse, un nouveau certificat doit tre demand par le sujet du certificat expir.

3. Le protocole SSH
19

Scurit des rseaux informatiques

Prof : ABAZINE Karima

Le modle propos par SSH est comme Telnet un modle client- serveur, le port affect au serveur SSH est le port TCP 22 :

Le protocole SSH couvre lauthentification, la confidentialit et lintgrit des donnes.

a. SSH version 1
Ltablissement dune connexion scurise en SSH version 1 comporte les phases suivantes : Le client initie une session TCP avec le serveur, port serveur 22, port client xxx. Le serveur annonce la version du protocole quil reconnat par exemple SSH- 1.99Cisco- 1.25 . Le client fait de mme et annonce par exemple SSH-1.5-PuTTY_Release_0.60 . Ces annonces se font en clair. SSH- 1.99Cisco- 1.25 signifie protocole SSH version 1.99 implment par Cisco version 1.25. La version de limplmentation est un commentaire facultatif parfois mis profit par certaines implmentations afin de contourner des bogues connus. Si les versions client et serveur sont compatibles, alors ltablissement de la connexion se poursuit. Dans le cas prsent, le serveur annonce quil supporte la fois les versions 1 et 2, le client annonce 1, la connexion stablira en version SSH-1. ce stade, si ltablissement se poursuit, les deux extrmits basculent vritablement sur le protocole SSH encapsul dans IP. Le format des paquets SSH est le suivant : La longueur du bourrage est alatoire de 1 8 octets. Le CRC32 porte sur les champs bourrage, type de paquet et donnes. Le polynme gnrateur est 0xEDB 88320. Le serveur sidentifie auprs du client et fournit un certain nombre de paramtres de session : Sa cl dhte (Host Key), cest une cl publique RSA qui authentifie le serveur. Sa cl de serveur (Server Key), cest nouveau une cl publique RSA mais rgnre toutes les deux heures. Une squence alatoire de 8 octets appele (Check bytes). Le client doit inclure ces octets dans sa prochai ne rponse. Lobjet de ce cookie alatoire est de rendre plus difficiles les attaques en usurpation didentit. Des informations complmentaires comme la liste des chiffrements symtriques supports ainsi que la liste des authentifications supportes. Parvenu ce stade, chacun des deux correspondants gnre un identifiant de session exprim sur 128 bits et qui permettra de distinguer dans les paquets qui suivent ceux appartenant la session SSH en 20

Scurit des rseaux informatiques

Prof : ABAZINE Karima

cours. Lidentifiant de session est obtenu par un hachage MD5 de l ensemble cl d hte + cl de serveur + les 8 octets check bytes . Un point intressant est le comportement du client quand il reoit la cl dhte. Le client sinterroge : cette cl m est- elle connue ? Le client consulte une base de donnes des htes connus. Sil peut rpondre oui, tout va bien. Dans le cas contraire, on peut imaginer deux possibilits. Le serveur peut tre inconnu, ou tre connu mais avec une cl d hte diffrente. Dans les deux cas, il est probable que le client sollicite l intervention de ladministrateur pour dcider sil faut faire confiance ou pas la nouvelle cl. Exemple avec PuTTY en tant que client :

La squence d tablissement de la connexion scurise se poursuit : Le client gnre une cl de session (256 bits) et la chiffre deux fois en utilisant la paire de cls RSA issues du serveur (cl dhte + cl de serveur) puis envoie cette cl chiffre au serveur accompagne de l algorithme de chiffrement symtrique retenu ainsi que du cookie de 64 bits. Les deux extrmits basculent en mode chiffr symtrique en utilisant lalgorithme choisi. partir de ce moment, le canal est chiffr ce qui en fait un tunnel et il pourrait servir bien autre chose que le simple transport dun shell c est--dire dune session de terminal virtuel, ce que nous apprtons en faire. La phase d tablissement du tunnel SSH est termine, la phase d authentification du client peut commencer. Plusieurs mthodes d authentification sont possibles mais le temps et lespace manquent, nous n voquerons que la mthode dsigne SSH_AUTH_PASSWD. Il s agit dune identification classique la Telnet avec utilisation du couple nom/mot de passe. Le client envoie le mot de passe sous forme texte (mais il est chiffr par le tunnel), mot de passe lu directement depuis l entre au clavier de l utilisateur. Un tel tablissement a t captur l aide de Wireshark, le contexte tait le suivant : La station 10.0.8.10 tablit une connexion SSH sur le serveur SSH 10.0.8.254 (un routeur). La capture est disponible sur le site ENI (cap_2L_02.pcap). La version 1 de SSH nest pas un standard de l IETF et prsente certaines failles de scurit. Il est recommand dutiliser si possible la version 2.

b. SSH version 2
La couche de scurit de SSH- 2 comporte trois sous- couches : Un premier niveau Transport tablit la communication scurise entre client et serveur. Ce niveau est charg de la manipulation des paquets SSH, du chiffrement et de lintgrit des donnes. Un second niveau authentifie les utilisateurs (le premier niveau a authentifi les machines). Un troisime niveau offre un service de gestion des connexions, ces connexions peuvent comprendre le transfert de ports. Sous- couche Transport Le standard recommande dencapsuler SSH2 dans un protocole de transport fiable. En effet, toute erreur de transmission est dtecte par SSH et provoque la coupure immdiate de la connexion. Cest donc TCP qui est utilis, lIANA a affect le port TCP 22 au serveur SSH. Une fois la session TCP tablie (SYN, SYN- ACK, ACK), les deux parties changent une chane didentification dont le format est :

SSH-protoversion-softwareversion comments CR LF

SP

21

Scurit des rseaux informatiques

Prof : ABAZINE Karima

protoversion annonce la version du protocole. Dans le cas de SSH-2, la chane est 2.0. softwareversion annonce la version de limplmentation logicielle. comments optionnel, spar par le caractre Espace (ASCII 32). La taille maximale de cette chane est 255 caractres en incluant les caractres CR LF (Retour chariot et saut de ligne). Un serveur peut supporter les deux versions du protocole mais dans ce cas, il annonce 1.99. Un serveur strictement compatible avec la version 2 annonce 2.0. Un client SSH- 2 qui se connecte un serveur SSH- 1.99 interprte cette version comme tant la 2.0. Quelles soient attribues au client ou au serveur, la version 1 est incompatible avec la version 2. Structure du paquet SSH Le format du paquet SSH- 2est le suivant :

La longueur du paquet n inclut pas le code dauthentification des messages. Les donnes peuvent tre compresses mais elles ne le sont pas initialement. La longueur du bourrage ne peut excder 255 octets. La taille d un paquet ne peut excder 35000 octets, valeur choisie arbitrairement par SSH- 2 pour tre suprieure la charge utile non compresse prvue infrieure ou gale 32768 octets. Compression Quand client et serveur ont ngoci un algorithme de compression, cette compression sexerce exclusivement sur les donnes. Chaque sens de flux peut utiliser une mthode de compression diffrente mais le standard recommande d utiliser la mme mthode pour les deux sens de flux. Les mthodes de compression suivantes sont actuellement dfinies : Aucune exige zlib facultative, compression dcrite dans les RFC 1950 et 1951. Chiffrement Le chiffrement s opre l aide d un algorithme ngoci lors de lchange des cls. Quand il devient effectif, tout le contenu du paquet lexception du code d authentification de message est chiffr. Le chiffrement intervient toujours aprs la compression. Les champs concerns sont longueur de paquet, longueur de bourrage, charge utile et bourrage. nouveau, chaque sens de flux peut utiliser un algorithme diffrent mais nouveau le standard recommande d utiliser le mme algorithme pour les deux sens de flux. Le standard numre les algorithmes suivants :
Dsignation 3des-cbc blowfish-cbc twofish256-cbc twofish-cbc twofish192-cbc twofish128-cbc aes256-cbc aes192-cbc aes128-cbc serpent256-cbc serpent192-cbc serpent128-cbc arcfour idea-cbc cast128-cbc aucun Requis/non requis EXIG FACULTATIF FACULTATIF FACULTATIF FACULTATIF FACULTATIF FACULTATIF FACULTATIF RECOMMAND FACULTATIF FACULTATIF FACULTATIF FACULTATIF FACULTATIF FACULTATIF FACULTATIF Description 3DES trois cls en mode CBC. Blowfish en mode CBC. Twofish en mode CBC, avec une cl de 256 bits. alias pour "twofish256-cbc" (ne figure que pour des raisons historiques). Twofish avec cl de 192 bits. Twofish avec cl de 128 bits. AES en mode CBC, avec cl de 256 bits. AES avec cl de 192 bits. AES avec cl de 128 bits. Serpent en mode CBC, avec cl de 256 bits. Serpent avec cl de 192 bits. Serpent avec cl de 128 bits. chiffrement de flux ARCFOUR avec cl de 128 bits. IDEA en mode CBC mode. CAST-128 en mode CBC. NON RECOMMAND.

Le standard recommande un chiffrement dont la longueur de cl soit suprieure ou gale 128 bits. CBC signifie Cipher Block Chaining . Il sagit du mode opratoire utilis par l algorithme de chiffrement pour traiter les blocs doctets en clair et les blocs chiffrs. Le terme chaining rappelle que le 22

Scurit des rseaux informatiques

Prof : ABAZINE Karima

mode CBC fait intervenir dans le chiffrement du bloc en cours le rsultat du chiffrement du bloc prcdent :

Le chiffrement "3des- cbc" est le triple-DES trois cls (chiffrement-dchiffrement-chiffrement), o les huit premiers octets de la cl sont utiliss pour le premier chiffrement, les huit octets suivants pour le dchiffrement, et les huit octets suivants pour le chiffrement final. Cela exige 24 octets de donnes de cl (dont 168 bits sont en fait utiliss. Dans la mesure o cet algorithme a seulement une longueur effective de cl de 112 bits, il ne satisfait pas lexigence de longueur de cl du standard. Cependant, cet algorithme est toujours exig pour des raisons historiques. En effet, l essentiel des mises en uvre connues au moment de la rdaction du RFC 4253 prenait en charge cet algorithme, et il est couramment utilis parce quil est l algorithme interoprable fondamental. Le standard prvoit pourtant de le dconseiller ds quun algorithme plus fort (AES) pourra prtendre la mme universalit. Intgritdesdonnes Chacun des deux participants la session SSH effectue un comptage des paquets et donc entretient de manire secrte un numro de squence de paquet. Ce numro de squence est associ au contenu du paquet ainsi qu un secret partag pour calculer le MAC ou code d authentification du paquet (MAC : Message Authentication Code) dont lobjet est de vrifier lintgrit des donnes. Le MAC est la couche SSH ce que la somme de contrle est la couche TCP. Lalgorithme dauthentification de message et la cl sont ngocis durant lchange de cls. Au dpart, aucun MAC nest activ (longueur zro). Une fois activ, le MAC du paquet est calcul avant chiffrement de la faon suivante :
mac = MAC(cl, paquet_non_chiffr)

numro_de_squence

||

paquet_non_chiffr est le paquet entier sans squence mac numro_de_squence est le numro du paquet connu grce au comptage des paquets. Ce numro est initialis 0 pour le premier paquet puis incrment systmatiquement chaque paquet et jamais remis 0. Puisque le comptage seffectue sur 32 bits, le numro revient naturellement 0 aprs 2 32 paquets. La valeur mac issue de lalgorithme MAC est transmise sans chiffrement la queue d u paquet SSH. Sa longueur dpend de lalgorithme choisi. Le standard numre les algorithmes suivants :
Dsignation hmac-sha1 hmac-sha1-96 hmac-md5 hmac-md5-96 aucune Requis/Non requis EXIG RECOMMAND FACULTATIF FACULTATIF FACULTATIF Description HMAC-SHA1 (longueur du rsum = longueur de cl = 20). 96 premiers bits de HMAC-SHA1 (longueur de rsum = 12, longueur de cl = 20). HMAC-MD5 (longueur de rsum = longueur de cl = 16). 96 premiers bits de HMAC-MD5 (longueur de rsum = 12, longueur de cl = 16). pas de MAC NON RECOMMAND.

Mthodes dchange de cls La mthode d change de cl spcifie comment les cls de session utilisation unique sont gnres pour le chiffrement et pour l authentification, et comment lauthentification du serveur est faite. Le standard dfinit deux mthodes dchanges de cls : diffie-hellman- group1s ha1 EXIG diffie-hellman- group14sha1 EXIG. Algorithmes de cls publiques Le standard prvoit de fonctionner avec la plupart des formats, nombreux, de cls publiques. Plusieurs aspects dfinissent un type de cl publique : 23

Scurit des rseaux informatiques

Prof : ABAZINE Karima

Le format de cl : comment la cl est code et comment sont reprsents les certificats (en effet, les formats de cls du protocole SSH peuvent contenir des certificats en plus des cls). Les algorithmes de signature et/ou chiffrement : certains types de cls peuvent ne pas prendre en charge la fois la signature et le chiffrement. Le codage des signatures et/ou donnes chiffres. Cela inclut, sans sy limiter, le bourrage, l ordre des octets, et les formats de donnes. Les formats de cl publique et/ou de certificat suivants sont dfinis actuellement :
Dsignation ssh-dss ssh-rsa pgp-sign-rsa pgp-sign-dss Requis/Non requis EXIG RECOMMAND FACULTATIF FACULTATIF Signature ? signature signature signature signature Description cl DSS brute. cl RSA brute. certificats OpenPGP (cl RSA). certificats OpenPGP (cls DSS).

Les deux correspondants annoncent les formats supports puis choisissent un format communment support. Souscouche Authentification de lutilisateur Le protocole dauthentification SSH offre son service en sappuyant sur le service offert par le protocole de transport SSH. change initial Lauthentification est provoque par le client l aide d un paquet SSH_MSG_USERAUTH_REQUEST. Le mot de passe nest pas inclus dans ce premier message. la rception de ce message, le serveur doit rpondre par l un des messages suivants : SSH_MSG_USERAUTH_SUCCESS accepte lauthentification SSH_MSG_USERAUTH_FAILURE refuse lauthentification SSH_MSG_USERAUTH_INFO_REQUEST demande dinformation supplmentaire afin de poursuivre lauthentification. Le standard conseille de ne pas rpondre le message SSH_MSG_USERAUTH_FAILURE au premier message dauthentification par nom dutilisateur. Le comportement prfrer est de rpondre par un message SSH_MSG_USERAUTH_INFO_REQUEST puis de faire suivre ce message par un message SSH_MSG_USERAUTH_FAILURE diffr de quelques secondes. On vite ainsi de faciliter la tche des algorithmes dits attaque en force brute qui parviendraient autrement valider un nom dutilisateur par un message unique envoy au serveur. Demandes d informations Le serveur peut demander des informations dauthentification au client laide du message SSH_MSG_USERAUTH_INFO_REQUEST. Un serveur qui gnre ainsi une requte en attend la rponse avant de gnrer ventuellement une nouvelle requte. Le client doit accepter un nombre de requtes indfini. Le message d interrogation dfinit un tableau de valeurs rcuprer. chaque valeur sont associs une invite de commandes afficher l utilisateur ainsi quun boolen qui prcise si oui ou non la rponse entre par l utilisateur doit s afficher (pas dcho distant, le boolen dit cho local ou pas d cho local ). Une fois collectes les rponses de lutilisateur, le client gnre un message de rponse SSH_MSG_USERAUTH_INFO_RESPONSE. Le message doit contenir autant de rponses que demandes dans le message de requte et de plus, les rponses doivent tre disposes dans un ordre identique celui des questions respectives poses dans le message de requte. Le serveur qui reoit le message de rponse doit rpondre laide de lune des trois rponses possibles : succs, chec ou demande dinformations supplmentaires. En cas dchec, le standard recommande de nenvoyer le message dchec qu aprs quelques secondes dattente (gnralement 2 secondes) ce, toujours dans le but de compliquer la tche des algorithmes d attaque. Sous-coucheConnexion La version 2 de SSH dfinit un troisime protocole qui sappuie sur le protocole dauthentification prcdent. Son objet est de permettre l excution de commandes distance, le transfert de connexions TCP et de connexions X11 (prise de main distance dans un environnement graphique). Chaque fonctionnalit offerte provoque l tablissement de canaux SSH, chaque canal peut tre initi laide de messages par l un ou par l autre correspondant. 24

Scurit des rseaux informatiques

Prof : ABAZINE Karima

Un tablissement SSH- 2 a t captur l aide de Wireshark, le contexte tait le suivant : La station 10.0.8.10 tablit une connexion SSH sur le serveur SSH 10.0.8.254 (un routeur). La capture est disponible sur le site ENI (cap_2L_03.pcap).

4. Mise en uvre
Objectifs La mise en situation rutilise le contexte propos pour latelier SYSLOG, contexte qui avait t prpar pour ltude des listes de contrle dacc s. On se propose de prendre la main via SSH sur R100m depuis une station connecte LAN8. Pour mmoire, dans le tout premier chapitre de louvrage, nous avions ajout sur la machine hte un adaptateur rseau virtuel connect VMnet8 et donc LAN8. PuTTY excut sur la machine hte permettra cette connexion SSH. Depuis la session SSH ouverte sur R100m, on se propose de prendre la main via SSH sur le routeur R120m. tape 1 : adopter la bonne version dIOS Assurezvous que lIOS utilis supporte SSH. Sil sagit de prendre la main sur un routeur depuis une station, le routeur doit disposer de SSH server, et par suite requiert le support de IPsec et de ses algorithmes de chiffrement (DES ou 3DES). Cest le cas quand le nom de limage comporte la lettre K (Support de IPsec et de SSH), le mieux tant encore dadopter une version qui porte le symbole K9 (Support de la cryptographie forte savoir 3DES et AES). Relire si ncessaire le chapitre Gestion de la plate- forme logicielle CISCO IOS. S il sagit de prendre la main sur un routeur R2 depuis un autre routeur R1, alors lIOS de R1 doit avoir la fonctionnalit SSH client, cest le cas depuis la version 12.1(3)T. Pour notre part, la plate- forme utilise reste le 2621 dot de limage c2600- advipservicesk9- mz.124- 18a.bin. tape2:crerlabasedecomptes moins que ce n ait dj t fait dans un atelier prcdent, crez les deux comptes utilisateur :
R100m(config)#username brett password tamajeste R100m(config)#username danny password fulton R100m(config)#^Z R100m#

tape3:activerlamthode dauthentification locale Si ncessaire, relisez la section correspondante dans ce chapitre. Activez le modle AAA :
R100m(config)#aaa new-model R100m(config)#aaa authentication login auth_locale local

tape4:doterlerouteurd unnompleinement qualifi(FQDN) La mise en uvre de SSH requiert de crer sur le routeur une paire de cls (publique/prive) RSA. La cl prive est conserve par le routeur et inscrite dans la partition NVRAM. La cl publique sera fournie au client afin de chiffrer la phase de ngociation et dauthentification pralable lchange proprement dit. La paire est identifie par un nom. L administrateur peut au choix gnrer une paire nomme et dans ce cas lui attribuer un nom ou gnrer une paire sans la nommer et dans ce cas l IOS nomme la paire hostname.domain_name . Nommez le routeur puis renseignez le nom de domaine auquel il appartient (relire si ncessaire la section Rsolution de noms du chapitre Tches de configuration des routeurs) :
Router(config)#hostname R100m R100m(config)#ip domain-name ccna.fr R100m(config)#^Z R100m#

tape5:doterlerouteurd unepairedeclsRSA La commande mettre en uvre est crypto key generate rsa dont la syntaxe est la suivante :
crypto key generate rsa [general-keys | usage-keys | signature | encryption] [label [exportable] [modulus modulus-size] [storage devicename:][redundancy][on devicename:] key-label]

Les arguments majeurs de la commande sont : general-keys : Optionnel, cre une paire de cls usage gnral, cest le choix par dfaut. usage-keys : Optionnel, cre deux paires de cls dont une ddie au chiffrement, lautre la signature. Signature : Optionnel, cre une paire de cls ddie la signature. 25

Scurit des rseaux informatiques

Prof : ABAZINE Karima

Encryption : Optionnel, cre une paire de cls ddie au chiffrement. label key-label: Optionnel, nomme la cl ce qui est ncessaire si ladministrateur souhaite l exporter. Quand aucun nom nest spcifi, l IOS utilise le nom pleinement qualifi du routeur. Exportable : Optionnel, rend la paire exportable vers un autre quipement CISCO. modulus modulus-size : Optionnel, spcifie la taille de la cl. Par dfaut, la taille dune cl issue dune autorit de certification (CA) est 1024 bits. La taille recommande est 2048 bits. La commande accepte toute taille de cl comprise entre 350 et 4096 bits. Attention : gnrer une cl de 512 bits sur une plate- forme 4700 prend une seconde mais gnrer une cl de 2048 bits sur une plate-forme 2500 prend une heure ! storage devicename : Optionnel, spcifie la partition sur laquelle sera enregistre la paire de cls. Si le routeur dispose dj d une paire (ou deux) de cls RSA, l excution de la commande provoque un avertissement avant de remplacer la (ou les) paire existante par la paire en cours de cration. Outre la paire d usage gnral ou les deux paires ddies au chiffrement et la signature, lexcution de la commande provoque la cration d une paire de cls ddie SSH. Cette paire est exclusivement utilise par SSH et l IOS la nomme hostname.domain_name.server La commande nest pas rellement une commande de configuration mme sil faut la provoquer en mode de configuration globale. Cest pourquoi elle nest pas sauvegarde dans le fichier de configuration running-config. Cependant, les cls gnres par la commande sont sauvegardes en NVRAM (dans un fichier cach et non transfrable vers un autre dispositif) en mme temps que ladministrateur provoque une sauvegarde de la configuration courante. Hlas, ce fonctionnement nest pas reproduit par la plate-forme mule l aide de Dynamips. La manipulation reste possible mais en cas de redmarrage de la topologie, il faudra gnrer nouveau les cls. Les cls ne font pas partie de la configuration mais cest pourtant la commande de sauvegarde de la configuration qui provoque galement la sauvegarde des cls. Si la configuration nest pas sauvegar de, les cls gnres seront perdues au prochain rechargement du routeur ! Applique au cas prsent :
R100m(config)#crypto key generate ? rsa Generate RSA keys <cr> R100m(config)#crypto key generate rsa ? general-keys Generate a general purpose RSA key pair for signing and encryption usage-keys Generate separate RSA key pairs for signing and encryption <cr> R100m(config)#crypto key generate rsa general-keys ? exportable Allow the key to be exported label Provide a label modulus Provide number of modulus bits on the command line <cr> R100m(config)#crypto key generate rsa general-keys modulus ? <360-2048> size of the key modulus [360-2048] R100m(config)#crypto key generate rsa general-keys modulus 1024 ? exportable Allow the key to be exported <cr> R100m(config)#crypto key generate rsa general-keys modulus 1024 The name for the keys will be: R100m.ccna.fr % The key modulus size is 1024 bits % Generating 1024 bit RSA keys, keys will be non-exportable...[OK] R100m(config)# *Mar 1 01:59:15.531: %SSH-5-ENABLED: SSH 1.99 has been enabled R100m(config)#^Z R100m# *Mar 1 02:00:23.391: %SYS-5-CONFIG_I: Configured from console by brett on console R100m#copy run start Destination filename [startup-config]? Building configuration... [OK] R100m#

Observez dans la capture cidessus, la cration de la paire de cls saccompagne de lactivation de SSH sur le routeur. On apprend galement que la version supporte de SSH est la version 1.99, ce qui signifie 26

Scurit des rseaux informatiques

Prof : ABAZINE Karima

que le serveur SSH en place acce pte les connexions quelles soient issues de clients SSH1 ou SSH2. Vrifiez que les cls sont effectivement cres :
R100m#sh crypto key ? mypubkey Show public keys associated with this router pubkey-chain Show peer public keys R100m#sh crypto key mypubkey ? rsa Show RSA public keys R100m#sh crypto key mypubkeyrsa % Key pair was generated at: 01:59:15 UTC Mar 1 2002 Key name: R100m.ccna.fr Usage: General Purpose Key Key is not exportable. Key Data: 30819F30 0D06092A 864886F7 0D010101 05000381 8D003081 89028181 00D1D6C4 DC64DBC9 11C786FF 9794310C 587121DE 623804E2 053FCC82 09200431 041C47A9 68F7ED05 BEF2332E 1E55A63F 48159085 52E87745 B6BAB5B4 61696FAC 14374CEB 0BE0FEBC 8C9BCD46 C9BD943A 49959014 F0173B81 E3533B22 5167388A 61B7781C AC45EE7F 57103E87 C63638DE 7282E702 D4378418 6390055D 908976D2 01020301 0001 % Key pair was generated at: 01:59:15 UTC Mar 1 2002 Key name: R100m.ccna.fr.server Usage: Encryption Key Key is not exportable. Key Data: 307C300D 06092A86 4886F70D 01010105 00036B00 30680261 00B042AA FDE95871 EE6DDB3F DE2DFF1C 3518882D 14E41865 6625997D 6F264B1E B9809261 C0D7B152 89CDFA98 BA8F9B0D 3997C9A7 BA700F5D 990402BB 6DA1974A DFFC7F08 1D9F7473 A0A15799 8E86EE47 BFA3387F 4E8868EC FF5CD9A8 ACEBC1E2 A3020301 0001 R100m#

Ainsi, la commande crypto key generate rsa a engendr deux cls, lune prvue pour un usage gnral, l autre ddie SSH. tape 6 : rgler les paramtres de lauthentification ssh En mettant profit la commande ip ssh en mode de configuration globale :
ipssh [timeout seconds | authentication-retries integer]

... dont les arguments sont les suivants : timeout Optionnel, rgle le temps dattente de la rponse du client par SSH Server. Ce temps ne concerne que la phase de ngociation de SSH. Une fois la session ouverte, cest le temporisateur timeout appliqu aux lignes vty qui s applique galement la session SSH. Ce temporisateur expire par dfaut 10 minutes aprs le dmarrage de session. seconds Optionnel, exprim en seconds. Temps max = Temps par dfaut = 120 s. authentication-retries Optionnel, nombre de tentatives douvertures de session admises. integer Optionnel, nombre de tentatives, 5 maxi, 3 par dfaut. Rglez les paramtres de l authentification ssh comme suit :
R100m(config)#ip ssh time-out 120 R100m(config)#ip ssh authentication-retries 4 R100m(config)#^Z R100m#

Vrifiez la configuration obtenue :

R100m#sh ip ssh SSH Enabled - version 1.99 Authentication timeout: 120 secs; Authentication retries: 4

27

Scurit des rseaux informatiques


R100m#

Prof : ABAZINE Karima

Comment vrifier les sessions en cours ? :

R100m#sh ssh %No SSHv2 server connections running. %No SSHv1 server connections running. R100m#

La rponse cette commande show est riche denseignements puisqu on y dcouvre comment limplmentation de CISCO supporte la fois les versions 1 et 2 du protocole SSH. Cisco a simplement prvu deux serveurs et un systme d aiguillage vers le serveur adquat. L administrateur peut imposer la version de SSH utiliser. Dmonstration :
R100m(config)#ip ssh version ? <1-2> Protocol version R100m(config)#ip ssh version 2 R100m(config)#^Z R100m#sh ip ssh SSH Enabled - version 2.0 Authentication timeout: 120 secs; Authentication retries: 4 R100m#sh ssh %No SSHv2 server connections running. %No SSHv1 server connections running.

Passage par la version 1, puis retour au comportement par dfaut :


R100m(config)#ip ssh version 1 R100m# R100m#sh ip ssh SSH Enabled - version 1.5 Authentication timeout: 120 secs; Authentication retries: 4 R100m#conf t Enter configuration commands, one per line. End with CNTL/Z. R100m(config)#no ip ssh version R100m(config)#^Z R100m#sh ipssh SSH Enabled - version 1.99 Authentication timeout: 120 secs; Authentication retries: 4

C est une confirmation, il faut conclure que laffichage version 1.99 doit tre interprt comme la possibilit pour le routeur d ouvrir indiffremment une session SSH- 1 quune session SSH-2. tape 7 : imposer le transport de la session de terminal vty par ssh Si nous laissions la configuration dans cet tat, louverture de session par Telnet resterait possible :
R100m(config)#line vty 0 4 R100m(config-line)#tra R100m(config-line)#transport ? input Define which protocols to use when connecting to the terminal server output Define which protocols to use for outgoing connections preferred Specify the preferred protocol to use R100m(config-line)#transport input ? all All protocols mop DEC MOP Remote Console Protocol none No protocols pad X.3 PAD rlogin Unix rlogin protocol ssh TCP/IP SSH protocol telnet TCP/IP Telnet protocol udptn UDPTN async via UDP protocol v120 Async over ISDN R100m(config-line)#transport input ssh ? mop DEC MOP Remote Console Protocol pad X.3 PAD rlogin Unix rlogin protocol telnet TCP/IP Telnet protocol udptn UDPTN async via UDP protocol v120 Async over ISDN <cr> R100m(config-line)#transport input ssh R100m(config-line)#^Z R100m#

Observez quen fait, la commande transport admet une liste de protocoles potentiels. Ainsi, entrer la commande transport input ssh telnet permettrait autant une ouverture de session par SSH que par Telnet. 28

Scurit des rseaux informatiques

Prof : ABAZINE Karima

tape 8 : test de louverture de session sur R100m via SSH Il est temps dexplorer les possibilits de PuTTY en ce domaine :

tiquettes 1, 2 et 3 Ladministrateur indique ladresse IP du routeur objet de la prise de main puis coche le protocole de transport SSH. Observez le port TCP correspondant soit 22. tiquettes 4, 5 et 6 Ladministrateur peut souhaiter ou imposer une ve rsion du protocole SSH. Naturellement, en production, la version 2 est prfrer quand elle est supporte. Adoptons un comportement exploratoire en prfrant dans un premier temps la version 1 du protocole. tiquettes 7, 8 Ladministrateur rgle le comportement du client SSH PuTTY dans le renouvellement des cls de session. Ceci ne concerne que les sessions ouvertes avec SSH version 2. Ouvrez la session (tiquette 9). Vrifiez laide dune commande show ssh la version de protocole SSH utilise et par suite quel a t lalgorithme de chiffrement choisi pour crer le tunnel scuris SSH. Lalgorithme AES ne peut tre utilis que par SSH- 2, PuTTY a tent de ngocier Blowfish sans succs, le troisime algorithme de la lis te tait 3DES, cet algorithme convenait aux deux parties :
login as: danny Sent username "danny" danny@10.0.8.254s password: R100m>en Password: R100m#sh ssh Connection Version Encryption 66 1.5 3DES %No SSHv2 server connections running. R100m#

State Session started

Username danny

Fermez cette session puis configurez PuTTY afin de prfrer SSH- 2 la prochaine ouverture. Ouvrez nouveau la session et observez que cette fois, lalgorithme de chiffrement est AES :

login as: danny Using keyboard-interactive authentication. Password: R100m>sh ip ssh SSH Enabled - version 1.99 Authentication timeout: 120 secs; Authentication retries: 4 R100m>en Password:

29

Scurit des rseaux informatiques


R100m#sh ssh Connection Version Mode Encryption 66 2.0 IN aes256-cbc 66 2.0 OUT aes256-cbc %No SSHv1 server connections running. R100m#

Prof : ABAZINE Karima

Hmac hmac-sha1 hmac-sha1

State Session started Session started

Username danny danny

Observez galement l apparition d une colonne supplmentaire qui renseigne sur le contrle dintgrit choisi, hmac- sha1 dans le cas prsent. Autre diffrence notable avec la version 1 : Il faut deux lignes pour dcrire la session en cours. En effet, puisqu il est possible dimposer un algorithme de chiffrement et un algorithme dintgrit diffrents pour chaque sens de flux, la commande affiche une ligne par sens de flux ( IN , OUT ). tape9:activerSSHsurR120m Une autre facult de l IOS est de pouvoir crer des cls RSA nommes. Dans ce cas, ltape pralable qui consistait doter le routeur d un nom pleinement qualifi nest pas indispensable :
R120m(config)#ip domain-name ccna.fr R120m(config)#^Z R120m#

Sur R120m, gnrez une paire de cls nomme cle_RSA_pour_SSH :

R120m(config)#crypto key generate rsa general-keys label cle_RSA_pour_SSH ? exportable Allow the key to be exported modulus Provide number of modulus bits on the command line <cr> R120m(config)#$generate rsa general-keys label cle_RSA_pour_SSH modulus 1024 The name for the keys will be: cle_RSA_pour_SSH % The key modulus size is 1024 bits % Generating 1024 bit RSA keys, keys will be non-exportable...[OK] R120m(config)# Mar 1 00:05:25.139: %SSH-5-ENABLED: SSH 1.99 has been enabled R120m(con fig)#^Z R120m#

Observez le message SYSLOG qui avertit de l activation de SSH-1.99. Vrifiez que les cls sont effectivement cres :
R120m#sh crypto key mypubkey rsa % Key pair was generated at: 00:05:25 UTC Mar 1 2002 Key name: cle_RSA_pour_SSH Usage: General Purpose Key Key is not exportable. Key Data: 30819F30 0D06092A 864886F7 0D010101 05000381 8D003081 89028181 00E2BBDB B50E39F6 309CFBF0 03C03121 C59C60D5 C593E2A7 F32D717A A49EA7B9 2B0E7CCC 3DE7CB6A 8BBDCB93 09E46CF4 4FA7B9BE 49851696 6179DF1F D6B28C8E 63E18693 79C15F42 4E17D5A5 1904D948 97AA3EB9 % Key pair was generated at: 00:05:25 UTC Mar 1 Key name: cle_RSA_pour_SSH.server Usage: Encryption Key Key is not exportable. Key Data: 307C300D 00DF4136 C9A83CA8 002AA4F5 C02BCFF8 BF49890C 06092A86 259E7A4E CE195ACF 671E3FE0 FC90542F 4E7C96DB 4886F70D D72C474A 08505544 6AD7B8E3 D053E6AA 21020301 01010105 7FDEB6A0 E1AAC8B6 60903D5D 3072DB55 0001 00036B00 30680261 4909511B 92E53AC1 BC0B3D86 FDF7F74D E7B3D1A1 39535D0C F3FBE2D8 58F82743 CE3271F8 F94E8748 2002 ADECA102 5A006F6C 1D4E33E1 04D85DB5 47228EE1 94CE6B3C 42F81B7D 2D020301 0001

tape10:rglerlesparamtres de l authentification ssh Ajustez ces paramtres lidentique avec R100m :


R120m(config)#ip ssh time-out 120 R120m(config)#ip ssh authentication-retries 4 R120m(con

30

Scurit des rseaux informatiques


fig)#^Z R120m#

Prof : ABAZINE Karima

tape11:imposerletransportdelasessiondeterminalvtyparssh Si nous laissions la configuration dans cet tat, louverture de session par Telnet reste possible :
R120m(config)#line vty 0 4 R120m(config-line)#transport input ssh R120m(configline)#^Z R120m#

Observez qu en fait, la commande transport admet une liste de protocoles potentiels. Ainsi, entrer la commande transport input ssh telnet permettrait autant une ouverture de session par SSH que par Telnet. tape12:attribuerlaclnommessh Commenons par une erreur volontaire afin d observer le comportement de lIOS :
R120m(config)#ip ssh rsa keypair-name cle_RSA_pour_SSH.server Please create RSA keys to enable SSH. R120m(config)# Mar 1 00:08:56.655: %SSH-5-DISABLED: SSH 1.99 has been disabled

Le nom de cl na pas t reconnu par l IOS qui en conclut que ladministrateur doit encore crer cette paire ( Please create RSA keys to enable SSH ). En attendant, SSH est dsactiv. Attribuez la paire en la nommant telle quattendue par lIOS :
R120m(config)#ip ssh rsa keypair-name cle_RSA_pour_SSH R120m(config)# Mar 1 00:09:41.759: %SSH-5-ENABLED: SSH 1.99 has been enabled R120m(config)#^Z Mar 1 00:10:16.207: %SYS-5-CONFIG_I: Configured from console by danny on console R120m#copy run start Destination filename [startup-config]? Building configuration... [OK] R120m#

tape13:ouvrirunesessionSSHdepuisR100msurR120m La commande ssh permet d ouvrir une session vers un serveur SSH (cette commande active donc un client SSH). Observez quelle admet de nombreux arguments qui permettent dtablir une session sur mesures :
R100m#ssh ? -c Select encryption algorithm -l Log in using this user name -m Select HMAC algorithm -o Specify options -p Connect to this port -v Specify SSH Protocol Version WORD IP address or hostname of a remote system R100m#ssh -c ? 3des triple des SSHv2 only cipher list: aes128-cbc AES 128 bits aes192-cbc AES 192 bits aes256-cbc AES 256 bits R100m#ssh -l ? WORD Login name R100m#ssh -m ? SSHv2 Hmac list: hmac-md5-128 hmac-md5 MD5 based HMAC(128 bits) hmac-md5-96 MD5 based HMAC(96 bits) hmac-sha1-160 hmac-sha1 SHA1 based HMAC(160 bits) hmac-sha1-96 SHA1 based HMAC(96 bits) R100m#ssh -o ? numberofpasswordprompts Specify number of password prompts R100m#ssh -p? -p WORD

31

Scurit des rseaux informatiques


R100m#ssh -v? -v WORD R100m#ssh -v ? 1 Protocol Version 1 2 Protocol Version 2

Prof : ABAZINE Karima

Utilisez cette dclinaison de la commande :

R100m#ssh -l danny 10.0.8.253 Password: R120m>sh ip ssh SSH Enabled - version 1.99 Authentication timeout: 120 secs; Authentication retries: 3 R120m>sh ssh Connection Version Mode Encryption Hmac State 66 1.99 IN aes128-cbc hmac-sha1 Session started 66 1.99 OUT aes128-cbc hmac-sha1 Session started %No SSHv1 server connections running. R120m>exit [Connection to 10.0.8.253 closed by foreign host] R100m#

Username danny danny

Cet atelier est maintenant termin.

32