[Debian] Mises à jour automatiques du système

Contexte

La mise à jour d’un système est essentielle. Pas uniquement pour le confort de disposer des logiciels les plus récents, mais aussi pour éviter les attaques. Je vais citer la Wikipédia :

Dans le domaine de la sécurité informatique, une vulnérabilité ou faille est une faiblesse dans un système informatique permettant à un attaquant de porter atteinte à l’intégrité de ce système, c’est-à-dire à son fonctionnement normal, à la confidentialité ou à l’intégrité des données qu’il contient.

Ces vulnérabilités sont la conséquence de faiblesses dans la conception, la mise en œuvre ou l’utilisation d’un composant matériel ou logiciel du système, mais il s’agit souvent d’anomalies logicielles liées à des erreurs de programmation ou à de mauvaises pratiques. Ces dysfonctionnements logiciels sont en général corrigés à mesure de leurs découvertes, mais l’utilisateur reste exposé à une éventuelle exploitation tant que le correctif (temporaire ou définitif) n’est pas publié et installé. C’est pourquoi il est important de maintenir les logiciels à jour avec les correctifs fournis par les éditeurs de logiciels.

Wikipédia : Vulnérabilité informatique

Une des grandes forces de la majorité des distributions Linux, et dans le cadre de cet article de Debian, est la présence d’un dépôt centralisé qui permet de mettre à jour l’intégralité des logiciels avec une seule ligne de commande ou quelques clics dans une application comme Synaptic.

Pour vous donner un ordre de grandeur, Debian recense une vingtaine de vulnérabilités par mois sur les logiciels qu’elle fournit, soit autant de portes d’entrées pour une attaque. Vous comprendrez donc l’importance de mettre régulièrement le système a jour.

Choisir une stratégie en fonction des besoins

Plutôt que de devoir penser à mettre à jour mon système, j’adopte deux stratégies selon le type de machine.

Debian sur une machine bureautique

Pour mon PC du quotidien, sous Debian testing avec l’environnement Gnome, il n’y a rien à faire ! En effet, depuis Debian Stretch, les mises à jour se font automatiquement et sont paramétrables avec software-properties-gtk.

La mise à jour des logiciels est automatique sous Debian (environnement Gnome) à partir de la version Stretch

Pour mon portable, une très vieille machine de 2007, je tourne avec l’environnement XFCE. J’ai donc dû paramétrer manuellement les mises à jour automatiques.

Debian sur un serveur

Sur un serveur perso, de type NAS, je mets aussi en place les mises à jour automatiques avec la démarche du paragraphe précédent.

En revanche pour mon fidèle serveur Yunohost accessible sur internet et gérant mails, sites internet, agenda, calendrier, etc. je préfère éviter les mises à jour automatiques pour être bien certain de comprendre ce qui va être mis à jour (et ainsi mieux anticiper les éventuels impacts). Mais pour me simplifier le travail, je demande à la machine de préparer l’installation et de m’envoyer un mail lorsque tout est prêt. Cela se fait très facilement avec le logiciel apticron.

Je reçois alors des mails de ce type :

apticron report [Sat, 23 Mar 2019 08:42:11 +0100]
========================================================================

apticron has detected that some packages need upgrading on:

       serveur.example.com
       [ 192.168.12.12 ]

The following packages are currently pending an upgrade:

        libntfs-3g871 1:2016.2.22AR.1+dfsg-1+deb9u1
        ntfs-3g 1:2016.2.22AR.1+dfsg-1+deb9u1

========================================================================

Package Details:

Install 'apt-listchanges' to see what's new in these packages.

========================================================================

You can perform the upgrade by issuing the command:

        apt-get dist-upgrade

as root on serveur.example.com

Il suffit alors de me connecter à la machine, depuis un PC ou en utilisant Termux depuis un smartphone Android, et lancer la mise à jour.

En pratique, je dois faire le geste environ une fois par semaine, ce qui est très raisonnable.

Et voilà, en quelques gestes vos machines pourront se mettent à jour automatiquement… ou presque automatiquement si vous voulez garder un peu le contrôle.


Photo : rawpixel.com – Freepik

[Jeu] Orwell: Keeping an eye on you

Orwell vous fait probablement penser à 1984, le roman de Georges Orwell, ou au moins à « Big Brother », issu de ce livre, et utilisé comme référence dès qu’on parle de surveillance.

Je vais vous parler ici d’Orwell, le jeu vidéo.

Dans ce jeu, vous êtes recruté en tant qu’enquêteur pour aider à identifier les responsables d’un attentat. Pour cela, vous avez accès à un ensemble de documents liés aux suspects : sites internet, emails, messagerie instantanée, communications téléphoniques, contenu de leurs ordinateurs, etc. Ces documents sont obtenus légalement par l’État, dans le cadre du « Safety Bill », une loi permettant la surveillance des citoyens dans l’unique but de protéger leur sécurité. Afin d’éviter toute dérive de pouvoir, ou tout conflit d’intérêt, vous êtes le seul à avoir accès à ces éléments. Vous transmettez vos découvertes factuelles à un tiers qui tire des conclusions et conseille les autorités.

Le jeu, disponible sur Windows comme sur Linux, se déroule en 5 journées successives qui vous font progresser dans l’enquête. Vous serez amenés à faire des choix : par exemple sur les informations que vous trouvez suffisamment pertinentes pour les remonter ; ou parfois sur l’information que vous décider de retenir lorsque certaines données sont contradictoires. Et c’est là que le jeu devient passionnant ! Plus vous avancez dans l’histoire, plus vos choix impactent l’enquête. Heureusement d’ailleurs puisque c’est vous qui menez l’enquête… Mais votre responsabilité est grande, et il faudra donc en assumer les conséquences !

Un écran du jeu, avec à gauche vos découvertes sur un suspect (dont un joli graphe social), et à droite un navigateur vous permettant d’explorer les documents à votre disposition.

Sans vous révéler plus en détails l’histoire du jeu, il vous pousse, subtilement je trouve, à une véritable réflexion sur la surveillance au profit de la sécurité : Quels en sont les risques, les travers ? Une surveillance éthique est-elle possible ? Est-elle efficace ?

La surveillance est un sujet qui peine à impliquer les gens. Pour ceux qui pensent « je m’en fous, j’ai rien à cacher », le jeu illustre parfaitement comment notre vie numérique sème des petits cailloux, sans incidence en apparence, mais qui prennent un tout autre sens lorsqu’ils sont recoupés. Peut-être chargerez vous votre vision de votre mur Facebook, vos conversations WhatsApp et même vos mails

Un must !

[Vidéo] Extraire les sous-titres télétexte d’une vidéo

J’enregistre de nombreux films avec ma Freebox, et dans la mesure du possible, j’aime les regarder en VO. Les vidéos enregistrées par la Freebox sont des fichiers m2ts qui comportent plusieurs flux audios (typiquement VO et VF, voire « audio-description »), mais aussi d’autres flux comme le Télétexte. On y retrouve en général les sous-titres pour mal-entendants, et, lorsque vous disposez d’un flux VO, des sous-titres VF. Il est assez rare d’avoir les sous-titres VO, mais ça arrive.

Je trouve que le Télétexte a plusieurs défauts : il n’est pas toujours supporté par les lecteurs vidéo, il affiche des des textes ultra moches qui rappellent le Minitel, et il n’est pas toujours une très grande fiabilité. En effet les sous-titres ne sont pas toujours synchronisés avec le film, et certaines phrases ne s’affichent pas du tout. Bref, c’est pas très immersif pendant un film.

Heureusement ccextractor peut facilement vous permettre d’extraire les sous-titres d’un flux pour en faire un fichier srt, supporté par la quasi totalité des lecteurs.

Une fois installé, le fonctionnement de l’outil est simple. La seule difficulté consiste à identifier la bonne page de Télétexte. J’utilise 889 par défaut, un choix qui fonctionne bien. Vous pouvez sinon tester les autres pages existantes, et qui s’affichent dans la console lorsque vous lancez une extraction

$ ccextractor la\ vie\ de\ brian.m2ts -tpage 889
[…]
Notice: Teletext page with possible subtitles detected: 152
Notice: Teletext page with possible subtitles detected: 889
Notice: Teletext page with possible subtitles detected: 888
Notice: Teletext page with possible subtitles detected: 15

En prime, ccextractor fonctionne sous Linux, Windows et Mac. Il existe même un paquet tout prêt pour Debian. Alors il n’y a pas de raison de s’en priver !

Bon film !

[Debian] Émuler le clic du milieu sur Logitech K400+

Il sert à quoi ce troisième bouton ?

J’aime beaucoup le Logitech K400+ qui combine sur un seul périphérique clavier et souris. Sous Linux (Debian) il présentait un défaut majeur cependant : il n’a que deux boutons sur la souris. Or je fais régulièrement usage du troisième bouton dans au moins trois cas :

  • Pour coller le dernier texte sélectionné,
  • Pour minimiser une fenêtre avec un clic du milieu sur son titre,
  • Ou pour ouvrir un lien dans un nouvel onglet.

Que faire quand on a pas de troisième bouton ?

Heureusement, c’est assez simple d’émuler un clic du milieu lorsque les deux boutons sont pressés simultanément avec l’utilitaire xinput.

Une fois l’utilitaire installé, vous pouvez lister vos périphériques avec :

xinput list

Ce qui devrait vous renvoyer un résultat de type

⎡ Virtual core pointer                        id=2    [master pointer  (3)]
⎜ ↳ …
⎜ ↳ Logitech K400 Plus id=10 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ …
↳ Logitech K400 Plus id=11 [slave keyboard (3)]

On voit donc ici que la souris (pointer) est identifiée avec le numéro 10. On peut alors lister les propriétés supportées par le périphérique :

xinput list-props 10

Le résultat affiche (entre autres) la ligne suivante :

libinput Middle Emulation Enabled (297):    0

Il suffit alors d’activer l’émulation du bouton du milieu avec :

xinput set-prop 10 "libinput Middle Emulation Enabled" 1

Un appui simultané sur les deux boutons devrait maintenant vous permettre coller du texte, ouvrir un onglet ou réduire une fenêtre en cliquant sur ton titre.

Comment rendre cette modification pérenne ?

Vous constaterez que le paramétrage proposé plus haut ne résiste pas à un redémarrage. Il y a plusieurs solutions pour rendre la modification pérenne. La plus simple, je trouve, consiste à créer un fichier .gnomerc dans votre home, et y mettre les lignes de paramétrage :

xinput set-prop 10 "libinput Middle Emulation Enabled" 1

Évidemment, si vous n’êtes pas sous l’environnement Gnome, il faudra trouver une autre solution comme la modification de votre xorg.conf (cf. le lien plus pas dans le sources).

Et pour aller plus loin ?

Si vous souhaitez changer d’autres paramètres sur votre clavier ou souris Logitech sans fil, l’utilitaire Solaar, disponible sous forme de package Debian, vous permettra peut-être d’en faire la modification (par exemple, choisir si par défaut ce sont les touches multimédia ou les touches F1-F12 qui sont activées). L’utilitaire vous permettra aussi de modifier les associations avec le dongle sans fil Logitech Unifying Receiver.

Bon clic !


Sources : cette réponse sur askubuntu.
Photo : erenumerique.fr

[Réflexion] Brain Errors : êtes-vous vraiment libre de vos décisions ?

J’ai découvert récemment le site Brain Errors. Le site (en anglais) présente 12 biais cognitifs qui démontrent l’influence du contexte sur nos choix.

Pour chaque exemple, le site vous présente une histoire, vous pose une question, puis vous situe par rapport à un panel de répondants (par exemple, 70% des gens répondent A, 30% répondent B). Il vous présente aussi une histoire alternative, très proche, et l’impact sur la répartition des répondants. En général la répartition est très différente et ouvre les yeux sur ces fameux « biais cognitifs » : un raisonnement purement rationnel devrait amener à une répartition équivalente, mais d’autres effets jouent (effet de cadrage, effet d’ancrage, biais des coûts irrécupérables, etc.). On retrouve une description de ces effets sur la Wikipédia.

Un exemple qui m’a particulièrement plu :

  • « Imaginez que vous avez décidé de voir un film, et payé 10€ pour l’entrée. Au moment de rentrer dans la salle vous réalisez que vous avez perdu le ticket. Le ticket n’étant pas nominatif, vous ne pouvez pas demander une réédition du ticket. Achetez-vous un nouveau ticket à 10€ ? ». Les répondants sont environ à 50-50.
  • Voici une variante : « Imaginez que vous avez décidé de voir un film, et vous vous apprêtez à payer 10€ pour l’entrée. En ouvrant votre portefeuille vous réalisez que vous avez perdu un billet de 10€. Achetez-vous quand même un ticket à 10€ ? ». Avec cette histoire un peu différente, on obtient 88% de oui.

Il s’agit là du biais des coûts irrécupérables : un ticket de cinéma perdu vous donne l’impression de payer 20€ votre deuxième place, alors qu’un billet de 10€ perdu est vu comme un événement distinct… alors que la perte financière est la même !

Le site (et les articles Wikipédia cités) ouvre donc les yeux sur ces biais, et nous permet potentiellement de les atténuer. Il est très difficile de complètement s’en affranchir, mais en prendre conscience est un bon début !


Photo by Raquel Martínez on Unsplash

[Android] TowerJumper, un petit jeu d’agilité au bout des doigts

Saurez-vous éviter les plaques foncées et arriver en bas du cylindre ?

Les meilleurs jeux sont simples à apprendre et difficiles à maîtriser.

All the best games are easy to learn and difficult to master – Nolan Bashnell

TowerJumper, voilà un petit jeu qui répond parfaitement à ce principe proposé par le créateur de Pong.

Vous êtes une petite balle de… peinture (?)… et vous devez descendre le long d’un cylindre en passant au travers de plaques fendues. Les zones claires vous font rebondir, les zones sombres vous font vous écraser… et recommencer au début du niveau. Voilà : à quelques subtilités près¹, vous savez tout.

Le contrôle du jeu est hyper simple, et très adapté à un smartphone. Glissez votre doigt latéralement sur l’écran pour faire tourner le cylindre, la balle elle reste toujours dans le même plan vertical². C’est même jouable à une seule main.

Pour couronner le tout, le jeu est libre, et totalement respectueux de votre vie privée : pas de publicité et sans aucune autorisation particulière demandée.

Vous pouvez le télécharger sur le Google Store, ou mieux, sur F-Droid.


Notes

  1. Lorsque vous passez au travers de plus de deux fentes sans rebondir, vous pouvez vous permettre d’atterrir sur de la couleur. Votre vitesse fera éclater la plaque et vous rebondirez quoi qu’il arrive.
  2. En fait la balle bouge, mais en même temps que la caméra. Ça change pas grand chose par rapport à ma description si ce n’est que la trainée derrière la balle ne reste pas verticale.

[Yunohost] Automatiser les sauvegardes à j-1, j-7 et j-30

Yunohost est une super solution d’auto-hébergement, j’y reviendrai. Et qui dit auto-hébergement dit responsabilité. En particulier la responsabilité de ne pas perdre de données, en cas de panne matérielle pour ne citer qu’un exemple.

Yunohost propose une solution simple pour lancer une sauvegarde depuis l’interface d’administration, mais ça demande donc un geste manuel. Alors autant automatiser tout cela.

J’ai créé un petit script pour effectuer des sauvegardes automatiques. Mon script supprime les anciennes sauvegardes en conservant certaines versions : la veille, l’avant veille, le dimanche précédent, le premier du mois, et le premier du mois précédent.

#!/bin/bash

# Creates a backup and removes some of the previous backups
# Backups are created with the following prefix
PREFIX="automatic-"
# All backups with the previous prefix are deleted except the following dates
TODAY=`date '+%Y-%m-%d'`
YESTERDAY=`date -d "yesterday" '+%Y-%m-%d'`
DAY_BEFORE_YESTERDAY=`date -d "2 days ago" '+%Y-%m-%d'`
LAST_SUNDAY=`date -d "last Sunday" '+%Y-%m-%d'`
BEGINNING_OF_MONTH=`date '+%Y-%m-01'`
BEGINNING_OF_LAST_MONTH=`date -d "last month" '+%Y-%m-01'`

yunohost backup create -n $PREFIX$TODAY
cd /home/yunohost.backup/archives
rm `ls | grep $PREFIX | grep -v "$TODAY\|$YESTERDAY\|$DAY_BEFORE_YESTERDAY\|$LAST_SUNDAY\|$BEGINNING_OF_MONTH\|$BEGINNING_OF_LAST_MONTH"`
yunohost backup list

Vous pouvez déposer ce script dans le répertoire /etc/cron.daily et il s’exécutera tous les jours. Il devrait aussi vous envoyer un mail tous les jours pour vous permettre de constater que le script fonctionne.

Ce script devrait donc vous fournir un premier niveau de protection en cas de perte de données. Je vous invite toutefois à deux précautions supplémentaires :

  • testez régulièrement vos sauvegardes pour s’assurer qu’il est possible de les restaurer (avec une machine virtuelle, c’est super simple et rapide à faire) ;
  • rapatrier les sauvegardes régulièrement sur un autre serveur, si possible délocalisé (chez un ami de confiance, chez vos parents, chez un hébergeur…) pour pouvoir les récupérer en cas de gros pépin (incendie, cambriolage, etc.)

J’espère que ceci vous aidera à minimiser l’impact d’un futur problème…


Souces : mon post sur le forum de Yunohost.
Photo by Samuel Zeller on Unsplash

[Debian] Perte du réseau après une mise en veille

Je n’avais pour ainsi dire jamais mis en veille mon PC fixe, je préférais le laisser allumer ou l’éteindre. Récemment, je me suis mis à plus l’utiliser, mais mon ordinateur perd le réseau en sortie de veille. C’est assez désagréable.

Le problème venait en fait d’un driver qui n’était pas rechargé après la mise en veille.

Identifier le driver

Pour connaître le driver de votre carte réseau, je vous conseille de passer par lshw (que vous aurez probablement besoin d’installer).

lshw -c network

Vous devriez voir dans le résultat une ligne de type

   configuration: […] driver=sky2 […] speed=1Gbit/s

Dans ce cas, de driver de ma carte est donc sky2.

Charger manuellement le driver après une perte de réseau

Quand le réseau ne marche plus, après une mise en veille, vous pouvez tester un changement manuel du pilote (à adapter évidemment selon le pilote trouvé au paragraphe précédent) :

modprobe sky2

Si cela fonctionne, il reste à automatiser ce geste

Charger automatiquement le driver au retour de la veille

Pour ce faire, créer un petit script exécutable qui se chargera de décharger et recharger proprement le driver :

!/bin/sh
 case "$1" in
   pre)
     modprobe -r sky2
     ;;
   post)
     modprobe sky2
     ;;
 esac

Pour finir, mettez ce script dans le répertoire /lib/systemd/system-sleep.

Voilà qui devrait fonctionner automatiquement en sortie de veille… problème résolu.


Sources : le script et la documentation de systemd.
Photo by rawpixel on Unsplash