PROJET AUTOBLOG


Le blog de Seboss666

Site original : Le blog de Seboss666

⇐ retour index

Mon Chromebook est libre, mais la route fut longue

dimanche 14 avril 2019 à 10:30

Lors de ma vidéo de démontage du Chromebook, il était dans un mauvais état : mes tentatives pour me débarrasser de ChromeOS s’étaient soldées par des échecs cuisants, je m’étais donc tourné vers un professionnel de la libération de matériel, Denis alias GNUtoo. Mais ses premiers essais avaient mis la machine en PLS. Rien n’était cependant définitif, et j’ai donc laissé le patient dans les mains du toubib, qui a mis du temps, mais il y est arrivé.

Ce qu’il faut savoir, c’est que les Chromebook sont des machines qui exploitent un « firmware » basé sur Coreboot. Coreboot c’est bien, c’est censé être ouvert, mais dans le cas précis présent, tout a été fait pour détourner la philosophie première de l’outil pour verrouiller le plus possible la machine afin que seul ChromeOS démarre, depuis le stockage interne uniquement. Mais vraiment, si certains Chromebook laissent facilement les développeurs et bidouilleurs dégommer ChromeOS (commandes logicielles ou switch matériel), dans mon cas rien n’y a fait.

GNUtoo connaît bien Coreboot : ses deux laptops Lenovo l’utilisent, il contribue au projet, et c’est une vraie brutasse technique à des années lumière des humains, à tenter de libérer tout ce qu’il touche : son téléphone tourne sous Replicant, il a même tenté de flasher le firmware d’un fer à souder parait-il (et non, je n’ai pas écrit cet article un premier avril). J’avais évoqué qu’étant donné l’échec de toutes les tentatives habituelles pour le déplomber, j’étais passé à l’étape supérieure, pour être plus précis, c’est GNUtoo qui a commencé à monter en gamme, avec une première tentative de recompiler le coreboot en l’état, et à l’injecter en se branchant matériellement sur la puce qui gère son stockage, qui s’est soldée par un échec. Loin de le décourager, je lui ai laissé la machine pour qu’il puisse s’en occuper plus longuement, et même si la machine était définitivement perdue, en apprendre le plus possible restait intéressant.

Alors si vous êtes suffisamment tordu, son cheminement complet est résumé sur cette page. En très résumé, Il a fallu tenir compte d’une spécificité dans le partitionnement du Coreboot d’origine, et pour avoir un clavier fonctionnel au démarrage, il a embarqué avec Coreboot une version de SeaBIOS modifiée pour fonctionner avec des Chromebook justement. Sa particularité actuelle est de ne supporter que le boot sur USB, ce qui est déjà une victoire en soi puisque c’était ce qu’on cherchait à avoir au départ. Bon par contre, en bon extrémiste qui se respecte il a testé avec Parabola Linux, qui est une Arch dégraissée de tout ce qui n’est pas strictement libre, ce qui veut dire plus de la moitié des pilotes. Et ça s’est ressenti puisque pas de Wi-Fi, pas de son, pas de touchpad. Mais bon, ça, comment dire, je commence à avoir l’habitude.

Le samedi même, j’ai tenté d’installer une Ubuntu 16.04.05 (iso utilisée pour faire des tests sur powerline.bash), parce que c’est ce que j’avais sous la main, et le touchpad et le Wi-Fi sont fonctionnels. J’ai évidemment zappé le coup du /boot sur USB, ce qui veut dire que ça ne démarre pas dessus, mais quand j’ai voulu redémarrer sur ma clé Ubuntu pour refaire l’installation, celle-ci n’a jamais voulu redémarrer, systemd reste coincé sur une tâche sans limite de temps d’exécution. J’ai lâché l’affaire, étant déjà bien occupé sur le Macbook dont vous avez pu lire la situation si vous êtes un habitué, j’ai préféré revoir ça à la cool chez moi.

Je me suis finalement tourné vers Manjaro, tout le monde tombe d’étonnement devant ce choix, pas tant que ça en fait vu que c’est celui que j’ai fait il y a un peu plus de cinq ans désormais, et que je n’ai pas l’intention de m’en débarrasser. Lui a démarré sans problème en mode live, et ce coup-ci j’ai pu partitionner comme il faut, avec un /boot sur une clé USB, ainsi que le chargeur de démarrage GRUB dessus. C’est un setup intéressant finalement, si je retire la clé, on ne peut plus démarrer la machine, enfin si mais pas l’OS, une forme de simili-sécurité, pour peut qu’on ajoute le chiffrement. Une fois démarré on peut retirer la clé USB (penser à démonter le /boot avant), attention tout de même en cas de mise à jour à bien la rebrancher et monter la partition au bon endroit.

[seboss666@seboss666-gnawty ~]$ lsblk
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda            8:0    1 14,9G  0 disk 
├─sda1         8:1    1    1G  0 part /boot
└─sda2         8:2    1 13,9G  0 part 
mmcblk0      179:0    0 14,7G  0 disk 
├─mmcblk0p1  179:1    0    3G  0 part [SWAP]
└─mmcblk0p2  179:2    0 11,7G  0 part /
mmcblk0boot0 179:8    0    4M  1 disk 
mmcblk0boot1 179:16   0    4M  1 disk 
mmcblk0rpmb  179:24   0    4M  0 disk

(un partitionnement un peu complexe, mais qui fait le taf)

Résultat, presque tout fonctionne : le Wi-Fi (j’avais zappé mais super bonne nouvelle ça supporte le Wi-Fi AC), le clavier qui est reconnu comme un azerty standard (quelques touches en moins évidemment), le touchpad. Par contre, le son, s’il parait présent, n’est en fait pas correctement détecté. Mes recherches préliminaires semblent montrer que je n’ai pas fini d’en chier apparemment, mais bon, après tout ce n’est pas son premier usage, donc j’ai le temps de trouver une solution si toutefois elle débarque. Pour info, j’utilise le noyau 4.14 actuellement, et c’est le seul problème que j’ai. Mais c’est tout de même dommage les enceintes embarquées sont de très bonne qualité.

Dernière note, quand je vous avait fait la présentation de la bête dans ma réflexion sur l’usage d’un tel appareil, j’avais indiqué un certain niveau de matériel, et notamment 32Go de stockage, il s’avère que les présentations trompeuses d’Amazon, doublées de mon manque de vigilance à la commande, font que je n’ai que 16Go, en allouant 3Go au swap (avec un Firefox à l’embonpoint facile, c’est préférable), il ne reste qu’un peu plus de 12Go, et une fois Manjaro et quelques logiciels installés, et en retranchant l’espace réservé (j’ai juste 400Mo de gagné en descendant à 1%), la conso est déjà de 70% (en comptant le 1.5Go de cache de pacman). Je vais donc devoir être très vigilant et profiter au max de stockages externes dès que je peux.

It’s alive !!!

Donc pour conclure, et ça m’emmerde de le dire, évitez les Chromebook autant que possible. Le contrôle que vous pourrez avoir dessus est trop aléatoire, et une fois libéré vous ne serez pas à l’abri d’un souci avec le bon support du matériel. Et comme je l’ai dit ça m’emmerde, parce que souvent les Chromebook sont des bécanes particulièrement bien équilibrées à prix très contenu, avec une autonomie de dingue et une qualité de fabrication pas dégueulasse. Et le mien a cet autre avantage d’avoir un écran de très bonne qualité, mat. Et surtout, tout cet article ne serait pas possible sans GNUtoo, que je ne sais pas vraiment comment remercier à sa juste valeur pour tout le travail qu’il a fourni pour améliorer Coreboot et me permettre de reprendre le contrôle du matériel. Mais après tout, comment remercier une personne qui trouve le moyen, un samedi soir post PSL, quand tout le monde déguste de la bière par pinte, de se commander un chocolat chaud ? 🙂

Pitié, laissez les Macbook d’Apple dans leur coin

dimanche 7 avril 2019 à 10:30

Lors du Premier Samedi du Libre de ce début d’avril, j’ai eu à m’occuper d’un MacBook Air de 2015, qui avait déjà été « libéré » avec une installation de Debian 9 quelques mois avant, mais dont il manquait encore quelques morceaux. Et le constat est le suivant : lâchez l’affaire avec les machines Apple pour y mettre du Linux, prenez autre chose.

A une époque, Apple a presque été Linux-friendly, en proposant BootCamp, que l’on peut décrire comme un mécanisme permettant nativement l’installation d’un autre OS à côté de MacOS, le système maison. Mais ça, c’était avant, donc maintenant il faut bricoler comme un porc pour installer autre chose. Et le support du matériel, c’est pas encore ça.

La personne vient nous voir parce qu’il lui manque encore des choses. Sans blague. La première question porte sur la webcam. Dans un premier temps, vu qu’on est sur un noyau qui date pas mal, je me dis naïvement que basculer sur un noyau plus récent fera l’affaire. La manière la plus simple de procéder est d’installer les backports, rétroportage en bon françois, qui sont, pour Debian, un moyen de récupérer les paquets de la prochaine version mais pour la version en cours. On passe ici d’un noyau 4.9 à 4.19, un sacré bon en avant.

Pas de problème particulier au reboot, mais toujours pas de webcam détectée, pire, le Wi-Fi a disparu. Ah ben oui, c’est un Broadcom, on retrouve donc le même problème que pour les machines Dell, le support passe par la récupération à la main du firmware binaire et la compilation manuelle du pilote, sachant que c’est associé à la version du kernel, donc raté. Au passage, l’installation du kernel 4.19 m’a installé également apparmor, je ne connais pas bien ce LSM et ses impacts sur le système, surtout quand il n’est pas installé de base, donc j’ai tout désinstallé et retour à la case départ.

J’attaque donc les recherches. La webcam est identifiée comme une Apple Facetime Camera, pourquoi pas, en effet le support semble misérable, je ne trouve pas grand chose via Qwant et finit par me rabattre sur Google, ou je tombe sur un post de Jean-Baptiste Favre qui a bossé sur un support initial, qui consiste une fois de plus à extraire le firmware binaire, encore lui, de la caméra depuis un package Apple, et à créer le module à injecter dans le noyau pour présenter la webcam aux applications. J’ai donc tenté le coup, et ça a parfaitement fonctionné, juste pensez à lire la doc jusqu’à la fin pour que ça survive à un reboot.

On en vient alors au problème de l’utilisateur, les services, l’usage qu’il en fait. Avant d’installer autre chose que MacOS, il aurait fallu se poser des questions. Bon, Skype est supporté sous Linux, on est face à du simili-Electron, et il s’avère que c’est un problème : si la webcam fonctionne parfaitement dans Cheese, on est face à un écran noir dans Skype. Basculer sur la preview ne change rien. Il s’avère que c’est un bug dans Chromium qui détecte mal les paramètres de la caméra (résolution, fréquence). Un test rapide sous Jitsi Meet dans Firefox montre que c’est vraiment limité à Skype, donc on arrête là et y’a plus qu’à attendre que Microsoft apprenne à faire des applications multi-plateformes sans se reposer sur une merde pareil.

Question suivante : Spotify (attendez c’est pas fini). Bon là même motif, il existe une application native sous Linux, Electron certainement quand on voit la tronche, avec un dépôt pour gérer les mises à jour. En fait l’installateur initial de Debian avait déjà pas trop mal fait son taf, comme pour Skype qui est aussi installé via un dépôt dédié, c’est la meilleure méthode pour pouvoir suivre les mises à jour. Et ça fonctionne parfaitement, donc au moins ça c’est bon.

Et à la fin, on me demande Whatsapp. Là c’est raté, il faut se rabattre soit sur la version web, soit continuer à l’utiliser sur téléphone. Ah non, la personne utilisait aussi Google Photos, elle a tout rapatrié mais la gestion par dossier c’est pas top apparemment (et c’est pas forcément faux). Le temps de conseiller Shotwell, mais comme j’utilise pas j’ai du mal à guider l’utilisation, on verra bien si c’est exploitable pour quelqu’un qui a plus l’habitude.

Reste un tout dernier point : la personne me dit qu’avant elle tenait 12h en batterie, mais qu’avec Debian, ça dépasse rarement les quatre. Ah ben oui, là encore il fallait peut-être se renseigner avant, mais je pense qu’il y aurait un peu de taf à faire, garder le noyau 4.19 et refaire le taf du wifi et de la webcam, installer TLP, ça peut éventuellement se faire plus tard. Les machines Apple sont réputées avoir de l’autonomie uniquement avec MacOS, c’était déjà vrai à l’époque de BootCamp, donc pas de raison que ça change, Apple est justement reconnu pour la parfaite intégration entre son matériel et son logiciel, modifier un des paramètres de l’équation c’est forcément altérer le résultat. Ici on récupérerait certainement pas les 12h, mais 4 c’est certainement trop faible et il serait facile je pense d’obtenir 7h sans trop d’effort, mais le temps était compté.

Faisons donc un bilan : le « client » n’a pas fait l’inventaire de ses usages (propriétaires) avant de savoir ce qu’il allait perdre, on ne l’a pas forcément bien guidé sur le sujet, n’a pas été correctement conseillé sur les dangers de virer MacOS (autonomie, support), n’a pas été correctement conseillé sur la distribution, car pour moi une Ubuntu avec un support matériel plus récent et adapté aurait été plus efficace, mais qui n’aurait pas changé la nécessité d’installer manuellement à renfort de compilation le support pour la webcam et la carte Wi-Fi. Il a tout de même de la chance que le reste est stable, et qu’il ne manque pas grand chose au final à ses besoins. C’est un exemple parfait de ce que je déteste dans le monde des « installateurs » dans ces évènements, qui ne pensent pas à l’utilisateur, celui qui est perdu face à tout ça.

J’ai repris un des participants sur le sujet d’ailleurs : une personne fraîchement sortie d’une formation en développement web qui demandait de l’aide pour créer des Github Pages. « Mais ça devrait être évident elle est dev web, elle connait les outils », ben non, pas automatiquement, surtout Github Pages qui est une fonctionnalité que peu de développeurs utilisent face à la masse d’utilisateurs du service et les millions de dépôts qui le peuplent. Par contre la documentation devrait être facile à suivre, donc soit la formation était mauvaise, soit je pense que la personne était en reconversion et que donc formation ou pas, certains éléments et outils comme Git et par extension les Github Pages, ce n’est pas automatique ou facile à utiliser quand on a déjà du réapprendre à son cerveau à encaisser de nouvelles connaissances parfois sans rapport avec son activité précédente. Et c’est loin d’être évident, il faut donc rester compréhensif, ne pas juger la personne, analyser ses blocages, et l’accompagner. Le problème dans ce cas n’est pas technique, il est humain.

Comme j’oscillai entre mon utilisateur de Macbook et mon propre Chromebook que j’ai enfin récupéré (article à venir, c’est incroyable ce que GNUtoo a du subir pour y arriver), je n’ai pas pu me pencher sur le sujet, j’aurais apprécié justement ce qui aurait permis de confirmer d’où venaient les difficultés (et apprendre à utiliser les Github Pages au passage).

Bref, pour en revenir au titre, si vous devez choisir un ordinateur portable de qualité, qui tienne la route en batterie et que vous souhaitez l’utiliser sous Linux, laissez tomber Apple, d’autres fabricants sont plus accessibles déjà financièrement parlant, et avec une qualité de matériel tout aussi respectable (malgré plus de plastique). Je pense évidemment à Lenovo pour être propriétaire d’une de leurs machines, qui me satisfait pleinement au quotidien, mais il n’est pas seul (je suis passé par Acer puis LDLC, j’avais eu un peu de difficultés avec mon HP de 2006), le seul mot d’ordre est d’avoir une machine qui a idéalement entre deux et trois ans, certes c’est pas toujours la panacée pour la batterie qui a déjà du vécu, mais pour s’assurer un support le plus complet possible sans bidouiller, c’est nécessaire, car à moins d’être suffisamment calé pour utiliser ArchLinux ou un de ses dérivés, qui propose en permanence les dernières versions des logiciels, noyau en tête qui est la colonne vertébrale du support matériel, et donc permet un meilleur support (et encore, je pense à Tonton Fred qui a pleuré pendant quelques mois pour avoir la carte graphique Radeon de son nouveau PC parfaitement stable, et pourtant AMD est un bon élève de l’open-source), à moins donc d’utiliser Archlinux, il faut batailler parfois pour avoir un support au moins stable de toute la bécane; et encore, la situation maintenant est bien meilleure qu’il y a dix ans.

Et si vous n’êtes pas convaincu qu’une machine récente sous Linux c’est pas la joie, je vous laisse relire l’épopée de La Vache Libre, dont le nouveau PC lui aura redonné le goût de ce qui m’a fait découvrir son blog, le partage d’applications confidentielles mais diablement pratiques pour nos OS réfrigérés 🙂

Teaser : on va libérer du routeur

mardi 2 avril 2019 à 18:30

Cela fait longtemps que je n’ai rien posté et en même temps, la plupart des brouillons sont au point mort, c’est pas la panne sèche puisqu’il y a 29 brouillons mais pas la motivation pour terminer leur mise en forme (j’ai grosso modo une nouvelle fournée de liens en vrac à  vous proposer et c’est tout). Ceci dit, pour vous faire saliver légèrement, pour ceux que ça intéresse, voici ce que j’ai prévu sous peu.

J’ai en effet à ma disposition non pas un mais deux routeurs relativement anciens mais toujours en parfait état de fonctionnement, et donc candidats au remplacement de leur logiciel interne d’origine par un système à la fois plus récent, plus complet, et parfois plus performant. Le premier est un Netgear WNR3500Lv2, pas forcément le plus sexy des deux, non pas visuellement mais manifestement son support par des outils plus libres est compliqué par un fabricant peu coopératif sur les pilotes. Il propose du Wi-Fi b/g/n sur la bande 2.4Ghz jusqu’à 300Mbps, un switch gigabit 4+1ports, et un port USB. Sinon c’est une brique classique qui peut se poser à la verticale et dont les antennes sont internes, mais qu’on ne s’y trompe pas ce n’est pas un désavantage.

En effet, le deuxième concurrent est un TP-Link WDR-3600, avec deux antennes externes ce coup-ci, et dans la même maison, chacun posé à chaque extrémité et à des étages différents, j’avais plus de mal à m’éloigner du TP-Link que du Netgear. Lui aussi propose du Wi-Fi b/g/n mais sur les deux bandes 2.4 ET 5Ghz, pour un total de 600Mbps. Le switch gigabit et le port Usb sont également de la partie. Et celui-ci s’annonce beaucoup plus simple d’accès pour une libération en douceur.

Je compte donc d’abord vous faire un tour du proprio du logiciel d’origine avant de nous concentrer sur ce qu’on pourra obtenir de plus avec un logiciel proposant un éventail plus large de possibilités, l’un des deux risque de nous donner du fil à retordre manifestement, ça pourra être intéressant.

A bientôt 😉

Duel au sommet

Quelques liens en vrac et en français, 32° édition

mardi 12 mars 2019 à 18:30

Février est passé à une vitesse incroyable. Et on a bientôt bouffé la moitié du mois de mars, qu’on a déjà dépassé le compte pour un nouveau partage de liens. C’est reparti pour un tour 🙂

Et si on tenait compte des utilisateur·ices dans les projets libres ?

C’est un point récurrent que j’ai pu lire plus d’une fois et sur lequel j’ai moi-même parfois hurlé : l’ergonomie des logiciels. Pas que libre, même si c’est le sujet du billet du framablog, mais c’est très souvent le cas, les développeurs de logiciels libres oublient que des êtres humains doivent se servir de leurs créations. Et il serait peut-être temps qu’ils s’en rendent compte.

Récupérer la visionneuse de Windows 7 dans Windows 10

C’est une astuce que j’aurais pu pousser dans les astuces diverses, mais vu que ça a été écrit en français, et par un pote en plus, autant partager son blog, pour les amateurs de solutions Microsoft il y a à mon avis pas mal de trucs à lire qui vous intéressera. Ici, je me suis retrouvé bien con, avec mon Windows 10 écrémé, à ne pas pouvoir ouvrir mes images, car pas d’applications embarquées. Pour l’instant, la visionneuse de Windows 7 est encore présente mais masquée, mais fort heureusement, on peut la remettre en lumière pour l’exploiter.

Grandes surfaces, Laptop, UEFI, Linux, ACPI, Windows10 et Cortana

La Vache Libre ne publie plus très souvent, mais son dernier partage en date est très intéressant pour comprendre à quel point il est compliqué d’avoir un conseil de qualité pour acheter la machine adaptée en grandes surfaces, un choix intéressant puisqu’à mon avis, si on analysait les ventes physiques d’ordinateurs (majoritairement portables), on serait pas loin de voir Carrefour&co en tête, n’en déplaise à Boulanger. Et le constat n’est pas brillant, je rejoins complètement son avis que si un vendeur doit d’abord être vendeur, connaitre les produits qu’on doit vendre est un minimum requis.

La deuxième partie est également très intéressante, puisqu’elle concerne le contrôle qu’on veut avoir sur la machine, et là non plus c’est pas évident, la faute aux constructeurs qui préfèrent lécher la rondelle de Microsoft.

Vers l’automatisation de la censure politique

Lentement mais sûrement, les décideurs politiques cherchent à museler non pas les idées extrêmes, mais bien tout ce qui pourrait les déranger dans leurs positions. Et si Internet aurait pu définitivement libérer les esprits et nourrir les nouvelles idées, ces mêmes décideurs avancent en silence mais définitivement les pièces sur l’échiquier pour faire tomber le roi de la liberté d’expression, avec en complices contraints, les géants américains chez qui la moitié de la planète connectée livrent leurs données plus ou moins consciemment. Pourquoi ? Parce que les outils le permettent.

Keldy Boutique Chez Cyrille Borne

A force de me battre contre les liens morts sur mon blog, j’ai arrêté de partager les articles de Cyrille qui passe son temps à tout détruire. Mais j’ai tout de même envie de saluer l’initiative de la boutique en ligne intégrée, à la fois du soutien de Cyrille, mais aussi du dealer de matos d’occasion, une activité pas suffisamment mise en lumière et qui pourtant permettrait à pas mal de collectivités sans le sou (et elles sont de plus en plus nombreuses), de pouvoir s’équiper et se libérer à peu de frais.

13 tâches cruciales de maintenance WordPress à effectuer régulièrement

Dans l’épisode précédent, j’avais partagé un article sur les mesures de sécurité essentielles à appliquer à un site sous WordPress. Au delà de la sécurité, si on veut garder un site en bonne santé, WordPress demande un peu d’entretien, alors certes vous n’êtes pas forcément concerné par l’intégralité des mesures, mais je suis sur que vous pourriez en appliquer quelques unes.

Qu’est-ce que le mode maintenance de WordPress ?

WordPress toujours, quand vous avez besoin d’intervenir sur votre site et que vous voulez éviter les interactions avec les visiteurs, le mode maintenance est un outil rêvé. On a d’ailleurs eu des problèmes récemment au boulot avec une agence web qui a trouvé le moyen, via une fonctionnalité du thème qu’ils utilisaient, de foutre la page d’accueil du site en guise de page de maintenance. Et de nous demander pourquoi le site ne fonctionnait que quand ils étaient connectés en admin…

Enfin bref, le mode maintenance, quand on fait pas n’importe quoi avec, c’est pratique. Et sous WordPress, il y a plusieurs façons de procéder, je vous laisse choisir la méthode que vous préférerez.

AntBot : le robot fourmi

Depuis plusieurs années, les chercheurs en robotique s’inspirent de la nature, et très souvent des insectes pour leurs créations, car leur biologie est incroyablement optimisée par rapport à leur morphologie. AntBot est l’un des derniers bébés sur lequel bosse le CNRS qui nous en fait un petit reportage vidéo. Et il est tout mimi ce petit robot 🙂

Que les mots deviennent des phrases

Alors qu’on vous dit souvent que ce n’est pas la taille qui compte, il bien un domaine dans lequel ce n’est pas vrai, c’est la sécurité informatique, et en particulier les mots de passe : plus c’est long, plus c’est efficace. Ce billet est donc un plaidoyer pour que nos mots de passe deviennent des phrases de passe. un peu de temps perdu à saisir un passe plus long vaut bien une meilleure sécurité, non ?

Espèce de buveur de Coca-Cola !

L’abus de soda, comme n’importe quel abus d’une substance quelconque, est un problème pour la santé, il n’y a aucune discussion possible sur le sujet. Mais peu de personnes savent encore comment est arrivé en France le plus célèbre des sodas, à savoir le Coca-Cola, et surtout comment il a été combattu par ce qui était déjà le lobby du vin à l’époque. Et autant dire que c’était pas glorieux


Bon j’en ai viré trois pour pas déborder, priez pour que le mois de mars soit calme 🙂

Un Raspberry pi headless, wireless, ip fixe, sans se prendre la tête

vendredi 8 mars 2019 à 18:30

J’ai hésité à l’appeler « la fibre chez ma mère, épisode 5 », puisque c’est la raison première qui me pousse à faire cette installation. Mais après tout, ça pourra servir dans pas mal de situations, donc autant garder le titre générique, j’ai beau me foutre habituellement du référencement il s’avère tout de même qu’une grande partie de mon public vient des moteurs de recherche, sans surprise Google en tête. Et si j’ai décidé de réecrire sur ce sujet, c’est que j’ai rarement voire jamais trouvé dans un seul billet tous les éléments dont j’avais besoin. Du coup c’est parti pour un tour du proprio de la framboise.

J’ai donc décidé de monter un bastion chez ma maman pour pouvoir accéder à distance au réseau. Dans l’immédiat seul le SSH est prévu, au pire si j’ai besoin j’ouvre en mode tunnel et je passe dedans en mode proxy, bref les bricoles habituelles. Une simple redirection de port est donc au programme pour l’instant, et si l’interface client de NordNet est limitée, elle est aussi très peu claire, car par défaut, seul les services standards sont proposés dans une liste déroulante pour être redirigés. Et en mode avancé, le formulaire est cryptique, mais je m’en suis sorti. Je vous laisse lire la documentation sur le site de NordNet pour vous en convaincre.

Reste ensuite à installer ce Raspberry Pi. Je veux le connecter en Wi-Fi, avec une IP fixe, avec le service SSH, tout ça sans avoir à brancher un clavier ou un écran dessus, juste l’alimentation 3A très compacte que j’ai pu acheter sur Amazon pour éviter un nouveau cauchemar de blocs d’alims monstrueux. Ah oui et mettre en place un DNS dynamique, car si pour l’instant l’adresse IP n’a pas bougé j’ai eu la confirmation par le service client qu’elle était susceptible de changer. Et si tout ça n’est pas compliqué à faire, j’ai du chercher les infos à plusieurs endroits. J’ai aussi voulu capitaliser sur mon boulot réalisé avec Ansible sur le déploiement des VMs de mon serveur Pimousse. Voilà donc le programme.

Première étape : installation, SSH, Wi-Fi, IP Fixe, personnalisation

Pour la partie installation, grosso modo vous pouvez suivre le guide de NextINPact. Vous aurez les deux premières parties, à savoir le SSH et le Wi-Fi, mais à cette étape, l’adresse IP du Raspberry Pi est attribuée via DHCP. Soit vous pouvez coller un bail statique sur votre box, sois vous souhaitez avoir plus de contrôle comme moi, donc une étape de plus avant d’insérer la carte dans la bestiole. Sur Raspbian, le réseau est géré par dhcpcd, c’est donc dans le fichier /etc/dhcpcd.conf qu’il faut ajouter quelques lignes à la fin du fichier :

interface wlan0
static ip_address=192.168.5.200/24
static routers=192.168.5.1
static domain_name_servers=80.67.169.12

C’est tout bête. J’en profite aussi, comme je n’ai pas trop le contrôle des DNS sur la connexion pour l’instant, pour lui dire d’en utiliser un propre (merci FDN 🙂 ) le temps que j’en installe un plus sous contrôle. Dès lors on peut démonter le tout, insérer la carte dans le Raspberry Pi, et le brancher, la diode rouge puis la verte devraient s’allumer, la verte clignotant pour indiquer une activité. Laisser plusieurs secondes, surveillez avec un ping par exemple, et quand ça répond, vous pouvez lancer la connexion ssh sur le compte par défaut. Nice.

Après avoir modifié le nom du raspberry pi, et redimensionné la partition, j’attaque l’installation de mon environnement. En effet, les premières étapes de l’installation de Raspbian se font avec un compte par défaut, pi, qui a tous les droits sur la machine et dont le mot de passe par défaut est connu. Il est donc recommandé à minima de le changer (via l’utilitaire raspi-config), voire carrément de supprimer le compte. Et j’ai voulu vérifier à quel point mon playbook dédié au déploiement de l’environnement de mes VMs du serveur Pimousse était fiable. Le playbook en question s’occupe de tout mettre à jour, d’installer et de supprimer quelques outils, de vamper le compte root et de créer/vamper mon compte; enfin, la configuration SSH est un peu renforcée, pas de connexion root ni de mot de passe.

Et ça a tout fonctionné du premier coup, juste petite adaptation, dans mon fichier host_vars j’ai un « ansible_user » adapté à mon template de déploiement de VM, là ce n’était pas le cas, pour pas être emmerdé et juste avant de supprimer le compte, j’ai collé une de mes clés publiques sur le compte pi pour faciliter le boulot d’ansible, et lancé le playbook avec une petite modification :

ansible-playbook -i '192.168.5.200,' deploy_core.yaml -e "ansible_user=pi" -b

Tout s’est déroulé comme prévu, j’ai testé la connexion à mon compte, vérifié la configuation SSH et sudo, dès lors j’ai pu supprimer le compte par défaut, c’est toujours plus simple quand on ne laisse pas les comptes par défaut.

Deuxième étape : OVH, DNS dynamique, tâche cron

Pour la connexion et l’exposition des futurs services, et dans l’optique de mon départ, j’avais déjà enregistré chez OVH un domaine en .ovh pour ma maman, ça coûte une misère et le DNS chez eux est un service qui n’a pas trop à rougir en termes de fonctionnalités. L’une de celles qui m’intéresse en l’occurrence est le dyn-host, autrement dit le DNS dynamique. Vous définissez un utilisateur, ensuite vous déclarez un sous-domaine comme dynamique (attention, il ne doit pas exister au préalable), et la mise à jour se fait via un simple appel HTTP, en mode API donc.

Pour ça, et même si j’ai un poil tâtonné sur la validation du fonctionnement de toute la procédure, j’ai suivi la documentation officielle. Alors eux disent qu’ils ne proposent pas d’outils dédiés, juste la possibilité de piloter en mode API, là comme la fin de weekend approchait je suis allé au plus simple avec un curl. Petit glitch que je compte leur remonter, la documentation mentionne encore l’appel en HTTP, ce qui est affreux, il n’y a pas de redirection vers HTTPS, mais comme celui-ci est fonctionnel c’est le protocole que j’ai conservé dans mon script. Je reprendrai un peu de temps pour le refaire en python soit pur soit via flask (mais ça n’a pas non plus un intérêt de dingue), dans tous les cas, la commande ressemble à ça :

curl --silent -S -H "Authorization: Basic dXNlcjpwYXNzd29yZAo=" "https://www.ovh.com/nic/update?system=dyndns&hostname=${DYN_HOST}&myip=${CURRENT_IP}"

Pour obtenir current_ip, plusieurs possibilités, moi je passe par ifconfig.co, qui a l’élégance d’adapter la réponse au type de client (via le user-agent), donc pas besoin de filtrer la réponse.

Mélangez le tout dans une tâche cron qui se lance toutes les cinq minutes, et laissez cuire gentiment jusqu’à ce qu’on ait des réseaux propres quelque soit l’opérateur (ce qui n’est pas près d’arriver).

Prochaines étapes : j’en sais encore trop rien

Il y aura certainement d’autres choses par la suite, juste avant de partir, j’ai installé docker en mode Swarm, parce que je peux le faire, mais je ne sais pas encore ce que je vais en faire. L’accès au bastion fonctionne parfaitement, ça me fait un point de test indépendant de plus, ça permet aussi d’accéder à certains paramètres de l’interface client qui ne sont accessibles que si on est sur la connexion de l’abonnement.

Je vais certainement utiliser le Pi pour déployer un autre DHCP que celui fourni par la box, seule solution pour pouvoir avoir la main sur les serveurs DNS. En parlant du DNS, il y a des chances qu’un cache soit installé, j’ai déjà évoqué la possibilité de tester pi-hole, je vais très probablement aussi installer un reverse-proxy, je sais pas encore qui sera l’heureux élu, je n’ai pas encore utilisé traefik qui peut vous gérer Let’s Encrypt tout seul, ce qui serait un gros plus par rapport à la solution actuelle chez moi où j’utilise nginx et acme.sh en mode semi-manuel (j’ai scripté la génération du certificat après le vhost créé).

Ça j’ai envie de dire, chacun verra midi à sa porte si l’envie de disposer d’un tel outil vous prend, sur ce, je retourne pleurer sur mon ADSL qui est pourtant déjà bien confortable, mais tellement frustrant quand on passe un weekend dans le 21° siècle #semitroll