PROJET AUTOBLOG


Le blog de Seboss666

Site original : Le blog de Seboss666

⇐ retour index

Les flux RSS sur YouTube : la fin de mon compte Google ?

dimanche 23 décembre 2018 à 10:30

La dernière mise à jour de Firefox et son abandon du support natif du RSS (décision incompréhensible pour moi, qui participe à ma frustration grandissante avec le navigateur), m’ont remis en tête le fait que je voulais tester cette histoire de flux RSS sur les chaînes YouTube que Genma avait déjà partagé. En cherchant si possible une solution pratique, toujours dans une optique « c’est facile, tu peux le faire aussi ». Voyons ce qu’il en est.

RSS, rappel et mise au point

Je ne sais pas si je dois réellement faire un rappel sur ce qu’est un flux RSS, j’ai déjà écrit sur le sujet il y a quelques années, le format n’a pas bougé ou à peine. Par contre la partie sur la recherche de flux dans Firefox n’est plus valide, Mozilla ayant décidé de retirer ce support du navigateur; j’ai remplacé ça par une petite extension, Want My RSS, pas trop contraignant mais frustrant donc. A l’heure de la question de l’omniprésence des réseaux sociaux centralisateurs, cette fonctionnalité de flux est bien pratique pour reprendre un peu le contrôle sur l’expérience.

Mon compte Google, ses restes

En effet, j’ai arrêté d’utiliser le moteur de recherche depuis quelques années maintenant (à l’époque remplacé par DuckDuckGo, maintenant Qwant), je ne me sers pas de Gmail autrement qu’en IMAP pour les notifications des abonnements YouTube, lors de mon changement de téléphone plus tôt dans l’année j’ai tenté l’aventure sans utiliser le compte Google (faudra que je vous fasse un retour plusieurs mois après tiens). Ne reste donc que YouTube, pour lequel je n’utilise que la fonction d’abonnement et notification mail à une chaîne. Pas de commentaires (depuis le forcing Google+ qui n’a jamais été retiré chez moi, donc plus de commentaires depuis plus de 4 ans – pour le peu que j’ai besoin de commenter, ça ne m’a pas manqué une seconde).

Bref, il ne manque pas grand chose pour que je me débarrasse définitivement de ce compte. Pourquoi ? Google en sait déjà bien assez sans que je lui facilite la tâche, et puis un compte de moins à maintenir, avec donc une adresse et un mot de passe, c’est toujours ça de moins qui peut servir à vous exploiter (vol d’identité, toussa). Moins on en a/on en fait, mieux on se porte (j’ai huit compte mails dans Thunderbird…).

La recherche de flux, leur gestion dans l’agrégateur

Chercher à la main c’est chiant (copier l’id de la chaine et forger l’url feeds.xml?channel_id=<id>, le paramètre de l’url qui change quand la chaîne est personnalisée), et ça va vitre être pénible avec un nombre d’abonnements conséquents. Il fallait donc trouver un moyen de fluidifier ça. L’extension que j’ai mentionné en commentaire sur le blog de Genma ne fonctionne qu’en étant sur la chaîne, alors que YouTube RSS Finder permet d’avoir le lien aussi en partant d’une vidéo. Dans tous les cas, le fonctionnement est le même, une icône apparaît dans la barre d’adresse quand un flux peut-être exploité, cliquer dessus ouvre un nouvel onglet.

petit, discret, mais efficace

Reste ensuite à exploiter ce flux. J’utilise depuis quelques années maintenant FreshRSS, qui à de très rares exceptions près remplit très bien son rôle (des soucis liées à des mises à jour majeures pas toujours bien négociées, sans gravité toutefois), c’est donc lui qui va se charger de ces flux supplémentaires. J’ai créé une catégorie YouTube et j’ai commencé à y placer quelques flux tirés des chaînes que je suis déjà. C’est pas compliqué, on va dans la gestion des abonnements, on colle l’URL dans le champ qui va bien, on clique sur ajouter un flux, ça ouvre le panneau avec les détails du flux, on sélectionne la bonne catégorie, on valide, et hop, c’est ajouté.

Dans l’immédiat j’ai laissé affiché dans le flux principal, le temps de voir comment ça se comporte par rapport à la notification mail, mais n’étant pas une information à lire prioritaire, je pense que je vais un peu modifier ça.

Pour les curieux, en bonus dans le flux on a la description complète et le vrai lien direct de la vidéo, tout ce qu’on a pas dans la notification mail, dont le lien est fait pour enregistrer le fait que vous venez de la notification mail.

https://www.youtube.com/attribution_link?a=8a8wlqOwMPStHo24&u=/watch%3Fv%3DVVJNoM6MbnQ%26feature%3Dem-uploademail

Maintenant ces étapes manuelles restent plus pénibles que de cliquer sur « S’abonner » et d’activer la fameuse cloche (deux clics). Pour compenser un peu FreshRSS propose un bookmarklet (petit script qui se loge dans un marque-page pour déclencher une action spécifique) pour ajouter directement le flux dans FreshRSS via le même formulaire que d’habitude en mode standalone. Le mieux serait une petite extension qui fasse le boulot sans ouvrir trois onglets (celui de la chaîne ou vidéo, celui du flux, celui du formulaire d’ajout). Si quelqu’un sait comment faire (ça repose dans tous les cas sur du JavaScript, donc c’est hors de ma portée et de ma motivation), je suis preneur. Même si j’envisage déjà la difficulté, notamment pour la sélection de catégorie. Y’a moyen je pense d’ouvrir le formulaire en mode « popup », j’ai testé en le réduisant ça s’adapte bien.

Quid du mobile ?

Alors certes je ne regardes que très peu voire pas du tout de vidéo sur mobile (je trouve l’expérience peu agréable quand ça dépasse deux minutes), mais je conçois que c’est un usage répandu donc j’ai cherché comment faire, on ne sait jamais au détour d’un tweet on peut découvrir une chaîne intéressante qu’on voudrait garder à l’œil. Le problème premier est que la plupart des personnes utilisent l’application officielle YouTube sur leur smartphone Android, qui exploite automatiquement le compte Gogol. L’expérience est intégrée, plus ou moins agréable (agression de publicité ?), donc évidemment récupérer le flux RSS est compliqué quand on a aucun contrôle de l’expérience. Et évidemment Google ne fera aucun effort pour mettre ce flux en avant (il faut déjà savoir que la fonctionnalité existe). Pour ceux-là je ne peux rien, il va falloir faire des efforts.

NewPipe est une application opensource alternative présente sur F-Droid. Elle propose, sur la page d’une chaîne, d’en afficher le flux RSS, en fonction des applications installées, moi ça m’a proposé Firefox, l’expérience est la même que sur bureau, à savoir un onglet avec le flux brut affiché. J’ai testé sur le navigateur justement, les extensions pour afficher les flux depuis les pages de vidéos ou de chaînes ne posent pas de problème particulier, à part que j’ai pas l’icône qui s’affiche, donc inexploitable.

Mais il n’y a pas que là que ça coince, sur mobile FreshRSS masque la gestion des abonnements, certainement parce que l’organisation actuelle des menus n’est pas adaptable simplement, donc autant éviter de faire une connerie et tout masquer. Mais pas moyen d’ajouter le flux du coup, c’est là qu’une extension pourrait être plus sympa qu’un bookmarklet pour peu qu’on soit capable de la faire fonctionner aussi bien sur mobile que sur pc (faudrait je pense regarder du côté d’uBlock Origin, qui fonctionne sur toutes les plateformes y compris sur Android). parce qu’il fonctionne le bookmarklet, mais le formulaire est pas du tout fait pour s’adapter aux écrans verticaux à haute densité.

Bref, l’expérience est loin d’être optimale.

La liberté a un coût salement élevé

En effet, on le voit, le confort apporté par l’expérience YouTube via le compte Google et les applications qui vont bien joue en grande partie sur le succès de la plateforme (je vais pas discuter de la qualité des contenus, suffit de voir ça pour se rendre compte du massacre des « tendances »). Se passer de ce confort est pénible, pour rester poli, et Google ne risque pas de simplifier les choses (rien ne dit qu’ils décident un jour de supprimer cette fonction pour tout centraliser sur l’API, et là pas de miracle faudra un compte Google).

Reste un point que soulèverons certains (j’ai souvent le débat avec ma frangine sur le sujet), le soutien des auteurs. En effet, chaque « Youtuber » qui tente de gratter du blé de la plateforme vous pousse à l’abonnement, à la notification, au pouce bleu, tout ça pour tenter de gagner en visibilité et donc en monnaie liée aux publicités et partenariats en lien avec cette visibilité acquise. Alors déjà, pour ceux qui sont nouveaux, ils ne tireront rien de la publicité de ma part, maintenant je ne désactive plus jamais le bloqueur y compris quand je vais sur YouTube. Ajoutez à ça que la plupart du temps, quand je suis chez moi c’est via LibreElec que je les regarde, et actuellement chez ma mère je récupère les vidéos via youtube-dl pour les regarder sur la TV du salon. Donc exit la pub, reste les vues et le compteur d’abonnements.

La libération n’étant pas du tout triviale, je ne risque pas d’embarquer la moitié du public YouTube avec cet article, et surtout pas avec mes centres d’intérêts qui ne semblent pas majoritaires. Donc perdre un abonnement, ça ne tuera personne dans les 84 chaînes que je suis. Le même raisonnement prévaut pour la vue comptabilisée. Quelque soit la plateforme envisagée, l’argument du « mais si tout le monde fait comme toi c’est mort », non vraiment, même en résumant à mort à peine abordé le coup du flux RSS que vous avez perdu facilement 98% du public présent sur YouTube. Aucun risque donc.

Je préfère largement directement soutenir les créateurs qui me nourrissent d’intellect ou de divertissement (mes abonnements vont de Zerator à String Theory en passant par Kristina Schiano ou Smarter Every Day, Khaos Farbauti Ibn Oblivion, je vais pas tous les citer y’en a 84). Il n’y en a pas un seul maintenant qui n’aie pas un compte Tipeee, Patreon, Utip, ou je ne sais quelle autre plateforme de paiement direct, un modèle que je trouve bien plus sain, même si évidemment je ne peux pas lâcher des brouzoufs à chaque créateur (surtout je ne suis pas près de créer un compte Patreon, donc ça limite à ceux présents sur Tipeee). Même YouTube s’y met, si vous n’avez pas l’intention de vous séparer de votre compte Google, propose maintenant un bouton « Rejoindre » à la manière de Twitch qui permet de s’abonner financièrement pour tenter de capter une partie des flux financiers qu’il a laissé fuir à cause des politiques de revenus publicitaires désavantageuses pour les premiers acteurs de la plateforme. A la limite juste pour ça si vous pensez que les données qu’en tirera Google en matière de profilage ne vous pose pas de problème, l’argent ira en partie dans les poches des créateurs et c’est beaucoup plus visible et direct comparé à des revenus publicitaires particulièrement compliqués à gérer (décalage de plusieurs mois, politiques opaques qui en ont déjà foutu sur la paille…). D’autant plus après le semi-échec du modèle YouTube RED (abonnement de 10 balles permettant d’accéder à du contenu exclusif, mais les contraintes imposées sur la création de ces contenus font qu’il n’a pas eu le succès escompté).

Pub gratuite pour Jérome 🙂

Bref, entre le temps passé en manipulations, le coût du soutien des créateurs, clairement ça semble coûter beaucoup plus cher que se farcir les publicités et le pistage constant que ce soit de Google ou des annonceurs (on va laisser les états hors de l’équation pour aujourd’hui). En tout cas ça se voit tout de suite sur le compte en banque, mais c’est toujours plus éthique, et à long terme, c’est certainement plus sain.

Un dispositif sous surveillance, qui avancera doucement

En effet, au fur et à mesure que je vais ajouter les abonnements, je vais finir par couper les notifications mails. Ce transfert au fil de l’eau des abonnements YouTube vers les flux RSS va permettre de faire le ménage sur certaines chaînes devenues inactives en plus, toujours une bonne chose. Quand tout sera stabilisé et validé, il restera un vrai problème. Comme je l’ai dit plus haut, ma consommation de contenus sur YouTube se fait majoritairement le soir une fois rentré du taf ainsi que le weekend, sur mon Raspberry Pi 3,  qui d’ailleurs me cause quelques petits soucis mais de la faute de YouTube.

En effet, de plus en plus certaines qualités vidéos ne sont proposées qu’en HLS, un mode qui n’est pas supporté par défaut sur le plugin YouTube de Kodi, apparemment il faut passer par un support de serveur HTTP mais je n’ai jamais réussi à trouver comment paramétrer tout ça et la documentation est particulièrement succincte. Du coup le visionnage repose sur les flux legacy (pour comprendre ces histoire de flux et de qualité, revoir mon billet sur le sujet, toujours d’actualité), et de plus en plus souvent il manque le flux « 22 », le 720p30 au format MP4 qui était alors exploité (c’est remplacé par le 136+140 en HLS, 137 si on veut le 1080p).

Pourquoi j’évoque ce souci sans rapport à priori avec le sujet principal ? Actuellement mon compte Google est enregistré dans la configuration du plugin de sorte que je puisse visionner facilement, avec une ergonomie propre à Kodi, les nouvelles vidéos de mes abonnements, voir celles déjà regardées, celles commencées mais à terminer… Si je clos mon compte Google je perds ce confort. Je vais donc devoir réviser ce fonctionnement, peut-être rebasculer sur l’usage de youtube-dl, il va me falloir un truc pour gérer simplement les téléchargements depuis les flux RSS, idéalement avant que je sois rentré chez moi car le streaming a ça de confortable qu’il n’y a pas besoin d’attendre pour regarder un contenu, d’autant plus s’il n’est pas amené à être conservé. Il y a une application sur ADM, Takeasy, qui repose justement sur youtube-dl et permet de récupérer la bonne qualité. Configurer un accès distant au NAS, paramétrer le dossier de téléchargement et les options, c’est moins souple que directement lire en stream, mais au moins j’aurai la qualité que je veux. Un coût supplémentaire en gestion du quotidien.

Bref, je pense qu’on en reparlera dans quelques mois quand j’aurai trouvé le bonheur. Ça sera aussi l’occasion de tester la procédure de fermeture du compte Google, ça promet d’être sport.

Ma voiture et l’antidémarrage électronique : obsolescence mon amour

jeudi 20 décembre 2018 à 18:30

Parmi les éléments qui ont contribué à mon absence du mois d’octobre, un des signes marquants de ma fatigue rampante est la perte du trousseau qui regroupait mes clés d’appartement et de voiture. Si pour l’appartement ça a été vite réglé, la situation pour la voiture a failli être beaucoup plus complexe, et comme ça parle un peu de pratiques que je considère comme peu respectueuses, j’avais envie de partager l’expérience.

Donc, pour ceux qui ne le savent pas, je possède une Peugeot 307 2L HDI 90, dont finalement la donnée la plus importante ici est l’âge : 14 ans (première immatriculation en août 2004). Rien de choquant pour qui n’habite pas en région parisienne, je pourrai vous présenter d’autres véhicules improbables, dont mon ancien véhicule, une Peugeot toujours mais 406 de 2000, et qui approche des 290000kms sans pleurer. Toujours debout, passe toujours le contrôle technique, dont les contrôles pollution, mais qui est finalement dans la même situation que ma 307 à cause de son fabricant.

Je fais partie de ceux qui d’une part aiment posséder leur véhicule vu le pognon qu’on met dedans, et de l’exploiter au maximum histoire de pas gâcher (dans une optique tant que ça fonctionne pas besoin de gaspiller). Un positionnement que ne renierait pas Cyrille je pense, mais libre à lui de me dire si je me trompe. Tout ça pour dire que ce n’est pas un cas isolé, avec un âge moyen de 8 ans en 2014, en augmentation constante, les véhicules qui ont de la bouteille sont plus répandus qu’on ne le pense. Et j’aurais aimé avoir l’âge médian mais on l’a rarement ce chiffre (comme pour les débits des connexions internet ou le salaire, encore que pour ce dernier on le connaît grâce à l’INSEE).

Revenons à mon problème. Je perds donc mon trousseau, avec à ce moment-là la seule clé que j’avais pour démarrer ma voiture, on est un mardi soir à 20h. Je pensais l’avoir laissé sur le bureau au boulot, ce n’est pas le cas, le mercredi matin je rentre donc chez moi à peine arrivé. J’ai retourné mon appartement toute l’après-midi pour tenter de récupérer le double de la clé, sans assurance de l’avoir chez moi car si je sais qu’il existe encore, je ne me souviens pas l’avoir embarqué quand j’ai changé de vie. Ça n’a pas manqué je ne l’avais pas mais j’ai fait un sacré ménage chez moi du coup. Ma mère n’est pas chez elle avant la semaine prochaine c’est cuit pour fouiller les tiroirs. Je contacte alors l’assurance, pour savoir comment procéder pour récupérer un véhicule exploitable. Première chose, pour le cas particulier des clés de voiture, c’est prise en charge minimaliste car ça touche un élément de sécurité. En gros, on t’amène la caisse au garage et basta. Pas de prêt de véhicule, pas de priorité, rien.

Le garage d’ailleurs, je l’appelle pour savoir quelle est la marche à suivre pour ce genre de cas, et c’est la que la panique commence. Oui on peut commander une nouvelle clé « vierge » électroniquement mais dont l’empreinte physique permet à minima de pouvoir ouvrir la voiture et déverrouiller le volant. Mais cette fameuse partie électronique, il faut la reprogrammer pour ensuite appairer la nouvelle clé fraîchement programmée elle aussi. Et là, j’ai halluciné : le garagiste me prévient tout de suite qu’à cause des dernières révisions logicielles des outils de diagnostic et de maintenance (les fameuses « valises »), ils ne peuvent plus garantir le succès de l’opération sur un véhicule de cet âge, pire la reprogrammation peut « briquer » le boîtier d’antidémarrage, et la seule solution en cas d’échec est donc de changer entièrement le boîtier pour un neuf (pour des raisons évidentes on ne peut pas utiliser un boîtier provenant d’un autre véhicule sinon ça ne sert à rien). Boîtier qui coûte en moyenne la bagatelle de 500 balles.

Arrive alors la cerise sur le gâteau : le garagiste vérifie, le boîtier n’est plus fabriqué par Peugeot, donc au final si on tente l’opération j’ai une chance sur deux de niquer ma voiture définitivement si je retrouve pas le double original alors que la voiture est mécaniquement en parfait état (j’en dirais pas autant de la carrosserie mais c’est un autre débat). Oui oui, on peut acheter des pièces mécaniques pour réparer le véhicule pendant vingt ans, mais la partie électronique vous pouvez vous la carrer ou je pense, alors même que c’est un élément de plus en plus central dans la conception. J’aime bien parler de l’exemple d’Intel qui gardait une ligne de production de Pentium 75 pour… les navettes spatiales de la NASA (je cherche à retrouver l’article dans lequel je l’ai lu, si vous retrouvez l’information, partagez 🙂 ). Certes on parle là d’acteurs particuliers, mais c’est pour dire que sécuriser la fourniture de composants est courant dans le monde industriel, et ce n’est pas comme si les systèmes d’anti-démarrage n’étaient plus utilisés de nos jours. Je ne connais pas les politiques des autres constructeurs, mais dans ma recherche d’un véhicule pour remplacer le char (recherche démarrée bien avant cet évènement), clairement c’est pas un élément qui me donne envie de rester « français », même si c’est plus de la frime qu’autre chose (14% de chinois en 2014 dans les finances du groupe, fabrication massivement délocalisée…).

Comme je l’ai dit, l’électronique et l’informatique deviennent de plus en plus centraux dans la conception de nos véhicules, quand on voit comment le marché des smartphones qui est un réel désastre environnemental est en train de tourner, comment le manque de fiabilité de nombreux modèles réduit la durée de vie à peau de chagrin, ça donne pas envie pour le futur des véhicules, quand bien même l’électricité est pleine de promesses, aussi bien de propreté que de désastres également que ce soit sur les batteries difficilement recyclables ou bien les technologies sur lesquelles elles reposent actuellement, à base de Lithium qui est un métal aussi rare que cher et qui va vite devenir le nouveau pétrole si on trouve pas de bonnes alternatives rapidement. Bref, c’est pas reluisant…

Quelles méthodes pour protéger un accès PHPMyAdmin ?

vendredi 14 décembre 2018 à 18:30

Après avoir répondu à Korben et vu que j’ai pas le choix de rester collé dans un fauteuil à cause d’un pied cassé, je me suis dit que vous filer quelques pistes pour éviter les problèmes de sécurité avec PHPMyAdmin serait une bonne chose (et réutilisable pour d’autres besoins). Et non, le désinstaller ne fait pas nécessairement partie des solutions 🙂

Pour rappel, PHPMyAdmin est une interface d’administration pour serveurs MySQL/MariaDB écrite en PHP. Évidemment de par sa nature c’est un composant critique qu’il convient de protéger pour éviter de se faire pomper/corrompre ses données et/ou son site. En effet, ce n’est qu’une interface, et donc les utilisateurs sont ceux configurés au niveau du serveur de base de données. Toujours de par sa nature et aussi son âge, il a un historique fourni en matière de sécurité, la rançon du succès pourrait-on dire.

Les méthodes de protection sont nombreuses et sont parfois complémentaires, il n’est pas nécessaire de tout implémenter (surtout quand c’est redondant, on y viendra).

HTTPS obviously

Oui c’est une évidence pour beaucoup, mais dites vous que certaines boutiques en ligne continuent de vous faire naviguer sur leur site en HTTP (y compris la partie utilisateur), seul le paiement est en HTTPS, parce que souvent réalisé par un tiers. Ce point change car ces tiers imposent maintenant HTTPS pour les allers/retours, des outils de suivi comme Google Shopping l’imposent désormais, bref, si c’est pas encore déjà fait, que ça vous parait pas vital pour votre site, ça l’est pour phpmyadmin. Et si vous ne savez pas quel est l’intérêt, j’en ai parlé y’a pas si longtemps.

Une URL/URI non prévisible

N’importe quel administrateur système vous dira qu’il a déjà vu dans ses journaux de serveur web des tentatives d’accéder à des adresses comme /pma, /phpmyadmin, et d’autres variantes avec ou sans majuscules. Pour une bonne et simple raison, sur pas mal de tutos on rencontre ce genre d’installation. Également, sur certains outils d’hébergement web integrés, /phpmyadmin est un alias qui permet d’accéder à la base de données de l’abonnement. Utiliser une URI non prévisible évite donc aux scanners de découvrir facilement où se trouve l’outil.

Attention, si vous utilisez un sous-domaine spécifique, même en HTTPS avec SNI il passe en clair 😉

Des utilisateurs BDD restreints

Comme je l’ai dit, l’accès à la base se fait via les utilisateurs configurés sur le serveur bdd. En refouillant la doc de PHPMyAdmin (que je conseille évidemment), je n’ai pas trouvé de directive de restrictions d’utilisateurs, par contre, il est possible d’interdire la connexion à certaines bases de données. Avec un utilisateur associé qui n’a accès qu’à une base, et qu’on empêche la connexion à cette base, l’utilisateur ne sera pas autorisé à se connecter.

Au niveau de la configuration de PHPMyAdmin (config.inc.php), ça revient à configurer la variable $cfg[‘Servers’][$i][‘only_db’] qui contient la liste des bases autorisées (les autres étant interdites, ouais ça parait évident dit comme ça, mais sait-on jamais).

Ah et puis si vous ne comptez utiliser PHPMyAdmin que pour certaines opérations bien précises, il est possible de limiter les permissions de l’utilisateur, pensez-y 😉

HTTP Basic Auth

Le fameux « mot de passe htaccess » comme je l’entend trop souvent, qui n’a aucun sens si on utilise pas Apache comme serveur web de toute façon, demande de valider un couple utilisateur/mot de passe spécifique avant d’accéder à l’application (et son formulaire de connexion à la base de données). Ca fait deux identifiants à retenir, mais bon, ça fait déjà bien chier les brute force, alors autant ne pas se priver.

Pour la mies en place sur votre serveur web favori, je vous laisse chercher « http basic auth » sur votre moteur de recherche favori.

Filtrage IP

Moins facilement « bruteforçable » que le mot de passe, limiter l’accès à l’interface d’administration en fonction de l’adresse IP de la connexion de l’utilisateur est aussi simple à mettre en place que le mot de passe, mais demande par contre que l’utilisateur en question utilise toujours la même adresse IP ou une plage d’adresse connue et le plus restreinte possible.

Je dis ça car au taf où l’on nous a déjà demandé de faire du filtrage IP pour certains clients, on a déjà rencontré des utlisateurs de Zscaler, dont un des services est de « randomiser » l’adresse IP de sortie web de l’utilisateur, dans des plages salement larges (/22, /21), plages partagées entre plusieurs clients, en gros c’est très chiant.

Si vous voulez coupler le filtrage IP au mot de passe, j’ai déjà écrit un truc là-dessus à une époque, vous pouvez donc vous baser dessus c’est encore d’actualité.

X509 Client Certificate

Arme ultime, en plus du certificat X509 du serveur pour la connexion HTTPS, vous pouvez demander à votre serveur web de paramétrer la vérification d’un certificat client. Djerfy l’a mis en place et détaillé pour l’accès à l’administration de son WordPress, c’est évidemment adaptable pour votre installation de PHPMyAdmin.

Avec ça, si on a pas l’ordinateur qui dispose du certificat, c’est foutu. Alors certes ça n’empêche pas la possibilité de se faire dérober ledit certificat, mais c’est assez puissant, surtout une fois installé l’utilisateur n’a plus à s’en soucier (jusqu’à l’expiration du certificat, vous êtes seul juge de sa durée de vie quand vous le générez).

Pas de PHPMyAdmin ?

Allez, troll de fin, pour ne pas avoir un problème avec le logiciel, le mieux est encore de ne pas l’installer. Blague récurrente dans le domaine de la sécurité informatique, qui va jusqu’à « pour ne pas avoir de problème avec son ordinateur, le mieux c’est de ne pas l’allumer ». Pour être un peu plus sérieux, si vous êtes amenés à manipuler souvent vos bases de données, et c’est ce que j’ai fini par faire au boulot, travailler directement avec le client ligne de commande de mysql peut vous apprendre pas mal de choses et peut s’avérer souvent plus rapide.

Mais ça vient avec ses propres contraintes, idéalement on évite de se connecter à distance car par défaut le client mysql se connecte sans chiffrement de la connexion, ce qui n’est pas recommandé de nos jours. Soit on met en place du « SSL », ce qui est lourd et chiant, soit on passe par un tunnel SSH, ce qui est moins lourd et plus facile. Ou alors on se connecte au serveur en SSH, et on lance le client « local » du serveur.

Sinon, certains logiciels comme MySQLWorkbench, ou DBeaver (horreur en Java découverte via Twitter), permettent de lancer ce même tunnel SSH pour ensuite initier la connexion. Bien évidemment tout ça n’est valable que si vous avez accès à SSH, ce qui dans le cadre de services PaaS (mysql ou mariadb en tant que service), n’est pas possible.


Voilà avec tout ça, si vous avez encore un souci de sécurité avec votre installation de PHPMyAdmin, c’est que vous l’avez cherché 😛 Maintenant je suis curieux de savoir ce que j’ai pu manquer, ce que vous avez mis en place pour verrouiller vos accès, vous savez quoi faire pour m’en dire plus (un indice : on peut poster des commentaires sur mon blog :D)

Ma mère passe à la fibre !

jeudi 13 décembre 2018 à 18:30

Je ne pensais pas voir ça arriver avant au moins deux ans. Pour ceux qui me suivent depuis un moment, vous connaissez déjà la situation de ma mère en matière de connectivité, à savoir une connexion ADSL défaillante à peu près la moitié du temps, sans parler d’un débit misérable, pour le même prix que chez moi et avec une box qui date pas mal. mais la magie de Noël pourrait-on dire, la situation évolue, voici les détails.

Voici donc la situation : une Freebox HD (V5), fabriqué entre 2006 et 2008, qui ne sert que de modem. Pourquoi ? Parce que ce n’est pas ce que je j’appelle un vrai routeur, à savoir qu’il ne dispose pas d’interface d’administration en propre, tout doit se faire depuis le site de Free, vachement pratique quand la connexion ne fonctionne jamais. Sur une ligne à 5kms donc pas de TV, une option désormais inutile à 3€ par mois pour les appels illimités sur mobile, la facture « Internet » s’élève à 33€ par mois. S’ajoute à ça un inévitable abonnement Canal+/CanalSat à réviser car actuellement ça coûte 100€ par mois. Vous trouvez que la vie à la campagne c’est cool ?

L’annonce du déploiement d’une vraie fibre optique FTTH sur le patelin a été une surprise plus que bienvenue. Certes, c’est du réseau public, et la crainte de voir la situation de l’Oise se reproduire est forte. Non là c’est pas beaucoup plus reluisant, mais mieux quand même. A savoir, la société qui déploie le réseau n’est pas celle qui fournit la connexion « Internet », déléguée à des fournisseurs d’accès qui louent la partie physique. Quand je parle de la situation de l’Oise, c’est que sur le réseau public de Oise numérique, officiellement il n’y a que SFR de disponible comme opérateur, c’est donc peste ou peste (et mon oncle en a fait l’expérience pendant presque un an). Orange, bien qu’affiché sur leur site, n’est pas forcément une option, en gros ils ne viennent se brancher sur une commune que s’ils ont perdus trop d’abonnements ADSL à cause de la « fibre SFR ». Je l’ai donc dans le cul chez moi pour l’instant, c’est magique. Pour info, vous pouvez vérifier la disponibilité sur un site dédié monté par l’ARCEP, avec désormais une précision à l’adresse.

C’est chez ma maman 🙂

Dans la Somme, la liste des fournisseurs d’accès ne fait pas rêver (Vidéofutur, pour moi historiquement c’est de la location de films), le seul qui m’a attiré l’œil, c’est NordNet. C’est une filiale d’Orange qui historiquement fournit de la connexion Internet par satellite et qui ajoute à son catalogue la fourniture de connexion via fibre sur les réseaux fibres publics. Car oui, Orange ne veut s’afficher que là où il peut déployer son propre réseau (et si au passage on peut faire son mafieux à faire payer les autres opérateurs, comme pour le cuivre, monopole mon amour…). La dorsale réseau et donc les limitations de la connexion sont celles d’Orange : interconnexions US parfois saturées en soirée (tout le monde est concerné, donc pas surprenant), pas d’IPv4 fixe donc chiant pour l’auto-hébergement, DNS menteurs… Concernant la TV Comcable parait plus intéressant, mais les chaînes que ma mère regarde sont en options supplémentaires et l’abonnement est déjà plus cher que chez NordNet. Les rares retours que j’ai pu voir sur comcable ne sont pas reluisants sur la stabilité du débit, en particulier aux heures de pointe, montrant potentiellement une grosse faiblesse des interconnexions, un point crucial pour un fournisseur d’accès à Internet.

Restera la partie box, qu’il faudra regarder de près, et ça fera je pense l’objet d’un billet dédié. Ce qui me fait peur, c’est que certains articles de la base de connaissance du site indiquent des paramétrages via le site web, comme la Freebox HD. Dommage quand on voit la fiche technique : 4+1 port Ethernet 1Gbps (LAN et WAN), Wifi 802.11ac, USB, uPnP-AV pour partage multimédia, bref, elle a l’air assez fournie pour ceux qui n’ont pas déjà du matos chez eux. Ça sera l’occasion de remettre aussi l’installation à plat chez ma mère, de simplifier un peu.

En tout cas, malgré cette histoire d’IP non fixe, cette connexion permettra de pouvoir enfin externaliser les sauvegardes (dans les deux sens : je me démerde pour externaliser les miennes chez ma mère, et ma mère externalise les siennes chez moi), car enfin on aura un upload significatif (débit montent, pour envoyer des données), contrairement à l’adsl où le bridage volontaire de l’upload pour favoriser les consommations de contenus dénature le réseau de fait. Un éventuel contrôle à distance de certains appareils sera aussi facilité (quand je vois la galère pour la connexion à Proxmox chez moi…)

En fonction de l’avancement, je serai encore chez ma mère à l’activation, donc je vous tiens au courant de l’avancée et la découverte de tout ça.

UPDATE du 19 décembre : Alors la blague, on a déjà reçu le colis avec le routeur et le boîtier multimédia, par contre, le rendez-vous pour la pose de la prise de raccordement ne sera que le 10 janvier. Sauf contre-indication, je ne serai donc pas présent pour le jour J. Mais y’a le weekend juste après, donc je pense que je vais remonter à ce moment-là pour réellement mettre les mains dedans.

Quelques astuces diverses, quatorzième

mardi 11 décembre 2018 à 18:30

Au delà de mon absence prolongée d’Octobre, cela faisait longtemps que je n’avais pas partagé de nouvelles bidouilles. Et c’est une fournée presque entièrement centrée sur le shell qui vous est présentée aujourd’hui. Avec un peu de Cinnamon dedans également, pas surprenant quand on découvre un nouvel environnement de bureau 🙂

Rsync sélectif

J’ai toujours eu du mal à sélectionner comme je le veux un type de fichier en particulier à synchroniser avec rsync, en particulier dans une grosse arborescence (plus de 300Go). J’ai finalement trouvé un moyen de filtrer les fichiers via find pour les passer à rsync :

find source -name "*.php" -print0 | rsync -av --files-from=- --from0 ./ ./destination/

Une fonction dmesg pour les anciennes distribs

Si je dis pas de conneries j’ai déjà partagé un script perl qui fait le taf (vérification faite c’est le cas). Un collègue de boulot m’a montré une fonction bash pour lancer du perl directement sans script à part :

dmesg_with_human_timestamps () {
    $(type -P dmesg) "$@" | perl -w -e 'use strict;
        my ($uptime) = do { local @ARGV="/proc/uptime";<>}; ($uptime) = ($uptime =~ /^(\d+)\./);
        foreach my $line (<>) {
            printf( ($line=~/^\[\s*(\d+)\.\d+\](.+)/) ? ( "[%s]%s\n", scalar localtime(time - $uptime + $1), $2 ) : $line )
        }'
}

On peut ensuite coller un alias sur le dmesg original pour être peinard :

alias dmesg=dmesg_with_human_timestamps

Stocker ses creds dans gitconfig quand pas de SSH

Au taf on a basculé le Gitlab sur le SSO, et l’on ne peut pas utiliser SSH (Gitlab sur cluster OpenShift), donc auth_basic « classique » HS, on a maintenant besoin d’utiliser les access token. Une fois le token créé via l’interface de Gitlab, il faut le sauvegarder dans la config de git :

git config --global credential.helper 'store --file ~/.git-credential'
git credential-store --file ~/.git-credential store

La deuxième commande vous permettra de taper ligne par ligne le contenu du fichier, il faudra valider deux lignes vides pour sauvegarder le fichier :

protocol=https
host=git.domain.tld
username=f.name
password=myToken

Grep forcer l’affichage du nom du fichier

Le contexte est un peu particulier, on me demande de chercher une adresse IP dans une arborescence de code monstrueuse par la taille, j’ai voulu limiter aux fichiers « *.php » via find mais j’avais pas les noms :

seboss666  ~  find . -name "*.php" -exec grep "<?php" {} \;
<?php $ezcyp = 'ac142v_#9\'-ug*p3Hrx7mn08fsykolitbed';$hhvjzur = Array();...
<?php
<?php
This page sets a max-age cache control for <?php echo $secs?> seconds. The header looks like this:<br>

Pas pratique, car grep pense dans ce cadre qu’il est tout seul. Il suffit de tricher un peu au niveau de grep :

seboss666  ~  find . -name "*.php" -exec grep "<?php" {} /dev/null \;
./mal.php:<?php $ezcyp = 'ac142v_#9\'-ug*p3Hrx7mn08fsykolitbed';$hhvjzur = Array();...
./terraform-aws-labs/content-post.php:<?php
./dev/siege/html/cache-control.php:<?php
./dev/siege/html/cache-control.php:This page sets a max-age cache control for <?php echo $secs?> seconds. The header looks like this:<br>

En rajoutant /dev/null, on fait croire à grep qu’on travaille sur plusieurs fichiers, donc il va afficher le nom du « vrai » fichier à chaque trouvaille.

Cinnamon et souris Bluetooth qui déconnecte tout le temps

Comme j’ai une prise USB en moins sur le nouveau laptop et que la souris que j’avais arrivait en fin de vie, j’ai investi dans une souris Bluetooth. Problème, le gestionnaire Bluetooth de Cinnamon n’est pas efficace, la souris ne se reconnecte pas en sortie de veille ou reboot (et même quand la souris se met en veille). J’ai du installer blueman (que j’utilisais sous XFCE), on supprime tout ce qui existe de la souris, on réassocie, la connexion Bluetooth est restaurée au resume (contournement trouvé sur le forum Manjaro).

Créer des dossiers temporaires au démarrage du système

J’ai rencontré un problème sur CentOS 7 avec un service qui tente de poser une socket dans un dossier qui n’existe plus après le reboot de la machine (le /run en tmpfs, mais le socket pas à la racine du dossier). Il existe un mécanisme qui permet via le dossier tmpfiles.d permet de s’en sortir en créant un fichier qui contient une ligne à ce format :

D /var/run/supervisor 0775 root root -

Au démarrage de la machine, le dossier sera recréé et le service pourra démarrer correctement.

SSH, bastion, éviter le ProxyCommand

Si vous me suivez depuis un moment vous devez savoir configurer finement SSH : dans le ssh_config de l’utilisateur, j’ai un alias *.domain.tld qui définit un ProxyCommand, soit une commande pour rebondir sur une autre machine. Mais je devais accéder à une machine sur ce domaine sans passer par le bastion. La solution était simple finalement :

Host machine1.domain.tld
ProxyCommand none

Host *.domain.tld
ProxyCommand ssh -F ~/.ssh/config-proxy rebond.domain.com nc %h %p

Récupérer de l’espace disque gratuitement

Après un P2V, j’ai été prévenu que les partitions de la VM de destination n’étaient pas aussi généreuses que celles du physique d’origine. La raison, les blocs réservés dans ext4, sur une partition non système on peut réduire le pourcentage par défaut (voire même complètement désactiver si vous savez ce que vous faites pour éviter les cas de saturation de disque)

seboss666  ~  df -h /home
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/sda4 358G 133G 208G 39% /home
 seboss666  ~  sudo tune2fs -m1 /dev/sda4
tune2fs 1.44.4 (18-Aug-2018)
Définition du pourcentage de blocs réservés à 1% (955536 blocs)
 seboss666  ~  df -h /home
Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/sda4 358G 133G 223G 38% /home

InfluxDB via curl

Lors d’une mise à jour de Gogs, j’ai découvert qu’ils exposaient des metrics via Prometheus. J’ai donc installé telegraf/influxdb sur mon cluster Swarm pour collecter et stocker les données. Pour vérifier que celles-ci sont bien lisibles, on peut interroger influxdb via curl :

curl -4 -s -G http://localhost:8086/query?db=telegraf --data-urlencode "q=SHOW series" | jq

J’utilise jq pour que ça soit un peu plus lisible comme sortie json, je vous conseille de l’essayer c’est sympa 🙂

Debian 9.5 et bug d’auto-completion

Ce n’est pas moi qui ai été touché par le bug, mais Pierre-Marie, lors du déploiement de VM via un template fourni par le client. Quand il tente d’exploiter l’auto-complétion, le shell reste coincé pendant pas mal de secondes. Apparemment le bug a aussi été vu sous Ubuntu et il existe une méthode de correction qui est décrite sur ce bug.

systemd-timesyncd pour pallier au problème de Cinnamon

Sur mon installation, la synchronisation réseau du temps se désactive tout le temps, et le fait qu’elle ne fonctionne pas quand je l’active ne doit pas être étranger à ce phénomène. En cherchant une solution j’ai découvert un petit outil qui peut rendre bien des services, qui n’est juste qu’un client NTP contrairement aux autres ténors qu’on présente généralement : timesyncd

Vous modifiez le fichier /etc/systemd/timesyncd.conf pour y renseigner vos serveurs NTP, vous activez et démarrez le service, l’affaire est jouée :

$ grep NTP /etc/systemd/timesyncd.conf
NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
$ sudo systemctl enable systemd-timesyncd 
Created symlink /etc/systemd/system/dbus-org.freedesktop.timesync1.service → /usr/lib/systemd/system/systemd-timesyncd.service.
Created symlink /etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service → /usr/lib/systemd/system/systemd-timesyncd.service.
$ sudo systemctl start systemd-timesyncd 
$ systemctl status systemd-timesyncd
● systemd-timesyncd.service - Network Time Synchronization
   Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-11-23 10:36:14 CET; 11min ago
     Docs: man:systemd-timesyncd.service(8)
 Main PID: 15381 (systemd-timesyn)
   Status: "Synchronized to time server 91.121.7.182:123 (0.arch.pool.ntp.org)."
    Tasks: 2 (limit: 4915)
   Memory: 1.5M
   CGroup: /system.slice/systemd-timesyncd.service
           └─15381 /usr/lib/systemd/systemd-timesyncd

nov. 23 10:36:13 seboss666-tkp systemd[1]: Starting Network Time Synchronization...
nov. 23 10:36:14 seboss666-tkp systemd[1]: Started Network Time Synchronization.
nov. 23 10:36:14 seboss666-tkp systemd-timesyncd[15381]: request_name_destroy_callback n_ref=2
nov. 23 10:36:14 seboss666-tkp systemd-timesyncd[15381]: request_name_destroy_callback n_ref=1
nov. 23 10:38:09 seboss666-tkp systemd-timesyncd[15381]: Synchronized to time server 91.121.7.182:123 (0.arch.pool.ntp.org).


Par contre, contrairement aux liens en vrac, je n’ai plus de stock du tout, donc le prochain épisode sortira « quand il sera prêt » #DebianStyle