PROJET AUTOBLOG


Le blog de Seboss666

Site original : Le blog de Seboss666

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

sshpass, pour ne plus taper le mot de passe de son compte SSH

jeudi 21 septembre 2017 à 18:30

Globalement, que ce soit à titre personnel ou professionnel, l’utilisation de clé privée est la méthode privilégiée pour me connecter via SSH aux différents serveurs sous ma responsabilité. Mais parfois, pour différentes raisons ce n’est peut-être pas possible et le mot de passe reste de rigueur. Mais devoir récupérer un mot de passe stocké quelque part et le copier/coller à chaque fois (les mots de passes sont générés aléatoirement la plupart du temps, c’est dégueulasse à retenir), j’ai cherché à ne plus avoir à les saisir. Et j’ai trouvé.

Un de mes collègues a réussi à utiliser expect. Pour ma part, sans parvenir à comprendre pourquoi, je n’ai pas réussi à le faire fonctionner, du coup, j’ai cherché et trouvé une autre solution : sshpass.

Il est packagé pour la plupart des distributions, ce qui le rend facile à installer. Son utilisation est tout aussi facile : on renseigne le mot de passe dans une variable d’environnement, on lance la commande magique et voilà. Ça, c’est pour la méthode manuelle.

Ce fonctionnement est du coup automatisable facilement. Pour ça il y a plusieurs méthodes, dans les plus évidentes, un script, un alias, ou une fonction. Le script est naturellement à utiliser via un dossier qui est inclus dans le PATH, l’alias ou la fonction seront chargés via le profile ou le bashrc, ou tout autre fichier chargé à l’ouverture du shell.

Pour ma part, j’ai opté pour la fonction, j’ai un fichier .bash_aliases où au final je colle toute sorte de bordel et pas seulement des alias, et vous allez voir que c’est diablement simple :

function server1 {

export SSHPASS='PassWord1'
sshpass -e ssh user@server1.domain.tld
}

La beauté du truc, c’est que c’est ça tient compte du fichier de configuration que j’avais présenté il y a déjà deux ans maintenant et qui m’avait d’ailleurs resservi pour l’installation de mon rebond perso. Il sera donc facile de l’utiliser si vous avez également une ou deux brebis galeuses dans votre parc 🙂

Une série de ressources en anglais

lundi 18 septembre 2017 à 18:30

Vous le savez, avec la série des liens en vrac, je partage quasi exclusivement des articles en français, parce que je considère qu’il y a trop peu de ressources comparé à l’anglais et que j’essaie de participer modestement au partage de ces ressources dans notre belle langue. Et puis je suis en train d’écrémer mes marque-pages Firefox, et je retombe sur toute une série d’articles en anglais. La plupart de ces articles ne me servent plus, mais m’ont permis d’apprendre des choses et d’acquérir le niveau qui m’a permis en partie de décrocher la place que j’occupe aujourd’hui chez LinkByNet (même si j’ai bien pris du muscle depuis mon arrivée). Alors pourquoi ça ne pourrait pas vous servir ? Il se pourrait même que certains vieux routards apprennent encore des choses.

Pour être honnête, il est certainement possible de trouver un équivalent francophone à certains articles que je partage ici, seulement j’ai pas spécialement la motivation de chercher, il s’agit un peu aussi de déporter certains liens que je vais supprimer de mes marque-pages. Si vous êtes motivé pour partager les articles hérités de Molière, on a les commentaires pour ça, et vous aurez un gros merci (je vous épargne le bisou du nounours) 🙂

Les titres sont les liens

10 commandes nmap que chaque admin devrait connaître

Bon j’avoue j’utilise pas tout, il faut vraiment baigner dans les problèmes réseau pour en avoir besoin quotidiennement.

Awesome SysAdmin

Certaines des ressources ont pu me servir en fonction de mes besoins, et c’est un dépôt Github, vous pouvez cloner, forker, contribuer…

htaccess

Un autre dépôt Github qui contient une tétrachiée de snippets pour Apache (c’est marqué htaccess, mais il y a peut-être moyen de moyenner dans le vhost directement pour gagner en perf). J’avais trouvé à une époque un équivalent pour Nginx, mais il n’était plus maintenu. Je n’ai pas spécialement la motivation pour en relancer un moi-même, mais si vous êtes motivés…

Identifier et corriger les requêtes lentes d’une base de données WordPress

Mon premier contact avec de l’analyse au niveau de MySQL. Avec un WordPress qui supporte un quart des sites web dans le monde, ça reste tout à fait d’actualité.

La conception de schéma MongoDB comparé à la conception de schéma dans MySQL

Une de mes premières lectures quand j’ai abordé mongodb pour la première fois, très intéressant et a nourri ma réflexion pour le début d’API que j’avais fait avec Bottle.

rt6_redirect: source isn’t a valid nexthop for redirect target

J’ai toujours des pépins avec IPv6, celui-ci n’était pas le plus grave mais pour régler ce problème qui me pourrissait les logs, voilà.

How to backup and restore MongoDB

Un article tout à fait logique quand on s’intéresse à MongoDB, sur toute technologie de stockage de données d’ailleurs.

Que signifie le f dans les logs rsync

J’ai mis du temps à me sentir à l’aise avec rsync, et c’est un outil assez puissant (il me sert d’ailleurs actuellement pour la migration d’une quinzaine de machines pour un client de longue date). Mais certaines options sont mal documentées, heureusement les nolife de StackOverflow sont là pour rattraper le coup. Ici, comment interpréter la sortie du -i de rsync, diablement pratique pour savoir pourquoi il décide de synchroniser un fichier.

Mozilla SSL configuration generator

Un outil plus que jamais nécessaire, le chiffrement des communications Web étant amené à prendre de plus en plus d’importance. Malheureusement, seuls les outils open source sont supportés, et j’ai été bien en peine lorsqu’on me demandait de générer une séries de règles à destination de IIS.

10 des meilleurs plugins de 2017

Le fondateur du site Pixabay est apparemment un fan de WordPress. Via le blog du site, il recense quelques plugins que certains reconnaîtront, puisque j’en utilise certains et en ai proposé d’autres à des utilisateurs du CMS (oui, cet article est récent comparé aux autres, mais plusieurs sur le sujet étaient morts, et celui-ci est une jolie mise à jour).

Fabriquer une batterie géante pour sa maison ? C’est possible !

vendredi 15 septembre 2017 à 18:30

Je suis quelqu’un qui suit de pas trop loin l’actualité sur les énergies dites renouvelables, et notre transition du pétrole vers l’électricité dans différents domaines. Et si j’utilise un onduleur pour une partie de mes équipements informatiques (j’utilisais, pour l’instant je n’en ai pas encore récupéré un nouveau fonctionnel), je n’en suis pas encore à produire ma propre énergie, et donc pas besoin de la stocker. Si l’annonce du Powerwall de Tesla m’avait enthousiasmé, le fait que personne ou presque ne suive et sa rareté (il n’a été produit qu’en peu d’exemplaires par rapport à une demande potentielle énorme), ont poussé certains à innover, avec un bonus en prime.

Rappel du principe du Powerwall : si vous disposez d’une source personnelle de production d’électricité, typiquement panneau solaire ou mini éolienne, plutôt que de perdre ou de reverser ce qui est produit et que vous ne consommez pas (typiquement dans la journée pendant que vous êtes absent), vous le stockez dans une batterie, fixée à un mur (d’où le « wall »), pour l’utiliser quand vous en avez besoin. Exactement comme avec votre ordinateur portable que vous gardez branché la plupart du temps mais dont la batterie stocke l’électricité nécessaire au fonctionnement de la bête lorsqu’on le déplace loin d’une prise.

En France, les unités de productions « personnelles » comme les panneaux solaires et les éoliennes coûtent encore super cher, ne serait-ce que parce qu’ils sont rares, ce qui limite le marché aux propriétaires les plus fortunés. Ne serait-ce que parce que l’état propose peu de support au financement (souvent sous forme de crédit d’impôt, mais super faible), et que dans ce cas on vous oblige à reverser dans le réseau de distribution électrique national la puissance non consommée avec une promesse de rachat à prix intéressant, mais qui ne couvre même pas les besoins d’entretien du « producteur ».

L’annonce de Tesla était donc pour moi annonciatrice d’une libération pour les maisons individuelles souhaitant s’émanciper d’un réseau de distribution électrique parfois capricieux, souvent délabré (surtout en zone rurale, comme chez ma mère par exemple). Mais j’ai vite déchanté quand j’ai vu la petitesse de la production, et que finalement peu de constructeurs concurrents ont suivi, ou en tout cas, toujours à des tarifs de tarés, bien que je sois conscient qu’une batterie coûte encore cher à produire. Tesla lui-même repose maintenant son activité dans le domaine sur un modèle plus gros, mais aussi beaucoup plus cher, pour pouvoir soutenir la recharge rapide de ses véhicules toujours plus populaires.

Et je suis tombé sur ce long article en anglais de Motherboard, qui parle d’une communauté grandissante de personnes qui ont décidé de fabriquer eux-même leur batterie résidentielle, tout en pratiquant le recyclage. En effet, les personnes rencontrées récupèrent les cellules de batterie des millions d’ordinateurs portables jetés à la poubelle chaque année pour les assembler en une grosse unité, non sans avoir testé l’état de ces mêmes cellules pour éviter entre autres des problèmes en cas de surcharge ou tout simplement de fin de vie. Rien que le fait de s’affranchir finalement d’un constructeur qui facturerait au prix fort tout en utilisant des technologies propriétaires sur lesquelles on ne peut avoir de contrôle me plaît déjà, et ajouter le petit geste environnemental en prolongeant la vie d’un élément particulièrement polluant de nos appareils préférés est un bonus très appréciable.

Oui, ça ressemble à un gros stock de piles

De plus la conception permet le plus souvent de détecter et de remplacer facilement chaque cellule pour garantir un fonctionnement en sécurité. Et pas question que chacun garde son savoir pour lui : c’est vraiment une communauté qui s’est construite via le web pour partager à la fois les modèles de construction, les outils de surveillance, mais aussi tout un réseau de collecte et de distribution des cellules. Bien sur, c’est principalement aux USA, vu que le site est américain, que sont présentées les personnes qui forment cette communauté, et je n’ai pas trop réussi à savoir si un équivalent francophone existait.

N’empêche, que ce soit en France ou dans d’autres pays, et là je pense à l’Afrique, imaginez qu’on puisse faciliter justement la fabrication et l’exploitation de ce genre de dispositif : l’utilisation de production d’électricité de manière locale est déjà très souvent nécessaire, parce que les infrastructures « nationales » sont presque inexistantes et très souvent en sous-capacité; et si la production à grande échelle est déjà en souffrance, que dire de la distribution, donc pouvoir stocker au plus proche des besoins l’électricité produite est tout aussi vital. En France les zones rurales sont toujours plus désertées par les acteurs publics qui sont de plus en plus privés et privilégient de plus en plus les zones qui leur permettront de remplir les poches de leurs actionnaires de plus en plus gourmands, et l’état des infrastructures nécessite de trouver des alternatives, comme en Afrique (voilà où on en est rendu).

Je n’ai malheureusement pas trouvé pour l’instant de ressources aussi organisées dans notre pays, ou à tout le moins francophone (il est possible que j’aie mal cherché, hein). Il est probablement aussi compliqué d’installer et surtout d’assurer un tel équipement chez soi, la France étant un pays particulièrement rigide sur le sujet, quand certains états aux USA sont beaucoup plus permissifs et donc laissent le champ libre à ce genre d’innovation venue de particuliers.

En tout cas, si la langue de Shakespeare ne vous rebute pas, prenez le temps de lire l’article en entier c’est super intéressant. Je me prend à rêver que ça grandisse en France, avec une production électrique qui ne dépendrait pas d’énergies fossiles ou surtout nucléaire, et de nouveaux usages n’entraînant pas une nouvelle source de pollution comme l’humain moderne sait si bien le faire…

L’image que j’ai utilisé dans l’article est extraite de l’article originale, vous trouverez les crédits photos là-bas.

Quelques astuces diverses, huitième

mardi 12 septembre 2017 à 18:30

Contrairement à ce que beaucoup de monde a pu constater, il n’a pas été question de ralentir au niveau du boulot. J’ai donc de nouveau un petit batch de bricoles à garder dans un coin si besoin 🙂

Bloquer ICMP timestamp

Lors d’un rapport Qualys VM, j’ai découvert qu’il y avait un aspect d’ICMP qu’il était préférable de bloquer, car devenu inutile : l’ICMP timestamp. Sous Linux, avec iptables on a la possibilité de le faire :

iptables -A input -p icmp --icmp-type timestamp-request -j DROP
iptables -A output -p icmp --icmp-type timestamp-reply -j DROP

J’ai moyennement compris les implications (potentiellement sur de la crypto, mais c’est un peu ancien), je vous laisse chercher.

Erreur au redémarrage de MySQL après une modification de innodb_log_file_size

Si vous faites une telle modification et que ça vous pète à la gueule :

InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 268435456 bytes!
100118 20:52:52 [ERROR] Plugin 'InnoDB' init function returned error.
100118 20:52:52 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
100118 20:52:52 [ERROR] Unknown/unsupported table type: InnoDB
100118 20:52:52 [ERROR] Aborting

Il faut supprimer les fichiers ib_logfile0 et ib_logfile1 qui se trouvent par défaut dans /var/lib/mysql. Ça ira beaucoup mieux, et il recréera automatiquement les fichiers à la nouvelle taille.

Un assistant pour les feignants qui ne font pas leur règle DMARC à la main

Comme moi quoi, voilà si vous avez besoin de mettre en place une telle règle et que votre client ne sait pas comment faire (et vous pas trop), je suis tombé sur ce petit assistant en ligne, qui vous permettra de faire ça simplement.

Calculatrice en ligne de commande

Besoin de faire un calcul rapide, genre un pourcentage, et pas d’interface graphique ni de smartphone sous la main ? Pas grave, tout est prévu sur nos bons vieux OS :

server1:~$ echo 'scale=2;425/500' |bc
.85

Pour avoir un aperçu des possibilités de bc, c’est par là (en anglais).

Variable d’environnement sous Nginx

Avec Apache via mod_env, SetEnv permet de définir une variable (souvent utilisé avec certains frameworks comme symfony). Sous Nginx, pour PHP ça se fait via une directive fastcgi_param :

fastcgi_param APP_ENV preprod;

On a ensuite accès à cette variable via la variable $_SERVER['APP_ENV'].

Importer un dump mysql avec clés étrangères (cas d’un prestashop)

Je ne débattrai pas aujourd’hui de la saleté que représente Prestashop, mais c’est lui qui m’a amené à m’approcher des clés étrangères dans MySQL (je connaissais le terme, moins leur usage). Si jamais vous faites un dump qui contient des directives drop table if exists, ça gueulera à l’import. La solution, désactiver temporairement la vérification des clés étrangères :

SET FOREIGN_KEY_CHECKS=0;
SOURCE /pathToFile/backup.sql;
SET FOREIGN_KEY_CHECKS=1;

Rediriger un domaine spécifique vers HTTPS sur haproxy

Haproxy est particulièrement souple à l’usage, j’ai occasionnellement l’opportunité de m’en rendre compte. Dernièrement, sur une IP qui doit porter plusieurs sites, je devais effectuer une redirection HTTPS uniquement pour un domaine en particulier. Voici la configuration et les directives que j’ai utilisé :

frontend VIP-CLIENT-1
bind 1.2.3.4:80
bind 1.2.3.4:443 ssl crt /etc/haproxy/ssl/bundle-client.pem
mode http
http-request add-header X-Forwarded-Proto https if { ssl_fc }
redirect scheme https code 301 if { hdr(Host) -i domain.tld } !{ ssl_fc }
default_backend BACKEND-CLIENT-1

Pourquoi le faire au niveau d’Haproxy ? Toujours gérer ce genre de redirection au plus haut de la chaîne de connexion.

Extraire le log git pour un dossier particulier

Un client qui gérait tous ses sites au sein d’un même dépôt git (c’est très con, on est d’accord), cherche malgré tout à conserver un historique des modifications effectuées à une arborescence précise. S’il est impossible de réimporter tout l’historique (ou alors j’ai pas encore trouvé), en manipulant les options de git log on peut arriver à peu près à un gros journal :

server1:/home/www/site1$ git log --oneline --decorate --full-diff --full-history --no-abbrev-commit -p ./ > /home/git_log_site1.log

Dans mon cas, ça a donné un gros bousin de 500M.

Vérifier la propagation DNS à travers le monde

Sans prendre en considération les problèmes divers de cache qui se posent régulièrement, il est tout de même possible de vérifier si une modification de zone a bien été prise en compte pour une grande partie du monde, grâce à ce service bien pratique.

Récupérer les infos techniques d’une IP au format JSON

Encore un autre service en ligne bien pratique, gratuit dans une certaine mesure (le service n’est pas libre), permet d’identifier rapidement via curl l’origine d’une IP trouvée dans des logs web par exemple :

root@vox:~# curl ipinfo.io/91.121.61.180
{
  "ip": "91.121.61.180",
  "hostname": "vox.clantoc.org",
  "city": "",
  "region": "",
  "country": "FR",
  "loc": "48.8582,2.3387",
  "org": "AS16276 OVH SAS"
}

Vous découvrirez des choses étonnantes parfois (serveurs compromis, clients infectés, robots d’indexation étranges…).

Où en est F-Droid aujourd’hui ?

samedi 9 septembre 2017 à 10:30

Je vous ai présenté il y a un an le « magasin » d’application F-Ddroid, alternative au Google Play Store qui propose quasi exclusivement des applications open-source, parfois bien plus légères, efficaces, et respectueuses que la multitude habituelle. Je continue de l’utiliser personnellement, mais j’ai pu voir quelques évolutions qui, individuellement, ne m’avaient pas choqué, mais qui commencent à se voir.

La première chose qui ne m’avait pas plus choqué que ça, j’évoquais à l’époque VLC dont la version proposée n’était pas une version stable, entre temps la proposition de mise à jour a disparu. Puis est venu WordPress, pareil, plus de mise à jour proposée via F-Droid, le Play Store ayant de toute façon pris la relève, ce n’est pas grave en soi. Et puis ce fut le tour de Firefox. Tout ça fut plutôt silencieux puisque la boutique de Google est là pour faire le taf.

Et puis il y a eu la refonte du site. Exit WordPress, bonjour Jekyll. En soit rien de forcément transcendant (un site statique est tout de même moins gourmand qu’un site dynamique), si ce n’est que TOUS les liens que j’avais postés se sont vus exploser en vol (rappel, je sais quand un lien pète sur mon site), et qu’aucune redirection n’a été mise en place pour assurer un tant soit peu le référencement. Quand j’ai commencé à vouloir réparer, il n’y avait même pas de moteur de recherche pour pouvoir retrouver mes petits ! Ce moteur de recherche est arrivé bien plus tard et j’ai pu remplacer quelques liens. Pas tous. Et j’ai cherché pourquoi. Et j’ai trouvé. Et c’est pas jouasse.

J’ai commencé par VLC. Ca m’a permis de comprendre un peu mieux comment cherche à fonctionner F-Droid : aucun soft n’est proposé s’il n’est pas possible pour eux de le recompiler eux-même. Problème, apparemment, il faut quelque chose de récent pour compiler VLC pour Android, et les gars d’F-Droid utilisent un serveur à base de Debian Stable, qu’on sait réputé pour l’ancienneté des logiciels utilisés. Ambiance…

Pour Firefox, F-Droid faisait déjà une exception, ils ne compilaient pas eux-même mais proposaient juste un « mirroir » du fichier APK que distribuait Mozilla. C’était la seule exception qu’ils ont fini par dégommer, mais pourquoi ils ne cherchent pas à compiler eux-même, mystère; mais je pense qu’on retombe dans le même souci que pour VLC, d’autant plus avec la transformation du panda roux en cours vers les composants Quantum. La seule « solution » proposée par certains, utiliser ffupdater, un petit utilitaire qui va récupérer l’APK sur le site officiel. Pas super user-friendly tout ça, ni très intégré, aucune mise à jour automatique n’est proposée.

Pour l’application WordPress c’est pas mieux, mais pour le coup tout n’est pas nécessairement de leur faute : si les sources sont disponibles, et si intrinsèquement c’est pas impossible de compiler, l’application nécessite des composants non-libres dont la licence empêche leur distribution au plus grand nombre, et donc empêche F-Droid de faire son travail. Les implications sont dépendantes du type d’installation que vous utilisez : la version toujours disponible sur F-droid ne peut plus se connecter qu’à un blog auto-hébergé et plus à wordpress.com, mais les fonctionnalités sont du coup bien en arrière, et rien n’en garantit la stabilité ou la sécurité. A vous de voir.

Dans le même esprit, si Telegram est toujours disponible, le message bien en rouge pour vous faire peur indique que tout n’est pas libre. Mon dieu mais quelle horreur, à chaque installation un chaton mort !

Tout n’est pas non plus noir dans le tableau, certaines pépites comme GadgetBridge et Termux sont toujours de la partie, et comme je l’ai dit, il est possible de trouver des applications tout à fait fonctionnelles sans annexes inutiles ni autorisations délirantes. J’y ai par exemple trouvé CSipSimple, pour gérer ma ligne de téléphone « fixe » Free (pour m’appeler chez moi, quand je suis pas chez moi, magie). L’application F-Droid elle-même est mise à jour régulièrement, cherchant notamment à mieux présenter les applications.

Mais combien de temps ça va tenir ? En effet, le principal contributeur a décidé de lever le pied, et il touchait à vraiment beaucoup de choses sur le projet. Certes il y a des gens pour prendre la relève, mais est-ce qu’elle sera aussi efficace ?

Cette volonté de proposer uniquement des logiciels qu’on peut compiler soi-même est louable, mais ça exclue directement ceux qui sont un peu entre-deux, et pire, cette forme d’extrémisme à ne pas adapter ses propres outils et venir pleurer que ça ne compile pas n’est pas fait pour aider les choses (alors qu’un Ubuntu LTS permet un support plus facile des technos récentes, en étant tout aussi stable, sur la même durée, sur la partie x86 s’entend). Pour certains paquets, comme Firefox, continuer à les afficher n’est pas une bonne chose d’un point de vue sécurité, car la version n’est plus maintenue.

Tout ça ne participe pas à rendre l’outil populaire, puisqu’il manque beaucoup de logiciels populaires sur d’autres systèmes et qui attirerait certainement du monde. Là, on est obligé de continuer à s’appuyer sur le Play Store de Google pour fonctionner, ou à bricoler comme des cochons (rappelez-vous ce que j’ai fait pour récupérer les firmwares du Mi Band 2) ce qui n’est pas l’objectif recherché d’un magasin d’applications. Déjà qu’on doit bricoler dans les options pour l’installer ainsi que les applications qu’il propose…

Bref, c’est toujours pas ça, de mon point de vue il y a même plusieurs régressions (pas le site web, lui il est revenu à quelque chose d’exploitable, mais les applications, parfois en lien avec des décisions un peu débiles). On a pourtant cruellement besoin d’un outil de ce genre qui fonctionne proprement, et qui soit attirant surtout, quand le reste du monde Android est dans un état plus que douteux quand on y regarde d’un peu plus près…