Tag Archive: réseaux

Hi,In this article, I’ll talk about some problems you might encounter while working on a Cisco device:

When I plug a device on my Cisco CPE, I have some issues to get a DHCP lease.

This problem is mainly caused by the following points:

  • Your CPE ports are configured with the default spanning-tree behaviour. With the default behaviour, after being plugged, a switch port is temporarily put in a blocking state for 30 to 50 seconds, to acquire and calculate STP topology. If this behaviour is absolutely safe, some early network applications – like DHCP – will be subject to timeout.
  • When plugging your first equipment, if your CPE uses a level 2 switch, and has « vlan » interfaces , the vlan management interface takes some time to toggle from down/down to up/up state. The DHCP server is bound to this interface, so it won’t be able to process a request until the associated vlan interface is in up/up state.

To deal with the first issue, you have either to use the following commands to switch the level 2 port in STP portfast mode:

interface fastethernet X
 spanning-tree portfast

or to disable the spanning tree for your VLAN by typing the following in configuration mode:

no spanning-tree vlan <VID>

To mitigate the second issue, you must stick the vlan interface to the up/up state. You can do so using the following commands:

interface vlan X
 no autostate

I have screwed while flashing my Cisco device! Rommon tells me that it cannot find a bootable image.


Using tftpdnld, you can load a bootable image from a TFTP server from the rommon prompt. To do so, hook up your Cisco device to a network with a TFTP server, and type the following commands in the rommon prompt:

tftpdnld -r

Once your image has booted, copy again your image from TFTP to flash, then check its integrity by computing and checking the resulting hash.

copy tftp://<tftp_server_addr>/<path_to_IOS_image> flash:<image_filename>
verify /md5 flash:<image_filename>

Then, configure the bootloader to load your image at boot time:

configure terminal
 boot system flash:<image_filename>
copy running-config startup-config

Now, you can reboot safely and enjoy your fresh IOS image.

I don’t remember my login/enable password, how to recover it?

To begin with, you need a serial console client which support the break signal: this is something you can’t emulate only with your keyboard. If you don’t know what the break signal is, please refer to the following document: Cisco Standard Break Key Sequence Combinations

As the recovery procedures is model dependent, visit the Password Recovery Procedures web page where you will find the detailed instructions for your device.

Standard TLS sessions have a big issue: they are vulnerable to the « wiretap then crack » attack scheme: any intercepted communication can be stored and deciphered when you’ll have/find/factorize the server private key. Network traffic analysers often provide an option to perform such an operation for debug/protocol validation purposes. « Perfect » forward secrecy has been designed to fight against this issue: when two peers want to establish a TLS tunnel with PFS, after performing the server (or the mutual) authentication, they agree on an ephemeral session key.

TLS perfect forward secrecy can be supported in all recent browsers with Apache 2.3+. Version 2.4 has recently been migrated to Debian Jessie. The configuration you will find below has been made with the Qualys SSL Server Test. This test suite is quite useful to review the configuration of your TLS server: it checks the validity of your certificates, the strength of the cipher suite your server offers and gives you information on how common browsers will behave on your website.

Though the grade I get is not perfect, the configuration that I posted below seems to be, at this i’m writing this post, both the most interoperable and the most robust configuration you can create with Apache.

Replace (or add if applicable) the following configuration directives in your SSL module configuration file (most likely to be found in /etc/apache2/mods-enabled/ssl.conf).

SSLProtocol +TLSv1.2 +TLSv1.1 +TLSv1
SSLCompression off
SSLHonorCipherOrder on

then restart your apache server.

Please refer to the configuration at the bottom of this post

UPDATE: Qualys has updated its browser test suite, integrating Opera 12.15 and Firefox 21 on fedora 19, which are both known for not supporting TLS_ECDHE_RSA_WITH_RC4_128_SHA (0xC011).

Fedora community is well known for building FIPS 140-2 compliant cryptographic modules, and FIPS 140-2 happens not to support TLS_ECDHE_RSA_WITH_RC4_128_SHA.

This federal standard is known to only whitelist some cipher suites. In fact FIPS 140-2 doesn’t allow the use of « next » generation algorhithms (such as ECDHE for ephemeral key exchange, or as Galois/Counter Mode for block ciphers) despite the fact they bring significant improvements in terms of bandwidth and computing overhead.

Considering nowadays cryptographic ecosystem, this standard is to be considered as obsolete, except if you plan to sell any cryptographic product to the US goverment.

Ignoring that fact, today’s main security issue is caused by Apple Safari that still has not mitigated the BEAST vulnerability using the (1/n-1) split record trick.

So here is quite embarassing tradeoff you have to deal with: 1. Let your apple clients be vulnerable to BEAST while supporting PFS for any other browser by recommending CBC modes block ciphers and refusing use of RC4 (this will enhance the security for every browser except Safari), 2. Protect everyone against BEAST by using a crippled stream cipher and support PFS with a best-effort policy.

Bonus reminder: even if 3DES-EDE cipher suites use a 168 bit key, real key strength is 112 bits because of its vulnerability to the meet-in-the-middle attack. You may advertise for legacy support purposes, but if you do so, put these suites at the bottom of your server cipherlist, but do not add export or ADH suites are they are respectively weak and vulnerable.

UPDATE 2: After some browser behaviour analysis, I have achieved to get full PFS support for modern browsers, as shown on the pictures below. To do so, you need to properly enable some Diffie-Hellman ciphers. Doing so doesn’t trip the BEAST vulnerability flag and enables PFS for FIPS-compliant browsers that were not supported. The « Key exchange » subgrade in the Qualys SSL Server Test will decrease because DH parameters length are not great, even if they give a sufficient level of security for now.

This grade deterioration is an apache-specific issue: Apache developpers currently assumes that (EC)DH parameter choice is to be build-specific. According to me, this is not an acceptable solution as it makes long term support more difficult. You should consider bumping (voting for) this bugtracker feature request to get a more flexible way to control DH/ECDH parameters in the future.

Replace (or add if applicable) the following configuration directives in your SSL module configuration file (most likely to be found in /etc/apache2/mods-enabled/ssl.conf).

SSLProtocol +TLSv1.2 +TLSv1.1 +TLSv1
SSLCompression off
SSLHonorCipherOrder on

then restart your apache server.

Here is the grade I’ve got with the last configuration:

Below, you can see which cipher suites are selected by your clients.

Expert tip: The (1/n-1) split record trick is implemented in Firefox since a while. Thus, you can safely disable RC4 on Firefox in the advanced configuration menu. To do so, enter ‘about:config’ in your address bar, then search for ‘rc4’ and toggle all the found values to ‘false’. If you experience connections issues, toggle back those parameters to true.

An updated version of these cipher suites has been posted in the post 2015, an overview of TLS

Récemment, je cherchais une solution libre pour faire proprement et efficacement des diagrammes de séquence de message pour un rapport. Qui dit diagrammes dit généralement clicodrômes chronophages, ennuyeux, et où l’on passe perd son temps à peaufiner des détails cosmétiques.

Lorsque j’ai lu la documentation de mscgen (pour Message Sequence Chart GENerator) que je vais vous présenter ultérieurement, non seulement j’ai compris que j’avais affaire à une merveille respectueuse du principe KISS, mais qu’il existait également des possibilités d’interfaçage intéressantes.

Et le meilleur concurrent de la souris est…

… la combinaison d’un clavier et d’un langage efficace et simple à prendre en main, lisible et éditable à la fois par un humain et une machine! Pour vous montrer la puissance de mscgen, entrons directement dans la matière avec la source d’un petit exemple (qui est loin d’exploiter la totalité les fonctionnalités) qui illustre le mécanisme de retransmission sur rejet utilisé par le protocole LAPB:

msc {
    arcgradient = 10;
    tx[label="Transmitter"], rx[label="Receiver"];
    tx => rx [label="(I,0)"];
    tx -x rx [label="(I,1)"];
    tx => rx [label="(I,2)"];
    rx => tx [label="(REJ,1)", textbgcolor="#FFAF5F"];
    tx => rx [label="(I,1)"];
    tx => rx [label="(I,2)"];

Ci dessous, on trouve le résultat associé à la source précédente

Diagramme généré par MSCGEN

Mscgen vous permet de produire vos graphiques aux formats png, svg, eps ou ismap sous Windows et Linux (il est même dans le dépôt main de Debian). La source MSC peut être fournie via l’entrée standard ou par un fichier. Enfin, il est possible de modifier la police par défaut.

Le seul inconvénient de ce logiciel est qu’il n’est utilisable qu’en ligne de commande, au grand dam de nos amis Windowsiens. Je vous invite à consulter la page web du développeur pour consulter la documentation du langage MSC et vous faire une idée plus complète des possibilités offertes. Pour le téléchargement, les liens sont disponibles en bas de la page de documentation.

Intégration à des préprocesseurs

Le choix de créer un langage simple et exploitable à la fois par un humain et une machine a permet le développement facile de « préprocesseurs » et de générateurs de trace. L’exemple le plus pratique que j’ai en tête est pcap2msc qui permet de convertir un fichier PCAP (trace d’échanges réseau) en une source MSC. Le résultat du traitement n’est pas parfait, mais la correction est facile et le gain de temps par rapport à l’utilisation une solution graphique est non négligeable, surtout quand les échanges sont longs.

Lors de la phase de conception, de débuggage et de documentation d’un logiciel, on peut utiliser le langage MSC pour aider à journaliser et rendre facilement lisibles les communications entre différents composants/threads/processus/nœuds d’une application. Si j’ai un peu de temps libre, ou le besoin de réaliser un tel générateur, je vous tiendrai au courant en temps voulu.

Netgear ProSafe GS108E

Netgear ProSafe GS108E


Questions fonctionnalités, on est bien servi pour un équipement de cette gamme:

  • Gestion des VLAN par port ou par 802.1q
  • QoS par port ou par 802.1p, limitation de débit et contention des broadcast storms.
  • Gestion de l’IGMP Snooping
  • Monitoring de port par clonage
  • Testeur de câbles intégré
  • 4 ports PoE sur la version GS108P (compter environ 35€ de plus)

On est bien dans un segment small business: pas mal de fonctionnalités sans pour autant friser des prix honteux.

Performances et Fiabilité

De ce côté là, rien à signaler, le fond de panier est dimensionné pour ne pas saturer et je n’ai constaté aucune anomalie à ce jour.

Côté firmware, il est vivement recommandé de mettre votre switch à jour avec la version 1.00.09 (ou supérieur) car il existe quelques problèmes avec le multicast et l’IGMP Snooping dans les anciennes versions.

Interface d’administration

Comme indiqué plus haut, ce switch est configurable, mais non administrable: ici, pas de port série, mais un logiciel de configuration. Ce dernier est composé d’une partie serveur qui communique avec le switch et d’une interface graphique cliente codée avec Adobe AIR.

Malgré l’incompatibilité avec Linux, on dispose quand même des fichiers de description du service. De là, il semble possible de réécrire un utilitaire sans trop de rétro-ingénierie (si supposé que quelqu’un en ait le temps).

Démarrage donc sous Windows 7 pour faire nos tests, installation du programme sans encombre et lancement. Premier constat, la gestion des droits administratifs dans le programme n’est pas faite. Il faut forcer les droits administrateurs dans les options de compatibilité et ça marche.

L’impression globale que me laisse l’outil de configuration est plutôt positive: les menus sont bien organisés, l’utilisation est intuitive.


Ce n’est pas parce qu’un switch est estampillé ProSafe que sa sécurité est forcément correcte: un train peut en cacher un autre. Ici, Netgear a malheureusement négligé certains aspects: tout le trafic de configuration circule sur le réseau en diffusion (je ne vous fais pas un dessin) et en clair, mot de passe d’authentification compris!

Mais bon, un administrateur réseau en vaut deux: lorsque vous configurerez cette gamme d’équipements, je vous conseille vivement de les isoler du reste de votre réseau.


Malgré quelques petits couacs sur la configurations (cf. ci-dessus), le switch ProSafe GS108E n’en reste pas moins un produit très bon rapport qualité*fonctionnalité/prix (50€ sur LDLC pour ne pas le citer) pour les petits réseaux d’entreprises ou les power users.