Nemako - Systèmes et Réseaux

Aller au contenu | Aller au menu | Aller à la recherche

jeudi, juillet 10 2008

Détail sur les hashs de mot de passe IOS

Cet article est complètement inspiré du billet de Jeremy Stretch : A bit more detail on IOS password hashes. Merci à lui.

Les mots de passe "type 7" utilisé dans les vieux IOS sont facilement réversibles. Ainsi l’utilisation de type 5 est préférable car il génère un hash MD5 non réversible. Cependant, l’utilisation du MD5 n’est pas son seul avantage.

L’utilisation d’un mot de passé stocké avec à l’aide de MD5 se fait en utilisant simplement la commande secret à la place de password.

Router(config)# username foo secret MyP4ssw0rd
Router(config)# do sh run | include username         
username foo secret 5 $1$jR5i$.HDBuKq.wIDOn2EYpCPYc0

Dans l’exemple précédent, ce qui suit le 5 est calculé par le routeur et stocké dans la running config. Ceci est plus qu’un simple hash md5, en effet la méthode reprend ce qui est fréquemment utilisé dans les environnements UNIX, à savoir l’utilisation d’un salt. Le résultat est composé de 3 éléments séparés par le signe dollar ($) :

  • 1 – indique un hash utilisant un salt
  • jR5i – salt de 24-bit généré aléatoirement
  • .HDBuKq.wIDOn2EYpCPYc0 – le hash MD5

Le hash et le salt sont des valeurs binaires utilisant le format d’encodage Base64. Quand l’utilisateur foo souhaite s’authentifier, le mot de passe envoyé en clair par l’utilisateur est concaténé avec le salt de 24-bit stocké dans le fichier de configuration. Un hash MD5 est alors calculé avec la chaine entière salt+password; si le hash calculé correspond au 3è élément stocké dans la configuration, le mot de passé fourni est alors considéré comme valide.

L’utilisation de ce salt a 2 gros bénéfices. Tout d’abord, 2 utilisateurs ayant choisi le même mot de passe auront virtuellement 2 hashs différent. Considérons la création de l’utilisateur bar avec le même mot de passé que l’utilisateur foo créé précédemment, voici le résultat:

Router(config)# user bar secret MyP4ssw0rd
Router(config)# do sh run | include username       
username foo secret 5 $1$jR5i$.HDBuKq.wIDOn2EYpCPYc0
username bar secret 5 $1$P9XX$y9d6Aw.t81.CoKvXITCpZ/

Les 2 utilisateurs vont pouvoir s’authentifier avec le même mot de passe : cependant lors de la création des utilisateurs, les 2 salts générés aléatoirement ont permis de supprimer toute similitude entre les hash stocké dans le fichier de config.

Le second avantage, et non le moindre, est que ce salt permet de se prémunir des attaques de type Rainbow Table. En cryptologie, une table arc-en-ciel (aussi appelée Rainbow Table) est une structure de données qui permet de retrouver un mot de passe à partir de son empreinte. Ce sont de grosse tables contenant des hash (MD5 et autres) précalculées. Cela permet de retrouver très rapidement le mot de passe qui a donné un hash précis.

Pour information, les systèmes UNIX-like utilisent la même technique pour stocker les comptes locaux (le salt étant simplement un peu plus long). L’outil OpenSSL permet de simuler l’opération réalisé par l’IOS Cisco. Voici un exemple pour l’utilisateur foo, nous pouvons retrouver le même hash avec OpenSSL :

fred@Sandbox$ openssl passwd -1 -salt jR5i MyP4ssw0rd
$1$jR5i$.HDBuKq.wIDOn2EYpCPYc0

Liens

vendredi, juin 6 2008

Excellentes Fiches Mémoire proposées par Jeremy Stretch

Voila quelque chose que j'aurais adoré faire mais je n'ai hélas pas pris le temps. En tout cas, Jeremy Stretch nous propose d'excellentes fiches mémoire sur différents sujets

http://packetlife.net/cheatsheets/

vendredi, mai 30 2008

Sauvegarde automatique de configurations

Introduction

Vous connaissez peut être déjà des outils tel que Rancid qui permettent de sauvegarder des confiruations de vos équipements. Pour Cisco il y a encore plus simple si vous disposez d'IOS récent.

La commande archive disponible sur les dernières versions d’IOS permet en effet de sauvegarder la configuration des équipements à intervalle régulier ou au moment du write memory (sauvegarde de la configuration du running en nvram).

RTR01#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
RTR01(config)#archive
RTR01(config-archive)# ?
Archive configuration commands:
  default       Set a command to its defaults
  exit          Exit from archive configuration mode
  log           Logging commands
  maximum       maximum number of backup copies
  no            Negate a command or set its defaults
  path          path for backups
  rollback      Rollback parameters
  time-period   Period of time in minutes to automatically archive the running-config
  write-memory  Enable automatic backup generation during write memory

Sauvegarde des configurations

Configuration

La configuration suivante permet de sauvegarder la configuration du routeur à chaque fois que l’utilisateur exécute la commande write-memory. La sauvegarde se réalise sur le serveur ssh 192.168.1.1 avec les informations données dans la commande (login, mot de passe, path et nom du fichier). Attention à bien mettre les 2 / quand vous spécifier le répertoire de destination.

Les fichiers se nommeront RTR01-x où x s’incrémente à chaque sauvegarde.

RTR01#sh run | beg archive
archive
 path scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01
 write-memory

Dans l’exemple suivant, le fichier de sauvegarde est RTR01-21.

RTR01#wr
Building configuration...
[OK]
Writing /home/cisco/RTR01-21 ! Sink: C0644 11785 RTR01-21

RTR01#

Vérification

Il est ensuite possible de voir les sauvegardes :

RTR01#sh archive
The next archive file will be named scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-22
 Archive #  Name
  0       scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-15
  1       scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-16
  2       scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-17
  3       scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-18
  4       scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-19
  5       scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-20
  6       scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-21 <- Most Recent
  7       scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-7
  8       scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-8
  9       scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-9
  10      scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-10
  11      scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-11
  12      scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-12
  13      scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-13
  14      scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-14

Différence de Configuration

Il est possible de voir les différences de configuration soit directement sur l’équipement soit sur le serveur Linux.

Cisco

L’avantage du diff sur l’équipement Cisco est le rappel du contexte. Nous voyons par exemple que les commandes log config et logging enable font parties de la configuration globale archive.

 RTR01# show archive config differences scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-19 scp://cisco:MotdePAsse@192.168.1.1//home/cisco/RTR01-20
 Sending file modes: C0644 11756 RTR01-19
 Sending file modes: C0644 11814 RTR01-20
 Sending file modes: C0644 11756 RTR01-19
!! Sending file modes: C0644 11814 RTR01-20
!!
Contextual Config Diffs:
archive
 +log config
  +logging enable
+ip access-list extended titi
Linux

Sous Linux nous n’avons qu’une comparaison de fichier texte.

[root@svrLinux cisco]# diff RTR01-19 RTR01-20
3,4c3,4
< ! Last configuration change at 13:26:48 CEST Fri May 30 2008 by fred
< ! NVRAM config last updated at 13:26:50 CEST Fri May 30 2008 by fred
---
> ! Last configuration change at 13:32:14 CEST Fri May 30 2008 by fred
> ! NVRAM config last updated at 13:32:41 CEST Fri May 30 2008 by fred
102a103,104
>  log config
>   logging enable
292a295
> ip access-list extended titi

Rollback

Si la dernière configuration amène des problèmes il est possible de rapidement reprendre une version qui fonctionnait correctement.

RTR01#configure replace scp://cisco:mdp@192.168.1.1//home/cisco/RTR01-08

Il est possible de remplacer la configuration actuelle par la startup

R1#configure replace nvram:startup-config

Suivi des modifications

La commande archive permet aussi de loguer toutes les modifications effectuées sur l'équipement.

Configuration

La configuration suivante permet d’enregistrer toutes les commandes passées par un utilisateur.

RTR01#sh run | beg archive
archive
 log config
  logging enable

Par défaut, les 100 dernières valeurs sont enregistrées.

RTR01(config-archive-log-cfg)#logging size ?
  <1-1000>  Queue length (default 100)

Il est aussi possible d’envoyer un message syslog à chaque modification.

RTR01#sh run | beg arch
archive
 log config
  logging enable
  notify syslog

Vérification

Voici un exemple. Nous voyons clairement la dernière commande passée et par quel utilisateur.

Création d’une ACL
RTR01#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
RTR01(config)#ip access-list extended titi
Vérification
RTR01#show archive log config all
 idx   sess           user@line      Logged command
    1     1       fred@vty0     |  logging enable
    2     1       fred@vty0     |  ip access-list extended titi

Liens

mercredi, mai 7 2008

Paessler SNMP Tester

Paessler SNMP Tester est un requêteur SNMP fonctionnant sous Windows et qui ne nécessite aucune installation. C'est un outil qui fait peu de chose mais qui le fait bien. Il peut s'avérer très utile pour tester un équipement ou pour récupérer une valeur précise dans une MIB.

L'utilisation est très simple, voici les quelques éléments à définir : 1. adresse IP du host 2. version SNMP 3. communauté ou login/mdp si en SNMPv3 4. OID

Exécuter en appuyant sur Run Test. Le résultat s'affiche dans la fenêtre de droite.

Paessler SNMP Tester

lundi, mai 5 2008

Mot de Passe par défaut

En matière de sécurité, il est évident qu'une des première chose à faire lorsque nous installons une nouvelle application ou un nouvel équipement est de changer les mots de passes configurés par défaut; que ce soit d'ailleurs le mot de passe admin ou un quelconque mot de passe invité. Malheureusement, ces fondamentaux ne sont pas toujours respectés.

Voici une petite liste de quelques sites qui répertorient ces mots de passes par défaut:

mercredi, avril 30 2008

Artica - une interface web pour configurer simplement Postfix/Squid

Artica David TOUZEAU a annoncé fin mars 2008 un nouveau projet sous Linux. Ce projet "Artica Postfix" permet d’offrir l’ensemble des fonctionnalités Postfix, procmail, fetchmail, DnsMasq, LDAP, SQUID, dansguardian sans connaissances techniques et à travers un simple outil d’administration web via son navigateur.

Artica For Postfix/squid est un produit gratuit; il offre la possibilité à tout débutant de pouvoir installer l’ensemble de ces composants sans connaissances particulières. Après avoir installé l’ensemble des composants, Artica For Postfix/SQUID offre une interface web conviviale permettant la gestion de boîtes aux lettres/comptes utilisateurs et l’ensemble des nombreuses règles et paramètres que Postfix/SQUID propose. L’interface d’administration de type PHP/Ajax est disponible en OpenSource.

Son principe diffère des autres consoles d'administrations déjà disponibles. Webmin offre une interface globale mais n'accompagne pas l'administrateur dans ses démarches de paramétrages et n'offre pas de "fil conducteur" en fonction de thèmes (Mail, web, boîtes aux lettres)

Artica - Postfix Artcia - Postfix - DansGuardian

Je n'ai pas testé mais il semble intéressant de voir comment le projet va évoluer.

vendredi, avril 18 2008

Port-security

Cet article présente la fonction port-security que l'on peut appliquer à une interface sur un switch Cisco pour restreindre le nombre d'adresse mac utilisable sur ce port.

  • Configuration
  • Vérification
  • Adresse Dynamic ou Configured
  • Exemple de Violation
  • Recovery
  • Sticky
  • Changer son adresse Mac

Lire la suite...

jeudi, avril 17 2008

HSRP

Cet article présente comment configurer le HSRP sur un équipement Cisco:

  • Adresse MAC
  • Messages
  • Configuration de la VIP
  • Vérification
  • Configurer la Priorité
  • Configurer le Preempt
  • Timers
  • Debug
  • HSRP Tracking

Lire la suite...

mercredi, avril 16 2008

VTP - VLAN Trunking Protocol

Cet article présente le protocole propriétaire Cisco VTP qui permet de gérer de façon centralisé les VLANs de tout un réseau. Un ou plusieurs serveurs VTP sont défini. L'administrateur réseau intervient sur un de ces serveurs pour ajouter, modifier ou supprimer des VLANs. Ce serveur transmet ces modifications automatiquement à tous ses clients.

  • Définir le domaine vtp
  • Définir le mode
  • Activer vtp version 2
  • Activer le vtp pruning
  • Définir un mot de passe

Lire la suite...

mardi, avril 15 2008

STP - Spanning Tree Protocol

cet article est une prise de note de quelques remarques et commandes concernant le STP:

  • BPDUs
    • Configuration BPDUs
    • Topology Change Notifications (TCNs)
  • Process of choosing a Root Port
  • STP port state
  • Timers
  • Change the priority of a switch
  • Change the priority of a port
  • Advanced STP Features

Lire la suite...

lundi, avril 14 2008

Configurer un Trunk

Cet article présente comment configurer un trunk sur des switchs Cisco

  • Choisir l'encapsulation
  • Choisir un mode static ou dynamic
  • Configurer le native vlan
  • Configurer un filtrage de VLAN
  • Vérifier la configuration du trunk
  • Remarque

Lire la suite...

dimanche, avril 6 2008

SPAN : sniffer son réseau pour mieux le comprendre

Le SPAN permet à un switch de rediriger le trafic d'un port source vers un port de destination ceci afin d'analyser ce flux.

Il existe plusieurs versions du SPAN, la différence venant de l'emplacement du port source.

Le SPAN se configure à l'aide de la commande monitor session et une suite de paramètres définissant la source et la destination. Le nombre de session simultanée peut différer selon la platforme du switch. Les switchs C3550 et C2950 ne supporte que 2 sessions simultanées, alors que les switchs plus puissant peuvent supporter jusqu'à 64 sessions.

Remarques sur la Source

  • Un port source peut être utilisé dans plusieurs sessions SPAN simultanément.
  • Un port source peut faire partie d'un Etherchannel.
  • Un port source ne peut pas être défini comme port de destination.
  • Un port source peut être de n'importe quel type - Ethernet, FastEthernet, etc.

Remarque sur la Destination

  • Un port de destination peut être de n'importe quel type.
  • Un port de destination ne peut être utilisé que dans une seule session SPAN.
  • Un port de destination ne peut être un port source.
  • Un port de destination ne peut faire partie d'un Etherchannel.
  • Un port de destination ne participe pas dans STP, CDP, VTP, PaGP, LACP, ou DTP.

Local SPAN

Le local SPAN est utilisé quand le port source et le port de destination sont sur le même switch. Si la source est un vlan et non un port physique, nous parlons de VSPAN (VLAN-Based SPAN).

Configuration

Spécifier le port source:

SW(config)# monitor session 1 source interface fa 0/1

Il est possible de spécifier un range de ports en source:

SW(config)# monitor session 1 source interface fa 0/1 - 5

Spécifier le port de destination

SW(config)# monitor session 1 destination interface fa 0/10

RSPAN - Remote SPAN

Dans ce cas le port source et le port destination ne sont pas sur le même switch. Il faut alors créer un nouveau VLAN pour transporter ce trafic "mirroir".

Voici quelques points à avoir en tête avant de configurer un RSPAN:

  • S'il y a des switchs intérmédiaires entre les 2 switchs source et destination, ils doivent être RSPAN-capable.
  • VTP traite le VLAN configuré pour le RSPAN comme tout autre VLAN. Ce VLAN sera propagé dans le domain VTP s'il est créé sur le serveur VTP. Sinon, il faut créer ce VLAN sur tous les switchs utilisés pour transporter ce flux. VTP Pruning will also prune the RSPAN VLAN under the same circumstances that it would prune a "normal" VLAN.
  • Les adresses MAC ne sont pas enregistrées sur un VLAN RSPAN.
  • La source et la destination doivent être définis sur le switch disposant du port source mais aussi sur le port disposant du port de destination, cependant ces commandes ne seront pas identiques.

Configuration

Créer un VLAN pour le RSPAN

SW1(config)# vlan 99
SW1(config-vlan)# remote-splan
Configuration du switch source

Définir le port source

SW1(config)# monitor session 2 source interface fast 0/4

Définir la destination

SW1(config)# monitor session 2 destination remote vlan 99
Configuration du switch destination

Définir la source

SW2(config)# monitor session 2 source remote vlan 99

Définir le port destination

SW2(config)# monitor session 2 source interface fast 0/10

Verification

SW2# show monitor
Session 2
-
Type              : Remote Destination Session
Source RSPAN VLAN : 99
Destination Ports : Fa0/10
    Encapsulation : Native
          Ingress : Disabled

Liens

mardi, janvier 22 2008

Wget en https avec un Proxy

wget est un gestionnaire de téléchargement libre en ligne de commande. Celui-ci est très utilse quand nous sommes en ssh sur un serveur linux par exemple, ou lorsque nous souhaitons mettre en place un téléchargement de fichier de façon automatique.

J'ai été confronté au cas suivant: télécharger un fichier sur un site web en https et authentifié par login et mot de passe. Le problème a été de bien configuré le proxy pour supporter le https.

Voici les quelques opérations à mener.

Tout d'abord récupérer une version de wget supportant ssl.

  • La dernière version en date 1.10.2 pour windows est disponible sur le site suivant : http://users.ugent.be/~bpuype/wget/.
  • Sous debian stable, le package actuelle propose aussi la version 1.10.2
deb:~# apt-get install wget
deb:~# wget --version
GNU Wget 1.10.2

Configuration les options du proxy dans le fichier wgetrc

  • Sous Windows, le fichier doit se nommer .wgetrc et doit se trouver dans le même répertoire que l'exécutable.
  • Sous Linux, le fichier se trouve dans /etc/wgetrc

Voici les paramètres intéressants pour notre cas

https_proxy = http://monproxy:3128
use_proxy = on

A bien noter le s (c'est ce qui m'a posé problème). Si vous utilisez la ligne suivante, cela ne prend pas en charge le https mais que le http.

http_proxy = http://monproxy:3128

La ligne de commande

Place maintenant à la commande en elle-même. A noter deux paramètres, le premier permettant d'ignorer les erreurs du certificat et après l'url nous trouvons les éléments d'authentification web.

wget --no-check-certificate https://monserveur/mon_fichier.csv --http-user=monUser --http-passwd=monPassword

lundi, novembre 26 2007

GNS3 : Graphical Network Simulator

GNS3 - Logo GNS3 est un simulateur d'équipements Cisco. Cet outil permet donc de charger de véritable IOS Cisco et de les utiliser en simulation complète sur un simple ordinateur. Pour caricutariser, GNS3 permet d'avoir un routeur Cisco virtuel sur son ordinateur. A noter simplement que GNS3 ne fournit pas d'IOS, il faut se les procurer à l'aide d'un compte Cisco CCO par exemple. Ou grâce à Google.

Cet outil est parfait pour se préparer aux certifications Cisco CCNA, CCNP, CCIP ou CCIE.

Pour ma part je l'utilise essentiellement pour tester des fonctionnalités d'IOS. Je l'ai par exemple beaucoup utilisé pour faire des tests autour de OSPF (redistribution, filtrage, authentification, ...).

Afin de permettre des simulations complètes, GNS3 est fortement lié avec:

  • Dynamips, un émulateur d'image IOS qui permet de lancer des images binaires IOS provenant de Cisco Systems.
  • Dynagen, une interface en mode text pour Dynamips.

GNS3 est un logiciel libre qui fonctionne sur de multiples plateformes, incluant Windows, Linux, et MacOS X.

Lire la suite...

jeudi, octobre 18 2007

Afficher un fichier sans les lignes de commentaires

Voilà trois façons de procéder.

  • Grep
  • Sed
  • Perl

Grep

La 1ère à l'aide de "egrep" (ou "grep -E"):

egrep -v '^(#|$)'  /etc/samba/smb.conf
grep -E -v '^(#|$)'  /etc/samba/smb.conf

Là l'exemple se contente de ne pas afficher toutes lignes commençant par un dièse (#) ou par le caractère de contrôle de fin de ligne dollar ($). S'il s'avérait que le délimiteur de commentaires soit placé non pas en début de ligne mais en retrait (espace ou tabulation), ou que le fichier mêle d'autres caractères délimiteurs comme le point virgule (;), rien ne vous empêche d'embellir votre expression rationnelle comme suit :

grep -E -v '^(#|;|$|*#)' /etc/samba/smb.conf

Sed

La seconde à l'aide de "sed" :

sed -e '/^*#/d' -e '/^$/d' /etc/samba/smb.conf

On élimine en premier les lignes commençants par un espace ou un signe dièse, puis on élimine toutes les lignes vides. Bien entendu comme dans l'exemple précédent vous pouvez étoffer votre commande en incluant d'autres motifs, comme le point virgule, ce qui donnerait :

sed -e '/^*#/d' -e '/^*;/d' -e '/^$/d' /etc/samba/smb.conf

Perl

La troisième à l'aide de "perl" :

En fait il s'agit toujours des regex, c'est l'utilitaire qui change. Qu'il s'agisse de grep, egrep, sed, python, perl, etc. c'est toujours la regex qui fait l'affaire. Il nous reste seulement à étudier l'implémentation des regex et le moteur utilisé par les utilitaires. A savoir par exemple qu'un moteur DFA - Deterministic Finite Automation - est plus rapide qu'un moteur NFA - Nondeterministic Finite Automation - . En revanche le moteur NFA nous permet de mieux peaufiner et diriger la regex pour obtenir le résultat voulu, donc un environement de créativité qu'on ne trouve pas avec un moteur DFA.

perl -ne 'print unless /^\s*[;\$#]|^$/' /etc/samba/smb.conf

Liens

lundi, septembre 3 2007

Configuring Router - Based DHCP Services

This article presents how to configure a dhcp server on a Cisco router.

  • Configuring IOS-Based DHCP options
  • Importing and Re-using DHCP Options
  • The biggest command of all : ip helper-address

Lire la suite...

dimanche, septembre 2 2007

Modifier une ACL

Cet article présente 2 méthodes pour modifier une access-list sur un routeur Cisco sans perturber le traffic:

  • une modification en live sur le routeur : on ajoute une règle entre les règles existantes.
  • une modification de 0 : on supprime l'ACL et on en applique une nouvelle modifiée.

Lire la suite...

vendredi, août 31 2007

IPv6

Cet article présente rapidemment IPv6:

  • Rationale for IPv6
  • IPv6 Addressing Format
  • IPv6 headers and Address Types
  • Types of Communication
  • Types of Addresses
  • Assigning IPv6 addresses
  • IPv6 routing protocols
  • Base configuration of OSPFv3
  • IPv4 to IPv6 migration strategies

Lire la suite...

jeudi, août 30 2007

Transfert de gros fichiers par tftp

J'ai toujours utilisé SolarWinds TFTP Server comme serveur TFTP. Celui-ci répondait jusque là à toute mes demandes: sauvegarde de conf, transfert IOS... Malheureusement celui-ci ne supporte pas le transfert de fichier supérieur à 32Mo. Voici l'erreur obtenu.

SolarWinds TFTP Server

La solution est Tftpd32. Ce serveur, recommandé par Cisco permet de transférer de gros fichier. Dans mon cas un IOS de plus de 70Mo.

tftpd32

Liens

mardi, août 28 2007

Multicast

Cet article présente le multicast:

  • The importance of multicast
  • The facts about multicast
  • Multicast MAC Address
  • Multicast IP Address
  • Internet Group Management Protocol (IGMP)
  • Multicast Routing Protocol
  • Enabling a Cisco router for Multicast

Lire la suite...

- page 1 de 5