CloneZilla et la création d’images disque

Quand on a un parc informatique ayant plusieurs appareils du même modèle (courant pour les postes de travail), il est salvateur de créer un image disque de ce qui constitue la base de tout poste. Ainsi, le processus de remplacement, remise à neuf sera allégé tout comme le déploiement de nouveaux appareils.

CloneZilla

Est un système d’exploitation s’exécutant par CD/DVD ou clé USB. C’est une distribution debian (ubuntu) qui va vous permettre d’imager un disque dûr vers un fichier sur un périphérique de stockage.

Ainsi, avec un disque dûr externe et un adapteur, on peut saisir l’instantanné d’un poste de travail typique et sauvegarder son état. On réutilisera CloneZilla pour développer l’instantanné sur un nouveau disque dûr.

Protéger ses mots de passe et ceux de ses clients dans son nuage

Ce qui me fascine dans la technologie, c’est que pour y accéder nous avons besoin de nous souvenir de un (plusieurs) couple-s utilisateur / mot de passe. Dans le temps, la quantité des mots de passe à entreposer ne peut qu’augmenter. De nombreuses solutions dans le nuage sont offertes, cependant qu’en est-il des solutions d’entreprise ?

J’ai décidé de ressortir mon SFLVault.

SFLVault*

http://sflvault.org/

 

 

 

C’est une voûte sécurisée et un gestionnaire d’authentification.

Donc, ça permet l’entreposage de mots de passe, l’ordonnancement en groupes de sécurité, la gestion d’identités et la connexion à des services clients depuis le logiciel.

C’est un outil de travail idéal pour vous rendre plus efficace lors de vos connexions en SSH. Attention, le mot de passe principal devient votre seule clé pour accéder à la voute. Ce mot de passe devrait aller dans un coffre-fort (à la banque p.ex.).

Avec cette voute sécurisée je peux maintenant entreposer mes mots de passe, ceux de mes clients et de ma famille dans une voute sécurisée sans dépendre de services tiers.

En prime, je peux me connecter plus rapidement aux serveurs avec la technologie d’authentification de SFLvault tel qu’illustré ci-dessous.

Connexion à un service avec SFLvault

Attention : Il n’est pas permis d’utiliser des caractères accentués dans la voute !

  • : Le produit n’est plus maintenu et doit être utilisé avec précautions.

FreeMind

Ordonner ses idées, quel défi de taille !

Aujourd’hui j’ai reçu des demandes particulières et pour parvenir à servir le client je me dois de faire des débours dans des logiciels spécialisés. Non seulement des programmes sont requis, mais du matériel en plus, pour être efficace.

Du coup j’ai eu l’impression de me retrouver face à un arbre de choix, un peu comme on a dans les jeux vidéos des stratégie, où il faut choisir la voie à prendre – à savoir quel investissement on choisira.

Alors pour m’aider, j’utilise un logiciel spécialisé et Open Source, FreeMind, qui me permet de dresser des cartes mentales. Ainsi, je vais pouvoir organiser mes affaires pour investir là où ça devient important, outre cela je vais aussi pouvoir cartographier les relations entre composantes, programmes et licences diverses qu’il faut obtenir pour pratiquer le métier.

JavaScript (ES6) – La nouvelle voie

Pas simplement un langage client, le JavaScript moderne est bien plus. Je me plonge dans cette technologie depuis quelques jours et plus je l’étudie plus je trouve le tout clair et fascinant.

Mais d’abord quelques notes d’étude :

Source: Pckt Publishing
  • L’engin JavaScript est mono-processus, soit un seul processus (pas de Thread)
  • Le modèle d’exécution se compose d’une pile d’exécution (programme en cours), d’une file d’attente (programmes qui attendent de pouvoir entrer dans la pile d’exécution et est soumis à la règle de l’exécution complète (le programme en cours d’exécution va se compléter avant qu’un autre programme s’exécute)
  • Le modèle peut bloquer si un programme bloque la pile d’exécution
  • Les appels à setTimeout et les requêtes asynchrones vont pousser un programme dans la file d’attendre lorsque la condition de déclenchement de l’exécution est atteinte
  • La gestion de l’ordre des réponses asynchrones peut poser un problème de concurrence
  • Dans des cas particuliers, l’utilisation de WebWorker permet d’invoquer un second engin JavaScript dans un autre processus (Thread)
  • Les événements sont déclenchés dans un ordre synchrone
  • Les programmes qui composent une application doivent agir en bon voisinnage et permettre un concurrence collaborative, soit de ne pas bloquer le flot du programme.

Voilà ! Les bases sont établies, je vais me lancer dans l’étude approfondie des Promises.

Développement d’affaires, partenariats et formation

Première semaine sur le plancher des vaches et du boulot, il y en a en vue !

Formation

Je me suis branché sur PluralSight.com, un site de formation en ligne, pour y évaluer mes compétences. Voici ce que ça donne au 21 avril :

Une image vaut plusieurs mots ! J’ai dû me former un peu en CSS et JavaScript pour atteindre ces résultats. Tous les autres sont tels que l’évaluation préliminaire, sans cours préalables.

Développement d’affaires

J’ai deux projets d’entreprise qui me tentent en ce moment :

  1. Ra – Cartographie de sécurité du réseau et des attaques externes;
  2. Éco-Gestion; Héros de la nature

Les deux projets ont un potentiel marchand, le premier plus simple à déployer et le second étant un système à part entière.

Avec la formation reçue de PluralSight, je devrais être en mesure de refaire le site interet http://eco-gestion.quebec/ et le rendre moderne et adaptif.

J’ai l’intention de reprendre le développement de Héros de la nature dans un délai très court afin de pouvoir retourner à FounderFuel avec ce projet.

Partenariats

Des partenariats sont en cours de négociation et de réalisation avec l’Agence META (http://agence-meta.ca/), Les Zurlus (http://leszurlus.com), ARC Informatique (http://arcinformatique.ca) et Les francs codeurs (http://lesfrancscodeurs.com/).

Décoder des journaux Tomcat avec OSSEC

Remerciement : Je remercie Nicolas Zin de Savoir-faire Linux pour son expertise sur le sujet et pour la maintenance du dépôt OSSEC pour Ubuntu

J’ai eu comme défi de surveiller les journaux de nos applications avec OSSEC.
Ce fut plus aisé que prévu !

Premièrement, j’ai ajouté les décodeurs suivants dans /var/ossec/etc/decoder.xml :

<decoder name= »tomcat-SEVERE »>
<prematch>^SEVERE:</prematch>
<regex offset= »after_prematch »>.+</regex>
<order>extra_data</order>
</decoder>

<decoder name= »log4j-ERROR »>
<prematch>^d+spw+psd+pd+pd+sd+pd+pd+pd+s+ERROR</prematch>
<regex offset= »after_prematch »>^ (S+)  –  (S+)  –  (.+)</regex>
<order>extra_data, extra_data, extra_data</order>
</decoder>
<decoder name= »log4j-TRACE »>
<prematch>^d+spw+psd+pd+pd+sd+pd+pd+pd+s+TRACE</prematch>
<regex offset= »after_prematch »>.+</regex>
<order>extra_data</order>
</decoder>
<decoder name= »log4j-INFO »>
<prematch>^d+spw+psd+pd+pd+sd+pd+pd+pd+s+INFO</prematch>
<regex offset= »after_prematch »>.+</regex>
<order>extra_data</order>
</decoder>
<decoder name= »log4j-DEBUG »>
<prematch>^d+spw+psd+pd+pd+sd+pd+pd+pd+s+DEBUG</prematch>
<regex offset= »after_prematch »>.+</regex>
<order>extra_data</order>
</decoder>

Puis, côté agent, la ligne suivante a été ajoutée à /var/ossec/etc/ossec.conf :

<localfile>
<log_format>multi-line:2</log_format>
<location>/var/log/tomcat7/catalina.out</location>
</localfile>

Sur le serveur, j’ai testé avec l’outil ossec-logtest une entrée du journal.

Enfin,
pour finaliser le tout, la création de règle est obligatoire, donc dans
/var/ossec/rules j’ai créé un nouveau fichier de règles que j’ai nommé
tomcat_rules.xml et qui va comme suit :

 <rule id= »100002″ level= »5″>
<decoded_as>log4j-ERROR</decoded_as>
<description>Error in Tomcat application</description>
</rule>

<rule id= »100003″ level= »12″>
<decoded_as>tomcat-SEVERE</decoded_as>
<description>Severe error in Tomcat container</description>
</rule>

Prologue – Avant le premier contact

Avant, il y avait un adolescent. Assez beau, plutôt créatif et imbu de lui-même. Tout comme pour la plupart des jeunes de son âge, l’époque était aux expériences.

Pour lui, cependant, et puisqu’il était téméraire, les expériences se sont transformées en cauchemar lorsqu’il fut attaqué par ses pairs, rejeté, laissé seul et battu.

À 15 ans et demi, il dû s’exiler du monde et des gens qu’il fréquentait pour refaire sa vie – plus précisément terminer son cycle d’études secondaires.

Peu de temps après et par regret, il retourna aux lieux autrefois fréquentés pour y retrouver ses liens et une part de lui-même. Cependant le comité d’accueil ne fut pas celui escompté. À la place, presque tous ceux qu’il connaissait s’étaient réunis en cercle et, dès son passage à l’intérieur de ce cercle qu’il savait hostile et même en y reconnaissant parmi celui-ci des amis de longue date, il fut attaqué et dû prendre la fuite.

Dépité, auto-assujetti à l’exil et rejeté par ses pairs, laissé à lui-même, il eut la prise de conscience que la vie méritait mieux.

Sur la qualité du logiciel, le développement web et les systèmes patrimoniaux – partie 2

Hier, j’ai publié sur la base du problème et j’ai décrit en somme ce vers quoi je devais aller. Aujourd’hui, je pousse plus loin en recréant les cas d’utilisation depuis l’implémentation.

Cas d’utilisation d’interface (I)

Sous sa forme la plus simple, les cas d’utilisation d’interface (I) sont les plus aisé à modéliser puisqu’ils correspondent à des points d’entrée bien définis dans l’application pour les opérations utilisateurs.

Ces cas d’utilisation I, je les ais aussi modélisé pour les interfaces de systèmes, soit comme points d’entrée de fonction d’un système tier vers l’architecture principale (le modèle du domaine). Ainsi, en plus des cas d’utilisation d’interface évidents (récupérés depuis le navigateur puisqu’il est question d’une application web), les cas d’utilisation d’interface I système ont été ajoutés.

Ces derniers peuvent être confondus avec les cas d’utilisation service S, cependant par leur nature, il y a réellement une barrière de communication entre le modèle de données et le reste du monde et ce sont les objets que l’on peut regrouper dans ces cas d’utilisation I, les interfaces de systèmes. Les interfaces de système ont donc une nomenclature qui se confond avec les cas d’utilisation de services S de par leur nature (cas d’utilisation en mode requête/mise à jour) cependant ils sont placés de sorte qu’ils viennent se poser comme interface au système ou à une autre composante du système (dans une architecture distribuée client-serveur par exemple).

Un premier jet est donc fait en extractant les cas d’utilisation évident des interfaces graphiques et des points d’entrée du code serveur.

Ce qui est bien avec ce processus inversé, c’est qu’il n’est pas nécessaire d’impliquer un designer graphique pour revenir en arrière pas plus que des prototypes d’écrans utilisateurs ne sont requis. Ils feront tout de même partie de la documentation, cependant ils auront déjà été produit.

Cas d’utilisation de services (S) et requis (R)

Par la suite, la plupart des cas d’utilisation de services (S) et requis (R) peuvent être modélisés à partir des cas d’utilisation I. De plus, certains cas d’utilisation S seront modélisés directement à partir de cas d’utilisation de requis (R) – ils sont dits cas d’utilisation S-Essentiel. Ces derniers ne pourront être modélisés à partir des cas d’utilisation d’interface cas ils n’impliquent pour ainsi dire pas d’interface.

L’important est de cerné tous les requis d’utilisation à partir de ce qui a été implanté. Ce ne devrait pas être bien difficile non plus que ça ne devrait être quelque chose qui révèle des requis inexistants ou non-implémentés, évidemment car sinon on aurait un gros problème.

En somme, on devrait avoir grosso-modo tracé les requis jusqu’aux éléments du modèle, des cas R aux cas S en passant par les cas I. Tous ça nous permettra d’avoir une suite qui descend de ces cas d’utilisation et qui puisse être représenté dans un diagramme de tracabilité des cas d’utilisation.