PROJET AUTOBLOG


Le Blog de Genma

source: Le Blog de Genma

⇐ retour index

Nextcloud - Envoi de statistiques d'utilisation

jeudi 1 janvier 1970 à 01:00

Sends anonymized data to Nextcloud to help us to improve Nextcloud. You always have full control over the content sent to Nextcloud and can disable it again at any time.

Envoyez des données anonymisées à Nextcloud pour nous aider à améliorer Nextcloud. Vous avez toujours un contrôle total sur le contenu envoyé à Nextcloud et pouvez le désactiver à nouveau à tout moment.

L'application

Il existe au sein de Nextcloud une application "Usage survey" qui est installée mais qui n'est pas activée par défaut.

Remarque : cette application est à différencier de l'application "User usage report" qui elle permet de générer des rapports au format CSV contenant des informations par utilisateur sur son usage disque, le nombre de fichiers créés, de partages créés et d'autres informations. (Pour avoir plus de détails, on pourra regarder le détail sur la page README sur Github).

L'activation de cette application ajoute dans l'interface d'administration, une entrée "Statistiques d'utilisation" permettant de gérer l'envoi de statistiques d'utilisation.

Vous pouvez aider à améliorer Nextcloud en nous envoyant des statistiques sur votre configuration et votre utilisation. Nous prenons votre vie privée au sérieux. L'envoi des données est désactivé par défaut, et si vous décidez de l'activer, ils seront d'abord rendues anonymes, et vous aurez le choix des choses à partager. Lors de la réception d'un rapport, le précédent est supprimé. Téléversez un rapport vierge pour supprimer toutes les données actuellement stockées sur le serveur.

Données à envoyer
- Détails sur l'instance du serveur (version, cache mémoire utilisé, statut du verrouillage/aperçus/avatars)
- Environnement PHP (version, limite de la mémoire, temps maximal d'exécution, taille maximale des fichiers)
- Environnement de la base de données (type, version, taille de la base de données)
- Liste des applications (pour chaque application : nom, version, statut)
- Statistique (nombre de fichiers, utilisateurs, stockage par type, commentaires et tags)
- Nombre de partages (par type et paramètre de permission)
- Information du chiffrement (est-il activé ?, quel est le module par défaut)

Nextcloud et la vie privée

Sur sa page https://nextcloud.com/privacy/, Nextcloud indique Our software, be it the Nextcloud server or the Android or iOS apps, are designed to not sent any user data to us. The optional Usage Survey app can sent usage statistics like installed apps to us to help us improve our service. You can review and approve the data before it is sent. We store the data aggregated and not per user, so a theft of our data can not be used to get any information about any specific installation. The Updater app, if enabled, sends Nextcloud version, PHP version, install time and the channel it wants to the Nextcloud updater server to receive update information. We store the install time and version on the instance to track statistics, all other data is discarded right away.

Ce que l'on pourrait traduire par :

Nos logiciels, que ce soit le serveur Nextcloud ou les applications Android ou iOS, sont conçus pour ne pas nous envoyer de données utilisateur. L'application optionnelle Usage Survey peut nous envoyer des statistiques d'utilisation telles que les applications installées pour nous aider à améliorer notre service. Vous pouvez examiner et approuver les données avant leur envoi. Nous stockons les données agrégées et non par utilisateur, donc un vol de nos données ne peut être utilisé pour obtenir des informations sur une installation spécifique. L'application Updater, si elle est activée, envoie la version Nextcloud, la version PHP, l'heure d'installation et la version au serveur de mise à jour Nextcloud (pour recevoir les informations de mise à jour). Nous stockons l'heure et la version d'installation sur l'instance pour suivre les statistiques, toutes les autres données sont immédiatement supprimées.

Nextcloud met donc en avant cette application de façon transparente.

Le code source ?

Nextcloud est un logiciel libre (lience AGPLv3) et l'un des principes d'un logiciel libre est de pouvoir accéder au code source. C'est le cas pour cette fonction d'envoi de statistiques d'utilisation

Le code source de la partie "émettrice" est disponible sur Github
Survey app which collects anonymized instance data to improve Nextcloud

Le code source de la partie serveur, qui "réceptionne" les données est disponible sur Github Receives data from the survey_client, evaluates and visualizes it.

Je n'ai pas pris (eu) le temps de consulter le code source en détail.

Dans les données, il faut également penser aux métadonnées : l'instance Nextcloud communique avec l'application qui réceptionne les données anonymisées : le serveur garde potentiellement l'IP dans ses fichiers journaux /logs

Quid de la sécurité ?

Je suis loin d'être un expert en sécurité et il serait intéressant d'avoir le point de vue d'un tel expert. Mais du peu que j'en sais, certaines des données transmises sont des informations assez précieuses
- Environnement PHP (version, limite de la mémoire, temps maximal d'exécution, taille maximale des fichiers)
- Environnement de la base de données (type, version, taille de la base de données)
- Liste des applications (pour chaque application : nom, version, statut)

Savoir que telle instance Nextcloud a telle version de telle application, pour laquelle on connaît des vulnérabilités / des failles exploitables, permet un attaquant potentiel de mieux préparer son attaque. Le sujet serait à creuser.

Keepass et la gestion des conflits

jeudi 1 janvier 1970 à 01:00

Korben sur son blog a pris le temps de faire un billet assez complet Tout savoir sur KeePass, le logiciel de gestion de mots de passe qui explique les différences entre Keepass (la version officielle), KeePassXC (le client cross plateforme communautaire) et autres projets compatibles.

Personnellement, j'installe KeePassXC sur mes machines et j'utilise le client Keepass2Android. La base de données Keepass quand à elle est synchronisée sur mes différentes machines sur lesquelles j'ai besoin d'avoir accès au contenu de ce coffre-fort numérique de mot de passe, via un serveur Nextcloud.

Dans une discussion Linkedin mentionnant un article sur les usages des gestionnaires de mots de passe en ligne (comme les services payants LastPass, ou autohébergé comme Bitwarden), Philippe SCOFFONI a posté le message suivant :

A titre perso je préfère une application "lourde" type Keepass2 avec une synchro via mon serveur Nextcloud. Mais tout de suite bien moins accessible pour la grande majorité.

Suivi de cet autre message Attention, j'utilise Keepass 2 qui intègre une fonction de détection des modifications du fichier alors qu'il est ouvert et propose de les fusionner. Nous avons fonctionné à 3/4 en synchro via Nextcloud sans soucis. Il faut juste être vigilant lors de l'enregistrement car c'est à ce moment que l'on peut se voir proposer une "fusion".

Il est vrai que je ne m'étais jamais poser la question des conflits, étant seul à gérer mes mots de passe et n'utilisant le client Android que pour de la consultation (et des copier-coller des logins/mots de passe pour des comptes auxquels j'ai besoin d'accéder au sein du navigateur ou pour la connexion via l'application, comme Twitter exemple). J'ai donc regardé un peu cette problématique de gestion des conflits et KeepassXC (tout comme Keepass2 donc, que je n'utilise pas) propose une fonction de fusion de deux bases de données Keepass.

J'ai donc faits quelques tests en local en modifiant la base de données, en la renommant et en remodifiant des entrées à nouveau. Et j'ai demandé à KeepassXc de faire la fusion des deux bases. Les modifications les plus récentes sont prises en compte (ajout, suppression, mise à jour d'entrées) entre la base ouverte et celle avec laquelle on demande la fusion. C'est un peu "le dernier qui a parlé qui a raison". Mais il est possible de voir l'historique pour le rétablir / saisir les données manquantes pour que la fusion soit la plus propre possible, tout ne pouvant pas se résoudre de façon automatique. Pour moi, la fonctionnalité est donc bien et correctement implémenté. Et il est bon de savoir qu'elle existe.

Enfin, le conseil que j'aurai : sauvegarder régulièrement la base de données (le fichier Keepass) et conserver l'historique de ce fichier Keepass via ces sauvegardes de plusieurs fichiers : on pourra ainsi récupérer une "vieille" entrée si besoin et la resaisir manuellement, sans passer par le processus de fusion (sauf si il y a beaucoup de changements / entrées à resaisir).

Ubuntu - Ripper des cd Audio en 2020

jeudi 1 janvier 1970 à 01:00

Un rip (anglicisme, verbe ripper) est une donnée numérique (son, image) extraite depuis une source de données analogique ou numérique. Typiquement, il peut s'agir, par exemple, de convertir les pistes d'un CD audio de musique en autant de fichiers informatiques, par exemple au format MP3. Source

Introduction

En faisant un tour dans mon quartier, devant chez une personne qui déménageait, j'ai trouvé un carton de CD audio jetés / mis là pour être relevé par les encombrants. J'ai fouillé un peu : beaucoup de cd gravés de musiques que je ne connaissais pas (avec des pochettes issus d'impressions sur imprimantes jets d'encre, impressions jaunies et de mauvaises qualités), mais aussi quelques albums des années 90/2000, des cd originaux que je n'avais pas. Je les ai donc récupérés (et nettoyer COVID oblige).

En 2020, je n'écoute plus que de la musique dématérialisée et cela fait plus de 15 ans que j'ai encodé les derniers cd audio achetés, renommés et tagués proprement les fichiers issus des différents encodages fait dans les années 2000 (avec un de mes premiers PC). Pour le renommage, gprename est très bien ; pour taguer les fichiers (les tags MP3) Easytag et j'avais fait ça à la main.

En 2020, les logiciels qui permettent de ripper reconnaissent les signatures des pistes audios et vont chercher sur Internet, sur des sites spécialisés, les noms des chansons et taguent les titres automatiquement (oui ça le fait depuis des années, mais dans les années 2000, je n'avais pas Internet chez moi, je ne l'ai eu qu'en 2006).

Deux logiciels qui font la même chose

J'ai branché un graveur DVD externe en USB (je n'ai plus de lecteur CD sur mon ordinateur portable) et j'ai cherché un logiciel pour convertir mes CD audios en fichiers numériques. Dans le monde du logiciel libre, il est classique qu'il y ait plusieurs logiciels qui font sensiblement la même chose. Le domaine du rip de cd n'échappe à la règle. Le réflexe pour moi est de me tourner vers le site Ubuntu-fr.org (wiki et forum) pour voir un peu quel(s) logiciel(s) je pourrais utiliser. Parmi tous les logiciels, j'en ai retenu deux que j'ai testé.

Premier logiciel que j'ai testé, SoundJuicer. L'encodage semble être fait en même temps que la lecture du fichier et dans le cas de ma configuration, l'encodage était assez lent : 20 minutes annoncé pour un album.

Deuxième logiciel testé, ASunder (https://doc.ubuntu-fr.org/asunder). Pour le même CD, ASunder faisait la conversion en 3 minutes montre en main. ASunder fonctionne de la façon suivante : il passe par une extraction d'un fichier temporaire format "wav" puis par une conversion de celui-ci dans le format final (ogg, mp3...) Ma machine étant équipée d'un bon processeur moderne (un Intel CoreI5 de 2018) et d'un SSD, l'encodage d'un fichier musical ne pose effectivement pas de problème et le fait de passer par un fichier temporaire (le lecteur DVD permettant une lecture rapide du cd audio et le processeur un encodage extrêmement rapide). C'est donc le logiciel que je retiendrai si j'en ai de nouveau besoin.

ASunder en 2020

Sur ASunder, la base de données définit par défaut pour la recherche des informations sur l'album (artiste, nom de l'album, titre des chansons) n'existe plus. Pour palier au problème, une version patchée existe (le code source a été modifié en conséquence et il faut recompiler le logiciel) mais comme il s'agit d'un simple paramètre, il est facile de le changer via l'interface du logiciel.

La CDDB, pour Compact Disc Data Base, autrement dit base de données pour disque compact (musical), regroupe l'ensemble des informations utiles pour renseigner les tags ID3 des fichiers mp3, wma et Ogg Vorbis.Source

Pour ne pas saisir les titres à la main, on remplace le serveur CDDB par défaut.

The changelog for Asunder 2.9.6 shows that the default CDDB server has been changed to gnudb.gnudb.org http://littlesvr.ca/asunder/releases/ChangeLog. You can enter this in Preferences -> Advanced in place of freedb.freedb.org.

Dans les Préférences, Avancées, on remplace donc "freedb.freedb.org" par "gnudb.gnudb.org".

Conclusion

Je ne sais pas si ce tutoriel sera utile à d'autres et si moi-même j'aurai de nouveau l'usage d'un tel logiciel. Mais il aura au moins le mérite d'exister et de permettre d'avoir l'information si le besoin se présentait de nouveau.

De la dépendance d'une instance Yunohost au serveur de Yunohost

jeudi 1 janvier 1970 à 01:00

Remarque : ce billet de blog vient en complément de mon billet Yunohost - Les mails d'administration système et mails automatiques.

Introduction

Spécificité : mon instance est associée à plusieurs domaines et sous-domaines
Le domaine principal (qui est ici représenté par moninstanceyunohost.fr) est un nom de domaine géré par GANDI (pour la location du nom de domaines et la résolution DNS).

YunoHost fournit un service de noms de domaine offerts et automatiquement configurés (cf Yunohost - Noms de domaines automatiques) et il peut arriver que de en temps, différents serveurs du projet Yunohost ne répondent plus.

Voici les erreurs rencontrées et les conséquences de l'absence de réponse de ces serveurs.

Pas de résolution DNS et mail reçu

Comme indiqué dans mon billet Yunohost - Les mails d'administration système et mails automatiques, Yunohost envoi des mails d'administration.

Durant le mois d'août 2020, pendant quelques heures, toutes les 2 minutes, j'ai reçu le mail suivant :

* Expéditeur : Cron Daemon root@moninstanceyunohost.fr
* Sujet : Cron yunohost dyndns update >> /dev/null
* Corps du mail :

Traceback (most recent call last):
File "/usr/bin/yunohost", line 218, in
timeout=opts.timeout,
File "/usr/lib/python2.7/dist-packages/moulinette/__init__.py", line 149, in cli
moulinette.run(args, output_as=output_as, password=password, timeout=timeout)
File "/usr/lib/python2.7/dist-packages/moulinette/interfaces/cli.py", line 469, in run
ret = self.actionsmap.process(args, timeout=timeout)
File "/usr/lib/python2.7/dist-packages/moulinette/actionsmap.py", line 588, in process
return func(**arguments)
File "/usr/lib/moulinette/yunohost/log.py", line 313, in func_wrapper
result = func(*args, **kwargs)
File "/usr/lib/moulinette/yunohost/dyndns.py", line 235, in dyndns_update
old_ipv4 = check_output("dig @%s +short %s" % (dyn_host, domain)).strip() or None
File "/usr/lib/python2.7/dist-packages/moulinette/utils/process.py", line 31, in check_output
return subprocess.check_output(args, stderr=stderr, shell=shell, **kwargs)
File "/usr/lib/python2.7/subprocess.py", line 219, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'dig @dyndns.yunohost.org +short moninstanceyunohost.ynh.fr' returned non-zero exit status 9

Ce mail est envoyé par une commande (yunohost dyndns update, commande qui fait donc appel à la moulinette interne) qui est lancée via une tâche cron toutes les 2 minutes

# more /etc/cron.d/yunohost-dyndns

*/2 * * * * root yunohost dyndns update >> /dev/null

Le mail et l'erreur indiquée précise la commande qui est derrière, à savoir

dig @dyndns.yunohost.org +short moninstanceyunohost.ynh.fr

Le serveur dyndns.yunohost.org et le serveur qui fait la résolution des domaines en ynh.fr pour avoir la correspondance sousdomaine.ynh.fr - IP de la machine. Si il ne répond pas, la commande tombe en erreur.

Conséquence : dans un navigateur, l'adresse moninstanceyunohost.ynh.fr n'est donc plus accessible.

Plus de mises à jour de Yunohost

Yunohost repose sur Debian (et donc les serveurs associés, du moins les miroirs) mais a également son propre serveur qui contient l'ensemble des paquets nécessaires au projet (c'est de ce serveur que sont téléchargées les mises à jours des programmes spécifiquement développés dans le cadre du projet Yunohost par exemple)

Dans le dossier de configuration des dépôts d'un serveur Yunohost, on a :

# cat /etc/apt/sources.list.d/yunohost.list
deb http://forge.yunohost.org/debian/ buster stable

Si le serveur derrière forge.yunohost.org ne répond pas, Debian (Yunohost reste une distribution Debian) indique que le serveur ne répond pas et qu'il ne peut pas faire la mise à jour pour les logiciels issus de ce serveur. Les autres dépôts (ceux de Debian) étant accessibles / fonctionnels, il est toutefois possible de mettre à jour son serveur (correctifs et mises à jour de sécurité) via la ligne de commande, depuis une connexion en SSH par exemple, pour tout ce qui concerne Debian au sens strict.

Pour aller plus loin dans ce principe de dépendance

Le bon fonctionnement d'une instance Yunohost repose donc en partie sur quelques serveurs de l'infrastructure du projet, eux-mêmes gérés par les contributeurs cœurs de Yunohost. Comme pour tout logiciel libre, l'usage d'un logiciel libre dépend aussi fortement de sa maintenance et son évolution dans le temps. Il y a la problématique de la pérennité de Yunohost dans le temps : Yunohost est développé par plusieurs développeurs, mais par peu de développeurs. Les mainteneurs des paquets d'applications Yunohost sont tous bénévoles (à ma connaissance) et sont également peu nombreux... Il faut bien avoir ça en tête... Un jour Yunohost peut s'arrêter et disparaître ; ces problèmes ponctuels sont là pour nous le rappeler...

Enfin, il est important de garder en tête qu'il n'y a pas d'association ou de structure derrière Yunohost, encore moins d'entreprise, juste un collectif. Mais il y a des frais (rien que la maintenance des serveurs). Alors, si vous aimez le projet et que vous souhaitez le soutenir financièrement : https://donate.yunohost.org/

Rentrée 2020, Papa Genma est de retour

jeudi 1 janvier 1970 à 01:00

Comme indiquer dans mon billet de blog Pause Estivale sur le blog cet été, retour en septembre, j'ai donc fait une pause sur ce blog. Mes phases d'écriture sont clairsemées, avec des sessions de quelques heures prises par ci par là et cette pause est liée au fait que je n'avais pas assez de billets de blog rédigés d'avance pour publier régulièrement et que je gardais ces billets finis ou en cours de finalisation pour reprendre une publication régulière sur la fin d'année.

Le mois d'août, ça a été trois semaines de congés pour moi. J'avais posé mes congés dès lors que les planning ont été ouverts ; mes collègues étant indécis sur la période qu'ils souhaitaient prendre. Juillet /Août en région parisienne, ce sont les mois des travaux sur les lignes de RER, j'ai donc échappé pendant 3 semaines à la galère des trajets alternatifs, d'autant plus avec la semaine de canicule au milieu du mois d'août... Avec la crise du COVID, juillet avait continué à être une période en télétravail ; fFin août et pour septembre - jusqu'à changement lié au COVID, nous avons une obligation de présence deux jours par semaine dans les locaux de l'entreprise. Mes messages sur les réseaux sociaux témoignent de ce que cela m'inspire, étant donné les obligations de distanciation sociale sur place : Je n'étais pas revenu dans les locaux depuis le confinement... ca ne m'avait pas manqué. Et la on commence par une réunion chacun à notre bureau, en audio, alors qu'on est tous sur place (obligatoire). Quel est l'intérêt de venir sur place alors qu'on fait comme chaque jour ?. Je reviendrai sur le télétravail prochainement via un billet dédié.

Pour août, cela a donc été trois semaines que j'ai passé couper de tout. Je n'ai pas passé de temps à faire de projets personnels informatiques, je n'ai pas rédigé de billet de blog, je n'ai pas vidé ma todo-liste des projets accumulés sur la première partie de l'année. J'ai passé 3 semaines avec Mononoke. 3 semaines à faire le papa. Je pensais que je rédigerai plus sur le sujet de la parentalité, mais au final, je trouve déjà à peine le temps d'écrire sur des sujets geeks / informatiques et je ne ressens pas plus que ça le besoin de m'exprimer et partager sur le fait d'être papa (j'aurai sûrement des choses intéressantes à dire et partager ; c'est vraiment le temps qui me manque). Si j'en parle un peu ici, c'est que je sais que si tu lis le présent billet, toi, c'est que tu aimes bien avoir de mes nouvelles ;)

La maman de Mononoke travaillant (ses congés avaient été imposés pendant la période de confinement), j'ai été seule avec Mononoke des journées entières. Et j'en ai profité !!!. J'ai vécu à son rythme. Elle demande beaucoup d'attention. Lever en même temps que la maman,
nous avons fait une grande promenade chaque matin quand il faisait encore frais, un arrêt au parc pour quelques glissades sur le tobbogan. Sieste du matin. Repas. Sieste de l'après-midi, goûter, jeu. Promenade de fin de journée. Toilette du soir, repas... Les moments de sieste, j'ai pu en profiter pour regarder un peu quelques vidéos, lire un peu, me reposer, écouter quelques podcasts. Mais la majorité de mon temps, ça a été passer du temps à voir, jour après jour, ma fille faire de nouvelles choses, grandir, s'épanouir.

Il y un an j'avais mon congés paternité et je lui donnais le biberon pour la 1ère fois, nous avions passé du temps à nous découvrir et à nous apprivoiser. Un an plus tard, nous sommes on ne peut plus complices, nous avons nos moments, nos jeux, nos habitudes. Elle est curieuse, intéressée par tout, avide de découvrir des choses. Du coup, Mononoke sait reconnaître et designer Totoro, Batman & Spiderman, tout comme le logo Firefox... Ca peut vous paraître idiot, mais pour moi, c'est le début d'un partage de choses que j'aime et qui promet de bien belles choses pour les jours, semaines et mois à venir. Chaque chose en son temps, mais je lui transmettrai volontiers toute ma culture geek.

Bref, comme vous l'aurez compris, Mononoke a changé ma vie à jamais, y prend une place conséquente en ce moment, ai ma priorité par dessus-tout. Mais ce n'est pas une mauvaise chose, au contraire ;)