informatique:cisco:securiser_un_routeur
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| informatique:cisco:securiser_un_routeur [2009/07/14 17:52] – pteu | informatique:cisco:securiser_un_routeur [2014/02/07 14:29] (current) – [SNMP] pteu | ||
|---|---|---|---|
| Line 4: | Line 4: | ||
| - | Par sécurité, comme sur tout système informatique, | + | Par sécurité, comme sur tout système informatique, |
| =====Cisco AutoSecure (CLI)===== | =====Cisco AutoSecure (CLI)===== | ||
| - | La fonctionnalité **Cisco AutoSecure** permet d'"auditer" | + | La fonctionnalité **Cisco AutoSecure** permet d' |
| - | * le mode interacif | + | * le mode interactif |
| - | * le mode non-interactif qui applique automatiquement les bonnes pratiques (pas très conseillé) | + | * le mode non-interactif qui applique automatiquement les bonnes pratiques (pas conseillé) |
| - | Sur les versions | + | Sur les versions |
| configure replace flash: | configure replace flash: | ||
| Line 26: | Line 26: | ||
| C'est un fonction accessible via la SDM qui compare la configuration courante du routeur à une base de bonnes bonnes pratiques. Il existe 2 possibilités : | C'est un fonction accessible via la SDM qui compare la configuration courante du routeur à une base de bonnes bonnes pratiques. Il existe 2 possibilités : | ||
| - | * **security audit** : la configuration est passée en revue et chaque point négatif est afficher | + | * **security audit** : la configuration est passée en revue et chaque point négatif est affiché |
| * **one-step lockdown** : analyser et appliquer les paramètres recommandés sans interaction avec l' | * **one-step lockdown** : analyser et appliquer les paramètres recommandés sans interaction avec l' | ||
| Line 37: | Line 37: | ||
| security passwords min-length 10 | security passwords min-length 10 | ||
| - | * Chiffrer les mots de passe écrits | + | * Chiffrer les mots de passe inscrits |
| service password-encryption | service password-encryption | ||
| Line 44: | Line 44: | ||
| password 7 051F091B2E | password 7 051F091B2E | ||
| - | 7 indique que l' | + | * Le 7 indique que l' |
| - | 5 indique un hash MD5 (c'est le cas du '' | + | |
| * utiliser le mot clé '' | * utiliser le mot clé '' | ||
| Line 52: | Line 52: | ||
| [..] | [..] | ||
| username toto secret toto | username toto secret toto | ||
| + | Cette //best practice// ne rentre pas en contradiction avec celle d' | ||
| - | * Désactiver l' | + | * Désactiver l' |
| no service password-recovery | no service password-recovery | ||
| - | * Pour imposer un temps (ici de 10 secondes) entre chaque tentative de login : | + | * Pour imposer un temps d' |
| login delay 10 | login delay 10 | ||
| Line 65: | Line 66: | ||
| security authentication failure rate 5 log | security authentication failure rate 5 log | ||
| - | * Pour éviter les attaques par force brute, on peut bloquer les tentatives de login après un certains seuil d' | + | * Pour éviter les attaques par force brute, on peut bloquer les tentatives de login après un certains seuil d' |
| login block-for 100 attemps 3 within 10 | login block-for 100 attemps 3 within 10 | ||
| Line 77: | Line 78: | ||
| login on-failure trap | login on-failure trap | ||
| - | * définir un timeout d' | + | * définir un timeout d' |
| exec-timeout 0 | exec-timeout 0 | ||
| Line 88: | Line 89: | ||
| * les niveaux intermédiaires, | * les niveaux intermédiaires, | ||
| - | Pour configurer un mode de privilège, on doit lui attribuer un mot de passe et des droits : '' | + | Pour configurer un mode de privilège, on doit lui attribuer un mot de passe et des droits : '' |
| privilege exec level 2 ping | privilege exec level 2 ping | ||
| enable secret level 2 toto | enable secret level 2 toto | ||
| Line 99: | Line 100: | ||
| =====Les vues===== | =====Les vues===== | ||
| - | Les vue permettent d' | + | Les vues permettent d' |
| conf t | conf t | ||
| aaa new-model | aaa new-model | ||
| enable view | enable view | ||
| - | Puis on créer la vue premiere_view, | + | Puis on créer la vue premiere_view, |
| parser view premiere_vue | parser view premiere_vue | ||
| | | ||
| Line 113: | Line 114: | ||
| | | ||
| - | On peut créer des super vues qui aggrèges | + | On peut créer des super vues qui aggrègent |
| parser view super_vue superview | parser view super_vue superview | ||
| | | ||
| Line 119: | Line 120: | ||
| view seconde_vue | view seconde_vue | ||
| + | On ne peut pas ajouter de commandes à une superview, elle ne peut qu' | ||
| + | |||
| + | |||
| + | =====Resilient configuration feature===== | ||
| + | |||
| + | Fonctionnalité d'IOS qui permet de conserver une version " | ||
| + | |||
| + | Activer la résilience de l' | ||
| + | secure boot-image | ||
| + | secure boot-config | ||
| + | |||
| + | Pour restaurer l'IOS : démarrer en rommon puis charger l'IOS : | ||
| + | rommon 1 >boot disk0: | ||
| + | |||
| + | Pour restaurer la conf : | ||
| + | secure boot-config restore slot0: | ||
| + | copy slot0: | ||
| + | |||
| + | Vérifs : | ||
| + | show secure bootset | ||
| + | |||
| + | |||
| + | =====Management===== | ||
| + | |||
| + | ====Syslog / trap==== | ||
| + | |||
| + | Configurer un syslog externe : | ||
| + | logging < | ||
| + | |||
| + | Configurer la // | ||
| + | logging trap < | ||
| + | |||
| + | Configurer la // | ||
| + | logging facility < | ||
| + | |||
| + | PS : [[informatique: | ||
| + | |||
| + | Les messages de log sont de la forme : | ||
| + | Jul 16 19:51:00: %SYS-5-CONFIG_I: | ||
| + | |||
| + | ... avec 3 champs distincts, séparés par une virgule : | ||
| + | * '' | ||
| + | * '' | ||
| + | * le reste : le texte du message | ||
| + | |||
| + | Si on les récupère dans un syslog ils sont précédés (dépend du syslogd utilisé) du timestamp de réception du serveur syslog et de l'IP source/ | ||
| + | |||
| + | D' | ||
| + | |||
| + | * activer la journalisation : '' | ||
| + | * pour préciser l' | ||
| + | * pour ajouter un timestamp dans les messages de log : '' | ||
| + | |||
| + | Il faut que l' | ||
| + | |||
| + | ====NTP==== | ||
| + | |||
| + | Pour synchroniser l' | ||
| + | |||
| + | On peut définir différents types rôle : | ||
| + | * client : se synchronise auprès d'une autorité de temps = le routeur émet des requêtes pour se synchroniser auprès d'un serveur | ||
| + | * serveur : autorité de temps ; synchronise les clients qui lui demandent l' | ||
| + | * peer : les requêtes NTP vont dans les 2 sens ; chacun peut être soit client soit serveur | ||
| + | |||
| + | ===ntp client=== | ||
| + | Configuration type : déclaration d'un serveur/ | ||
| + | ntp {server | peer} 10.0.0.111 | ||
| + | |||
| + | On peut en définir plusieurs, ainsi qu'un ordre de préférence : | ||
| + | ntp server 10.0.0.111 | ||
| + | ntp server 192.168.0.1 prefer | ||
| + | |||
| + | Pour mettre en place de l' | ||
| + | ntp authenticate | ||
| + | ntp authenticate-key 1 md5 < | ||
| + | ntp trust-key 1 | ||
| + | | ||
| + | ntp server 10.0.0.111 key 1 | ||
| + | |||
| + | Pour écouter (et se synchroniser dessus) les broadcasts NTP reçus sur une interface : | ||
| + | interface fa0/0 | ||
| + | ntp broadcast client | ||
| + | |||
| + | Utilisation d'une ACL filtrante : | ||
| + | ntp access-group {query-only | serve-only | serve | peer} < | ||
| + | |||
| + | Les machines qui matchent l'ACL auront le droit indiqué. | ||
| + | |||
| + | ===Serveur ntp=== | ||
| + | //NB : il me semble que les routeurs agissent par défaut comme serveur NTP.// | ||
| + | |||
| + | Pour faire d'un routeur un serveur ntp autoritatif : | ||
| + | ntp master [stratum] | ||
| + | |||
| + | //stratum// indique la précision supposée (de 1 à 15) : plus la valeur est faible plus le serveur sera considéré comme fiable par les clients NTP (les strates 1 sont directement reliées à une horloge atomique) | ||
| + | |||
| + | Pour émettre des broadcasts NTP sur une interface (en config-if) : | ||
| + | interface fa0/0 | ||
| + | ntp broadcast | ||
| + | |||
| + | ====SNMP==== | ||
| + | |||
| + | Pour monitorer/ | ||
| + | |||
| + | Il est conseillé d' | ||
| + | |||
| + | Procédure de configuration du SNMPv3 : | ||
| + | * configurer le server-ID local du routeur ; il est optionnel de préciser l'IP, l'ID et le numéro de port (par défaut 161) d'un équipement distant. | ||
| + | * configurer les noms de groupes | ||
| + | * configurer les utilisateurs | ||
| + | * configurer les machines | ||
| + | |||
| + | __Exemple :__ | ||
| + | <code bash> | ||
| + | snmp-server engineID local 0123456789 | ||
| + | snmp-server engineID remote 10.0.0.100 00000063000100a1c0b4011b | ||
| + | |||
| + | snmp-server group authgroup v3 auth | ||
| + | snmp-server group authgroup v3 priv | ||
| + | | ||
| + | snmp-server user authuser authgroup v3 auth md5 mypassword priv des56 encryptedpasswd | ||
| + | snmp-server user authuser authgroup v3 auth md5 mypassword | ||
| + | | ||
| + | snmp-server host 10.0.0.111 traps version 3 priv authuser | ||
| + | | ||
| + | snmp-server enable traps cpu | ||
| + | snmp-server enable traps config | ||
| + | snmp-server inform retries 0 | ||
| + | snmp-server source-interface traps loopback 0 | ||
| + | </ | ||
| + | |||
| + | __Liens :__ | ||
| + | * http:// | ||
| + | |||
| + | |||
| + | =====AAA===== | ||
| + | |||
| + | Authentication, | ||
| + | |||
| + | Il existe 3 types de configurations possibles : | ||
| + | * **Self-contained AAA** : il s'agit d'un serveur inclus dans l'IOS (authentification locale) | ||
| + | * **Cisco Secure ACS Server for Windows Server** : un logiciel installé sur un serveur pour créer un serveur AAA externe | ||
| + | * **Cisco Secure ACS Solution Engine** équipement dédié | ||
| + | |||
| + | 2 modes d' | ||
| + | * **character mode** pour les " | ||
| + | * **packet mode** pour les interfaces (async, serial) => on définit les droits '' | ||
| + | |||
| + | ====RADIUS==== | ||
| + | |||
| + | Le **RADIUS** est, avec TACACS+, l'un des 2 protocoles AAA les plus connus ; il est normalisé par l'IETF (RFC 2865) et utilise des datagrammes udp/1812 et 1813 (le serveur Cisco Secure ACS utilise lui udp/1645 et 1646). A chaque compte sont associés zéro ou plusieurs **paires AV** (Attribute-Value) qui définissent ses droits. Il y a une 50aine de paires AV prédéfinies, | ||
| + | |||
| + | Le RADIUS permet : | ||
| + | * le chiffrement du mot de passe (uniquement) en MD5 | ||
| + | * l' | ||
| + | |||
| + | Mise en place : | ||
| + | aaa new-model | ||
| + | radius-server host 10.0.0.111 | ||
| + | radius-server key < | ||
| + | |||
| + | |||
| + | ====TACACS+==== | ||
| + | |||
| + | Le **TACACS+** ressemble au RADIUS à ceci près qu'il est propriétaire Cisco et utilise tcp/49. Lui aussi associe à chaque compte zéro ou plusieurs AV. On peut s'en servir pour identifier un utilisateur et appliquer un profil réseau (ses VLAN/ | ||
| + | |||
| + | TACACS+ permet : | ||
| + | * de chiffrer tout le contenu des transactions | ||
| + | |||
| + | Mise en place : | ||
| + | aaa new-model | ||
| + | tacacs-server host 10.0.0.111 | ||
| + | tacacs-server key < | ||
| + | |||
| + | ====aaa authentication==== | ||
| + | |||
| + | Créer une méthode d' | ||
| + | aaa authentication login default group tacacs+ local | ||
| + | |||
| + | Elle utilisera en premier lieu le serveur TACACS+ ; si ce dernier ne répond pas on essaie dans la base locale. S'il renvoie une erreur d' | ||
| + | |||
| + | Pour créer un groupe, applicable sur une ou plusieurs interfaces, on remplace '' | ||
| + | aaa authentication login ma_liste group tacacs+ local | ||
| + | |||
| + | Puis on l' | ||
| + | line vty 0 4 | ||
| + | login authentication ma_liste | ||
| + | |||
| + | ====aaa authorization==== | ||
| + | |||
| + | Pour définir les droits associés à un compte. | ||
| + | |||
| + | aaa authorization exec default group radius local none | ||
| + | |||
| + | ====aaa accounting==== | ||
| + | |||
| + | L' | ||
| + | |||
| + | aaa accouting exec default start-stop group tacacs+ | ||
| + | |||
| + | Cette commande permet de logger chaque début et fin de processus lancé par n' | ||
| + | |||
| + | ====Vérifs==== | ||
| + | |||
| + | debug aaa authentication | ||
| + | debug aaa authorization | ||
| + | debug aaa accounting | ||
| =====Vérifs===== | =====Vérifs===== | ||
| show login [failure] | show login [failure] | ||
informatique/cisco/securiser_un_routeur.1247593973.txt.gz · Last modified: 2013/10/14 20:52 (external edit)