Le savoir n'a guère d'intérêt s'il n'est pas partagé.

Le père noël prend de l'avance! 🔔

Ca fait un moment que je bosse sur ce projet en perso, il me tient tout particulièrement à coeur car il part d'un constat tout bête, dans le monde de l'Open Source, il n'existe aucun outil permettant de faire ce que fait Meteor. ⚡️

Ok Julien me direz-vous, mais que fait-il, à quoi sert-il?

Logo du projet

J'ai commencé son développement il y a déjà quelques temps maintenant, cet outil est venu après un constat fait durant mon travail actuel, aucun outil Open Source ne me donnait entière satisfaction dans ce qui est de l'audit de configuration réseau (switch, firewall, load-balencer).

C'est après ce constat que je me suis mis en tête de trouver LA solution pour palier à mes besoins. 😜

Le besoin 🙄

Jusque là, je n'avais pas trouvé en Open Source un outil permettant de répondre à mon besoin qui est le suivant:

  • Auditer les configurations réseaux (peu importe le modèle/ la marque);
  • Créer ses propres "auditeurs", c'est-à-dire, les valeurs à vérifier (exemple: vérifier qu'une configuration ne possède pas un enable password plutôt qu'un enable secret);
  • Ne pas avoir à faire de développement spécifique pour un nouveau modèle d'équipement;
  • Surveiller les modifications apportées en temps réel (sur les équipements);
  • Avoir un inventaire automatiquement à jour (avec remontée dans une CMDB comme GLPI par exemple);
  • La gestion de la fin de vie de nos équipements (End Of Life);
  • L'intégration dans des pipelines DevOps (pour les réseaux managés dans le cloud par exemple) ;
  • Génération de rapports d'audit de conformité des configurations (automatiquement);
  • Un outil totalement graphique (pour les admins réseaux allergiques à la CLI Linux/Windows);
  • Récupération des configuration (sauvegarde avec analyse poussée des modifications).

Comme vous pouvez le constater, ça fait pas mal de choses, il était donc forcément compliqué pour moi de trouver mon bonheurs si ce n'est passer par 15 solutions différentes ne répondant pas toujours à mes attentes.

On le dit si bien, on est jamais mieux servi que par soi même. 😁

Qu'est-ce que c'est ? Que fait-il ? 😏

Ce qu'il fait ? C'est tout bête, il répond à tout mes besoins énoncés plus haut et il en fera bien plus dans le futur ! 😇

C'est à destination de qui ? 🧐

Principalement à destination des équipes réseau et sécurité des entreprises.

Comment ça marche ? 🤐

C'est assez simple, l'outil récupère les configurations à des dates données, ensuite il analyse la configuration en fonction des auditeurs qui sont spécifiés dans l'inventaire.

Il récupère des informations qui sont des données pour peupler l'inventaire (numéro de version, uptime, interfaces, etc.). 😬

L'outil est jouable en ligne de commande. Pour la déclaration des auditeurs, ça passe par un fichier YAML.

# Cisco Guideline: https://www.cisco.com/c/en/us/support/docs/ip/access-lists/13608-21.html
cisco:
    - check:
        name: "EXEC Timeout for console"  
        comment: ""
        type: regex
        value: '(?sm)line con 0(\S*)(?:(?!exec-timeout).)*?!$'
        state: true  

    - check:
        name: "EXEC Timeout for SSH"  
        comment: ""
        type: regex
        value: '(?sm)line vty 0 4(\S*)(?:(?!exec-timeout).)*?!$'
        state: true  

    - check:
        name: "Keepalives for TCP Sessions"  
        comment: ""
        type: text
        value: 'service tcp-keepalives-in'
        state: true  

Quel langage fait tourner le schmilblick ?

J'ai fait le choix du Go, tout simplement parce que c'est un langage avec lequel j'ai certaines facilités, parce qu'il est rapide (à apprendre, à écrire et à exécuter). Il n'est pas sans défauts (gestion des erreurs par exemple, mais bon, rien n'est parfait)! Tout simplement. 😮

Pourquoi le choix de l'Open Source ? 🤤

Eh bien tout simplement, parce que je suis pleinement convaincu que ce projet peu intéresser un grand nombre de personnes désireuse d'avoir une certaine surveillance de leurs équipements réseau.

Pour moi, il est très important que chacun puisse apporter sa pierre à l'édifice, d'ailleurs si vous souhaitez rejoindre le projet, n'hésitez pas à me contacter par e-mail à: dev[at]jbriault[point]fr.

Le choix de la licence

Alors, c'est là où je n'ai pas encore beaucoup avancé, c'est le choix de la licence, vous me direz que c'est pas forcément très important, et bien si, chaque licence, que ça soit la licence BSD, GPL, etc. N'entendent pas forcément le mot Open Source comme moi je l'entends, c'est là où il va falloir que je creuse et sûrement que je me fasse aider (par une personne plus spécialisée sur cet aspect).

C'est pour quand ?

Comme écrit plus haut, le projet serait pour début 2021, pourquoi l'annoncer comme ça en avance me direz-vous ?

Pour 2 raisons:

  • Comme je l'ai expliqué plus haut, la première est que je n'ai pas encore fait le choix de la licence qui me parait la plus juste; 👨🏼‍⚖️
  • La deuxième et que j'ai besoin de vous, en effet, c'est en parlant un maximum du projet autour de vous que pourrais obtenir des retours (positifs ou négatifs) mais surtout des avis constructifs sur des éléments qui vous paraîtrez judicieux à intégrer, à améliorer, à développer, etc.

Sur ce, j'espère que ce projet vous plaira et vous aidera dans la mise en conformité de vos équipements réseau, chose qui n'est malheureusement pas assez souvent pris en compte dans nos SI habituels.  🦹🏼‍♂️

J'attends vos retours avec impatience! Sur ce, passez de bonnes fêtes! ❤️