VIM 01 – Entrer et sortir de Vim et Vimtutor

Beaucoup de choses ont déjà été publiés sur le sujet, j’en suis conscient, j’espère faire découvrir Vim d’une façon différente et c’est surtout un prétexte pour m’y replonger, me redonner le reflex Vim et certainement me perfectionner.

Ce premier billet sur le sujet est très basique, le but est de savoir entrer et sortir de vim d’apprendre le minimum syndical au niveau des commandes pour éviter de revenir sur certaines commandes dans les articles qui suivront.

Je ne compte pas parler des versions graphiques, ni comment installer Vim car il me semble que cela l’est par défaut sur toutes les distributions linux (je n’ai pas souvenir d’avoir fait un jour « apt-get [ou apt] install vim », mais bon.)[voir les commentaires en fin de billet]. Je ne rentrerai pas dans la bataille Vim contre Emacs, ni dans les comparaisons avec d’autres éditeurs de textes que j’utilise régulièrement « Gedit« , « Nano » qui ont aussi toute leur utilité.

Là c’est simple, ouvrez une console et tapez « vim » :

$ vim
Capture d'écran de l'éditeur Vim en version 8.0.707, affichant les informations de version, les crédits (Bram Moolenaar et al.) et les instructions d'aide pour les utilisateurs. L'interface est en mode terminal avec un fond noir et du texte vert.
Cette image montre l’écran de démarrage de Vim, un éditeur de texte puissant et populaire dans le monde du logiciel libre. On y voit la version 8.0.707, les crédits des contributeurs, et des instructions pour obtenir de l’aide ou quitter le programme.

Comment sortir de l’éditeur Vim ?

Vous êtes coincé dans l’éditeur de Vim et vous ne savez pas comment en sortir ? Vous n’êtes pas le seul à qui cela est arrivé !

Pourtant c’est écrit à l’ouverture de vim.

Mais cela arrive au débutant, surtout si pour une raison quelconque, un fichier a été ouvert dans l’éditeur Vim (que vous découvrez) et que vous souhaitez quitter mais ne trouvez pas comment le faire, nous allons maintenant voir la solution. Mais ne soyez pas frustré, vous n’êtes pas le premier.

Une question banale ?

Le site web Stack Overflow est l’une des communautés de développeurs importantes et réputées qui cherchent des solutions, de l’aide sur la façon de résoudre les différents problèmes rencontrés par les programmeurs de nombreux domaines et langages.
Et pourtant il y a la question d’un utilisateur qui demande à la communauté comment sortir de l’éditeur de Vim ? Alors une question plutôt banale… ou pas tant que ça ! il suffit de lire le fil pour voir l’importance de la question.
Pendant des années, cette question a été une blague récurrente sur certains réseaux sociaux.

Alors que personne ne se moque de ceux qui pose la question et ne retardons pas plus longtemps la solution. Voici la réponse à la question « comment sortir de l’éditeur Vim? » :

  • Appuyez sur la touche Echap ou Esc. Le curseur va se placer en bas (la zone de commande)
  • Appuyez sur la séquence de touches :q
  • Vous pouvez également appuyer sur :q! pour quitter l’éditeur sans enregistrer les modifications
  • Appuyez sur la touche Entrée

Résumé des commandes. D’abord, nous appuyons sur Echap ou Esc pour nous placer dans le tampon inférieur en mode normal, et :

  • : q → quitte le fichier, si nous n’avons aucune modification sans l’enregistrer, il suffit de quitter.
  • : q! → quitte le fichier en supprimant les modifications non enregistrées.
  • : w → enregistre les modifications apportées au fichier, mais ne quitte pas Vim pour continuer à modifier le fichier.
  • : wq → enregistrer les modifications et quitter Vim.
  • : x → identique à la précédente.

Bien, vous savez entrer et sortir de l’éditeur Vim. Bon, finalement rien de compliqué jusque-là, alors passons à la suite, c’est encore plus simple.

VimTutor

Une application pour apprendre pas à pas les premières commandes sur Vim, avec cela vous allez vous familiariser avec Vim.
Bah, pourquoi tu n’as pas commencé par ça Sima78 ?
Commencer par quelques difficultés lorsque l’on découvre une application (bon, ce n’était pas non plus l’enfer…) et que l’on passe soudainement à quelque chose de plus ludique, celui qui n’a pas décroché va se dire « bah, moi aussi je peux utiliser Vim »… Du moins j’espère que ce sera la réaction du débutant.

Donc Vimtutor pour apprendre pas à pas, il faut commencer par l’installer (sur Debian et dérivées) :

# apt install vimtutor

ou

$ sudo apt install vimtutor

Puis on lance Vimtutor

$ vimtutor

Le résultat :

Capture d'écran du tutoriel Vim en français, affichant une introduction au logiciel Vim, ses objectifs pédagogiques, et des instructions pour configurer son clavier avant de commencer le cours.
Cette image montre la première page du tutoriel Vim en français, version 1.7. Elle explique l’objectif du cours, la durée estimée, et donne des conseils pour bien démarrer, notamment en vérifiant l’état du clavier.

Suivez le tuto pendant 25, 30 minutes. Recommencez jusqu’à bien maîtriser ces commandes de bases, vous aurez l’essentiel pour commencer à utiliser basiquement Vim et surtout pour aller plus loin.

Fin de ce billet sur Entrer et sortir de Vim et Vimtutor.

Pour retrouver les billets concernant la série Vim:
Application Vim sur le tag Vim

Les 20 ans de Root66.Net

Hier on fêtait les 20 ans de Root66.Net.

C’était le 9 novembre 2019.

Superbe ambiance et très bonne organisation.
Quiz, présentation de vieux ordinateurs, d’anciens jeux vidéos… Un membre de root66 nous a fait un petit concert privatif sur des chansons à la demande.
En plus des membres de root66 et leurs amis il y avait des invités, certains ayants faits des présentations pour Root66 et aussi les initiateurs, du moins trois qui ont pu se déplacer. Ils avaient la vingtaine il y a 20 ans !

Bref, on a passé une excellente soirée entre rires et émotions… Une soirée mémorable !

Photo d'un gâteau d'anniversaire décoré avec le logo Root 66 et l'inscription "20 ans de logiciel libre". En arrière-plan, on aperçoit des des décorations festives (photo/image @Sima78, licensed under CC BY-NC-SA).
Ce gâteau célèbre les 20 ans du logiciel libre, représenté par le logo Root 66. Les décorations incluent des éléments festifs, avec une mention claire de l’événement. (photo/image @Sima78, licensed under CC BY-NC-SA)
Photo d'un gâteau d'anniversaire décoré avec le logo Root 66 et l'inscription "20 ans de logiciel libre". En arrière-plan, on aperçoit des décorations festives. (photo/image @Sima78, licensed under CC BY-NC-SA)
Ce gâteau célèbre les 20 ans de Root66.Net, représenté par le logo Root 66. Les décorations avec des éléments festifs, avec une mention claire de l’événement. (photo/image @Sima78, licensed under CC BY-NC-SA)

Ghidra – La NSA libère son outil de rétro-ingénierie

De temps en temps, quand ils s’ennuient à espionner, l’« intelligence agency » les agences de renseignements des États-Unis nous permettent de jeter un œil à certains de leurs jouets. Par exemple, le logiciel Ghidra, qui peut intéresser des experts en « reverse engineering » Rétro-Ingénierie et sécurité informatique.

Serpent rouge sur fond noir qui se mort la queue et forme un huit horizontal.
Logo de Ghildra

Écrit en langage de programmation Java, il est distribué, sous forme incomplète mais sous licence libre Apache 2.0. De plus il est gratuit, ce qui en fait une alternative intéressante à IDA Pro, un programme fermé et pas vraiment bon marché.

Développée de manière réservée depuis de nombreuses années, il a été montré au public pour la première fois lors de la conférence RSA qui s’est tenue à San Francisco.

Un logiciel capable d’analyser des fichiers binaires (par exemple des logiciels malveillants) inversant le processus de compilation, vers pseudo-code C, permettant aux analystes de comprendre la fonctionnalité de celui-ci.

Il est multi-plateforme (Linux, MacOos, Windows), et compatible avec des logiciels destinés à tous les types de processeurs et de multiples architectures (environ une douzaine). Également extensible dans ses fonctions à base de plugins, à la fois Python et Java, que l’utilisateur peut créer lui-même.

Il se caractérise par ses nombreuses possibilités : effectuer un travail collaboratif, assembleur/dés-assembleur, mode interactif ou automatique, graphiques et diagrammes de flux, raccourcis clavier avancés, possibilité d’annuler les changements. Plus d’une centaine de fonctions différentes et beaucoup à explorer dans cet outil.

Comme toujours, il est conseillé un minimum de précaution dans l’exécution du code de la NSA. Bien qu’ils jurent  qu’il n’y a pas de backdoor (porte dérobée) dans The Register, ils ont déjà fait écho à un bug qui, en mode débogueur, permet à Ghidra de se connecter à d’autres systèmes de son réseau et d’exécuter du code.

Site Ghidra pour le téléchargement.

Voyez les photos d’écran plus bas…
Pour l’exécuter, il faut avoir Java runtime.
Une fois Ghidra installé, pour le lancer :

./ghidra_run
Capture d’écran de l’accord utilisateur de Ghidra, un framework de reverse engineering développé par la NSA, affichant les termes de la licence Apache 2.0, incluant une clause de responsabilité utilisateur.
Ghidra, l’outil de reverse engineering de la NSA, présente son accord utilisateur sous licence Apache 2.0, insistant sur la responsabilité de l’utilisateur dans l’usage légal du logiciel.
Capture d’écran de la page d’introduction du guide utilisateur de Ghidra, montrant une vue d’ensemble de l’outil de reverse engineering, incluant les sections 'Introduction', 'Public cible', 'Portée du document' et 'Avertissement'.
La page d’accueil du guide utilisateur de Ghidra présente les bases de l’outil, son public cible et les limites de la documentation fournie, soulignant son extensibilité via des plugins.
Capture d’écran de l’interface principale de Ghidra, montrant l’état "NO ACTIVE PROJECT" dans la section "Active Project", avec des options pour créer ou charger un projet, ainsi qu’une liste vide dans l’onglet "Tool Chest".
L’interface de Ghidra s’ouvre sur une page indiquant qu’aucun projet n’est actif, avec des outils de gestion de projet désactivés et une liste vide d’outils disponibles.
Capture d’écran de l’interface de Ghidra montrant un projet en cours d’analyse, avec les panneaux "Program Trees", "Symbol Tree" et "Data Type Manager", une vue hexadécimale du code, ainsi qu’un résumé des résultats d’import dans le navigateur de code.
Ghidra, l’outil de reverse engineering de la NSA, affiche un projet en cours : ELBA, avec ses structures de programme, ses symboles et ses types de données, ainsi qu’une vue détaillée du code et un résumé des résultats d’import.

Source: une traduction d’un article du site « La Mirada Del Replicante » – La NSA libera su herramienta de ingeniería inversa Ghidra

Connexion lente, testez les résolveurs DNS – NameBench

Connexion lente, testez les résolveurs DNS – NameBench

Avant tout, la différence entre « Résolveur » (ou serveur récursif) et Serveur faisant autorité (serveur DNS) !
On parle souvent de serveur DNS à tort car il s’agit souvent et surtout dans le cas NameBench de serveurs récursifs.

Résolveur (ou serveur récursif) : serveur DNS qui ne connaît rien mais pose des questions aux serveurs faisant autorité et mémorise les réponses. Chez le FAI, ou sur le réseau local ou serveurs récursifs publics (Quad9, OpenDNS, Google, etc.).
Serveur faisant autorité : serveur DNS qui connaît le contenu d’un domaine. Exemple : les serveurs de l’AFNIC qui connaissent ce qu’il y a dans « .fr » et peuvent répondre. Ou les serveurs de gouvernement.fr chez Gandi et autres…

Pour approfondir vos connaissances sur le sujet allez sur le blog de Stéphane Bortzmeyer que je remercie.

Bon, revenons-en à nos moutons !…

Je suis parmi les utilisateurs les plus distants de mon FAI, ce qui a pour conséquence une connexion internet dont les utilisateurs de modems n’ont rien à m’envier.

Dans ce cas, plus qu’ailleurs, le temps de réponse d’un résolveur DNS a son importance.

Trouver le plus rapide, c’est ce que fait NameBench en testant la rapidité des serveurs récursifs, pour cela il va utiliser l’historique du navigateur et va parcourir les résolveurs DNS locaux et globaux (publics). Il vous signalera également les résolveurs DNS menteurs.
Il est dans les dépôts Debian, une fois installé il suffit le lancer par la commande

$ namebench

Vous avez l’interface ci-dessous, on peut voir que j’ai comme résolveur DNS 9.9.9.9 et 9.9.9.10 de Quad9

Capture d’écran de l’outil Namebench, un logiciel open source utilisé pour évaluer et comparer les performances des serveurs DNS, avec des options de configuration pour inclure des fournisseurs globaux ou régionaux, des vérifications de censure, et une analyse de la rapidité des requêtes DNS.
L’interface de Namebench, un outil conçu pour tester et classer les serveurs DNS en fonction de leur vitesse, de leur fiabilité et de leur capacité à contourner la censure.

Cliquez sur test ou running.
C’est parti ! Vous pouvez aller vous faire chauffer un thé, chercher le pain à la boulangerie cela va prendre un certain temps !

Sortie terminal de Namebench, affichant l’envoi de 250 requêtes à quatre serveurs DNS, avec des pourcentages de réussite, des erreurs de timeout (comme pour UltraDNS), et un rapport final indiquant que Google Public DNS-2 (8.8.4.4) est le serveur le plus performant.
Exemple de sortie de Namebench, un outil qui teste la réactivité de plusieurs serveurs DNS en envoyant des milliers de requêtes. Ici, Google Public DNS-2 (8.8.4.4) est identifié comme le plus efficace.

A la fin vous avez les résultats qui s’affiche sur votre navigateur.

Résultat d’un test Namebench indiquant le serveur le plus rapide
Analyse Namebench révélant que Google Public DNS-2 offre des performances supérieures de 38,4 %, avec une configuration optimale pour améliorer votre connexion internet.

J’ai fait le choix de refaire un test avec les résolveur  DNS 208.67.222.220 et 208.67.220.222 de OpenDNS.
Choix que j’ai gardé, même si celui de Google est un poil de cul plus rapide. J’ai plus confiance à OpenDNS qu’en Google.
S’en suit une série de screenshots.

Capture d’écran de Namebench, un outil pour tester et comparer les performances des serveurs DNS (comme Google Public DNS, OpenDNS, etc.).
nterface de Namebench permettant de configurer et de lancer des tests de performance sur différents serveurs DNS.
Résultat de Namebench
Recommandation NameBench
Tableau de résultats de Namebench comparant les performances de plusieurs serveurs DNS (temps de réponse moyen, temps minimum/maximum, erreurs de timeout, notes sur leur fiabilité).
Namebench affiche les résultats de test pour plusieurs serveurs DNS, avec des métriques comme le temps de réponse (Avg ms), les erreurs (TO, NX) et des notes sur leur fiabilité.
Graphiques Namebench illustrant les temps de réponse moyens et individuels des serveurs DNS (Google Public DNS-2, SYS-208.67.222.220, UltraDNS, DynGuide), ainsi que la distribution des réponses dans les 200 premières millisecondes.
Namebench présente les temps de réponse moyens et individuels des serveurs DNS, ainsi qu’une courbe de distribution pour évaluer leur réactivité globale.
Graphique illustrant la répartition des temps de réponse (en millisecondes) de quatre serveurs DNS : SYS-208.67.222.220, DynGuide, Google Public DNS-2 et UltraDNS.
Ce graphique montre la distribution des temps de réponse des serveurs DNS analysés. Les courbes représentent le pourcentage cumulé de réponses en fonction du temps de réponse (en ms).
Capture d'écran d'un fichier CSV nommé "namebench_2018-01-02_1814.csv" ouvert dans LibreOffice Calc, affichant des données de tests DNS.
Cette image montre un extrait du fichier CSV « namebench_2018-01-02_1814.csv » ouvert dans LibreOffice Calc. Le tableau contient des informations sur les tests DNS, incluant des colonnes comme l’adresse IP, le type de test, le type d’enregistrement, la durée, le TTL, le nombre de réponses et la réponse elle-même.

Schéma simplifié d’une requête DNS

Schéma illustrant le chiffrement des requêtes DNS via des connexions sécurisées entre des appareils (smartphone, tablette, ordinateur) et des serveurs DNS privés (dnsprivacy.org), protégeant les données contre l'interception.
Comment les connexions DNS chiffrées (DoH/DoT) protègent vos données contre les regards indiscrets, avec des appareils connectés à un serveur DNS sécurisé via dnsprivacy.org.

Comment installer VM VirtualBox sur Debian 9 (Stretch) ou autres distributions

VM VirtualBox est un logiciel libre et open source de virtualisation publié par Oracle. Bien entendu il est disponible pour GNU/Linux mais aussi pour Windows.

Par défaut, les packages de VM VirtualBox ne sont pas disponibles dans les dépôts de paquets de la Debian 9 (nom de code « Stretch« ).

Nous allons donc voir comment installer la dernière version de Oracle VM Virtualbox sur debian.

Allez déjà faire un tour du côté d’Oracle pour connaître quelle est la dernière version de VM Virtualbox. À ce stade, en cliquant sur l’onglet « Downloads » vous pouvez voir les différents « paquets ou sources » au téléchargement proposés aux diverses distributions et systèmes d’exploitations.

Mais si on souhaite avoir un suivi des mises-à-jour… Sous linux il nous suffit de configurer les dépôts, pour Debian c’est là… Voyons comment faire :
Rappel : $=User    #=Root

Étape 1 : Ajout du dépôt VM VirtualBox

Ouvrez le terminal et exécutez la commande suivante pour ajouter le dépôt.

# apt-add-repository 'deb http://download.virtualbox.org/virtualbox/debian stretch contrib'

Étape : 2 Ajouter une clé publique de VirtualBox

# curl -O https://www.virtualbox.org/download/oracle_vbox_2016.asc
# apt-key add oracle_vbox_2016.asc

Étape 3 : Installez VirtualBox avec la commande apt-get

# apt-get update
# apt-get install virtualbox

La version n’étant pas spécifiée vous aurez un message comme ci-dessous

Le paquet virtualbox est un paquet virtuel fourni par :
  virtualbox-5.2 5.2.2-119230~Debian~stretch
  virtualbox-5.1 5.1.30-118389~Debian~stretch
  virtualbox-5.0 5.0.40-115130~Debian~stretch
Vous devez explicitement sélectionner un paquet à installer.
E: Le paquet « virtualbox » n'a pas de version susceptible d'être installée

C’est le moment de choisir la dernière version…

# apt-get install virtualbox-5.2 5.2.2

Une fois l’installation terminée, essayez maintenant d’y accéder.

Accéder à VirtualBox

Interface de recherche du système d'exploitation affichant VirtualBox comme résultat pour "vm virtualbox".
Cette capture montre l’interface de recherche du système d’exploitation, où l’utilisateur a saisi « vm virtualbox ». L’icône de VirtualBox est visible dans les résultats, indiquant que l’application est installée et prête à être lancée.

Cliquez sur l’icône de la VM VirtualBox

Interface principale de VirtualBox affichant le gestionnaire de machines virtuelles avec un message de bienvenue et des instructions pour créer une nouvelle machine virtuelle.
Cette capture montre l’interface principale de VirtualBox, où aucun machine virtuelle n’a encore été créée. Un message de bienvenue guide l’utilisateur pour créer sa première machine virtuelle en utilisant le bouton « Nouvelle ».

Installer le pack d’extension VirtualBox

Il est recommandé d’installer le module d’extension après l’installation de la VirtualBox. Pour installer le pack d’extension VirtualBox 5.2, nous devons d’abord télécharger le fichier du pack d’extension en utilisant la commande wget suivante :

$ wget http://download.virtualbox.org/virtualbox/5.2.2/Oracle_VM_VirtualBox_Extension_Pack-5.2.2-119230.vbox-extpack

Pour être certain de bien charger la bonne extension pack, vérifiez ici.
Une fois le fichier téléchargé, accédez à l’interface graphique de VirtualBox et allez sur:
Fichier -> Paramètres -> Extensions et sélectionnez le fichier ‘vbox-extpack’ Puis cliquez sur Installer (voir série de screenshots)

Interface des préférences de VirtualBox : onglet Extensions avec une liste vide de paquets d'extension.
Cette capture montre l’onglet « Extensions » dans les préférences de VirtualBox. Aucun paquet d’extension n’est installé ou activé, comme indiqué par la liste vide sous « Paquets d’extension ».
Fenêtre de sélection de fichier d'extension VirtualBox : le fichier Oracle_VM_VirtualBox_Extension_Pack-5.2.22-119230.vbox-extpack est sélectionné dans le dossier Téléchargements.
Cette capture montre la fenêtre de sélection de fichier pour ajouter une extension à VirtualBox. Le fichier Oracle_VM_VirtualBox_Extension_Pack-5.2.22-119230.vbox-extpack est mis en surbrillance dans le dossier Téléchargements, prêt à être installé.
Fenêtre de l'accord de licence pour Oracle VM VirtualBox, affichant les termes et conditions d'utilisation.
Cette capture montre la fenêtre de licence d’Oracle VM VirtualBox. L’utilisateur est invité à accepter les termes et conditions pour continuer l’installation ou l’utilisation du logiciel.
Fenêtre d'avertissement de VirtualBox : détails sur l'extension Oracle VM VirtualBox Extension Pack en cours d'installation, avec un message sur les risques potentiels des extensions.
Cette capture montre une fenêtre d’avertissement de VirtualBox qui informe l’utilisateur des risques potentiels liés à l’installation d’une extension. Elle détaille le nom, la version et les fonctionnalités de l’extension Oracle VM VirtualBox Extension Pack.

Il y a une dernière fenêtre, dont j’ai oublié de faire le screenshot, qui nous indique que le pack d’extension a été installé avec succès.

C’est fini pour ce tutoriel, j’espère que vous avez une idée sur la façon d’installer VM VirtualBox et son extension sur Debian (et autres distributions linux).
En espérant vous avoir été utile et n’hésitez pas à me faire savoir comment faire mieux ou si j’ai commis des coquilles…

Enregistrer directement depuis votre carte son – linux.

Votre enfant fait partie de la chorale de la maternelle et le son est sur le site de votre mairie.

Mais, impossible de le télécharger, le site est fait en sorte qu’aucun de vos plugins Firefox fonctionnent et aucun fichier mis à disposition au téléchargement… Mais merde! flûte! C’est la voix de votre enfant dont vous voulez garder une trace!

On se calme, si le son sort de la carte son, c’est qu’il y a moyen de le récupérer.

Ma méthode:

Pavucontrol et AudaCity

Il vous faut deux applications « Pavucontrol » et une application capable d’enregistrer, il y en a plein sous linux, moi j’utilise « Audacity« .

si vous ne les avez pas, installez-les (pour Debian et dérivés ».

# apt-get install pavucontrol audacity

Lancez « Pavucontrol », puis « Audacity ».

Personnellement, je n’ai pas eu besoin d’intervenir dans les configurations, tout est par défaut.

Agencez vos fenêtres de façon à être efficace dans les clics… Image ci-dessous.

Capture d'écran d'un bureau Linux avec le logiciel Audacity, le contrôle du volume PulseAudio et une vidéo en attente dans Firefox.
Configuration typique sous Linux pour enregistrer le son d’une vidéo web avec Audacity via PulseAudio.

Lorsque vous lancez la lecture sur votre navigateur, puis enregistrement sur Audicity, vous devriez avoir quelque chose du même genre que  ci-dessous.

Alt : Capture d'écran d'un enregistrement Audacity sous Linux avec PulseAudio sur l'onglet Enregistrement, montrant les formes d'ondes dans la piste stéréo.
Source d’enregistrement : Audacity capture le moniteur stéréo analogique au lieu du flux Firefox.

Positionnez-vous sur l’onglet « Enregistrement » du contrôle du volume et vous devriez avoir quelque chose du même genre que l’image ci-dessous.

Il faut que ALSA plug-in soit sur « Monitor of Audio interne Stéréo analogique »

Alt : Capture d'écran montrant un enregistrement audio en cours dans Audacity, avec Firefox lisant une vidéo et PulseAudio affichant le flux audio actif.
Enregistrement audio en cours — Audacity, PulseAudio et Firefox sous Linux

Vous êtes prêt! Alors repartez de zéro, agencez vos fenêtres, puis lancez le fichier son (ou vidéo dont vous voulez récupérer le son) depuis votre navigateur, cliquez sur enregistrer de votre enregistreur (ici Audacity) et il n’y a plus qu’à attendre la fin où vous stopperez votre enregistrement. Faites exporter ou enregistrer en fonction du format souhaité et c’est fini!

Il y a sans doute plein d’autres méthodes n’hésitez pas à les faire connaître.

Geneweb en service et https (suite)

geneweb https stunnel4

Alors bien entendu comme je l’avais dit dans un billet précédent, il suffit d’utiliser Geneweb comme un site lambda avec un script cgi

Sauf que moi je ne souhaite pas l’utiliser ainsi mais en service, via un port dédié.
J’ai donc sur le sujet fait un tutoriel, je l’ai proposé sur une liste de diffusion (mailling list) dédiée à Geneweb. On m’a proposé de le publier sur le site dédié.

Comme je n’avais pas vraiment le temps j’ai juste envoyé une compilation de mes deux tutoriels « https sous Apache – Même à l’école je n’ai jamais eu un A » et « https pour autres ports ou services ex Geneweb – stunnel4« .

Henri G. l’a mis en forme, publié sur le site de geneweb, il en a fait aussi la traduction en anglais, et mis un petit lien de renvoie en fin d’article qui me touche beaucoup.
Un mois plus tard JM fait également une proposition différente de la mienne sur la mailling list, et que je trouve aussi très intéressante.

Il ne s’agit pas d’un tutoriel car je n’ai pas testé, et je n’ai pas envie de modifier la configuration de mon serveur pour tester.
Je le mets pour ceux qui souhaitent tester, creuser, perfectionner, et aussi en pense bête, pour le tester moi-même un jour.
C’est basé sur des certificats auto-signés, ceux qui ont d’autres certificats sauront l’adapter.

La proposition.

JM : (…) un vhost en reverse proxy, comme ça Geneweb n’écoute qu’en local. Ici une vieille configuration éprouvée, pas à jour des dernières modes de Let’s Encrypt & co mais ça donne l’idée. Le passage important est le paragraphe avec RewriteEngine, ProxyPass et ProxyPassReverse – ainsi que le <Proxy *> :

<VirtualHost *:443>
ServerName genealogie.mafamille.org
ServerAdmin admin@mafamille.org
DocumentRoot /home/moi/www/www.mafamille.org/
CustomLog /home/moi/logs/apache2/mafamille.org/access.log combined
RewriteEngine On
ProxyPass / http://serveur.mafamille.com:2317/
ProxyPassReverse / http://serveur.mafamille.com:2317/

   <Proxy *>
        Order deny,allow
        Allow from all
   </Proxy>

SSLEngine               on
SSLCACertificateFile    /etc/apache2/ssl/certs.pem
SSLCertificateFile      /etc/apache2/ssl/apache2.pem
SSLCertificateKeyFile   /etc/apache2/ssl/apache2.key
SSLProtocol             all
SSLCipherSuite          HIGH:MEDIUM

   <directory /home/jim/www/www.mafamille.org/>
        Options None
        AllowOverride None
        Order Deny,Allow
        Allow from all
   </directory>
</VirtualHost>

https pour autres ports ou services ex Geneweb – stunnel4

geneweb https stunnel4

Si vous avez une application avec un protocole ne supportant pas SSL, la solution est de l’encapsuler dans un tunnel SSL.
Bien entendu, il s’agit là d’un exemple, qui fonctionne chez-moi, n’hésitez pas à améliorer.

Geneweb en https

Depuis que mon serveur est en https, geneweb restait en http. Geneweb se lance sur mon serveur en service (il est son propre serveur) sur un port dédié. Une des solutions aurait été de l’installer sur /var/www/ avec un script CGI… Ce que je ne souhaitais pas.
Donc mon exemple s’applique à Geneweb, mais en cherchant sur le web, vous trouverez comment encapsuler d’autres protocoles tels que smtp, pop, vpn, imap…
Habituellement, on se connecte sur Geneweb en mode service sur le port 2317 (http://leserveur.net:2317) donc pas en https…

Voyons comment procéder…

sur Ubuntu 16.04 server

Geneweb et Stunnel

Installer Stunnel4

sudo apt-get install stunnel4

On se place dans le répertoire et on se positionne en Root, sinon tapez « sudo » devant chaque ligne.

cd /etc/stunnel
sudo -s

On génère les clés. On peut faire simple avec:

openssl req -new -x509 -nodes -days 365 -out stunnel.pem -keyout stunnel.pem #dans ce cas il faudra en tenir compte lors de la création du fichier « stunnel.conf »

Personnellement, j’ai procédé comme suit:

openssl genrsa -out cle-serveur.key 2048

Signature de la demande de certificat CSR.

openssl req -new -key cle-serveur.key -out demande-certif.csr

Le certificat auto-signé pour un an.

openssl x509 -req -days 365 -in demande-certif.csr -signkey cle-serveur.key -out cert-server.crt

On combine le certificat et la clé dans un même fichier.

cat cleserveur.key > server.pem && cat certserver.crt >> server.pem

On modifie les permissions.

chmod 0600 cert-server.crt cle-serveur.key server.pem

Ensuite je crée le fichier de configuration « stunnel.conf » dans /etc/stunnel/

« ; » signifie que c’est en commentaire, vous pouvez donc « fignoler » la configuration. Je n’ai pas tout traduit par paresse, mais c’est assez transparent.
Utilisez VI, ou nano, ou autre, selon vos habitudes, ici je vais utiliser nano

nano stunnel.conf

Ci-dessous mon fichier stunnel.conf

; **************************************************************************
; * Options générales                                                         *
; **************************************************************************
; Il est recommandé de changer les privilèges utilisateur et groupe
;setuid = stunnel4
;setgid = stunnel4
; un chroot pour un peu plus de sécurité
;chroot = /var/lib/stunnel4/
; Le fichier PID sera créé dans le chroot
;pid = /var/run/stunnel.pid
; Utile de mettre dans les logs pour suivre en cas de bug
foreground = yes
debug = info
output = /var/log/stunnel4/stunnel.log
; Enable FIPS 140-2 mode if needed for compliance
;fips = yes
; **************************************************************************
; * Service defaults may also be specified in individual service sections  *
; **************************************************************************
; Enable support for the insecure SSLv3 protocol
options = -NO_SSLv3
; These options provide additional security at some performance degradation
options = SINGLE_ECDH_USE
options = SINGLE_DH_USE
; **************************************************************************
; * Include all configuration file fragments from the specified folder     *
; **************************************************************************
;include = /etc/stunnel/conf.d
; **************************************************************************
; * Service definitions (remove all services for inetd mode)               *
; **************************************************************************
[geneweb]
accept = 22317
connect = 2317
cert=/etc/stunnel/server.pem
key=/etc/stunnel/cle-serveur.key

On modifie l’utilisateur et le groupe.

cd ..
chown -Rf stunnel4:stunnel4 stunnel/

Maintenant nous allons activer stunnel

nano /etc/default/stunnel4

Modifiez l’option suivante comme ci-dessous :

ENABLED=1

On redémarre Stunnel

/etc/init.d/stunnel4 stop
/etc/init.d/stunnel4 start

ou plus simplement

/etc/init.d/stunnel4 restart

Connexion à Geneweb en https

Sur cette exemple vous pourrez vous connecter sur Geneweb en https avec l’adresse suivante sur votre navigateur:
https://www.votre-verveur.fr:22317

Si vous utilisez iptables ou autre pare-feux, n’oubliez pas de le modifier et/ou si vous êtes auto-hébergé modifiez aussi la redirection de ports sur votre box….

Si vous avez déjà des certificats Let’s Encrypt, je pense que vous pouvez les utiliser en modifiant le fichier stunnel.conf, j’avoue ne pas avoir creusé la question puisque j’informe ceux que j’autorise à se connecter qu’ils doivent accepter le certificat lors du message d’alerte de leur navigateur.

On ne m’y reprendra plus!

Je suis persuadé que parfois on commet l’erreur de vouloir faire fonctionner, à tout prix, un vieux pc. En fin de billet, j’explique pourquoi.

Et oui, quand un collègue vient me voir et me dit : Une voisine m’a donné un vieux ordinateur portable, tu pourrais faire en sorte que je puisse l’utiliser ? Le clavier est « Américain » et la prise de courant aussi…

Alors moi, bon Prince : pour le clavier il suffit de mettre des stickers, la prise un adaptateur, et dessus je t’installe un linux…

Hé oui, je suis bon Prince, mais bon, lire la suite…

Je récupère l’antiquité, et là, je sens déjà que ce ne sera pas simple. J’en ai un, identique, au boulot qui sert de dépannage, et bien qu’il soit chargé au maximum de sa mémoire (4Go) j’ai vraiment « galéré » pour y installer un linux.

Le mystère de ce Dell, car il s’agit de cela, est que je ne sais pas pourquoi certaines distributions échouent à l’installation et que d’autres, pas plus légères, au contraire, s’installent.

Début des méandres des « installs »
Je commence par une « Mint » que j’ai déjà installé sur de vieux PC, pas aussi vieux, mais bon…
Ça s’installe, heureux je fais les mises à jour, reboot, et là je me retrouve sur un écran noir, pas de grub, pas de prompt, pas de console accessible, rien, un écran noir ! Je fais plusieurs tentatives, idem ! J’essaie d’installer d’autres distributions « toutou linux » et autres… Elles échouent toutes à l’installation. J’essaie Debian (c’est la seule distribution que j’avais pu installer sur celui de mon boulot), échec à l’installation. Hé merde !

Petit espoir !
Je regarde les dvd et cd récents qu’il me reste, et là je vois un cd freebsd 10.03 que j’avais testé sur un autre pc, j’essaie, Bingo ! Ça fonctionne super bien !
Là me vient une petite réflexion :
Je « maîtrise » mieux gnu-linux que freebsd (vous aurez remarqué les guillemets), en effet, j’ai testé plusieurs fois les freebsd mais de façon épisodique, sans jamais vraiment chercher à approfondir bien que j’ai toujours été charmé par freebsd. Alors en cas de soucis, saurais-je y répondre ? Cas de conscience !

Dernière chance !
Il me reste un dvd de xubuntu 16.04, j’y crois pas trop car sur celui de mon boulot, à l’époque, la 10.04 avait échoué… Je tente, et ça passe ! Tout tourne bien sous la xubuntu 16.04.
Sauf que ça rame vraiment.

D’où ma réflexion : Je suis persuadé que parfois on commet l’erreur de vouloir faire fonctionner, à tout prix, un vieux pc.
En effet, même si un vieux pc peut tourner sous linux, il faut savoir poser les bonnes questions avant de se lancer.
Pour quel usage ?

Si la réponse est, faire de la bureautique, aller sur internet en toute simplicité, messagerie, retoucher des photos, etc. Cela sous entend pour nombres de personnes (LibreOffice, Firefox, Thundebird, Gimp, etc.), pour la convivialité en grande partie.
Il faut prendre en considération que toutes ces applications ont évoluées et sont beaucoup plus gourmandes en ressources qu’il y a dix ans et que lancer l’une de ces applications va augmenter la lenteur du pc, en lancer plusieurs en simultanées, peut même le « planter ».

Soit, il existe d’autres applications qui peuvent se substituer. Mais seront-elles adaptées à celui qui découvre Linux ? Pas certain !

Je pense donc qu’il faut savoir dire : Ton pc est trop vieux, pour ce que tu souhaites faire, achètes-toi un nouveau pc sans système d’exploitation et installes-y ce que tu souhaites.

On ne m’y reprendra plus… en effet, un tel vieux pc, peut être très bien pour celui qui souhaite utiliser des applications moins courantes mais tout aussi efficaces, découvrir d’autres horizons (MPS-Youtube, Cmus, zathura, etc.) mais je ne pense pas que ce soit fait pour le novice qui souhaite découvrir le monde libre, du moins, pas pour tous les novices.
j’en revendique le statut, « Je ne suis pas le gentil gars qui s’y connaît en informatique.« 

Installation de QGIS (Quantum GIS) sur Ubuntu

QGIS – Quantum GIS

Logo de QGis
Logo de QGis

J’ai décidé d’installer QGIS 2.14 (GIS système d’information géographique) sur une Ubuntu, plus par curiosité que par besoin. Si site officiel est riche en documentations, je ne les trouve pas toujours très explicites. Une fois installé, j’ai pu commencer à tester en m’appuyant sur la documentation… Sauf lorsque j’ai voulu importer une cartographie avec des extensions propriétaires, la documentation ne m’a été d’aucune aide. Les options proposées dans l’aide n’y sont pas, où peut-être sont-elles ailleurs, où peut-être la documentation est basée sur version antérieure sans tenir compte de l’évolution…

Bref, voici comment installer le plus simplement possible QGIS 2.14 sur une Ubuntu. Si je persévère, je ferai, peut-être, d’autres tuto sur le sujet ! Cliquer sur lire la suite pour le tutoriel.

Pour commencer, on rajoute les dépôts dans le fichier sources.list

sudo nano /etc/apt/sources.list

Ajoutez les lignes suivantes, bien entendu, si vous avez une Ubuntu « Precise », vous remplacez « trusty » par « precise »

## Pour QGIS
deb http://qgis.org/ubuntugis trusty main
deb-src http://qgis.org/ubuntugis trusty main
deb http://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu trusty main

Puis pour mettre à jour les infos sur les paquets.

sudo apt-get update

Si vous avez le message d’erreur ci-dessous, pas de panique…

W: Erreur de GPG : http://qgis.org trusty InRelease : Les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible : NO_PUBKEY 3FF5FFCAD71472C4

Il suffit de vérifier la clé publique dont le n° ici est 3FF5FFCAD71472C4.

sudo wget -O - http://qgis.org/downloads/qgis-2015.gpg.key | gpg --import

Vous devez optenir quelque chose ressemble à ce qui est ci-dessous.

--2016-05-16 11:02:43--  http://qgis.org/downloads/qgis-2015.gpg.key
Résolution de qgis.org (qgis.org)... 104.27.138.220, 104.27.139.220
Connexion vers qgis.org (qgis.org)|104.27.138.220|:80... connecté.
requête HTTP transmise, en attente de la réponse... 200 OK
Taille : 1890 (1,8K) [application/pgp-keys]
Enregistre : «STDOUT»
100%[==================================================================================================>] 1 890       --.-K/s   ds 0s 
2016-05-16 11:02:44 (91,5 MB/s) - envoi vers sortie standard [1890/1890]
gpg: clef D71472C4 : « QGIS Archive Automatic Signing Key (2015) <qgis-developer@lists.osgeo.org> » n'est pas modifiée
gpg: Quantité totale traitée : 1
gpg:              non modifiées : 1

On importe la clé

gpg --export --armor 3FF5FFCAD71472C4 | sudo apt-key add -
sudo apt-get update

Bon, moi j’avais un soucis avec les deux clés…

W: Erreur de GPG : http://ppa.launchpad.net trusty InRelease : Les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible : NO_PUBKEY 089EBE08314DF160

Comme plus haut, on ajoute la clé comme suit.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 089EBE08314DF160
sudo apt-get update

QGIS est installé, il n’y a plus qu’à en explorer les nombreuses possibilités. Pour cela, QGIS propose un jeu de données « Alaska » inclut toutes les données SIG qui sont utilisées comme exemple et comme aperçus dans le guide de l’utilisateur, mais aussi une petite base de données GRASS ainsi que des exercices…