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)

Iptables – insserv: warning: script ‘moniptables’ missing LSB tags and overrides

Ces derniers temps j’avais le message suivant:

insserv: warning: script 'moniptables' missing LSB tags and overrides

Ceci-dit, cela n’empêchait pas de fonctionner.
Je jette un oeil sur l’entête:

$ more /etc/init.d/moniptables | less
#!/bin/bash

## BEGIN INIT INFO
# Provides:          moniptables
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop:
### END INIT INFO

J’arrête le service:

# service moniptables stop

Avec un éditeur je le modifie ainsi:

#!/bin/bash
### BEGIN INIT INFO
# Provides:          moniptables
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Démarre les règles iptables
# Description:       Charge la configuration du pare-feu iptables
### END INIT INFO

Je relance le service

# service moniptables start

Je vérifie:

# service moniptables status
● moniptables.service
   Loaded: loaded
   Active: active (exited) since dim. 2019-07-07 17:59:10 CEST; 36s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 2048 ExecStart=/etc/init.d/moniptables start (code=exited, status=0/SUCCESS)

J’automatise le démarrage.

# update-rc.d -f moniptables default

Tout fonctionne correctement!

Petit clin d’oeil à Tutox pour son update-rc.d (on se comprend, c’est entre nous…).

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

Renouvellement des certificats LetsEncrypt et message d’erreur.

Arrive le moment du renouvellement de mes certificats Let’s Encrypt. Oui, je sais, il suffit de le faire de façon automatique par une tâche cron… Mais cela n’aurait pas empêché les messages d’erreurs.

Il faut dire que j’avais un peu « bricolé » mon serveur ses derniers temps et activé de nouveaux sites et autres bricoles.

Bref, je lance le renouvellement des certificats par:

# /opt/letsencrypt/letsencrypt-auto renew

Et là j’ai le message d’erreur suivant:

(...)
Attempting to renew cert (chispa.fr/) from /etc/letsencrypt/renewal/chispa.fr.conf produced an unexpected error: Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.. Skipping.
All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/livechispa.fr/fullchain.pem (failure)
(...)

Et plus d’accès en https
Suite à cela, je vous fais grâce de toutes mes tentatives de réparation plus laborieuses les unes que les autres multipliant les messages d’erreur.

Il y a un moment où il faut savoir se lever de sa chaise, prendre un thé…

Il y a un moment où il faut savoir se lever de sa chaise, prendre un thé avec des biscuits pour prendre du recul et appréhender le problème la tête reposée.

Je décide donc de faire le ménage, sur le serveur, la maison ça attendra.

Je désactive tous les sites dans /etc/apache2/sites-enabled/ avec la commande a2dissite

# a2dissite nom-du-site.fr

Je refais le site 000-default.conf dans /etc/apache2/sites-available/

# nano /etc/apache2/sites-available/000-default.conf

Configuration au plus simple :

<VirtualHost *:80>
# Redirect permanent / https://sima78.chispa.fr/
        ServerName chispa.fr/
        ServerAdmin mon-mail@truc.fr
        DocumentRoot /var/www/
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Redémarrage d’Apaches2

# systemctl restart apache2

Je recrée des certificats tout neufs

# /opt/letsencrypt/letsencrypt-auto --apache --renew-by-default -d monsite.fr

Au message :

1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.

J’ai choisi l’option 2

Tout c’est bien passé, pas de message d’erreur.

Reste à modifier le fichier de configuration Stunnel, car j’ai Geneweb qui tourne en service en passant par Stunnel pour un accès en https à Geneweb.

# nano /etc/stunnel/stunnel.conf

Je modifie les lignes pour mettre le chemin des nouveaux certificats

cert=/etc/letsencrypt/livechispa.fr/-0002/fullchain.pem
key=/etc/letsencrypt/livechispa.fr/-0002/privkey.pem

Un « reboot » et tout fonctionne de nouveau jusqu’à la prochaine aventure.
Pour info, la configuration réécrite de 000-default.conf lors de la création des nouveaux certificats :

<VirtualHost *:80>
# Redirect permanent / https://sima78.chispa.fr/
        ServerName chispa.fr/
        ServerAdmin chispa.admin@free.fr
        DocumentRoot /var/www/
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =chispa.fr/
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noete

Pour automatiser le renouvellement de certificats, je vous invite à lire l’excellent billet de Tutox « Renouveler automatiquement son certif Let’s Encrypt (one shot)« 

Wget – Aspirer un site n’est pas un crime

Aspirer un site n’est pas un crime, ni un vol, tout dépend le but !

Avant de donner les lignes de commande, l’anecdote qui m’a poussé a utiliser wget pour aspirer un site.
Pour la petite histoire
Je m’intéresse à la généalogie et j’ai moi-même un site sur la généalogie de ma famille sous geneweb.
Il y a quelques années déjà j’ai découvert un site qui regroupe une branche de ma famille. Pour ce qui concerne la branche de ma famille rien de vraiment nouveau sauf quelques cousins très éloignés.
Par contre le travail effectué sur cet arbre généalogique est pharaonique.
Soit, le site est un cms dépassé et plus suivi depuis déjà plus de deux ans à l’époque. J’alerte donc le gestionnaire du site des risques, j’échange avec lui, une sympathie s’installe et surtout un gros respect de ma part. Je parcours même de milliers de kilomètres pour le rencontrer. Ce fût pour moi une rencontre mémorable.
Nous avons continuer d’échanger mais il est resté sur ce cms de généalogie complètement dépassé malgré mes avertissements.

Puis, un jour, et les jours suivants, plus de nouvelles, plus de réponses à mes mails… j’insiste de nombreux mois, rien, pas de signe de vie.
Inquiet, je décide d’aspirer son site pour que tout le travail qu’il a effectué ne soit pas perdu (je mets plus bas la ligne de commande utilisée).

Je me suis fait traité de tous les noms d’oiseaux

Pour tenter de faire mieux je vais sur un forum et demande si quelqu’un n’aurait pas connaissance d’un script permettant de créer un fichier Gedcom depuis le site aspiré… J’ai été traité de voleur, d’escroc et autres allégations désagréables. Ça m’a rappelé ma jeunesse, lorsque je trollais sur les forums, sauf que là, je ne trollais pas. Bon, après quelques explications, nombreux m’ont soutenu dans ma démarche, quelques rares obtus ont continué leurs réprobations, de plus en plus timidement pour finalement s’éteindre.

Bref ! Je n’ai pas de script pour créer un gedcom mais j’ai le travail d’une personne dans un coin de mon disque dur que je remettrai à un de ses descendants, du moins j’espère car il n’a de valeur que pour eux.

Passons à Wget et quelques commandes

Aspirer un site web

Le mieux est de contacter le gestionnaire du site pour lui demander si l’on peut vous envoyer les informations qui vous intéressent. L’intérêt de l’aspiration est d’avoir les infos du site Off-Line. Mais évitez d’en abuser, utilisez-le que lorsqu’il n’y a vraiment pas d’autres solution (ou pour télécharger des fichiers, c’est un autre usage et c’est aussi plus bas).
Certains serveurs sont protégés contre l’aspiration de site et il se peut que cela ne fonctionne pas.

Wget et aspirer un site

# wget -r -k -E -np --limit-rate=100k https://site-aspired.com

Cible est https://site-aspired.com.
Options :
-r pour parcourir tous les liens du sites.
-k conversion des liens en liens locaux.
-E conversion php vers HTML, facilite la lecture depuis votre navigateur.
-np pour ne pas remonter dans l’arborescence du site
–limit-rate=100k limite la vitesse de téléchargement à 100k/s

Toutes les lignes de commande ci-dessous m’ont été inspirées par le site de TecMint et plus particulièrement par le billet traitant wget

Utiliser wget pour télécharger des fichiers

Téléchargement d’un fichier

# wget http://ftp.gnu.org/gnu/wget/wget-1.19.5.tar.gz

La commande téléchargera le fichier dans un répertoire actuel. Il montre aussi le progrès de téléchargement, la taille, la date et heure.

Télécharger un fichier en le renommant

# wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget-1.19.5.tar.gz

L’utilisation-O l’option (majuscule), télécharge le fichier en le renommant. Ici nous avons choisi le nom « wget.zip » comme exemple.

Téléchargez plusieurs fichiers avec les protocoles ftp et http

# wget http://ftp.gnu.org/gnu/wget/wget-1.19.5.tar.gz ftp://ftp.gnu.org/gnu/wget/wget-1.19.5.tar.gz.sig

Ici nous voyons comment télécharger de multiples fichiers en utilisant les protocoles HTTP et FTP avec la commande de wget.
Téléchargez depuis plusieurs URLs d’un fichier
Vous pouvez stocker plusieurs URLs dans un fichier texte et les télécharger avec l’option -i. Ci-dessous nous avons créé tmp.txt dans le répertoire wget où nous mettons la série d’URL (1 par ligne).
Exemple :

nano /wget/tmp.txt

Ajoutez les lignes:

http://ftp.gnu.org/gnu/wget/wget-1.19.5.tar.gz
ftp://ftp.gnu.org/gnu/wget/wget-1.19.5.tar.gz.sig

Il suffit de lancer:

# wget -i /wget/tmp.txt

Reprenez un téléchargement inachevé

En cas de téléchargement de gros fichiers, il peut arriver que le téléchargement s’interrompre pour une raison quelconque. Avec l’option -c le téléchargement reprendra là où il s’est arrêté.
Sans cet option le téléchargement reprendra depuis le début et wget ajoutera « .1 » à la fin du nouveau fichier.
L’option -c est donc la bonne pratique.

# wget -c https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-9.5.0-amd64-DVD-1.iso

Si « .1 » existe déjà il ajoutera « .2 », etc.

Télécharger en arrière-plan

Avec l’option -b, envoyez le téléchargement en arrière-plan immédiatement après le début du téléchargement, les journaux sont écrits dans le fichier /wget/log.txt.

# wget -b /wget/log.txt ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-6.0.5-i386-DVD-1.iso
Continuing in background, pid 3550.

Limiter la vitesse de téléchargement
Avec Option –limit-rate = 100k, le téléchargement est limitée à 100k/s et les journaux sont créés sous /wget/log.txt, comme indiqué ci-dessous.

# wget -c --limit-rate=100k  /wget/log.txt https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-9.5.0-amd64-DVD-1.iso

Téléchargent FTP ou HTTP avec identification
Avec des Options -http-user=username, -http-password=password et -ftp-user=username, -ftp-password=password, vous pouvez télécharger avec Login/mot_de_passe

# wget --http-user=narad --http-password=password http://mirrors.fantome.in/truc/machin-LiveDVD.iso
# wget --ftp-user=narad --ftp-password=password ftp://ftp.fantome.net.au/truc/machin-LiveDVD.iso

WGET – Version et aide

$ wget --version
$ wget --help
$ man wget

Script pour supprimer les doublons dans un fichier

Il s’agit d’un petit script, qui m’est bien utile, que j’avais pompé je ne sais où et que j’avais légèrement modifié à ma sauce.

Je vous le mets plus bas, à vous de le remodifier, améliorer à votre sauce.

echo -n "Entrez le chemin du fichier (ex. /home/user/.bash_history) : "
read fichier
doublons="$(cat $fichier | sort | uniq -d)"
if [ "$doublons" != "" ]; then
for line in $(seq 1 $(echo "$doublons" | wc -l)); do
texteAsuppr=$(echo "$doublons" | sed $line!d)
lignesAsuppr=$(grep -n "$texteAsuppr" $fichier | sed -e 1d -e 's/\([0-9]*\):.*/-e \1d/')
sed $lignesAsuppr -i $fichier
done
fi 
echo "TERMINÉ !"echo

N’oubliez pas de faire un petit « chmod +x » sur le fichier pour le rendre éxecutable.

Ecrire un billet, quand il faut se mettre à la tâche

Que ce soit au boulot ou au quotidien, nous avons toujours plein de bons prétextes pour éviter ce que nous devrions faire, mais pour le coup c’est un bon sujet de billet.
Sur cette dernière réflexion j’ai décidé d’argumenter plus bas en me basant sur un extrait de « Le vagabond » de Tristan Bernard, que je résume en trois phrases:

Nous ne faisons pas ce que nous devrions.
Ce que nous devrions faire nous ne le faisons pas.
Et, nous nous reposons sur la pensée que la chance nous viendra en aide.

En fait je n’argumente pas, je vous laisse lire!
Extrait à lire:
« (…)
Ce jour-là donc qui était un lundi, j’étais absolument torturé par la nécessité d’écrire un tout petit article que j’avais promis pour le jeudi précédent. J’avais déjà envoyé plusieurs lettres pour m’excuser. Chacune d’elles était plus longue à elle seule que l’article en retard.
(…)
J’avais décidé la veille que je ferais mon article le matin, afin d’avoir un après-midi de tranquillité inviolable. Mais toute la matinée avait coulé sans qu’on s’en aperçût, bien qu’elle fût occupée par un constant remords. Tout prétexte était bon pour reculer l’affreux moment où je m’assoirais à ma table. Il m’avait semblé absolument nécessaire de vérifier les bandages d’une machine excellente à changement de vitesse, à roue libre, une bicyclette de première marque dont je ne me servais d’ailleurs pas. Arrivé dans le hangar où elle se trouvait remisée, il me parut indispensable de gonfler le pneu arrière. Notez que je déteste gonfler des pneus, que ça ne m’arrive pour ainsi dire jamais, que c’est pour moi le plus écœurant des labeurs. Mais cette besogne était facultative, tandis que l’autre – Celle qui m’attendait dans mon cabinet de travail – l’autre était obligatoire, implacablement !
Après avoir gonflé lentement, posément, mes deux pneus, je me rendis dans le potager où je me mis à arroser des fleurs, à la stupéfaction du vieux jardinier qui ne m’avait jamais vu me livrer à une occupation pareille.
Je crois même que, ce matin-là, j’allais jusqu’à ratisser les allées du jardin. Enfin le déjeuner arriva. Je restai à table le plus longtemps que je pus. Je fis une partie de dames, que je perdis ; puis la revanche que je perdis également, et contre toute légalité je demandai à faire la belle !
Après les parties de dames, on ne pouvait vraiment se mettre tout de suite au travail. Il fallait de toute nécessité se dégourdir les jambes en faisant quelques pas sur la route.
Il faisait très chaud, abominablement chaud. J’aurais été cent fois mieux, les stores baissés, dans mon cabinet… Mais dans mon cabinet, il y avait une table impérieuse, des feuilles de papier d’une blancheur despotique, un inexorable encrier.
Je me promenai sur la route déserte, épiant sans me l’avouer le moment où quelque passant  surgirait au détour du chemin.
(…)
Il me semble à la réflexion que c’était là un sujet d’histoire, que la Providence m’envoyait charitablement.
Je remontai dans ma chambre et je fis mon article sans plus tarder sur un sujet d’ailleurs différent.
Mais tout n’est pas perdu, en somme, puisque ce sujet je le retrouve aujourd’hui. »

Bien choisir son suffixe au nom de domaine

Toute notre attention sur le suffixe du nom de domaine.

Le suffixe du nom de domaine ne se choisi pas à la légère et ne sert pas qu’à faire joli, rigolo ou original.
Vous savez c’est le fameux « .truc » qui termine le nom de domaine, les .fr, .com, .net, .radio, bref, vous m’avez compris et je ne peux les lister ici tant il en existe.

Je ne vais pas non plus rentrer dans le détail de la façon dont est construit un nom de domaine, mais juste quelques précision sur le TLD le « .truc » qui termine un nom de domaine.

Le choix a toute son importance et je pense qu’il ne faut pas se focaliser sur la prétendue signification, si elle a son importance, elle ne se suffit pas à elle seule.

On lit sur de nombreux site que .org = organisation, .biz=Business, .com=commerce, etc., ceci-dit il faut être bien plus attentif à cette petite terminaison de nom de domaine car elle implique bien plus qu’on ne le pense.

Si j’écris ce billet c’est qu’avant avoir participé à la présentation de Stéphane Bortzmeyer, je ne m’étais jamais interrogé sur l’importance du TLD, pour le coup j’écris ce billet sans prétention mais qui j’espère sera utile à certains.

Pour faire court il y a les TLD Country-code spécifiques aux pays correspondants (.fr), les TLD génériques pour déterminer plutôt un champ thématique (.com), les TLD sponsorisés pour lesquels il faut remplir les conditions d’une charte établie par le sponsor (entreprise, organisme, etc.).
Et tous ces TLD dépendent de registres de noms de domaine « TLD Manager » dépendants de différentes juridictions en fonction de leur pays d’implantation.

Et, en prime, les TLD ICANN comme .pizza dépendent de l’ICANN et du contrat états-unien passé avec elle. Cela peut faire des conflits comme le .amsterdam qui a annoncé que, questions données personnelles, il respecterait la loi néerlandaise, et pas son contrat ICANN.

Citation que j’ai entièrement pompé sur une indication d’un certain S. B. 😉

Le TLD détermine la loi nationale applicable en cas de conflit.

Je m’explique: imaginons que mon blog est celui d’une organisation d’échange de matériel divers et pour signifier que je suis une organisation je mets à la suite de sima78 le .org

Voilà, je suis une organisation d’échange matériel, reste plus qu’à mettre du contenu pour montrer mes échanges… Mais imaginons que je propose un objet prohibé par la loi Étasunienne je peux me voir intenté un procès par ce dernier. En effet si le TLD manager de .org est chez Public Interest Registry, association sans but lucratif elle est domiciliée aux USA… Je peux même obtenir le pactole en proposant un objet répréhensible également par la loi Française et Étasunienne, deux procès puisque je suis auto-hébergé en France…

L’extension du nom de domaine ne se choisi pas à la légère et ne sert pas qu’à faire joli, rigolo ou original.

Il faut bien le penser!

Vous voulez en savoir plus sur comment bien nommer les différentes parties d’un nom de domaine c’est chez le spécialiste Bortzmeyer.

A lire également, l’excellent rapport EFF par Jeremy Malcolm.
Encore merci à Stéphane Bortzmeyer.

Voir aussi la « Root Zone Database » sur Iana

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.