PROJET AUTOBLOG


Le blog de Seboss666

Site original : Le blog de Seboss666

⇐ retour index

Est-ce que ça vous dirait de bosser avec moi chez LinkByNet ?

mardi 3 avril 2018 à 12:00

Il n’est pas encore parti que j’en suis déjà triste. Notre trolleur en chef et expert regex Simon nous quitte bientôt, désireux de tenter de nouvelles aventures après plus de six sept ans passés chez LinkByNet, d’abord à la supervision, puis à l’exploitation (en passant je vais probablement lui piquer une doc sur une installation RTMP qu’il vient de terminer récemment pour un client, histoire de partager ça ici). Moralité, étant donné le contexte dans lequel à la fois LinkByNet et notre équipe se trouvent, à savoir une forte croissance, on ne tiendra pas longtemps sans un remplaçant. L’annonce officielle n’est pas encore publiée par les ressources humaines parce que c’est tout frais, mais mon manager m’a déjà autorisé à « prospecter » avec mes propres termes. Une fois n’est pas coutume faisons donc un peu mon Genma et voyons ce que j’ai à vous proposer.

Grosse précision avant de lire : je ne l’évoque à aucun moment, et contrairement à ce que le vocabulaire le laisse penser, homme ou femme pas de restriction, au contraire même je dirais, on manque de cerveaux féminin dans l’équipe, Anh se sent seule 🙂

UPDATE du 27/04 : Je suis en retard, mais c’est fait, le candidat a été sélectionné, ce billet a donc eu son utilité 🙂 Ceci dit, LBN recrute toujours plusieurs administrateurs dans les autres équipes, donc si vous êtes en recherche et intéressé, je laisse la boite mail active pour l’instant, et je ferai passer vos CVs 😉 (j’avais d’ailleurs proposé l’un de ceux que j’ai reçu pour une équipe qui manipule souvent de l’Oracle)

Vous ferez du Linux, mais vous n’irez pas en datacenter

Donc, quel est ce poste qui se libère ? Le même que le mien, à savoir celui d’un administrateur système et applicatifs Linux (sur ma carte de visite c’est marqué Unix, mais dans l’équipe EasyRun on s’est débarrassé du dernier SunOS 5.2 qui traînait). Majoritairement sur du CentOS, mais que ça ne vous fasse pas peur, j’ai moi aussi découvert CentOS en arrivant chez LBN, on prend vite le coup (même si Yum/rpm est encore un peu obscur parfois), c’est du Linux, avec un Bash, on utilise les mêmes serveurs Web et BDD que sous Debian, bref, pas de quoi perdre la moitié de vos cheveux en arrivant dessus. Et puis on a quelques résistants sous Debian voire Ubuntu, si vraiment vous avez besoin de vous sentir à l’aise les premiers jours.

On travaille majoritairement en environnement virtualisé, à la fois sur notre « cloud » maison, baptisé @gile (construit sur VMware, mais aussi tout récemment OpenStack sur lequel je dois encore mettre mes gros doigts), que sur les plateformes Clouds AWS, Azure, et plusieurs solutions OVH (Private Cloud, serveurs dédiés…); y’a aussi Numergy, mais on espère s’en débarrasser à plus ou moins court terme. Dans un futur proche, nos architectes devraient terminer la validation de Google Cloud Platform, et si l’on en exploite pas directement chez EasyRun, on est également présent en Russie, Chine, pour les législations imposant à nos clients de disposer d’infrastructures locales (rêvez pas, c’est la seule raison pour laquelle Microsoft et Amazon s’implantent en France, sinon ils n’en auraient rien eu à foutre). Pour la partie physique, on a une équipe dédiée infra au taquet, donc sauf si ça vous intéresse vraiment à fond, vous n’aurez pas vraiment à vous concentrer dessus 🙂

Un panel de clients particulièrement diversifié, comme leurs plateformes

Le profil et le niveau technique des clients sont très variés, ça va de la fondation, à la boutique en ligne, en passant par l’associatif, l’affichage dynamique, le paiement mobile par SMS, la simple vitrine de société, des services publics, domaine pharmaceutique, finance, immobilier, et j’en passe. Des clients principalement français, mais pas exclusivement, des agences de développement sur toute la planète (Inde, Russie, Tunisie, Madagascar, Ile Maurice, Luxembourg, pour ceux qui me viennent en tête). Parmi quelques références, Microdon, Comité régional du Tourisme Ile de France, La compagnie du Lit, Le Centre Pompidou, Fondation de France, Amnesty International France, Pernod Ricard, Cogedim, Prévention routière, mesbagages.com, SodaStream, Société des Bains de Mer, EuropaCorp, Thomas Cook… La particularité de notre équipe est d’être plus proche, les administrateurs sont souvent directement en contact avec les clients ou leurs agences, avoir un bon contact est donc primordial. Comme le niveau technique est très varié, savoir adapter son niveau de langage est un atout supplémentaire. Certains clients sont presque plus « geeks » que nous, d’autres à l’inverse sont à des années-lumière, ce qui ne les rends pas incompétents sur leur propre métier soit-dit en passant (me demandez pas de pondre un contrat d’assurance). Faites un petit exercice : essayez d’expliquer avec le minimum de termes « barbares » pourquoi un certificat « wildcard » *.toto.fr ne peut pas couvrir externe.projet.toto.fr. Maintenant présentez votre explication à votre maman (sauf si elle est déjà experte dans le domaine évidemment). Elle a compris quelque chose ? Gagné ! (en vrai c’est super relou, si vous n’arrivez pas du premier coup ne fuyez pas, c’est l’exemple piège mais qui m’est déjà tombé dessus deux/trois fois).

Toutes volumétries de trafic également, certains clients font moins de visites que moi (et pourtant je suis tout petit), on croise différents moteurs de sites web, différentes technos, majoritairement du PHP/MySQL mais pas que (vous n’échapperez pas à un peu de Java/Tomcat)… WordPress, Prestashop, Drupal, Magento, et j’en passe; on va du simple site sur plateforme mutualisée Plesk à la dizaine de serveurs voire un peu plus en fonction de la criticité ou complexité de l’applicatif client. Et parce que personne n’est parfait très occasionnellement on a un peu de Windows à faire, pour lesquels on peut avoir des sujets communs (HTTPS, réseau, règles de redirections…), donc un peu de RDP à prévoir. Il va sans dire que Linux oblige, le scripting à minima shell est un prérequis, Python et Perl sont chaudement recommandés, surtout Python, Perl c’est pour savoir lire les outils historiques maison. Pas une expertise, mais une connaissance suffisante pour ne pas avoir peur devant un script à analyser voire débugger –on a des brutasses, mais eux aussi peuvent parfois faire des erreurs–, ou choisir le plus adapté pour remplir une tâche qu’on vous demande d’accomplir, et surtout automatiser.

Moultes missions vous attendent

Chez EasyRun, on a la particularité d’effectuer à la fois les intégrations et l’exploitation des plateformes de nos clients, qu’ils soient existants ou nouveaux. Il nous arrive aussi d’intervenir sur le maintien en condition opérationnelle, quand l’équipe dédiée rencontre des difficultés, par exemple pour cerner un problème sur une plateforme mal documentée (on s’améliore avec le temps, sisi :D), ou tout simplement quand ils sont débordés comme ça peut être le cas lors de pannes majeures (coucou OVH 😡 ). Évidemment nous ne sommes pas experts dans tous les domaines, et il existe des équipes réseaux, sauvegardes, monitoring, sécurité, performance pour vous soutenir ou vous guider sur tout un tas de sujets que vous ne maîtrisez pas nécessairement (je reste peu doué en réseau même si j’ai appris énormément depuis mon arrivée).

Ça c’est pour le présent, l’immédiat. Le futur est plutôt excitant, avec du Docker (déjà en cours pour des nouveaux clients, mais aussi des clients existants), de l’Ansible, pour résumer, de l’automatisation à fond, car c’est un des points clés de notre capacité à tenir la croissance que l’on rencontre déjà actuellement (en 2017 un client qui n’avait que deux serveurs chez nous est passé à plus de 10 pour différents projets, à la fois sur Azure, Amazon, OVH, et rien que cette semaine il nous demande deux nouvelles plateformes). Il y a une réflexion profonde sur la refonte de nos outils de monitoring pour lesquels nous seront forcément mis à contribution afin d’expérimenter, valider, adapter… Plus globalement l’entreprise veut évoluer vers un mode « devops » (le buzzword est lâché), mais je vous cache pas qu’avec un parc de plateformes très « ancienne mode », il faut savoir faire beaucoup plus qu’écrire une définition dans un fichier YAML qu’un binaire en go va lire et marabouter sur un datacenter à l’autre bout du monde sans que l’on sache ce qui se passe réellement sous le capot. Malgré tout, pour des purs sysadmins, cette évolution est je pense nécessaire pour mieux comprendre les méthodes employées par les développeurs et mieux les accompagner, ce qui au final profite à tout le monde.

Si vous vous joignez à moi donc, on a au moins tout ça à faire, sans parler d’innover, encore un autre buzzword, mais qui consiste avant tout à tenter de bousculer nos méthodes de travail, pour gagner en efficacité. Le terme le plus exact, l’amélioration continue, détecter ce qui ne va pas à la fois dans nos process, ceux de nos clients, pour mieux délivrer le service qu’on nous demande, et nous amuser toujours plus aussi parce que si c’était chiant, y’a longtemps que j’aurais décampé 😀 Il y a également un rôle que j’étais censé animer mais que je suis malheureusement trop peu, celui de la mise en place d’outils plus en phase avec le profils de nos clients, sur du test de montée en charge, du transfert sécurisé d’informations comme des identifiants de connexion plateforme, de la centralisation de logs, et tout autre idée qu’on pourrait avoir qui sont déjà présentes au catalogue LBN mais qui ne sont pas nécessairement abordables.

Un cadre à part, l’ambiance vraiment cool

J’arrive toujours pas à vous convaincre ? Parlons d’autre chose que de technique. Je ne peux pas parler salaire non pas parce que je n’ai pas le droit, mais tout simplement parce que je n’ai pas de chiffre à lâcher, et qu’il est modulable en fonction du profil (convention Syntec oblige). Le niveau de diplôme n’est pas une priorité, la preuve, j’en ai pas à part un BAC S et un BEP Logistique — oui, rien à voir avec l’informatique–, mais on souhaite quelqu’un qui a au minimum un an d’expérience, parce qu’avec le boulot qu’on abat actuellement, on n’aura pas le temps de valider les bases, et quelqu’un qui a déjà goûté à des process d’entreprises de manière générale sera plus à l’aise rapidement. L’expérience Jean-Félix a été très gratifiante et je suis content qu’il s’épanouisse sur le cluster e-commerce, mais nous n’aurons pas le temps de réitérer ce succès. Ah aussi, il faut être à l’aise avec l’anglais, avec la montée en puissance de l’équipe vietnamienne et du marché sud-asiatique, et des perspectives en Amérique du nord, on a besoin d’une langue commune et à l’image de l’informatique de manière générale, la langue de Shakespeare fait encore autorité, et tant pis pour les grabataires de la Commission de Terminologie et de Néologie. Pour partager un peu plus de mon expérience et du ressenti, vous pouvez tout proposer, même si tout n’est pas retenu vous serez forcément écouté, il y a une vraie bienveillance entre collaborateurs, vous pouvez discuter d’à peu près tout avec tout le monde, même les patrons, quand ils sont là évidemment parce qu’avec la dynamique qu’on a ces dernières années, ils ne se reposent pas souvent 🙂

Le poste est à pourvoir à Saint-Denis (je sais ça parait pas sexy si vous ne suivez que les infos de TF1, mais honnêtement ça va), dans un bâtiment qui abrite un toboggan–on bosse au bon étage pour l’utiliser 😛 –, un billard, une PS4, un babyfoot, un piano, une salle de sport avec quelques équipements que je vais bientôt mettre à contribution, plusieurs salles de repos à tous les étages. Dans ses valeurs LinkByNet n’oublie pas le bien-être de ses membres : régulièrement divers services son proposés sur site tels que massage, coiffure, nettoyage de voiture… L’entreprise est également impliquée dans le milieu associatif via la fondation LinkTogether, à laquelle vous pouvez évidemment participer si vous êtes sensibles aux sujets environnementaux et/ou éducatifs. Vous aurez droit, à la fin de la période d’essai, de faire du télétravail occasionnellement, très pratique pour les mois qui viennent quand les transports en commun sont paralysés par exemple, ou que vous avez besoin de faire changer votre ballon d’eau chaude –expérience inside 😀

Je pense avoir dit l’essentiel (encore que c’est beaucoup 🙂 ), si vous vous retrouvez en grande partie et que ça vous intéresse, pour me transmettre vos CVs, j’ai créé un alias mail dédié (j’en ai chié, parce que pas de wiki sur notre serveur mail, merci Aro :D) :

lbnjobs chez jobs . seboss666 . info

A vos clients mails !

PS : Si vous passez par le site web et postulez sur l’annonce qui a depuis été publiée après le début de l’écriture de ce billet, n’hésitez pas à dire que vous avez entendu parler du poste grâce à moi (de toute façon en entretien on vous posera la question) 😉

Faire du mail en 2018, c’est une tannée…

lundi 5 mars 2018 à 18:30

Genma m’a lancé un « appât » sur Twitter récemment, sur un petit retour d’expérience d’un point de vue professionnel « sur les mails ». Sujet plutôt large en fonction qu’on doive en envoyer ou en recevoir. J’avais déjà pu évoquer que ce n’était pas évident notamment avec des acteurs privés majoritaires faisant leur loi au mépris des standards et de l’universalité, spoiler alert, c’est de pire en pire.

J’ai cherché le meilleur moyen de découper cet état des lieux, on va le faire en deux grands chapitres, l’envoi d’abord, la réception ensuite, car les deux aspects ne sont pas strictement identiques en termes de problématiques à gérer. Par contre, à me relire, prenez un seau de popcorn, ça va être un peu long.

L’envoi, le cas que je traite le plus

En tant qu’hébergeur et infogérant de plate-forme Web, naturellement je vois plus de mails sortants qu’entrants, d’autant plus qu’on a décidé d’arrêter le service de boite mail qu’on proposait en fin d’année 2017. Il est donc tout naturel que je vous parle d’abord de l’envoi.

La théorie qu’on trouve dans les tutos

Quand un serveur doit envoyer un mail, il doit indiquer une adresse mail d’expéditeur, un site Web va typiquement choisir une boîte sur son domaine. La première étape consiste donc à utiliser du SPF, c’est à dire une directive au niveau DNS comportant la liste des entités autorisées à émettre des mails « depuis » le domaine en question.

La deuxième étape consiste à ajouter une signature cryptographique, le DKIM, au minimum à l’enveloppe. Ce système là aussi repose sur le DNS, qui contiendra la clé publique de la signature, le mail étant de son côté signé avec la clé privée. À la réception la signature est comparée à la clé présente dans le domaine et si ça match, c’est que le mail provient à priori d’une source fiable.

Mais apparemment ça ne suffit pas car les opérateurs majeurs poussent à l’adoption supplémentaire du DMARC, qui repose là aussi sur un champ DNS et permet de définir une politique d’acceptation ou de refus en fonction des résultats SPF et DKIM, et d’indiquer une adresse où envoyer un rapport de ce qui a été accepté ou refusé.

Quand on arrive à la pratique…

En pratique, ne jamais lancer un service sans avoir fait un minimum de vérifications avec des services comme mxtoolbox, mail-tester, isnotspam. Vous risquez alors de découvrir tout ce qu’on ne vous dit pas dans les tutos. A commencer par la réputation de l’adresse IPv4 émettrice (ou plusieurs si vous n’utilisez pas de relai). En effet, de par son aspect majeur, la pratique de l’envoi massif de spam a été pratiqué sur pratiquement toutes les plages d’adresses de la planète. Avec les redécoupages multiples des blocs d’adresses afin de tenter de retarder un peu plus l’inévitable pénurie (vu que personne ne se bouge pour l’IPv6 — oui je sais, moi c’est pas que je veux pas c’est que ça marche quand ça veut bien), il est fréquent, sur une plateforme toute neuve, de se voir attribué une adresse au passé malheureusement trouble, et c’est à vous de faire le nécessaire pour prouver que vous n’êtes pas le responsable du « casier judiciaire » auprès de toutes les listes noires chez qui vous êtes référencé.

Les outils que j’ai mentionné permettent également de comprendre si le contenu de votre mail est litigieux (plusieurs liens, html only, toussa). Ah oui, vous vous offusquez quand on vous dit que Google lit vos mails pour y ajouter de la pub ? Ça fait longtemps qu’ils sont inspectés pour savoir s’ils sont propres, et là, les critères sont complètement arbitraires, même si parfois les infos peuvent se trouver dans les enveloppes, les entêtes du filtrage antispam étant possiblement explicites ou à tout le moins documentés. Parfois, on saura même si une bêtise dans la configuration de votre agent de transport (Postfix, Exim) s’est glissée dans l’enveloppe (reverse DNS pas bon, hostname pas identifiable, ça nous est arrivé plus d’une fois). D’ailleurs si y’a un problème de reverse dans l’enveloppe, Microsoft va vous bouncer et le mail part donc direct à la poubelle (contrairement à Deferred où y’a une chance de rectifier le tire et renvoyer, puisqu’il reste en file côté expéditeur, contrairement au bounce). Joie dans la demeure, parce qu’alors on a que le message d’erreur envoyé par Microsoft sans pouvoir analyser le mail litigieux qui est déjà détruit. Quand je vous disais que c’était des connards…

Vous pensiez que le tableau était déjà noir ? C’est parti pour l’enfer de la gestion « propriétaire » des mails. On va commencer par les outils d’antispam reposant sur leurs propres règles, ceux proposés par des éditeurs de solutions classiques de sécurité (F-Secure, McAfee, Bitdefender et consorts), qui peuvent décider que le mail ne leur plaît pas sur des critères arbitraires. Et s’adresser à eux pour faire lever ce délit de sale gueule sera une vraie chienlit : support à l’étranger, réponse pas systématique… Bon courage avec ceux-là, d’autant que les règles de filtrages peuvent être diffusées à plusieurs de leurs clients, avec donc des effets de bords.

Et c’est juste la partie émergée de l’Iceberg. La nouvelle mode est à l’antispam avec apprentissage machine (ouais une fois les buzzword traduits ça fait moins marketing hein), reposant en partie sur les « retours utilisateurs », ou sur d’autres critères nécessairement flous parce que leur intérêt repose dans l’aspect propriétaire et donc fermé de leur fonctionnement. Là aussi, quand vous êtes un bon élève et qu’on vous envoie en colle sans vous expliquer pourquoi, c’est frustrant, et obtenir les informations pour réparer le tort est toujours pénible, pour les mêmes raisons que dans la partie précédente. Microsoft est devenu le roi à ce petit jeu là, et son autisme quand il s’agit de savoir pourquoi c’est arrivé et comment s’en prémunir est vraiment une purge, bon courage.

Ce que j’ai pu apprendre d’expérience, c’est que si vous n’êtes pas déjà un acteur reconnu opérant du mass mailing, un envoi important simultané sur une destination unique (un Microsoft ou un Google, au hasard, vu les milliards de boites mails qu’il gèrent au quotidien), peut augmenter votre score définissant si vous êtes un spammeur ou pas, quand bien même toutes les adresses de destination ont été volontairement indiquées par leurs utilisateurs. La magie étant de savoir comment vous allez pouvoir être reconnu si vous ne pouvez pas envoyer de mail, du moins pas de ceux que verrons les utilisateurs pour juger d’eux-même si c’est vraiment un spam ou pas, puisqu’ils seront classés par défaut (un renversement de preuve qu’on retrouve dans la loi Hadopi au passage, où vous êtes coupable tant que vous n’avez pas prouvé le contraire). Un prestataire de mass mailing d’un client, lors d’une conférence téléphonique finalement destinée à apprendre au client que les seuls à faire la loi, c’était Microsoft, Google, AOL, Yahoo, nous indiquait que lorsqu’il devait ajouter de nouvelles machines à sa plateforme (et donc de nouvelles adresses IP), il devait les « chauffer », c’est à dire commencer par lui faire envoyer de très petites quantités, et les augmenter au fur et à mesure. Et qu’il passait un temps fou à surveiller le statut de chaque machine de sa ferme d’envoi pour éviter le moindre problème. Regardez comment semble fonctionner Microsoft, les commentaires sont tout aussi édifiants, et encore, ça parle d’auto-hébergement, et ça ne parle pas de la nouvelle boite de réception « prioritaire » censé fonctionner en analysant votre utilisation de la boite fournie (mais qui fout en nom prioritaire des mails sur une boite neuve, sans utilisation…). Dernièrement FAIMaison, un fournisseur d’accès à Internet associatif proposant parmi ses services des boites mail, recommande aussi de quitter Microsoft parce que de moins en moins de plateformes peuvent leur envoyer des mails sans être emmerdés.

Dernièrement, j’ai appris que les plateformes de mail ne voulaient plus de courrier provenant de clouds publics. En tout cas dans l’immédiat, les IP « élastiques » attachées à des instances EC2 sont considérées comme dynamique et à les entendre, c’est le mal; j’imagine que les autres plateformes proposant des instances à la seconde sont dans la même situation. Donc c’est raté si vous voulez vous auto-héberger également hein, les IP ADSL c’est pas bien non plus, même si c’est fixe (déjà quand l’opérateur ne vous interdit pas cette possibilité, n’est-ce pas Orange ?), parce qu’on s’est tapé pendant des années, « grâce » à Microsoft d’ailleurs, des armées de PC Zombies dans les chaumières proposant des pilules bleues de la joie. En soi je peux comprendre ce point, il est vrai que le cout très faible et la très grande facilité de déploiement rend évidemment difficile d’établir une réputation stable pour l’adresse IP, mais c’est toujours dommageable, surtout quand vous avez une instance debout depuis trois ans et que d’un coup on vous dit « non t’es plus en odeur de sainteté » alors que t’as toujours été un bon soldat du mail propre. Ceci dit les solutions existent, chez Amazon une des options est de passer par leur service SES, mais qui a un coût supplémentaire à intégrer dans votre activité évidemment. Vous vous retrouvez donc à payer plus pour pouvoir rendre le même service, on se croirait dans les négociations TF1-diffuseurs en ce moment.

Un dernier point qui échappe à beaucoup de monde tant qu’on s’intéresse pas aux protocoles eux-même, l’échange en clair. Eh oui, le mail est né avant le DNS qui lui date du début des années 80, et tout comme le HTTP, le FTP, et d’autres protocoles historiques, tout est transmis en clair par défaut, donc un intermédiaire peut lire le contenu au passage sans difficulté. Google a commencé en 2017 à marquer et alerter ses utilisateurs quand un courrier a été envoyé en clair, et prévoit cette année d’intégrer ce point dans le calcul de SPAM; j’imagine qu’il ne va pas être le seul à opérer ce changement. Fort heureusement, une fois n’est pas coutume les solutions sont simples à mettre en place, pour ma part j’ai fait pousser 4 lignes sur les serveurs CentOS 6 et 7 de tous nos clients pour utiliser le TLS quand c’est disponible, et ça fait admirablement le boulot à peu de frais, je vous recommande donc de le faire aussi (d’ailleurs faut que je jette un œil à mes serveurs également). C’est même devenu une RFC, autrement dit un standard dans l’univers d’Internet, autant dire que là, personne n’a plus d’excuse d’autant que c’est simple à mettre en place. Car oui, le TLS ne sert pas qu’au web.

Et je pourrais probablement continuer longtemps si ma mémoire n’était pas aussi défaillante. On pourrait évoquer le fait que certains serveurs de mails de destination s’affichent hors-ligne plutôt que de vous dire que vous êtes blacklistés–ou plutôt un filtrage réseau est effectué sur la base des blacklist–, d’autres ne mentionnant pas la raison des refus dans leur réponse (à part juste un « 550 » sans plus de détails, ce code pouvant regrouper plusieurs types d’erreurs, que je vous invite à découvrir ici–en écartant très vite l’horrible message demandant de s’inscrire à une mailing list, ahah).

La réception, l’herbe est-elle plus verte ?

Admettons que vous choisissiez d’héberger et opérer un serveur de réception. Une partie de la théorie est commune avec le paragraphe précédent, car généralement un serveur de réception est aussi utilisé pour répondre, et donc en envoyer (mais d’utilisateur à utilisateur, alors que je présentes les chose plutôt de plateforme web à utilisateur). SPF, DKIM, DMARC, les deux derniers étant un poil plus trickys à mettre en place si plusieurs domaines sont hébergés sur la même plateforme. Idem pour la réputation de l’adresse, ou le chiffrement des communications entrantes et sortantes.

Je ne m’attarderai pas sur les solutions techniques à utiliser, tant qu’il est possible de faire à peu près tout ce que je viens de dire, le choix des outils vous appartient. Là où ça va commencer à être la joie, c’est que par définition, vous allez moins contrôler le contenu du message, ni la sécurité des comptes installés.

On démarre avec les comptes utilisateurs, et la gestion déplorable de leur sécurité. Très souvent, attendez-vous à entendre qu’une boite « s’est fait pirater » pour découvrir que le mot de passe faisait à peine trois caractères, autant dire que soit par un moyen tiers soit par bruteforce ça ne tient longtemps. Dans tous les cas, en dessous de dix caractères c’est pas la peine d’envisager qu’un utilisateur aura construit un mot de passe robuste et unique. Même moi je ne suis pas encore un bon élève de la gestion de mes mots de passes sur les différents services (j’en ai identifié plus de quarante). Si jamais le compte se fait trouer pour procéder à des envois massifs, préparez-vous à devoir gérer le blacklistage de l’adresse du serveur. Je conseille alors d’avoir plusieurs adresses, et de basculer sur une autre (une ligne dans un master.cf de postfix) le temps de faire les démarches auprès des gestionnaires de blacklists une fois les accès sécurisés. Imposer un minimum en termes de taille ou de complexité de mot de passe est toujours compliqué, et je n’ai pas de conseil définitif à apporter à ce sujet pour l’instant. D’autant que si pour les webmails ont peut toujours mettre en place de la double authentification, c’est beaucoup plus compliqué sur SMTP et IMAP qui ne sont pas prévus pour.

Si votre serveur doit héberger un nombre significatif de boites, il faudra probablement mettre des limites de nombres de mails à envoyer en simultanés, pour s’éviter le problème de refus évoqué plus haut en termes de mass mailing. Vous pensez que je délire ? Orange m’a déjà retardé pour la livraison d’un seul mail, en me demandant de réduire la cadence. Un seul. Pareil, pour faire bouger Orange, je vous souhaite bon courage.

Qui dit utilisateurs dit, et je suis désolé de le dire comme ça, incompétence totale. J’ai déjà commencé à aborder le sujet avec la gestion des mots de passe, c’est que le début. Vous aurez à régler les problèmes de quota (parce qu’ils ne sauront pas d’eux-même faire le ménage dans leurs anciens mails), les soucis de flux liés au fait qu’ils sont sur des réseaux bien filtrés de partout, avec leur appareil, le combo étant le wifi ouvert non chiffré avec portail captif, genre celui de la cité des sciences que je déconseille fortement. Ne pas évoquer les soucis de configuration des différents clients serait grossier de ma part, vous allez devenir un expert sur la plupart des logiciels du marché tous OS confondus, même ceux des plateformes que vous voulez éviter comme la peste, afin que votre service soit rendu. Prévoyez une interface la plus facile d’accès et la plus automatique possible pour la réinitialisation de mot de passe, parce que ceux qui ne l’auront pas stocké quelque part (sur un post-it évidemment), l’oublieront en permanence s’il n’est pas déjà utilisé sur la tétrachiée d’autre services sur lesquels ils sont inscrits vendus. Dans les éléments magiques aussi, on retrouve la gestion des mails en queue mais impossible à expédier parce que l’adresse saisie n’est pas valide (une fondation a des comptes sur son site dont plusieurs adresses mails sont en encore en voila.fr, service fermé il y a déjà plusieurs années maintenant, ou des gens qui pensent qu’il est possible d’avoir une boite mail en google.fr).

D’un côté plus technique, blindez le serveur que ce soit au niveau pare-feu ou protections supplémentaires. Je ne sais pas si c’est facile à mettre en place, mais par exemple si vous pouvez détecter une tentative de bruteforce sur un compte, il sera plus prudent de le verrouiller le temps de prendre des mesures à l’encontre de l’attaquant, tant pis pour la dégradation pour un client, vous avez tout le reste qui en dépend. Les attaques distribuées se multiplient (remember les instances publiques jetables), mais un moyen, typiquement fail2ban, de bannir temporairement l’adresse d’un attaquant permettra de réduire l’efficacité de celui-ci. Il y a d’ailleurs un point à surveiller : gérer un flot d’attaques demande des ressources, parfois musclées si le nombre de boites est important. Pensez aussi à redonder votre plateforme, afin de garantir une plus haute disponibilité. Je n’ai jamais eu à le faire, donc je ne connais pas bien les techniques exploitables pour ça, je vous laisse chercher si vous êtes concernés.

Et c’est sans doute pas tout 🙁

Je pense que c’est déjà un super pavé, et je vous suis reconnaissant si vous avez tenu jusqu’au bout. Malheureusement, je suis à peu près certains qu’il reste encore des choses à dire, des cas ou des spécificités que je n’ai pas pu traiter car je ne les ai pas encore rencontrés dans le cadre de mon travail, ou même à titre personnel (je n’héberge pas ma boite principale, je laisse ça à OVH, mais les boites clantoc.org oui). Donc si vous avez lu d’autres retours comme celui-ci, ou que vous souhaitez partager, compléter ou corriger des points abordés ici, faites-vous plaisir en commentaires. Moi je retourne à d’autres bricoles dont je vous parlerai bientôt 😉

Nous vivons dans un monde compressé

dimanche 25 février 2018 à 10:30

Nouvel article de vulgarisation aujourd’hui, pour expliquer les principes et les objectifs de la compression de données, les différents types, les usages. Et vous allez voir que vous ne voyez ou entendez que très rarement la version originale d’un contenu. Mais c’est nécessaire.

Un problème de poids

Pour rappel, toute information dans le monde informatique se résume à un 0 ou un 1 (un bit). On les groupe souvent ensuite par un certain nombre (8 pour en faire des octets par exemple), qu’on agence ensuite pour donner un sens plus humain au contenu. Le problème, c’est que plus on met d’informations, plus ces séries de zéros et de uns prennent de la place, et ça coûte cher à tous les niveaux, que ça soit pour les stocker ou pour les transmettre.

J’ai déjà pu évoquer la problématique lors de l’article des termes expliqués sur le multimédia je crois. Il ne s’agit pas de me recopier, mais pour donner un exemple, un client de LinkByNet qui verse dans la production de films, nous demande d’étudier une solution de stockage déporté pour conserver tous les rushes bruts d’une œuvre, avec une moyenne d’environ 20To… par film. Sachant que la version Bluray que vous achetez tient sur une galette de 50Go, même en ne se concentrant que sur une partie, ça fait au moins 20 fois moins. Et ça en grande partie grâce à la compression, sachant que le nombre qu’il nous ont donné concerne des données qui peuvent en partie être déjà compressées.

Mais la compression prend différentes formes dans le domaine de l’informatique, et parfois vous ne voyez tout simplement rien si vous ne vous attardez pas dessus.

Compression sans perte ou avec perte ?

Avant que vous fassiez une crise cardiaque en apprenant qu’il existe des algorithmes de compression qui détruisent de l’information, concentrons-nous sur ceux qui ,e le font pas. Ai-je besoin d’expliquer vraiment le concept ? Il s’agit de réduire la taille d’un fichier sans en altérer le contenu, donc on a exactement, au bit près, la même information une fois décompressé.

Prenons l’exemple d’un fichier texte avec le contenu suivant :

"Loooooooool"

11 caractères, et on voit qu’il y a 9 fois le caractères o. Pour compresser, il suffit de remplacer toutes les occurrences du o par l’information suivante :

"L(9xo)l"

Ce qui ne fait plus que 7 caractères, et encore, on pourrait éventuellement dans le cas présent s’épargner les parenthèses en procédant autrement, soit 5 caractère au lieu de 11. Je passe sur les détails mathématiques qui permettent à des formats comme le 7z (dont l’algorithme derrière est le LZMA) d’aller beaucoup plus loin, ne serait-ce que parce que je ne les maîtrise peu ou pas du tout.

La compression avec perte, elle, part du principe qu’on peut faire une croix sur une partie de l’information sans altérer le sens du message. C’est très, très souvent utilisé en multimédia, où l’on va dégrader volontairement la qualité du son et/ou de l’image, ce qui n’altère que peu la perception de l’information. Notez bien que je ne parle pas de dimensions de l’image, mais bien de l’information qui la compose. Pour le son, on va s’attarder notamment sur les fréquences que l’oreille humaine est censée entendre et supprimer les informations rattachées à celle qu’on entend pas. En modulant également d’autres paramètres on peut encore gagner un peu en taille, mais plus on enlève d’information, plus la qualité est mauvaise.

Dans le domaine visuel prenons l’exemple d’une image, dont les couleurs sont enregistrées sur 24 bit (8 bit par couleur), ce qui fait 16 millions de nuances. En réduisant le nombre de bits pour les couleurs (16), on n’a plus que 65536 nuances, pour certaines images c’est suffisant, mais pour d’autres, on verra apparaître de gros aplats. De manière plus fine on peut voir ce genre d’effet sur des vidéos fortement compressées.

Quel type pour quel usage ?

Avec perte

J’ai donc évoqué et réutilisé des exemples de compression avec perte pour le multimédia, et sachez que même lors d’un appel téléphonique, que ce soit à l’ancienne sur une ligne filaire ou en VoIP (par une box ADSL), on fait appel à de la compression audio pour limiter la taille de la voix. C’est une évidence : moins on transfère d’information, plus vite on la transmet, et la conversation semble du coup instantanée, dans le cas contraire, quand la transmission est lente, on peut avoir des décalages (de nos jours, pensez au streaming ou aux journalistes en direct qui répondent depuis l’autre bout du monde avec plusieurs secondes de délai).

Avec l’évolution à la fois de la taille des contenus bruts et des puissances de calcul, les algorithmes évoluent également, souvent pour obtenir une meilleure qualité. Un fichier en x264 utilisant la même source sera moins gros et de meilleure qualité qu’un fichier en XviD. D’un côté on a un format qui date de la fin des années 90 (le XviD), de l’autre on a une norme qui s’est développée entre 2003 et 2012 avec en tête des objectifs différents en termes de qualité et un état de l’art sur la recherche bien plus avancé. Il y a malgré tout quelques exceptions notamment dans l’image et l’audio, avec respectivement les formats PNG et FLAC qui sont des compressions sans perte.

Dans les jeux vidéos, tout le monde aura remarqué que parfois, les détails d’un personnage sont « flous ». Pour savoir pourquoi, il faut penser à la façon dont on dessine un personnage à l’écran. On commence par la forme, avec des triangles. Chaque triangle représente donc une surface, sur laquelle on applique une texture. En pratique, la texture est un fichier qui contient différentes informations destinées à refléter un matériau, à l’image d’une texture du monde réel. Elle contient évidemment un dessin, une image, et la texture a la particularité d’être plus ou moins floue en fonction du paramètre de décompression qu’on lui applique. C’est à dire que la qualité de décompression définit le temps que que la carte va passer dessus. Avec les jeux PC qui doivent pouvoir afficher un résultat pas trop dégueu en 4K, on comprend que les jeux pèsent maintenant plus de 60Go.

Alors est-ce que finalement la compression avec perte est devenue la norme ? Fort heureusement non ! (village, envahisseur toussa toussa).

Sans perte

Mais si on peut gagner en place pour un transport ou un stockage, on ne va pas se priver. Certains systèmes de fichiers intègrent de la compression à leur plus bas niveau, c’est à dire que physiquement vos fichiers prennent moins de place que leur taille originale. Est-ce qu’on accepterait qu’à ce moment-là on en perde un bout ? Certainement pas.

À un plus haut niveau, ce type d’algorithme est souvent utilisé pour de l’archivage, un mot qui vous est certainement familier si vous avez croisé des fichiers au format zip, rar, 7z. Contrairement aux algorithmes avec perte qui régissent le monde du multimédia, qui « décompresse » au fur et à mesure, ici il faut reconstituer le fichier entier avant de pouvoir le lire. Dans le cas des archives, ça passe par un fichier temporaire, mais il est des situations surprenantes ou la compression sans perte se fait « à la volée ». Dans les formats de documents ODF (OpenOffice/LibreOffice), et même OOXML (Office 2013 et suivants, les docx, xlsx et autre pptx).

Encore plus invisible et pourtant vital, le Web. Oui oui. Quand vous demandez d’afficher une page, son contenu est du texte brut, et les feuilles de style ainsi que les scripts JavaScript sont aussi du texte brut. Si les images sont déjà compressées et peuvent être servies telles quelles, ce texte peut gagner à être compressé, et c’est ce que font la plupart des serveurs Web pour transmettre des versions compressées à la volée des fichiers en question, les navigateurs décompressant alors lesdits fichiers à la volée également pour vous les afficher. Avec la taille des pages qui augmente en plus de la taille des feuilles de style et des scripts, le gain est réel aussi bien pour les clients qui sont sur des connexions instables (rappel, de plus en plus de gens ne naviguent que sur mobile, une horreur sans nom quand on s’intéresse de près aux réseaux associés), que pour les serveurs qui économisent ainsi une quantité de bande passante non négligeable au regard du trafic qu’ils peuvent drainer. Depuis 2015 Google développe Brotli, un algorithme plus efficace que gzip et deflate qui sont actuellement utilisé, preuve que même ce domaine peut encore être amélioré. Faudrait voir si je peux pas mettre ça en place tiens.

Moins glorieux, car très dégueulasse et pas du tout neutre, sur les réseaux mobiles vous passez souvent par des proxy transparents qui recompressent les images à la volée, j’ai pu le constater de manière violente sur Twitter sur mobile, entre un réseau Wifi classique et le réseau 3G notamment (la 4G ne fait pas exception). En passant par un VPN, le problème disparaît, mais devoir utiliser ce type d’outil en 2017 sur ce genre d’appareil est tout simplement une aberration de plus à mettre sur le compte de la sacro-sainte mobilité.

Un outil puissant, pratique, parfois dangereux

Je ne vais pas m’étendre trop sur le sujet, parce que j’ai déjà évoqué la problématique dans une traduction à propos de la compression associée à du chiffrement. Ceci dit, la dangerosité persiste, si la compression avec pertes peut parfois s’accommoder d’une corruption légère des données, c’est rédhibitoire pour la compression sans perte. Et de nos jours, même avec des techniques modernes pour tenter de garantir l’intégrité physique du stockage, un glitch n’est jamais à exclure et le moindre bit altéré peut vous empêcher de récupérer tout ou partie du contenu d’une archive. C’est d’autant plus vrai que la taille de ladite archive augmente. Et là, pas de miracles, c’est la sauvegarde qui vous sauvera (elle était facile).

Une tendance qui restera

On a beau augmenter les débits des connexion fixes et mobiles, avoir des disques durs plus gros, le fait est qu’on a plus que jamais besoin de compression, parce que tout devient inévitablement plus lourd. Chaque octet gagné multiplié par un nombre d’internautes toujours plus important, ça chiffre. Facebook a bientôt 2 milliards d’utilisateurs (depuis le début de l’écriture de cet article, Zucky a annoncé que c’était fait), un octet de gagné sur une page c’est 2Go qu’il n’a pas à transmettre, multiplié par le nombre de fois qu’il réalise cet exploit, et vous comprenez l’enjeu.

Donc oui, on compresse, décompresse, et dans tous les domaines. C’est incontournable. Et maintenant non seulement vous le savez, mais vous savez aussi pourquoi.

 

La magie des caractères accentués entre Mac et Linux

jeudi 22 février 2018 à 18:30

Ah, UTF-8… Pendant que tout le monde s’écharpe pour savoir quelle est la bonne recette d’hamburger sur l’émoji dédié, les techniciens, eux, doivent se débattre avec des choix étranges et des problèmes de compatibilité. De ceux que la norme Unicode était pourtant censé régler…

J’ai mis un peu de temps à mettre le doigt dessus, et à trouver le fond du problème. Quant à la solution, elle n’était pas forcément entre mes mains mais pas si loin. Mais reprenons depuis le début. Lors de la refonte du site d’un de mes clients, il se plaint que certains liens ne fonctionnent pas une fois le livrable déposé sur le serveur. En particulier, les liens vers des documents PDF qui contiennent des accents semblent contrariants.

Pourtant, sur le serveur, les documents sont là, avec les accents correctement placés et affichés. Je soupçonnais un problème d’encodage (genre ISO-8859-15 et UTF-8, la bataille du siècle dernier), ce n’était pas le cas mais je n’en étais pas loin. A force de recherches, de fouilles empiriques comme je peux en faire parfois, je mets le doigt sur quelque chose : en copiant le nom du fichier depuis ma console SSH pour le saisir dans mon navigateur, je découvre une chose :

Lien de la page du site
http://www.site.com/assets/uploads/120907_Mise_%C3%A0_disposition_des_documents_pr%C3%A9paratoires_AGM_28-09-2012.pdf

Lien créé en copiant le nom du fichier depuis la console SSH
http://www.site.com/assets/uploads/120907_Mise_a%CC%80_disposition_des_documents_pre%CC%81paratoires_AGM_28-09-2012.pdf

Oui, on constate que les caractères accentués n’ont pas la même tête. Pourtant les deux s’affichent de la même façon à nos yeux. Comment est-ce possible ? Malheureusement, j’ai fait cette découverte juste avant de m’absenter pour me faire opérer, et après avoir transmis mes découvertes, nous n’avons pas eu de retour de l’agence. Mes collègues n’ont pas plus trouvé de détails supplémentaires sur les raisons de cet écart, et le dossier est un peu tombé aux oubliettes.

Mais pendant ma convalescence, à la faveur de ma veille habituelle, je lis une remarque sur les joies de l’encodage entre Mac et Linux, sans plus de détails. Pour une fois mon cerveau fait tilt et je repense à mon client. Je repars donc en mode recherche/lectures, pas évident, et pourtant les utilisateurs de Mac partagent souvent leur mésaventures avec leur univers fermé. Mais je finis par trouver quelques pistes.

MacOS le fourbe (enfin pas vraiment, mais ça fait du bien de le dire de temps en temps)

En effet, UTF-8 permet d’encoder les caractères accentués de deux façons différentes : soit un caractère accentué « direct » dit composé — U+00E9 pour être précis si on reprend notre « é »– ou format NFC pour Fully Composed; soit un caractère di décomposé, c’est à dire la lettre de base –U+0065 pour la lettre e–, accompagné d’un caractère dit combinant, dans l’exemple un accent aigu (U+0301), soit le format NFD pour Fully Decomposed. Évidemment il n’est pas recommandé de mixer les deux méthodes. Pour les plus furieux, et en anglais, vous pouvez lire cette page Wikipedia sur l’équivalence Unicode.

C’est MacOS le responsable, qui encode les caractères de manière particulière, et notamment les caractères accentués. Les ingénieurs d’Apple ont fait le choix du supporter le deuxième cas, mais le plus « pénible » n’est pas là. Les deux sont valides et pris en charge notamment par le système de fichiers ext4 sous Linux, et on ne verra pas de différence jusqu’à ce qu’on tombe sur un problème similaire à celui que j’ai rencontré. En fait le vrai problème vient surtout du fait que l’éditeur de code utilisé par le développeur qui s’était occupé de renommer les documents a encodé les liens, et plus généralement les fichiers, au format NFC, quand les fichiers sont proposés au format NFD.

Si c’est supporté, alors on peut corriger

On est sous Linux, on peut pratiquement tout faire, en l’occurrence c’est possible avec rsync :

rsync -a --delete --iconv=UTF-8-MAC,UTF-8 <source> <destination>

On peut alors ensuite replacer le contenu converti au bon endroit. Peu après j’ai appris qu’il y avait un utilitaire dédié à cette tâche, qui s’appelle convmv :

convmv -f utf8 -t utf8 --nfc -r --notest <dossier>

Ça va traiter tous les fichiers du dossier indiqué, et on économise une duplication de fichiers. L’avantage d’rsync étant qu’on peut le faire à distance, donc directement depuis la source et non pas une fois le contenu versé à destination.

Une fois n’est pas coutume, je n’ai pas pu essayer

Malgré tout, quand j’ai eu l’occasion de reprendre le dossier, après mon retour, une solution un peu plus simpliste a été trouvée par l’agence de développement sans qu’on soit mis au courant : supprimer les accents sur les liens et fichiers problématiques. Bon ben tant pis, on essaiera de faire plus de bricolage une prochaine fois. Ça m’a toutefois donné l’occasion de vous apprendre un ou deux trucs sur Unicode 🙂

Quelques astuces diverses, onzième

lundi 19 février 2018 à 18:30

J’ai stocké tout ça un peu trop longtemps et il est temps que je partage une nouvelle fournée de bricoles qui vous sauve une journée de boulot, ou un weekend un peu trop accaparé par des soucis ou des maintenances d’infras persos, quand ce n’est pas un dépannage lors d’un PSL 🙂

Coreutils 8.24 et suivants : dd qui cause !

J’ai découvert ça en toute fin d’année, après la finalisation du dernier épisode (et Pierre m’en a reparlé début février quand je suis retourné à la Cité des Sciences). Avec un coreutils récent (Debian Stretch, Ubuntu 16.04, Manjaro/Arch), dd a maintenant un mode verbeux pour dire où il en est, et ça c’est cool :

[seboss666@seboss666-ltp ~/Téléchargements ]$ dd if=manjaro-cinnamon-17.0.6-stable-x86_64.iso of=mcin.iso status=progress
1770226176 bytes (1,8 GB, 1,6 GiB) copied, 14 s, 126 MB/s

Pratique quand on sait que les copies sur clé USB peuvent parfois prendre de longues minutes, surtout avec une clé USB poussive.

Rot13 « quick and dirty » en bash

Lors d’un petit délire sur un challenge de sécurité informatique, l’auteur a trouvé le moyen de s’amuser en ajoutant une petite étape à base de rot13. Quand on est pressé, qu’on a pas forcément le temps de chercher un outil tout fait, y’a moyen de le faire en bash (attention, tr est fourni avec coreutils, merci Exagone313) :

echo 'messagealacon' | tr '[A-Za-z]' '[N-ZA-Mn-za-m]'

Connexion SFTP avec un client OpenSSH récent et proftpd/mod_sftp

Récemment, le prestataire d’un client rencontrait des difficultés pour se connecter en SFTP à la plateforme de ce dernier. Après vérification, et un énième juron quand aux satanés fanatiques des ordinateurs fruités, il s’avère que le souci venait de proftpd qu’on utilise pour proposer justement la connectivité chiffrée. La solution tient à la modification des Digests :

SFTPDigests hmac-md5 hmac-sha1 hmac-sha2-256 hmac-sha2-512 hmac-ripemd160 hmac-sha1-96

Exporter les utilisateurs d’un vieux MySQL pour l’importer dans MySQL 5.7

Situation : on me demande de migrer d’un MySQL 5.5 vers MySQL 5.7. Oracle ne supporte que les upgrades de point à point, donc il me faudrait passer par MySQL 5.6. Pas ouf, et comme les bases de ce serveur de dev ne sont pas compliquées, je veux passer par des dumps bases et users à importer ensuite. Problème, Sur les dernières révisions de MySQL 5.7, la création d’utilisateur avec la syntaxe GRANT ... TO <user> IDENTIFIED BY ... ne fonctionne plus. Petite routine maison pour contourner ce problème :

MYSQL_CONN="-uroot -ppassword"
mysql ${MYSQL_CONN} --skip-column-names -A -e "SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') AS query FROM mysql.user WHERE user NOT IN ('root','pma','phpmyadmin','debian-sys-maint')" | mysql ${MYSQL_CONN} --skip-column-names -A | sed 's/$/;/g' > MySQLUserGrants.sql
sed -i.bak 's/GRANT USAGE ON \*\.\* TO/CREATE USER/g' MySQLUserGrants.sql

Et paf, ça fait des Chocapic.

Tunnel SSH en ligne de commande pour connexion MySQL distante

Pour chiffrer une connexion MySQL (qui est en clair par défaut, il faut le souligner), vous avez deux solutions principalement : mettre en place du TLS au niveau de MySQL, mais c’est pas évident, ou, pour du one shot, un tunnel SSH. Sous linux, rapidement :

ssh -L 3306:127.0.0.1:3306 user@server_with_mysql

Il suffit ensuite de se connecter avec le client mysql en tapant sur son port local :

mysql -h 127.0.0.1 -S 3306 -uuser -p

HTTPS, SNI, et Curl sont dans un bateau…

En procédant à des tests sur la bonne installation d’un certificat X509 sur un vhost dont le domaine ne pointe pas encore sur le serveur en question, plutôt que de bricoler du fichier hosts, j’ai préféré utiliser curl, mais il était récalcitrant avec les paramètres « habituels » :

root@vox:~# curl -Iv -H "Host: blog.seboss666.info" https://127.0.0.1
* Rebuilt URL to: https://127.0.0.1/
* Hostname was NOT found in DNS cache
* Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 443 (#0)
(...)
curl: (51) SSL: certificate subject name 'xxxx.mariz.ovh' does not match target host name '127.0.0.1'

Pas grand chose à voir avec mon vhost. En fait, c’est parce que de cette manière, Curl n’envoie pas d’entête SNI pour indiquer le nom qui doit être validé par le certificat, et dans un contexte avec plusieurs vhosts, cet entête permet de chercher à sélectionner le bon certificat en fonction de l’hôte. Curl sait le faire :

root@vox:~# curl -Iv --resolve blog.seboss666.info:443:127.0.0.1 https://blog.seboss666.info
* Added blog.seboss666.info:443:127.0.0.1 to DNS cache
* Rebuilt URL to: https://blog.seboss666.info/
* Hostname was found in DNS cache
* Trying 127.0.0.1...
* Connected to blog.seboss666.info (127.0.0.1) port 443 (#0)
(...)
HTTP/1.1 200 OK

Il ne lui manque que la fonction café en fait à curl…

Une meilleure détection de l’état de santé d’un backend dans haproxy

Contexte : par défaut, les checks basiques d’haproxy ne servent qu’à détecter s’il y a toujours un port en écoute au niveau des serveurs de la ferme. Si vous avez deux serveurs et que l’un des deux est à moitié pété (ça écoute toujours mais l’application ne répond plus), vous avez une réponse sur deux qui n’est pas bonne. Pour optimiser ça, on peut faire un peu mieux au niveau de la configuration :

backend mon-backend
    option httpchk GET /check HTTP/1.1rnHost: www.mondomaine.com
    http-check expect status 200
    default-server inter 3s fall 3 rise 2
    server srv1 10.0.0.1: 80 check
    server srv2 10.0.0.2: 80 check

Au passage on voit aussi comment modifier les intervalles de vérification pour réellement limiter la visibilité du problème et des dégâts que ça pourrait provoquer.

Curl et Docker : tester un service Swarm en local

J’ai eu le tour sur mon propre cluster ainsi que sur les plateformes de tests fournies lors de ma formation par Treeptik. Une fois mon service déployé, j’essaie de le tester avec curl depuis le nœud où il est déployé, mais ça répond pas. En fait, les deux environnements en question sont paramétrés avec une ipv6, mais le service au sein de docker n’écoute qu’en v4, et ça aussi, curl est capable de s’en accommoder :

curl -4 http://127.0.0.1:8080/

Si vous devez tester/forcer en ipv6, utilisez -6, mais dans mon cas ça ne fonctionnait pas.

Terminator en plein écran dès le lancement

C’est un problème récurrent/chiant que j’ai souvent, le gestionnaire de fenêtres n’enregistre pas les positions des fenêtres quand je les ferme, si bien que je dois les repositionner à chaque lancement (il n’ya guère que Thunderbird qui « tient le coup »). Pour ma machine virtuelle Linux du boulot (et maintenant sur ma grosse bertha à la maison), je lance principalement Terminator, et j’aime bien du coup qu’il prenne toute la place. Après quelques errements liés notamment au fait que je ne connais apparemment pas assez l’anglais, j’ai trouvé la solution en modifiant la commande dans le raccourci :

terminator --maximise

Oui, je m’attendais à devoir utiliser --maximize, et apparemment les deux orthographes sont correctes


Et bien que j’attende généralement une dizaine d’astuces avant de publier, ça fait trop longtemps donc tant pis s’il n’y en a que 9. On essaiera de revenir dans les clous au prochain épisode 🙂