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/16 05:49] – Resilient configuration feature 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 | ||
| | ||
view premiere_vue | view premiere_vue | ||
view seconde_vue | view seconde_vue | ||
+ | |||
+ | On ne peut pas ajouter de commandes à une superview, elle ne peut qu' | ||
Line 124: | Line 127: | ||
Fonctionnalité d'IOS qui permet de conserver une version " | Fonctionnalité d'IOS qui permet de conserver une version " | ||
- | Activer la résilience de l' | + | Activer la résilience de l' |
secure boot-image | secure boot-image | ||
- | |||
- | Pour la configuration : | ||
secure boot-config | secure boot-config | ||
- | Pour restaurer l'IOS : démarrer en rommon puis : | + | Pour restaurer l'IOS : démarrer en rommon puis charger l' |
- | rommon 1 >boot disk0:< | + | rommon 1 >boot disk0:c3825-advipservicesk9-mz.124-21.bin |
Pour restaurer la conf : | Pour restaurer la conf : | ||
Line 137: | Line 138: | ||
copy slot0: | copy slot0: | ||
- | Vérif | + | Vérifs |
show secure bootset | 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.1247723398.txt.gz · Last modified: 2013/10/14 20:52 (external edit)