6040 links
  • GuiGui's Show

  • Home
  • Login
  • RSS Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
◄Older
page 91 / 302
Newer►
  • Socle Interministériel de Logiciels Libres - Liens en vrac de sebsauvage - GuiGui's Show - Ban's links

    Je vais faire mon libriste au melon démesuré, mais pour ce dernier point je pense que tu ne couvre pas l'ensemble du problème qui est aussi en grande partie que les "alternatives" libres ne sont pas le même logiciel, et ne s'uitlisent pas pareil. Au final la qualité de l'outil n'a que peu de rapport avec la question, la question est beaucoup que la personne est là pour faire son taf, pas pour prendre en main quelque chose de nouveau.

    C'est vrai, mais il y a une limite à ce raisonnement : pour qu'un gus prenne sur lui l'étude d'un autre logiciel (libre ou pas, ce n'est pas mon sujet), il faut que celui-ci soit techniquement ou qualitativement supérieur à la norme. Or, winwin versus nux ou MS Office versus LibreOffice, y'a pas de différence quand t'es une secrétaire. Les deux vont faire chier (si, nux peut faire chier), les deux permettent de saisir le courrier demandé par le boss, sur les fonctions de base, GIMP apporte rien par rapport à Photoshop (et inversement), etc. C'est juste une guéguerre de chapelles (genre en vrai winwin, quand t'as compris la logique, que tu t'es formé, que t'as les bons outils d'administration et les bonnes pratiques, ça juste fonctionne aussi bien que nux, faut arrêter de mentir). Donc quand tu vois l'ordi comme un simple outil pour faire le taff demandé afin de toucher ton salaire, t'en a rien à faire d'une alternative tant que ça t'apporte rien, que ça ne te simplifie pas la vie, que ça ne te permet pas d'aller plus vite (et même, si le boss s'en rend compte et qu'il te file plus de taff, t'as rien gagné, donc, parfois, faut pas chercher à optimiser son temps), etc. En gros, si je devais faire plus court : je ne blâme pas le salarié lambda, il a raison de ne pas se poser de questions, car, dans l'écrasante majorité des cas, ça lui apportera aucun avantage. C'est mon point de divergence avec toi.

    Tous les logiciels métiers n'existent pas en logiciels libres utilisables par le commun des mortels (tu ne fais pas de la comptabilité sérieuse ‒ = comptes à rendre ‒ à grande échelle ‒ = Grande Entreprise ‒ avec Ledger, GNUCash ou Odoo, par exemple) et inversement, y'a des domaines ou le libre remplace avantageusement la bouse privatrice (genre pour piloter certaines machines dans les laboratoires de recherche ou pour de l'enseignement très ciblé).

    Dans le cas que j'ai présenté, il me semble que cette personne a essayé GIMP (elle en donne l'impression en tout cas), d'où l'ampleur de sa réaction outrée "arrêtez de vouloir m'apprendre mon métier alors que vous avez jamais utilisé GIMP pour effectuer mon travail !" (ce qui est vrai). Du coup, j'en arrive à la conclusion qu'il y a plusieurs manières de faire une chose et que, si cette personne n'a pas accroché à GIMP, ça sert à rien de la forcer ni de râler ni de la former. C'est dommage et tout ce qu'on veut, mais elle a fait son choix.

    Et, dans les deux cas, on retombe sur les blocages formation et notoriété que j'énonce dans mon premier shaarli.

    08/05/2020 12:52:16 - permalink -
    - https://ban.netlib.re/shaarli/?jt3lEg
  • Socle Interministériel de Logiciels Libres - Liens en vrac de sebsauvage

    Je pose ça là, le jour où quelqu'un me montre encore des réticences à utiliser du Logiciel Libre dans le public sous prétexte que "gggnnn c'est pas professionnel gggnnn c'est pas approuvé ggggnnn c'est du libre donc le code source et lisible donc c'est piratable et c'est pas sûr aaannnnn".

    Je ne comprends pas où tu veux en venir. Ce socle vaut rien. Il existe aucune obligation d'y recourir. C'est un annuaire comme un autre, on ne peut pas s'en servir comme argument d'autorité, ça ne passe pas dans les administrations (je parle en connaissance du terrain, tu ne feras pas changer de cap un administrateur système des fonctions publiques en sortant ce référentiel, c'est totalement hors sujet à ses yeux).

    D'ailleurs, à côté de ça, les groupements d'intérêt public en charge de mutualisations logicielles / collaborations qui dépendent directement des ministères ne se gênent pas pour imposer du Oracle et autres merveilles privatrices afin d'utiliser leur solution mutualisée quasi-obligatoire, donc bon…

    Enfin, quand tu vois la DINUM qui veut généraliser Qwant, tu comprends que ce genre de référentiel n'est pas réalisé uniquement sur des qualités techniques, mais aussi sur des enjeux politiciens, et, là, tu deviens prudent.



    Je ne sais pas d'où viennent les propos "libre = piratable = pas sûr = pas pro", mais je présume qu'ils sont issus d'une causerie stérile entre informaticiens. Les utilisateurs ne disent pas ça. Ils n'ont même pas les compétences pour affirmer ce genre de choses, et surtout, ils s'en fichent complet et à raison. Tu ne vas pas demander à Jojo de savoir comment fonctionne la machine-outils dans l'atelier et de s'il existe des alternatives éthiques, gnagna. Jojo est payé pour suivre un algorithme (presser le bouton bleu, puis faire ci, puis le bouton triangulaire, puis…), rien à foutre du reste. De même, Ginette s'en fout de comment marche son ordinateur : elle est là pour empocher une somme de pognon précise en faisant un taff précis, comme chacun d'entre nous, salarié ou non. L'ordinateur (ou la machine-outils) est seulement un outil, un moyen pour parvenir à une fin.

    Durant des années, des collègues ont sincèrement essayé de promouvoir un système GNU/Linux Ubuntu (totalement géré par le service informatique, comme les winwin qu'on distribue) et LibreOffice : la greffe n'a pas pris. Et les """"arguments"""" sont loin d'être une réflexion métaphysique sur le sens du libre, sa sécurité, blablabla. On a eu les retours suivants (j'exagère un peu, mais dans leurs tickets d'assistance, tu lis vraiment la colère, matérialisée, entre autres, par beaucoup de points d'exclamation) :

    • "Je me suis fait chier à faire une formation MS Office, donc je veux un MS Office, faîtes pas chier !". Pour ceux que ça intéresse : oui, on propose des formations MS Office et des formations LibreOffice. Oui, la RH les annonce en même temps sur le même canal. Simplement, LibreOffice, ça parle à personne. Ceux qui lisent quand même l'offre de formation ne veulent pas prendre le risque d'apprendre un truc minoritaire qu'ils ne sont pas sûrs de pouvoir valoriser dans le temps (tout le monde dans le public n'est pas fonctionnaire, pour rappel) ;

    • "J'ai le droit à mon MS Office, comme j'ai le droit à un bureau et à une chaise. Ça fait partie de mon environnement de travail, de mes conditions de travail, point ! Faites pas chier avec votre radinerie !" ;

    • "Faire du graphisme / de la retouche avec GIMP ?! Vous êtes sérieux ?! Vous avez déjà essayé, au moins ?! Faites pas chier, je veux mon Mac, mon Illustrator et mon Photoshop. Laissez-moi exercer mon métier !".

    Bref, arrêtons d'utiliser nos arguments d'informaticiens (libre = pas sûr, pas pro, gnagna), le débat avec les utilisateurs n'est pas du tout sur ce terrain. On est sur de l'affect (comme la deuxième personne sus-citée qui se sentait clairement dévalorisée de ne pas avoir de MS Office : pour elle, le prix qu'on met dans son environnement de travail est un indicateur de l'attention qu'on lui prête, et quand t'es payée que dalle sans possibilité d'évolution, je comprend qu'on se rattache à ce genre de choses), sur un effet de réseau / marketing (premier point), et sur un manque d'alternatives crédibles sur certains métiers couplé à un melon des libristes qui sont convaincus que leur solution fait le taff sans connaître celui de la personne à laquelle ils proposent une alternative trop-trop meilleure.

    07/05/2020 13:57:27 - permalink -
    - https://sebsauvage.net/links/?VG4Y8A
  • L'ergonomie de PeerTube

    Pendant mes repas, je regarde des vidéos sur le web. Si une vidéo n'est pas terminée, j'en reprends la lecture au repas suivant.

    Sur ce point, PeerTube est gonflant. Si tu regardes une vidéo à un repas, que t'arrêtes la lecture, que tu veux la reprendre des heures après (autres repas), ça lit le petit bout de vidéo qui avait été mis en cache puis ça s'arrête et ça mouline indéfiniment dans le vide, ça ne charge pas le segment suivant de la vidéo. Je précise que je ne change pas d'adresse IP.

    Il faut mémoriser l'estampille temporelle, rafraîchir la page (F5) puis cliquer pour lire. Ça lit le début de la vidéo. Il faut se déplacer jusqu'à l'estampille temporelle. PeerTube fait semblant de charger… mais continue de lire le début de la vidéo. Il faut à nouveau se déplacer sur l'estampille temporelle, et, là, ça charge et ça lit le bon segment, youpi.

    C'est comme ça à chaque repas, sur plusieurs instances PeerTube.

    En comparaison, YouTube gère la reprise. Ça interrompt la lecture après avoir lu le segment resté en cache, mais au moins, ça charge et lit la suite de la vidéo automatiquement. Et si jamais un F5 s'avère nécessaire, la vidéo reprend là où on avait arrêté.

    C'est le genre de truc pénible.

    07/05/2020 13:07:44 - permalink -
    - http://shaarli.guiguishow.info/?_X7d_w
  • Opposée au plan de déconfinement, la députée Martine Wonner exclue de La République en marche - Le bazar de mydjey - GuiGui's Show - ~ sweet ~

    Je partage ton analyse mais je suis partagé sur ta conclusion :).

    Je pense que tu te trompes (à moitié) sur ce que tu penses être ma conclusion. Elle n'est pas « c'est comme ça à l'état de nature, donc faisons rien », mais plutôt « arrêtons de blâmer un groupe social en particulier (LREM, PS, UMP, peu importe, tous ont pratiqué l'exclusion punitive) alors que les autres groupes sociaux dont nous sommes membres (emploi, famille, potes, associations) ont la même pratique ». Si tous les groupes sociaux observables ont cette pratique d'exclusion (et je rappelle que la prison est basée sur cette idée d'exclusion protectrice), alors blâmer un groupe qui la pratique est vain, ce n'est pas le bon discriminant pour porter une critique de ce groupe social.


    Et surtout je sais que l'individu peut changer le groupe. Pour le pire te le meilleur. En fait y'a une balance ou un aller-retour entre ce qu'apportent les personnes au collectif et ce qu'impose le groupe à ses membres. AMHA.

    Ça, c'est dans la théorie. Dans la pratique, il ne faut pas que les individus remuent trop / dépassent l'épaisseur du trait / partent dans tous les sens en permanence… sinon, par définition, il n'y a plus de cohérence, donc plus de groupe. C'est tout le paradoxe. Pour moi, l'injonction à être soi-même au sein d'un groupe (quel qu'il soit) est un mensonge (mais il est nécessaire), ça ne peut pas fonctionner sauf si peu d'individus sont eux-mêmes (les autres pourront alors tolérer ces orignaux) ou que les membres du groupe sont très similaires (et dans ce cas… ils ne sortiront pas de la norme du groupe, par définition même).

    Je pense qu'il existe un bloqueur au niveau de l'espèce humaine afin que tous les membres de l'espèce ne désirent pas tout changer en même temps tout le temps. Je pense que ce bloqueur est facteur de stabilité, et donc qu'il est l'un des facteurs de la survie de l'espèce. C'est la grille de lecture que j'applique aux combats militants. Ils se plaignent (et je fais partie du lot) que les gens ne s'impliquent pas et préfèrent regarder Netflix, gagnagna. C'est une mauvaise lecture. En vrai, la masse est garante de la stabilité de la société en mode "ouais, ouais, testez votre idée entre vous, là, on vous regarde" (si ça foire, une petite partie de l'espèce sera sacrifiée dans le pire des scénarios).

    Il faut bien se dire que si tout le monde bougeait sur tous les sujets possibles, ça serait impossible de suivre tous ces changements (déjà que, dans notre monde où relativement peu d'acteurs bougent, on n'arrive pas à suivre tous les projets en cours à notre taff, ni les projets de lois, les positions des associations et de la société civile, etc. …) et, surtout, chacun aurait plus de boulot (hé oui, car la personne qui milite avec toi sur la vie privée par exemple, ne partage pas ta vision de la société concernant l'agriculture, et comme elle se bouge… elle te nuit, donc va falloir bouger aussi sur les sujets autour de l'agriculture), ça serait juste éreintant.

    07/05/2020 12:08:32 - permalink -
    - https://dukeart.netlib.re/shaarli/?KvTEZA
  • L’Assemblée rassure les élus sur leur responsabilité pénale et désavoue le Sénat - Page 1 | Mediapart - Le bazar de mydjey

    De leur aveu même, ils ont compris la tempête citoyenne qui suivrait si ce projet de loi devait être adopté...
    […]
    De l'utilité des contre-pouvoirs dans la société civile ...

    C'est du pipeau.

    « Rassurer les élus », ça veut dire la même chose que loi d'amnistie. C'est formulé différemment, c'est tout. La différence, c'est que rassurer les élus, ça ne sera pas matérialisé par une loi, donc ça sera informel, inattaquable, propre, chacun, y compris les juges, fera ce qu'il a à faire, on ne se blesse pas entre gens de la caste. Ça se passera donc comme d'habitude : les personnes prétendument responsables s'en sortiront tranquillou. C'est toujours comme ça : un chef (au travail ou en associatif), un parent (vis-à-vis d'un enfant mineur), un politicien, etc. rend jamais de compte. Christine Lagarde dans l'affaire Tapie, les maires / députés / ministres qui tapent dans la caisse, les patrons qui ont aucun compte à rendre sur leur mauvaise gestion, Didier Lombard et compagnie pas condamnés (sursis ou peine aménageable), etc. Le système est conçu pour qu'un """"responsable"""" n'ait pas à rendre de comptes et pour qu'il ne soit pas inquiété. La justice, les contraintes, c'est bon pour les grouillots de base, eux auront droit à la violence policière (qui n'existe pas, dixit Macron), à la violence symbolique d'un procès (qui n'existe pas non plus, c'est une invention du méchant gauchiste Bourdieu), et aux comparutions immédiates (qui, quand tu sais en quoi ça consiste te font passer l'envie de nommer ça « Justice »). Ho, parfois on fait un exemple afin de rassasier la plèbe et de lui faire verser une petite larme "snif, les méchants pas beaux sont sanctionnés, la Justice fonctionne, je suis trop heureux de vivre dans un tel système, snif".

    Quant à la « tempête citoyenne »… Le gouvernement était contre l'amendement du Sénat et il a émis un avis défavorable lors de son examen. Donc, avant que la « tempête citoyenne » débute, le gouvernement était déjà contre. Il ne l'est pas par conviction, mais par certitude que c'était un coup électoraliste du Sénat et qu'il est inutile (loi Fauchon depuis 20 ans + ce que j'ai écrit au premier paragraphe c'est-à-dire que l'amnistie existe déjà de fait pour les trouducs prétendument responsables, c'est l'essence même de leur statut, c'est inclus dans le pack). Ça se saurait si les « tempêtes citoyennes » faisaient reculer les politiciens (loi Renseignement 2015, loi Travail 2017, etc. où les mobilisations étaient plus fortes que sur ça).

    06/05/2020 23:26:10 - permalink -
    - https://shaarli.mydjey.eu/?xZvfYA
  • Opposée au plan de déconfinement, la députée Martine Wonner exclue de La République en marche - Le bazar de mydjey

    Soit t'es godillot, soit tu te barres. Interdit de voter en son âme et conscience chez LREM. Si tu n'es pas du même avis que le Roy et que tu oses le dire au travers d'un vote --> la porte

    C'est un reproche que je vois souvent formulé à l'encontre des partis politiques alors que ce mécanisme ("si t'es pas d'accord avec la majorité du groupe, tu te casses ou, à défaut, on va t'exclure soit formellement, soit de fait") est aussi en vigueur dans un emploi, dans une association, avec des potes (j'ai pas écrit « amis »), dans la famille, etc. C'est naturel : tout remettre en question en permanence contre le groupe rend ce groupe vulnérable en plus d'être juste chiant et épuisant. Il faut une forme de cohésion dans un groupe social, et ça passe par un mensonge / récit commun, des codes communs, des pratiques communes et un respect individuel des décisions du groupe. C'est la pensée de meute commune à tout groupe social.

    06/05/2020 23:21:32 - permalink -
    - https://shaarli.mydjey.eu/?V5qrUQ
  • Re: Tout ça pour des chaussures…

    Shaarli originel.



    @Abel :

    Dans les chaussures il ne faut pas se tromper la qualité ça se paye forcement . Je ne parle pas de la marque, mais de la qualité du produit .

    Je suis d'accord, mais j'étais convaincu que la différence de prix entre mon modèle à 25 € et des modèles vendus plus cher allait dans la marque. C'était un des points de blocage.


    Sans faire de publicité , pour ma part j’achète depuis au moins 30 ans des tennis de la marque TBS qui sont increvables . Elles sont fabriquées en France , en cuir et d'un confort que je n'ai jamais retrouvé dans d'autres chaussures .

    Increvable comment ? Elles te font combien de temps pour quel usage ?

    Quand j'ai lu « cuir », je me suis dit « nope, nope, nope ». Mais ils ont un modèle de baskets en cuir qui ne me répugne pas, donc à voir.

    Fabriquées en France, faudra que je vérifie, ils en parlent très peu sur le site web, ça sent le "conçues en France, fabriquées en Italie". Déjà, le site web est hébergé chez Amazon…



    @Orangina Rouge :

    Le week-end/en balade, c'est des chaussures de "marche sportive" (le feu modèle "propulse run 400 newfeel") : c'est ma 3e paires depuis… 6 ? 7 ans ?

    Puisque ce produit n'existe plus, par quoi l'as-tu / vas-tu le remplacer ?

    Après, Decathlon = famille Mulliez = je ne suis pas fan.


    Au boulot c'est des "Clarks Desert Boots"

    Pas pour moi du tout. :-


    bon sauf mon modèle en cuir noir, le daim couleur crème doit être mieux

    Elles ?



    @OpenNews :

    La solution a ton problème de semelles s'appelle vibram. Une bonne référence en semelle de qualité.

    Tu parles bien des semelles extérieures que Vibram peut greffer sur des chaussures existantes ?


    Niveau budget on est à environ 11€ / mois avant l'upgrade vibram et à 8,5€/mois après réparation mais elles vont me durer encore plusieurs mois facile.

    Comment ça peut être moins cher après alors que t'as payé chaussures + semelle ?


    pour un bon cordonnier je recommande dossman à strasbourg qui monte du vibram et travaille par internet

    Je note.



    @Strak :

    J'en ai lu une bonne partie et j'ai souri car je me retrouve pas mal dans ce discours autour de la chaussure ! :)
    Pendant très longtemps, j'achetais l'exact même modèle quand mes pompes actuelles étaient défoncées, car je m'en foutais grave...

    Je me sens moins seul. \o/

    04/05/2020 20:14:25 - permalink -
    - http://shaarli.guiguishow.info/?k2lD2g
  • Si session graphique difficile / impossible à ouvrir après migration de GNOME 3 vers MATE : rm ~/.xinitrc - GuiGui's Show - ~ sweet ~ - GuiGui's Show - ~ sweet ~

    Arf, en effet je travaille sur le site ça impacte un peu l'accès le temps que ça se tasse.

    Hé bah bravo ! :P


    Bon si tu as déjà testé alors je comprends, c'est très particulier et il vaut mieux éviter les gênes. Chacun son truc :).

    C'est ça. ^^


    Du coup l'hommage c'est que sur ma capture, il y a un onglet du navigateur avec ton logo, voilou :)

    Ho, oui ! C'est le début du commencement du départ de ma célébrité universelle. \o/


    (lol Le dictateur :P j'y ai même pas pensé)

    Pourtant je travaille très dur pour en devenir un. :'(

    Bonne nuit. :D

    04/05/2020 19:29:18 - permalink -
    - https://dukeart.netlib.re/shaarli/?_OUqQQ
  • Si session graphique difficile / impossible à ouvrir après migration de GNOME 3 vers MATE : rm ~/.xinitrc - GuiGui's Show - ~ sweet ~

    Lol, lg : il y a même un hommage pour toi sur cette page :P

    Ton installation web / PHP est cassée ce soir : le lien me fait télécharger un fichier doku.php vide.

    Quel est cet hommage ? Une capture d'écran du film Le dictateur ou la mention d'une personne que je connais ou une autre chose qui m'a échappé ?

    Concernant le reste de ton shaarli : j'ai déjà testé i3. Pas pour moi.

    • J'ai besoin de fenêtres qui se distinguent très clairement les unes des autres sinon je sais jamais où je me trouve, quelle fenêtre est active, etc. (j'ai jamais plusieurs fenêtres au premier plan ni un screen / tmux splitté, par exemple, je préfère largement avoir plusieurs onglets). HS-157 m'avait dit qu'on peut arriver à un résultat satisfaisant avec i3 à coup de configuration, mais j'ai la flemme. Je ne personnalise pas mon environnement de bureau par désintérêt, il faut que ça fonctionne et que ça me convienne de base ;

    • Je ne parviens pas à mémoriser les raccourcis clavier. J'en connais quelques-uns, mais c'est le minimum du minimum syndical. Ça ne veut pas entrer, même par la pratique.
    03/05/2020 22:12:10 - permalink -
    - https://dukeart.netlib.re/shaarli/?JnIpOg
  • Comment utiliser SSH sur IPv6 ? - Antichesse (o ^ω^ o)

    @GuiGui j'ai rajouté les crochets qui manquaient suite à tes conseils disponibles ici. N'hésite pas à me dire si je me trompe.

    Les crochets ne s'utilisent pas avec les adresses du réseau fe80::/10. ^^

    03/05/2020 21:53:44 - permalink -
    - https://cakeozolives.com/shaarli-antichesse/?AXuVyg#zap
  • De Debian GNU/Linux Stretch à Buster

    Comme à chaque passage à une nouvelle version de Debian GNU/Linux, voici un résumé de tout ce qui a foiré ou changé quand je suis passé à Buster.

    Résumé des points qui peuvent poser problème (triés par niveau de risque) : suites cryptographiques faibles (RSA / DHE < 2048 bits, ECDSA / ECDHE < 224 bits) non prises en charge par défaut par OpenSSL (débrayable) + TLS 1.2 par défaut avec OpenSSL (débrayable), fin de la prise en charge des certificats x509 utilisant SHA-1 par OpenSSL (débrayable) et GnuTLS (non négociable), AppArmor activé par défaut, et traduction auto iptables->nftables.


    Arborescence

    /bin, /lib et /sbin n'existent plus. Il reste /usr/{bin,lib,sbin}.

    Sur un système fraîchement installé, /bin, /lib et /sbin sont des liens symboliques. Sur un système mis à jour, rien change, sauf si l'on installe et utilise le paquet usrmerge.

    Attention donc aux scripts qui contiennent des chemins absolus vers des binaires : il n'y aura pas toujours un lien symbolique sur /bin, /lib et /sbin.


    Apache HTTPd + GnuTLS

    Après la mise à jour, Apache HTTPd ne démarre plus. sudo journalctl -x -u apache2 affiche :

    apachectl[6296]: AH00526: Syntax error on line 6 of /etc/apache2/mods-enabled/gnutls.conf:
    apachectl[6296]: Could not find socache provider 'dbm', please make sure that the provider name is valid and the appropriate module is loaded (maybe mod_socache_dbm.so?).

    GnuTLS active par défaut le cache partagé des sessions TLS. Il est stocké dans le backend DBM. Soit on désactive ce cache, soit on change de backend, soit, meilleure solution, on active le module correspondant avec a2enmod socache_dbm && systemctl restart apache2.


    AppArmor

    Généralités

    AppArmor est installé et activé par défaut, sauf si apt est configuré pour ne pas installer les paquets recommandés (car AppArmor est une recommandation du noyau, pas une dépendance).

    Je n'avais pas compris un truc : pour l'instant, l'utilisation d'AppArmor par chaque logiciel est basé sur le volontariat. Si un logiciel n'a pas de profil AppArmor, alors il n'est pas embêté. Actuellement, les profils sont fournis par les paquets apparmor, apparmor-profiles, apparmor-profiles-extra, par les logiciels volontaires (exemples : bind9, ntpd, haveged, tcpdump) et par les logiciels qui ne veulent pas se faire embêter (exemple : MariaDB livre un profil vide afin de désactiver AppArmor).

    Pour voir les profils chargés et les processus contraints à un instant T, il y a la commande aa-status.


    Problème avec BIND9

    Sur mes systèmes, le seul logiciel qui a été contraint à tort par AppArmor est bind9. Dans son journal, je lisais :

    named[551]: could not configure root hints from '/var/named/zones/defaultdb/db.root': permission denied
    named[551]: loading configuration: permission denied
    named[551]: general: error: dumping master file: /var/named/zones/slave/tmp-DwqA5s4Tm6: open: permission denied

    C'est normal : le profil livré avec BIND9 (/etc/apparmor.d/usr.sbin.named) ne prévoit pas l'utilisation de /var/named. Or, je mets la configuration du serveur dans /etc/bind et le contenu servi par le serveur dans /var/named, car ce contenu est normalisé (il est le même quel que soit le serveur DNS utilisé BIND9, NSD, PowerDNS, etc.). Comme on met le contenu servi par un serveur web dans /var/wwwet la configuration de ce serveur web dans /etc/apache2 ou /etc/nginx.

    Pour débloquer la situation, on crée un profil local qui surchargera le profil par défaut. Il se nomme /etc/apparmor.d/local/usr.sbin.named et son contenu est le suivant :

    # Site-specific additions and overrides for usr.sbin.named.
    # For more details, please see /etc/apparmor.d/local/README.
    /var/named/** r,
    /var/named/zones/slave/* rw,

    Il ne reste plus qu'à recharger la conf' d'AppArmor et à redémarrer BIND9 : systemctl reload apparmor.service && systemctl restart bind9.


    Journalisation

    Je déteste que tout soit consigné dans /var/log/syslog. J'aime bien avoir un journal pour chaque logiciel. Or, AppArmor tombe dans /var/log/syslog.

    Pour remédier à ça, je crée un fichier /etc/rsyslog.d/apparmor.conf qui contient :

    if $msg contains 'apparmor' then /var/log/apparmor.log
    & stop

    Je redémarre rsyslog : systemctl restart rsyslog (un reload ne suffit pas, de mémoire).

    Pour l'archivage, je crée un fichier /etc/logrotate.d/apparmor contenant :

    /var/log/apparmor.log
    {
            monthly
            missingok
            rotate 12
            compress
            delaycompress
            notifempty
            create 640 root adm
            sharedscripts
            olddir /var/log/archives/systeme
            postrotate
                    /usr/lib/rsyslog/rsyslog-rotate
            endscript
    }


    apt

    • apt vérifie désormais que la date des fichiers d'un dépôt n'est pas dans le futur. Une option de configuration permet de revenir au comportement antérieur ;

    • L'utilisation de dépôts non-authentifiés (absence de la clé OpenPGP, par exemple) émet désormais une erreur (qu'il faut contourner avec une option de configuration), plus un avertissement ;

    • apt prend en charge nativement https. Plus besoin du paquet apt-transport-https qui contient désormais uniquement de la doc' ;

    • La prise en charge des dépôts FTP est désactivée par défaut. Debian compte éteindre ses dépôts FTP… depuis novembre 2017. Une option de configuration permet d'activer la prise en charge de FTP par apt. En ce qui me concerne, je suis passé, à regret (le "tout sur HTTP" me pose un problème éthique, car ça rend le développement de nouveaux protocoles très compliqués en fermant le jeu), à HTTP.


    deluged / deluge

    Au démarrage de l'interface deluge-gtk, on doit démarrer le démon deluged puis s'y connecter. Or, là, il ne veut plus démarrer. Aucun message d'erreur.

    On le lance en ligne de commande :

    $ deluged
    […]
    [ERROR   ] 00:41:33 rpcserver:378 [('SSL routines', 'SSL_CTX_use_certificate', 'ee key too small')]

    Il existe un rapport de bug. La clé pour communiquer avec deluged ne respecte pas les critères de robustesse appliqués par défaut par OpenSSL dans Buster (voir ci-dessous).

    Solution ? rm ~/.config/deluge/ssl/*. Une nouvelle clé sera générée et l'on pourra lancer deluged comme avant.


    Dovecot

    • Dovecot ne génère plus lui-même ses paramètres Diffie-Hellman. La directive de configuration ssl_dh_parameters_length est invalide. Il faut désormais générer nous-même nos DH avec openssl dhparam et les fournir à Dovecot. Exemple : ssl_dh = </etc/dovecot/ssl/dh_4096.pem.

    • ssl_protocols est remplacé par ssl_min_protocol. Exemple : ssl_protocols = !SSLv3 devient ssl_min_protocol = TLSv1.

    • La compression TLS est désactivée par défaut (ssl_options = no_compression), ce qui est une bonne chose vu les attaques que la compression rend possibles (CRIME).


    dnssec-trigger

    J'utilise ce logiciel depuis huit ans. Jamais un souci, rien. Mais après le passage à Buster, il refuse de démarrer :

    dnssec-triggerd[1155]: [1581725206] unbound-control[31667:0] warning: control-enable is 'no' in the config file.
    dnssec-triggerd[1155]: [1581725206] unbound-control[31667:0] error: connect: Connection refused for 127.0.0.1 port 8953
    […]
    dnssec-triggerd[10688]: error: Error setting up SSL_CTX client cert
    dnssec-triggerd[10688]: 140194432980928:error:140AB18F:SSL routines:SSL_CTX_use_certificate:ee key too small:../ssl/ssl_rsa.c:310:
    dnssec-triggerd[10688]: [10688] warning: unbound-control exited with status 256, cmd: /usr/sbin/unbound-control forward 80.67.169.40 80.67.169.12
    dnssec-triggerd[10688]: Traceback (most recent call last):
    dnssec-triggerd[10688]:   File "/usr/lib/dnssec-trigger/dnssec-trigger-script", line 774, in <module>
    dnssec-triggerd[10688]:     main()
    dnssec-triggerd[10688]:   File "/usr/lib/dnssec-trigger/dnssec-trigger-script", line 761, in main
    dnssec-triggerd[10688]:     Application(sys.argv).run()
    dnssec-triggerd[10688]:   File "/usr/lib/dnssec-trigger/dnssec-trigger-script", line 472, in run
    dnssec-triggerd[10688]:     self.method()
    dnssec-triggerd[10688]:   File "/usr/lib/dnssec-trigger/dnssec-trigger-script", line 556, in run_setup
    dnssec-triggerd[10688]:     self._unbound_set_negative_cache_ttl(UNBOUND_MAX_NEG_CACHE_TTL)
    dnssec-triggerd[10688]:   File "/usr/lib/dnssec-trigger/dnssec-trigger-script", line 641, in _unbound_set_negative_cache_ttl
    dnssec-triggerd[10688]:     subprocess.check_call(CMD, stdout=DEVNULL, stderr=DEVNULL)
    dnssec-triggerd[10688]:   File "/usr/lib/python3.7/subprocess.py", line 347, in check_call
    dnssec-triggerd[10688]:     raise CalledProcessError(retcode, cmd)
    dnssec-triggerd[10688]: subprocess.CalledProcessError: Command '['unbound-control', 'set_option', 'cache-max-negative-ttl:', '5']' returned non-zero exit

    On trouve deux rapports de bug : #898969 et #919256. La clé pour communiquer avec Unbound ne respecte pas les critères de robustesse appliqués par défaut par OpenSSL dans Buster (voir ci-dessous).

    Je ne suis pas parvenu à résoudre ce problème en supprimant les clés actuelles et en en générant de nouvelles, du coup, j'ai bourriné :

    • killall dnssec-trigger-panel ;

    • sudo apt-get autoremove --purge dnssec-trigger unbound unbound-anchor ;

    • sudo find / -iname '*dnssec-trigger*' + supprimer ce qui est pertinent, notamment /etc/dnssec-trigger et /etc/NetworkManager/dispatcher.d/01-dnssec-trigger-hook ;

    • sudo apt-get install dnssec-trigger ;

    • sudo dnssec-trigger-control-setup -i ;

    • sudo systemctl restart unbound dnssec-triggerd


    EasyRSA / OpenVPN

    Plusieurs options de configuration ont été supprimées dans la version 2.4 d'OpenVPN (présente dans Debian depuis Stretch) comme tun-ipv6 et tls-remote. Ce n'est pas bloquant : OpenVPN émet un avertissement et utilise l'option de remplacement.

    D'autres options seront supprimées dans OpenVPN 2.5. ns-cert-type, par exemple. Ce ne sera pas bloquant : OpenVPN émettra un avertissement et utilisera l'option de remplacement. Il n'est déjà plus possible d'émettre des certificats x509 comportant cet attribut avec EasyRSA.


    ejabberd

    Comme à chaque mise à jour majeure de Debian, la configuration d'ejabberd change pas mal : des modules qui n'existent plus / sont dépréciés, des directives de configuration qui n'existent plus, etc. :

    [warning] <0.81.0>@ejabberd_config:emit_deprecation_warning:1436 Module mod_http_bind is deprecated, use mod_bosh instead
    [warning] <0.81.0>@ejabberd_pkix:opt_type:131 Option 's2s_certfile' is deprecated, use 'certfiles' instead
    [warning] <0.81.0>@ejabberd_c2s:listen_opt_type:984 Listening option 'certfile' for ejabberd_c2s is deprecated, use 'certfiles' global option 

    La nouvelle version empaquetée de la configuration apporte également des macros qui permettent de configurer TLS pour les échanges entre serveurs et pour les échanges avec un client (certfiles, DH_FILE, TLS_CIPHERS, TLS_OPTIONS, etc.). C'est très pratique puisque ça factorise la conf'.

    Vu que je modifie peu la configuration livrée (réduction d'un cran de la verbosité du journal (4 -> 3), domaine, certificat x509, paramètres DH, suites de chiffrement TLS, pas d'auth interne, et activation du module Message Archive Management), j'ai sauvegardé mon ancienne conf', j'ai pris celle livrée par le paquet et je l'ai modifiée.

    ÉDIT DU 21/06/2020 à 19 H 30 : 1) Vu qu'on remet la configuration à zéro, il faut bien penser à désactiver, à nouveau, l'interface web en commentant le port 5280 dans la section « listen ». Par défaut, ejabberd écoute le monde entier… Si l'on veut conserver l'interface web, on peut changer la ligne « ip » de ce module afin qu'il écoute uniquement en local. 2) Ça ne date pas de Buster, mais epmd, un composant erlang dont dépend ejabberd, écoute le monde entier sur le port tcp/4369. Ça sert à agréger plusieurs serveurs et à piloter le serveur avec ejabberd. J'ai écrit un article pour configurer epmd afin qu'il écoute uniquement en local car cela se fait du côté de systemd, pas (plus ?) depuis la configuration d'ejabberd, contrairement à ce que prétend la doc' d'ejabberd. FIN DE L'ÉDIT DU 21/06/2020 à 19 H 30.


    Firefox / Thunderbird

    (Ce point a aucun rapport avec Debian Buster, mais Buster est l'ocassion de faire un rappel.)

    DNS over HTTP (DOH) est en cours de généralisation. Il y a de bonnes raisons de ne pas vouloir utiliser DoH Pour le désactiver dans Firefox et dans Thunderbird (qui partage une grande partie de son code avec Firefox), on affecte la valeur « 5 » à la clé de configuration « network.trr.mode » dans « about:config » (ou menu « Édition » -> « Préférences » -> « Avancé » -> « Éditeur de configuration », pour Thunderbird). On peut aussi configurer cela plus finement comme l'expose l'article pointé.


    GnuPG

    Suite à l'attaque de 2019 contre les serveurs de clés consistant à saturer une clé de signatures, le projet GnuPG a choisi d'appliquer par défaut la politique "recevoir uniquement ses propres signatures depuis les serveurs de clés". Debian suit ce changement.

    Je trouve que c'est une idiotie. Lire cet avis.


    GnuTLS

    On passe de la version 3.5.X à la version 3.6.X. Le principal changement est que SHA-1 n'est plus un algorithme de hachage convenable quand il est utilisé dans le cadre d'une signature de certificat, donc sa prise en charge dans ce contexte a été anihilée à la compilation. Les outils de manipulation LDAP (ldap-utils), qui utilisent GnuTLS, foireront sur un certificat SHA-1, par exemple.


    hash-slinger

    hash-slinger n'est pas empaqueté dans Buster à cause d'une dépendance à python3-m2crypto non satisfaite.

    La version de hash-slinger qui utilise python2 que t'as pu installer avant de mettre à jour ton système pourrait ne pas fonctionner dans certains cas à cause de l'obsolescence de la bibliothèque TLS. Exemple :

    tlsa --verify --port 25  <serveur>
    Traceback (most recent call last):
      File "/usr/bin/tlsa", line 774, in <module>
        sslStartTLSConnect(connection, (str(address), int(args.port)), args.starttls)
      File "/usr/bin/tlsa", line 251, in sslStartTLSConnect
        ret = connection.connect_ssl()
      File "/usr/lib/python2.7/dist-packages/M2Crypto/SSL/Connection.py", line 293, in connect_ssl
        return m2.ssl_connect(self.ssl, self._timeout)
    M2Crypto.SSL.SSLError: wrong version number

    On remarque la présence d'autres bugs. Exemple :

    $ tlsa --create --usage 3 --selector 0 --mtype 1 --certificate mycertfile.pem <nom_machine>
    Could not verify local certificate: no start line (Expecting: CERTIFICATE).
    Traceback (most recent call last):
      File "/usr/bin/tlsa", line 889, in <module>
        genRecords(args.host, args.protocol, args.port, chain, args.output, args.usage, args.selector, args.mtype)
    NameError: name 'chain' is not defined

    Heu ? Osef de la chaîne de certificats, on veut un usage 3 (mettre dans le DNS le seul certificat du serveur). Si l'on regarde le code :

    chain = connection.get_peer_cert_chain()
    genRecords(args.host, args.protocol, args.port, chain, args.output, args.usage, args.selector, args.mtype)

    Heu ? Osef de récupérer le certificat auprès du pair c'est-à-dire du serveur puisqu'on le passe en paramètre (--certificate mycertfile.pem). C'est un bug connu.



    Mieux vaut utiliser la version du dépôt git officiel du projet. Néanmoins, elle utilise la version 3 de Python. Donc il faut installer le module M2Crypto (sinon on aura l'erreur ModuleNotFoundError: No module named 'M2Crypto').

    La compilation du module M2Crypto nécessite swig, donc on l'installe : sudo apt-get install swig.

    On installe le module M2Crypto pour Python 3 : sudo pip3 install m2crypto.

    On récupère hash-slinger : git clone https://github.com/letoams/hash-slinger.

    On l'installe : cd hash-slinger && sudo make install.


    ifupdown

    • Une interface VLAN marquée « allow-hotplug » monte en même temps que l'interface physique parente quand celle-ci est branchée ;

    • Le traitement des interfaces est désormais parallélisé. Attention aux scripts pre-up, post-up, etc.

    • On peut désormais appliquer une regex minimaliste sur le nom / l'adresse MAC / le type d'une interface (exemple : « /eth* ») et lui donner un surnom qu'on peut réutiliser par la suite (exemple : « /eth*/=foo »).


    iptables / ebtables / arptables

    iptables (iptables-nft de son vrai nom), ebtables (ebtables-nft) et arptables (arptables-nft) utilisent désormais le sous-système noyau nf_tables au lieu de xtables. Le but est de préparer la migration d'iptables (et co) vers nftables qui aura prétendument lieu dans la prochaine version stable de Debian (je n'y crois pas : la commande ip (remplaçante de ifconfig, route, vlan et d'autres) et la commande ss (remplaçante de netstat) ont plus de 10 ans, comme nftables, et il ne s'est rien passé malgré les menaces de déprécier ifconfig et compagnie).

    La syntaxe des règles iptables ne changedonc pas, grâce à iptables-nft (et compagnie) qui effectue la conversion en douce, mais il faudrait migrer vers nftables.



    Si l'on veut migrer, iptables-translate et iptables-restore-translate permettent de traduire les règles existantes. iptables-translate pour traduire une règle, iptables-restore-translate pour traduire un fichier de règles (obtenu avec iptables-save, par exemple). Attention : il n'y pas de contrôle de la syntaxe sur les éléments variants (nom d'une interface, nom d'une chaîne, nom d'une cible, etc.). Exemple :

    $ sudo iptables-translate -t nat -A POSTROUTINGE -o tun0 -j TOTO
    nft add rule ip nat POSTROUTINGE oifname "tun0" counter jump TOTO

    On notera également que certaines traductions ne sont pas proposées (je donne la traduction de cet exemple plus bas) :

    $ sudo iptables-translate -P FORWARD ACCEPT
    Translation not implemented
    nft 



    Voici ma procédure pour migrer d'iptables vers nftables à partir d'un système équipé de netfilter-persistent :

    sudo iptables-restore-translate -f /etc/iptables/rules.v4 > /tmp/nftables.conf.tmp
    sudo ip6tables-restore-translate -f /etc/iptables/rules.v6 >> /tmp/nftables.conf.tmp
    
    # Un script nftables commence par « #!/usr/sbin/nft -f »
    sed -i '1s&^&#!/usr/sbin/nft -f\n&' /tmp/nftables.conf.tmp
    
    # iptables-restore-translate crée les tables nat et mangle alors que je ne les utilise pas ou rarement.
    # Je les vire afin d'améliorer la visibilité 
    sed -i '/ip nat/d' /tmp/nftables.conf.tmp
    sed -i '/ip mangle/d' /tmp/nftables.conf.tmp
    
    # Vu que je vais temporairement être sans pare-feu (surtout s'il y a des règles cassées), je me déconnecte du réseau
    sudo ifdown eth0
    
    # Je vire toutes les règles (filtrage, NAT, etc.) IPv4 et IPv6 actuellement en place
    sudo nft flush ruleset
    
    # J'importe les règles au format nftables avec l'outil d'administration adéquat
    sudo nft -f /tmp/nftables.conf.tmp
    
    # Je vérifie que les règles sont en place
    sudo nft list ruleset
    
    # Puisque tout est OK, je me connecte au réseau
    sudo ifup eth0
    
    # Puisque tout est OK, je crée le fichier de configuration utilisé par l'unit systemd pour charger les règles
    # -s permet de ne pas inclure les compteurs (de paquets / octets) dans l'export
    # Oui, le format issu de la commande ip[6]tables-restore-translate aurait fonctionné, mais je voulais conserver le format du fichier /etc/nftables.conf
    sudo nft -s list ruleset | sudo tee /etc/nftables.conf
    
    # J'insère l'entête obligatoire pour un script nftables
    # + je purge toutes les règles de filtrage. Cela permet de partir sur un jeu de règles sain lors d'un start ou d'un restart
    sudo sed -i '1s&^&#!/usr/sbin/nft -f\n\nflush ruleset\n\n&' /etc/nftables.conf
    
    # J'active l'unit systemd nftables et je la démarre
    sudo systemctl enable nftables
    sudo systemctl start/restart nftables
    
    # Je veux pouvoir revenir facilement à iptables, donc je ne vais pas le désinstaller
    # donc j'empêche netfilter-persistent de charger les vieilles règles au démarrage
    sudo systemctl disable netfilter-persistent
    sudo systemctl mask netfilter-persistent



    ATTENTION :

    • Quand des règles ont été créées avec nftables dans une chaîne de type « ip[6] », ip[6]tables ne peut plus lire le contenu d'une table. Le message d'erreur suivant s'affiche : iptables v1.8.2 (nf_tables): table 'nat' is incompatible, use 'nft' tool.. C'est normal : il ne faut pas utiliser les commandes iptables-legacy / iptables-nft en même temps que nft, car elles utilisent des sous-systèmes différents du noyau ;

    • Comme avec netfilter-persistent, si des règles ne peuvent pas être appliquées, aucune alerte est levée. SystemD remonte aucune info, aucun code retour. Attention donc à ne pas se retrouver à poil.



    Commandes utiles :

    • Démarrer / arrêter le pare-feu : sudo systemctl start nftables / sudo systemctl stop nftables ;

    • Nettoyer les règles ajoutées temporairement à la mano : sudo systemctl restart nftables ;

    • Voir toutes les règles (filtrage, nat, mangle, arp, ebtables) IPv4 et IPv6 en vigueur : sudo nft list ruleset ;

    • Voir toutes les tables, les chaînes et les règles d'un protocole (IPv4, IPv6, etc.) : sudo nft list ruleset ip6 (ici, que les règles IPv6 ‒ je simplifie, ce n'est pas vrai, voir ci-dessous ‒) ;

    • Voir toutes les chaînes et les règles d'une table : sudo nft list table ip6 filter (ici, que les règles de filtrage IPv6) ;

    • Ajouter une règle à la fin d'une chaîne existante (oui, il faut utiliser les guillemets et les apostrophes dès qu'on veut insérer un commentaire contenant plusieurs mots) : sudo nft 'add rule ip filter INPUT iifname "eth0" udp dport 666-999 counter accept comment "Ceci est un commentaire de plusieurs mots"' (ajout d'une règle dans la chaîne nommée INPUT de la table filter du protocole ip autorisant les paquets UDP destinés aux ports entre 666 et 999 inclus qui entrent par l'interface eth0) ;

      • Insérer une règle au début d'une chaîne existante : nft insert rule ip filter INPUT iifname "eth0" udp dport 666-999 counter accept ;
    • Comme avec iptables, la case est importante : si le nom d'une table ou d'une chaîne est en majuscule, il faut respecter cela sinon on a un message d'erreur abscons : « Error: Could not process rule: No such file or directory » ;

    • Supprimer une règle à chaud (la logique est identique pour une chaîne et une table) :

      # Récupérer le « handle » (numérotation interne) d'une règle
      sudo nft -a list ruleset
      # Supprimer cette règle (ici une règle dans la chaîne nommée INPUT de la table nommée filter du protocole IPv4)
      sudo nft delete rule ip filter INPUT handle <handle>


    • Changer à chaud la politique par défaut d'une chaîne : sudo nft chain ip filter FORWARD { policy drop \; } (la politique par défaut de la chaîne nommée FORWARD de la table filter du protocole IPv4 est désormais drop (rejet silencieux) ;

    • Créer une table, une chaîne et une règle :

              sudo nft add table ip nat
      # type et hook : à quelle interface réseau et à quelle partie de la pile réseau veut-on brancher la chaîne ? Ça détermine les paquets reçus par la chaîne
      #   valeurs possibles : https://wiki.nftables.org/wiki-nftables/index.php/Configuring_chains#Base_chain_types
      #   On peut créer des chaînes persos, non-reliées à la pile réseau, qui recevront des paquets via d'autres chaînes (-j nom_chaîne)
      # policy : politique par défaut de la chaîne : que fait-on d'un paquet qui a matché aucune règle ?
      # priority : ordonner les chaînes d'un même type+hook entre elles (le nombre le plus élevé l'emporte)
      #   \ + positionnement dans le processus de filtrage : exemple < - 200 = le paquet sera transmis à la chaîne avant la mise en place du suivi de connexion
      #   valeurs possibles : https://wiki.nftables.org/wiki-nftables/index.php/Configuring_chains#Base_chain_priority
      sudo nft add chain ip nat POSTROUTING '{ type nat hook postrouting priority 100; policy accept; }'
      sudo nft add rule ip nat POSTROUTING oifname "tun0" counter masquerade
    • Du point précédent, on retient que le nom d'une table et d'une chaîne est totalement personnalisable. Avec iptables, la chaîne qui s'occupe du filtrage en sortie est forcément la chaîne nommée OUTPUT de la table nommée filter. Avec nftables, ça peut être la chaîne nommée « toto » de la table « LOL » :

      table ip LOL { # handle 82
          chain toto { # handle 1
              type filter hook output priority 0; policy drop;
              icmp type echo-request accept # handle 2
          }
      }



    iptables-restore-translate traduit un jeu de règles ligne par ligne, donc on ne profite pas des possibilités de factorisation de nftables :

    • Une unique règle qui s'applique à plusieurs interfaces réseau sans utiliser ipset : sudo nft add rule ip filter INPUT iifname {"tun0", "wlan0"} counter accept ;

    • Une unique règle qui s'applique à plusieurs adresses IP source ou destination sans utiliser ipset (destination dans cet exemple) : sudo nft add rule ip filter OUTPUT ip daddr {192.0.2.1, 198.18.0.0/15} counter accept ;

    • Une unique règle qui s'applique à plusieurs protocoles de la couche 4 : sudo nft add rule ip filter FORWARD ip protocol {tcp, udp} accept ;

    • Une unique règle qui s'applique à plusieurs ports d'un même protocole de couche 4 : sudo nft add rule ip filter INPUT udp dport {53, 5353} counter accept ;

    • Et si l'on veut autoriser un même port pour plusieurs protocoles comme autoriser, en une seule règle, le DNS (qui nécessite les ports udp/53 et tcp/53) ? Ce n'est pas vraiment prévu : le mot clé « dport » est relatif au mot clé (tcp ou udp). On peut ruser, mais c'est crade : sudo nft 'add rule inet filter INPUT ip protocol {tcp, udp} @th,16,16 53 counter accept comment "DNS udp et tcp"'. Attention : cela nécessite que le port de destination soit stocké au même emplacement dans l'entête des deux protocoles.



    nftables permet également d'appliquer une même règle en IPv4 et en IPv6. Cela se fait avec une table de type « inet ». Cela signifie que des règles concernant IPv4 peuvent se trouver dans une table de type inet ET dans une table de type ip (d'où sudo nft list ruleset ip6 n'affiche pas toutes les règles IPv6 mais toutes les tables de type ip6). Exemple pour autoriser SSH en entrée en IPv4 et en IPv6 :

    sudo nft add table inet filter
    sudo nft add chain inet filter INPUT '{ type filter hook input priority 0; policy drop; }'
    sudo nft add rule  inet filter INPUT tcp dport ssh counter accept

    Attention : à hook identique et à priorité égale ou même supérieure une chaîne de type inet passe avant une chaîne de type ip. Si la chaîne inet ne drop pas le paquet, la chaîne ip le verra passer, sinon non. Source. Cela peut poser problème. Exemple : virt-manager crée un réseau NATé pour les machines virtuelles. Pour ce faire, il utilise des chaînes de type / de la famille ip. J'effectue tout mon filtrage dans des chaînes de type inet dont la politique est de drop sauf ce qui va dans un VPN. Conclusion : la machine virtuelle n'aura pas d'IP (DHCP foiré) et ne pourra pas sortir sur Internet.

    Dans une chaîne de type inet, il est possible de filtrer uniquement IPv4 ou IPv6. Soit en utilisant une directive spécifique à un protocole (exemple : sudo nft add rule inet filter INPUT ip daddr 192.0.2.1/32 accept, soit en utilisant les mots-clés « meta nfproto ipv(4|6) » (exemple : sudo nft add rule inet filter OUTPUT meta nfproto ipv4 udp dport 666 reject with icmp type admin-prohibited).



    Documentations utiles :

    • nftables dans le wiki Debian ;

    • Doc' poussée sur les chaînes, hook, priorités, etc. sur le wiki nftables ;

    • Mots-clés de référence utilisables dans une règle sur le wiki nftables.


    logrotate / rsyslog

    Mes journaux consignés par rsyslog n'étaient plus archivés par logrotate. De plus, dans /etc/logrotate.d/rsyslog, je constate qu'on n'utilise plus invoke-rc.d rsyslog rotate > /dev/null, mais /usr/lib/rsyslog/rsyslog-rotate.

    Ces deux éléments sont liés : il y a un bug (l'unit systemd fait démarrer rsyslog sans PID, alors qu'on en a besoin pour invoke-rc.d) et Debian a mis en place le magnifique (ironie) script /usr/lib/rsyslog/rsyslog-rotate (résumé : si systemd est en cours d'utilisation, alors on utilise systemctl kill pour envoyer un signal à rsyslog, sinon on utilise invoke-rc.d).

    J'ai modifié toutes mes configurations logrotate afin d'utiliser /usr/lib/rsyslog/rsyslog-rotate dans l'action de post-rotate, même si ça ne me semble pas pérenne…


    man-db

    CRON me rapporte une erreur :

    /etc/cron.daily/man-db:
    /usr/bin/mandb: error while loading shared libraries: libgdbm.so.3: cannot open shared object file: No such file or directory
    run-parts: /etc/cron.daily/man-db exited with return code 127

    Regardons les bibliothèques de fonctions qui sont liées dynamiquement à man-db :

    $ ldd /usr/bin/mandb 
    linux-vdso.so.1 (0x00007ffeb36fe000)
    libmandb-2.7.6.1.so => /usr/lib/man-db/libmandb-2.7.6.1.so (0x00007fb4ffa8b000)
    libman-2.7.6.1.so => /usr/lib/man-db/libman-2.7.6.1.so (0x00007fb4ff868000)
    libgdbm.so.3 => /usr/lib/x86_64-linux-gnu/libgdbm.so.3 (0x00007fb4ff661000)
    libpipeline.so.1 => /usr/lib/x86_64-linux-gnu/libpipeline.so.1 (0x00007fb4ff453000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb4ff0b4000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fb4fee9a000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fb4ffeb3000)

    Hum… Il y a bien libgdbm.so.3… qui n'existe plus au profit de libgdbm.so.6.

    """"Solution"""" ? apt-get install --reinstall man-db

    Merci pour le poisson.


    MariaDB

    MariaDB 10.3 ne s'est pas installé tout seul, j'ai dû le faire à la mano (sudo apt-get install mariadb-server). J'imagine que j'avais installé le paquet mariadb-server-10.1 quand j'étais sous Stretch au lieu du paquet mariadb-server…

    Durant l'installation, je lis mysql_install_db : Installation of system tables failed!. Dans le journal MariaDB (/var/log/mysql/…), je lis : Unable to lock ./ibdata1 error: 11.

    Hum… Fichier déjà ouvert. Donc : systemctl stop mariadb && mysql_install_db && systemctl start mariadb.


    MATE

    Durant la mise à jour, le texte de toute fenêtre déjà ouverte (ou ouverte après-coup) foire : flou, difficile à lire, etc. Les intitulés des menus sont parfois tronqués comme le menu « fichier » dans Pluma. Sur tout site web, les caractères sont remplacés par des carrés. Après vérification, ce n'est pas un changement de définition (1920x1080) ni de résolution (en DPI).

    On se dit qu'on va reboot. Depuis le menu MATE, ça ne fonctionne pas : je tombe sur un GNOME shell (qu'est-ce qu'il fout ici, celui-là ?!) qui me demande mon mot de passe comme si la session était verrouillée. Toute saisie est impossible. Le bouton arrêter / redémarrer en haut à droite de l'écran fait rien. Pas d'accès aux consoles (ctrl+alt+fx). On est parti pour un REISUB / BUSIER…

    Au redémarrage, tout est OK : les textes et les menus s'affichent correctement et l'extinction / le redémarrage via le menu MATE sont fonctionnels. Même chose pour les tty.

    Néanmoins, la sensibilité de la souris a été clairement abaissée. Mon pointeur se traîne… On corrige ça dans les paramètres.

    Je note aussi que, quand caja (explorateur de fichiers MATE) gueule « failed to activate device operation not permitted », ça signifie que je n'ai pas saisi la bonne passphrase pour déverrouiller un disque dur interne (le message qui s'affiche pour pareille boulette sur un disque dur externe n'a pas changé…).


    mumble

    Prise en charge des suites de chiffrement qui permettent la Perfect Forward Secrecy (en clair : utilisation de clés de chiffrement symétrique temporaires qui ne sont pas échangées entre le client et le serveur grâce aux algos DHE / ECDHE, ce qui fait que si la clé privée asymétrique est compromisse, les échanges passés restent secrets). Cool. \o/


    ntpd / tzdata

    Le paquet tzdata livre désormais un fichier qui annonce les secondes intercalaires (ça permet de les gérer). ntpd est configuré par défaut pour utiliser ce fichier (leapfile /usr/share/zoneinfo/leap-seconds.list). Avant, il fallait récupérer manuellement le fichier auprès du NIST (ou de l'IANA ou…) et configurer ntpd nous-même. Cool.

    Ça ne changera pas grand-chose puisque les serveurs NTP de strate 1 bien connus communiquent la seconde intercalaire via le protocole NTP lui-même.


    ntpdate

    Ce paquet ne fournit plus de hooks ifupdown permettant à ntpdate d'être exécuté à chaque fois qu'une connexion au réseau est établie. Il faut utiliser un démon NTP (ntpd, chrony, etc.) ou, au pire du pire, bidouiller ses propres scripts.

    C'est positif, ça posait souvent problème : synchronisation aléatoire, ça n'utilisait pas les serveurs NTP du réseau reçus en DHCP, etc.


    OpenDNSSEC

    Lors de son démarrage, ods-enforcerd consigne Token.cpp(482): Could not get the token flag dans son journal. Cela fait penser à ce bug, mais il est trop vieux pour ne pas avoir été corrigé dans Buster. De plus, un simple systemctl restart ods-enforcerd suffit à faire rentrer les choses dans l'ordre. Je pense à une race-condition au démarrage du serveur, car ça n'est pas reproduit après le deuxième redémarrage. À défaut d'une solution, je me note d'être vigilant à chaque redémarrage de mon serveur…

    J'ai découvert que, dans le cadre des DNS adapters (source), le signeur écoute sur les ports TCP et UDP 15354 de toutes les interfaces, et évidemment pas que sur localhost… Ce n'est pas ce que dit la documentation, mais c'est ce que je constate. Pour rattraper le coup, j'ai remplacé le bloc Listener dans /etc/opendnssec/conf.xml par celui-ci :

    <Listener>
            <Interface>
                    <Address>127.0.0.1</Address>
                    <Port>5353</Port>
            </Interface>
    </Listener>


    OpenSSH

    • Les variables d'environnement (y compris celles positionnées dans le fichier authorizedkeys) ne peuvent plus surcharger les variables « SSH* » de sshd ;

    • La journalisation de l'authentification est plus précise durant la phase de pré-auth et le format de certains messages a changé donc attention aux outils qui examinent les journaux SSH.


    OpenSSL

    Par défaut, c'est la version 1.2 ou supérieure du protocole TLS qui sera utilisée.

    Par défaut, les suites de chiffrement faibles sont désactivées. Adieu RSA / DHE avec des clés inférieures à 2048 bits et ECDSA / ECDHE < 224 bits. Adieu les certificats dont la signature repose sur SHA-1 pour en créer le condensat.

    Dans les deux cas, cela peut être contourné dans /etc/ssl/openssl.cnf en remplaçant :

    [system_default_sect]
    MinProtocol = TLSv1.2
    CipherString = DEFAULT@SECLEVEL=2

    Par :

    [system_default_sect]
    MinProtocol = None
    CipherString = DEFAULT

    Attention : les applications peuvent faire comme elles veulent. Exemples : wpa_supplicant accepte les certificats x509 dont l'algo de hachage avant signature est SHA-1. openssl s_client affiche un message « Verify return code: 68 (CA signature digest algorithm too weak) »


    PHP

    J'utilise le module PHP pour Apache HTTPd. Je suis quasiment sûr que le paquet libapache-mod-php (et non pas libapache-mod-php7.2) était installé. Pourtant, j'ai dû activer moi-même le module PHP 7.3 (version empaquetée dans Buster) à la main (a2endmod php7.3 && systemctl restart apache2). Au préalable, j'ai migré ma conf' PHP (php.ini) personnalisée de /etc/php/7.2/apache2 vers /etc/php/7.3/apache2 (ne pas faire un cp sinon on ne bénéficie pas des nouveautés…, préférer diff).


    Thunderbird

    La date et l'heure des emails s'affichaient au format anglais. Le paquet thunderbird-l10n-fr était bien installé. J'avais vérifié mes locales. J'avais tenté de lancer Thunderbird depuis un shell en précisant la locale juste avant. J'avais tenté de bidouiller mail.ui.display.dateformat.default et ses amies Sans succès.

    Depuis la mise à jour vers Buster, les dates et l'heure des emails sont au format français…


    ssmtp

    ssmtp n'est pas empaqueté dans Buster, mais il est présent dans testing et sid, donc, comme le T-800, il reviendra.


    xsane

    Depuis octobre 2018, xsane n'est plus maintenu (le site web officiel affiche « XSane (temporarily offline!) »).



    #Debian 9 à Debian 10 ; Debian 9 à 10

    03/05/2020 18:27:02 - permalink -
    - http://shaarli.guiguishow.info/?Mfvd7A
  • Si session graphique difficile / impossible à ouvrir après migration de GNOME 3 vers MATE : rm ~/.xinitrc

    Avant, j'utilisais GNOME 2. Puis il a fallu passer à GNOME 3. Sauf que GNOME 3, shell ou non, ça ne me convient pas. MATE, un fork de GNOME 2 était disponible dans les paquets Debian (mais pas dans l'installeur). J'ai donc installé MATE à côté d'un GNOME 3.

    Bien plus tard, j'ai commencé à supprimer GNOME 3 sauf ce qui me plaisait : la calculette GNOME (gnome-calculator) a une interface qui me parle plus que celle de MATE (mate-calculator) en plus d'avoir un historique des opérations effectuées ; garder un nautilus (explorateur de fichiers de GNOME) permet d'avoir un explorateur de fichier de secours quand caja (idem, mais de MATE) se gèle totalement durant une copie sshfs, etc.

    À moment donné (je date ça de mon passage à Debian Stretch, mais je n'en suis pas sûr), ça part en live. Quand je saisis mon identifiant et mon mot de passe afin d'ouvrir ma session, si c'est les bons, les champs se grisent, l'affichage se fige (plus de souris) et rien se passe. Pour afficher l'environnement de bureau, je devais attendre un peu que MATE démarre, faire ctrl+alt+f2 puis ctrl+alt+f3 puis ctrl+alt+f2. Revenir sur ctrl+alt+f1, ça fermait brutalement la session et les champs identifiant et mot de passe étaient de nouveau éditables. L'environnement de bureau s'affichait dans ctrl+alt+f2… au lieu de l'habituel ctrl+alt+f7… qui était vide.

    C'était pénible, mais vu que je suis le seul utilisateur de l'ordinateur et que je l'éteins jamais (je fais du suspend-to-ram), je m'en fichais. Et puis essaye de décrire ce problème avec des mots-clés pour un moteur de recherche web, toi…

    Lors de mon passage à Debian Buster, j'ai voulu virer les derniers bouts de GNOME dont je ne me sers pas. Mais gdm3 (gestionnaire d'affichage de GNOME) dépend d'eux… Allons-y pour installer lightdm comme remplaçant de gdm3. Impossible d'ouvrir une session. J'ai le même problème d'affichage gelé mais mon astuce ctrl+alt+f2 puis ctrl+alt+f3 puis ctrl+alt+f2 ne fonctionne plus.

    C'est donc un problème commun à plusieurs gestionnaires d'affichage ou à plusieurs gestionnaires de sessions.

    Ne sachant pas trop quoi faire, je crée un compte utilisateur. J'arrive à ouvrir une session avec celui-ci. L'origine de mon problème est donc un fichier de configuration dans mon homedir.

    Je regarde viteuf le déroulement de l'ouverture d'une session graphique. L'interface de connexion ne me laisse pas choisir la session à ouvrir (et pour cause, j'ai un seul gestionnaire de session, mate-session). J'ai bien un lien symbolique ~/.xsession vers un fichier ~/.xinitrc. Je le mets de côté avec mv.

    Je peux ouvrir une session avec gdm3 sans utiliser une quelconque combine. Je peux également ouvrir une session avec lightdm. \o/

    Je ne sais plus ce que contenait le script .xinitrc, mais c'était très probablement des instructions spécifiques à GNOME.

    Je suis donc un récent utilisateur de lightdm.

    02/05/2020 17:17:42 - permalink -
    - http://shaarli.guiguishow.info/?LpglKA
  • Regénérer sa config' xorg.conf, ça peut encore servir

    Sur ma machine perso et depuis sa mise en service, le serveur graphique X.Org me crache des tonnes d'erreurs dans ~/.local/share/xorg/Xorg.0.log. Toujours la même : « (EE) FBDEV(0): FBIOPUTCMAP: Device or resource busy ». En permanence, dès que je bouge ma souris. ÉDIT DU 12/10/2020 À 20 H 50 : La procédure ci-dessous permet également de résoudre la coulée permanente d'erreurs « (EE) modeset(0): present flip failed ». FIN DE L'ÉDIT.

    Le message d'erreur étant plutôt générique, je ne trouvais pas d'aide sur le web, donc j'avais laissé tomber. Je pensais à un problème de pilote graphique, de fonctionnalités non-supportées par ce dernier, quelque chose comme ça. Ce n'était pas gênant, car une rotation / nettoyage automatique du journal avait lieu, donc il consommait quelques Go à tout casser.

    J'ai mis à jour mon système Debian GNU/Linux à la version Buster. Ce problème continue. J'ai un peu craqué : mon modèle d'ordinateur date de 2012-2013, il est équipé d'un GPU Intel greffé sur le CPU. Le GPU le plus simple et compatible au monde, et ça continue de foirer en 2020 ?!

    Mon fichier de config' /etc/X11/xorg.conf date de 2014. Peut-être faut-il en générer une version actualisée ? Ouais, je sais : avec l'autoconfiguration Xorg, KMS et compagnie, on n'est plus censé devoir faire ça… sauf que ça a jamais vraiment fonctionné chez moi.

    Pour générer un nouveau fichier xorg.conf (adapté de ce tuto) :

    • Fermer ses logiciels / fichiers ;

    • Basculer en console tty avec ctrl+alt+F[1-6] et se connecter en root ;

    • Copier la conf' actuelle : cp /etc/X11/xorg.conf ~/xorg.conf.bak ;

    • Stopper le gestionnaire d'affichage (gdm, dans mon cas, même si, depuis, je suis passé à lightdm) : systemctl stop gdm3 ;

    • Générer la conf' : X -configure ;

    • Déplacer la conf' au bon endroit : cp xorg.conf /etc/X11/xorg.conf ;

    • Relancer le gestionnaire d'affichage : systemctl start gdm3.

    Hop, plus aucune erreur dans ~/.local/share/xorg/Xorg.0.log depuis plusieurs mois. \o/

    02/05/2020 15:56:08 - permalink -
    - http://shaarli.guiguishow.info/?yUC8rQ
  • Comment utiliser SSH sur IPv6 ? - Antichesse (o ^ω^ o)

    Quelques remarques :

    • Ce principe de fonctionnement est valable pour tout protocole, pas seulement SSH. Ping une adresse du réseau fe80::/10 ? ping6 fe80::1%<nom_interface>. Netcat ? nc -u fe80::1%<nom_interface> 8112 ;

    • Il est préférable d'encadrer une IPv6 globale entre crochets. C'est même obligatoire pour les commandes où l'on précise un numéro de port en l'apposant à l'adresse IP (puisque le séparateur IP/port, « : », intervient également dans la représentation des adresses IPv6) et, d'une manière générale, dans toute commande où l'on appose quelque chose à la suite de l'adresse IP (genre avec rsync ou scp, il faut préciser la destination de la copie… avec « : »… donc, pour faire la différence entre la représentation d'une IPv6 et le séparateur, on utilise les crochets : scp test <identifiant>@[<adresse_IPv6>]:.) ;

    • Une adresse IPv6 fe80::/10 est spécifique à un même réseau niveau 2, à un même segment, à un même réseau local pour faire simple. Comme tous les réseaux niveaux 2 ont le même adressage (ce sera fe80::/10 que tu sois chez toi, au travail, chez des amis, en filaire ou en Wi-Fi ou…) et qu'une machine lambda est connectée à plusieurs réseaux en même temps (filaire, Wi-Fi, 4G, etc.), il faut préciser l'interface réseau qui sera utilisée pour l'émission, car l'algorithme de sélection de l'adresse IP source ne peut pas fonctionner. Une adresse locale au lien (fe80::/10) ne traverse pas un routeur (genre une box Internet), donc elles ne sont pas utilisables entre deux réseaux distincts. Une adresse fe80::/10 est soit tirée au sort (donc elle change avec le temps), soit dérivée à partir de l'adresse MAC de l'interface réseau (auquel cas, l'adresse fe80::/10 d'une interface réseau ne change pas avec le temps) ;

    • Les adresses fe80:/10 sont plutôt destinées à un usage technique interne aux protocoles autour d'IPv6 (routage, résolution MAC/IP, etc.). Je déconseille leur utilisation courante au niveau des applications (surtout si elles sont générées aléatoirement…), quitte à utiliser des adresses IPv6 """"privées""" (fc00::/7) pour adresser le serveur et le client. En faisant ainsi, il n'y a pas lieu de se plaindre que "pas le même comportement gnagna".
    02/05/2020 14:05:56 - permalink -
    - https://cakeozolives.com/shaarli-antichesse/?AXuVyg
  • OpenDKIM + DNSSEC : « can't read SMFIC_EOH reply packet header: Success »

    Sur mon serveur d'emails, j'utilise OpenDKIM pour signer quelques entêtes de mes emails sortants et pour vérifier la signature des entrants dans un contexte anti-spam (il ne s'agit pas de garantir la confidentialité / l'authenticité / l'intégrité de l'échange). J'ai configuré OpenDKIM pour qu'il vérifie les signatures DNSSEC afin de garantir l'authenticité et l'intégrité des clés publiques DKIM récupérées dans le DNS. Ça sert à rien (déjà que DKIM c'est du vent…), mais bon, ça fait joli.



    Depuis bientôt 1 an (juin 2019), j'ai remarqué que la signature des emails entrants n'est plus vérifiée. J'avais constaté l'absence de l'entête « Authentication-Results » dans les emails. J'avais constaté que Postfix consigne ce qui suit pour chaque email reçu : « warning: milter inet:127.0.0.1:10028: can't read SMFIC_EOH reply packet header: Success ». Tant que je pouvais envoyer des emails et en recevoir, je m'en fichais.

    Il y a 3 mois, j'ai décidé d'étudier cela attentivement, car, à moment donné, il faut bien se sortir les doigts.



    Le message consigné par Postfix est trop générique : c'est le constat d'un milter défectueux, rien de plus.

    OpenDKIM consigne rien excepté exited with status 1, restarting à chaque email reçu ou presque. Le lancer à la main (systemctl stop opendkim && opendkim -f -vvv) ne le rend pas plus bavard.



    J'ai aucune idée. Dans ces moments-là, je reviens aux bases, j'essaye de me souvenir comment fonctionne précisément le logiciel incriminé, je relis la doc' relative à mon système d'exploitation, etc. La doc' Debian pour OpenDKIM est ici. Et la réponse s'y trouve sous forme d'un gros avertissement :

    The Debian unbound package installs a default configuration file at /etc/unbound/unbound.conf. Do not attempt to use this file unchanged with ResolverConfiguration! opendkim will just quietly shut down.
    
    The reason for the incompatibility is that the shipped unbound.conf includes an auto-trust-anchor-file setting, for which opendkim does not have the necessary permissions. Unfortunately, libunbound is rather fragile in this area. Prepare your own unbound.conf for opendkim and test carefully. 

    Une fois qu'on a connaissance de ça, une recherche sur le web avec de nouveaux mots-clés permet d'obtenir une confirmation : Question #293418 : Questions : opendkim package : Ubuntu.



    Je n'utilise pas /etc/unbound/unbound.conf, mais, dans ma configuration pour la bibliothèque Unbound, j'utilise bien auto-trust-anchor-file. Ce que je ne comprends pas, c'est que je stocke la clé publique de la racine DNS dans une arborescence dédiée à OpenDKIM : /var/lib/dkim/. C'est aussi là qu'est stockée la clé privée avec laquelle sont signés les emails. Ça devrait donc fonctionner.

    Pour une raison qui m'échappe totalement, l'utilisateur OpenDKIM n'était plus propriétaire ni du dossier /var/lib/dkim, ni de la clé publique de la racine DNS. La bibliothèque Unbound exécutée par OpenDKIM (uid:gid identique, donc) ne pouvait donc pas l'actualiser. J'ai corrigé ça de cette manière :

    chown opendkim:root /var/lib/dkim
    chmod 755 /var/lib/dkim
    chown opendkim:opendkim /var/lib/dkim/dnssec.root.key
    chmod 664 /var/lib/dkim/dnssec.root.key

    On redémarre OpenDKIM (systemctl restart opendkim) et c'est fini.

    02/05/2020 13:00:34 - permalink -
    - http://shaarli.guiguishow.info/?R_X-_A
  • Utiliser DANE OPENPGPKEY

    DANE OPENPGPKEY, c'est utiliser le DNS, signé avec DNSSEC, pour récupérer une clé publique OpenPGP (pas pour en prouver l'authenticité, attention !). Pour les détails, voir l'article de tonton Bortz.

    J'avais déjà tenté d'utiliser DANE OPENPGPKEY quand j'en avais appris l'existence en 2016, mais je n'étais pas parvenu à forger l'enregistrement DNS qui le matérialise. Mais, cette fois-ci, je suis outillé.



    Pour créer un tel enregistrement, on va utiliser la suite logicielle hash-slinger (qui permet, également et entre autres, la manipulation des enregistrements DNS SSHFP et des enregistrements DNS DANE TLSA). Installons-le (il n'est pas dans les dépôts Debian GNU/Linux Buster à cause d'une dépendance à python33-m2crypto non-satisfaite) :

    $ sudo apt-get install swig
    $ sudo pip3 install m2crypto
    $ git clone https://github.com/letoams/hash-slinger
    $ cd hash-slinger && sudo make install



    La clé publique que l'on veut publier doit être présente dans le trousseau GnuPG courant. Voir mon tutoriel complet pour créer / gérer sa paire de clés OpenPGP.

    Créer l'enregistrement : openpgpkey --create <adresse_emails_de_l'identité_de_la_clé_OpenPGP>.



    Publier l'enregistrement dans la zone DNS concernée.

    On vérifie que l'enregistrement est correct :

    $ openpgpkey --verify <adresse_emails>
    All OPENPGPKEY records matched with content from the local keyring



    Pour tester la récupération, soit on tente depuis une autre machine (virtuelle), soit on utilise un compte utilisateur différent sur la même machine ou même un trousseau différent sur le même compte utilisateur. J'ai choisi cette troisième option.

    $ mkdir /tmp/testOPK
    $ export GNUPGHOME=/tmp/testOPK
    $ gpg -k # doit rien retourner puisque trousseau vide
    $ gpg --auto-key-locate dane --locate-keys <adresse_emails>

    Si la clé OpenPGP a plusieurs identités, seule l'identité qui correspond à l'adresse emails a été publiée et est donc récupérable. Les autres identités doivent être publiées chacune dans leur zone respective et être récupérée séparément.

    Les signatures de la clé ne sont pas publiées et ne sont pas récupérables. De toute façon, suite à l'attaque de 2019 des serveurs de clés OpenPGP par surcharge de signatures, les développeurs de GnuPG ont décidé de ne plus récupérer les signatures tierces sur les serveurs de clés. Donc, DANE ou serveur de clés = même résultat.



    Bien évidemment, DANE OPENPGPKEY est un moyen supplémentaire de récupérer une clé OpenPGP : serveurs de clés, téléchargement web, pièce jointe d'un email, etc. DANE OPENPGPKEY ne permet pas de garantir qu'il s'agit de la clé du correspondant avec lequel tu veux échanger. En effet, DNSSEC garanti que l'enregistrement DNS n'a pas été altéré durant son transport entre le serveur qui fait autorité sur le domaine du correspondant et le serveur DNS récursif qui effectue la validation. Rien dit qu'un attaquant n'a pas inséré sa clé OpenPGP dans l'enregistrement OPENPGPKEY du correspondant. Rien dit qu'un attaquant actif entre ton serveur DNS récursif et toi n'a pas modifié l'enregistrement DNS. Bref, comme d'habitude, il faut vérifier l'authenticité de la clé récupérée en contactant le correspondant sur un autre canal (de visu, téléphone, etc.) avant de signer la clé et de lui accorder une quelconque confiance.

    01/05/2020 23:54:31 - permalink -
    - http://shaarli.guiguishow.info/?VIhbjQ
  • Mon premier couac DANE TLSA

    Résumé : si t'as configuré ton serveur d'emails Postfix pour qu'il prenne en compte les enregistrements DNS DANE TLSA et qu'un email n'est pas envoyé au motif d'erreur « Server certificate not verified », vérifie la validité de l'enregistrement TLSA associé au serveur emails du destinataire avec l'outil tlsa de la suite logicielle hash-slinger : il ne correspond très probablement pas au certificat x509 présenté par le serveur emails. Contacte l'hébergeur du serveur en utilisant whois -B <adresse_IP_du_serveur. On notera que le message d'erreur de Postfix n'est pas explicite, donc qu'il y a encore du boulot de ce côté-là avant une généralisation de DANE TLSA.



    DANE TLSA permet de stocker, dans le DNS signé avec DNSSEC, les certificats x509 afin d'obtenir une deuxième chaîne de validation et de combler ainsi les immenses lacunes conceptuelles du modèle de sécurité de la norme x509. Détails et utilisation concrète ici.

    Il y a quelques jours, j'ai rencontré, en production, mon premier pépin dont l'origine est DANE TLSA.



    J'envoie un email. Un jour après, pour comprendre une toute autre chose, je consulte le journal de Postfix, mon serveur d'emails. Par hasard (tail -f et nouvelle tentative d'envoi récente), j'y lis ceci :

    postfix/smtp[23743]: 235AB2AE: to=[CENSURE], relay=[CENSURE][[CENSURE]]:25, delay=82176, delays=82176/0.15/0.13/0, dsn=4.7.5, status=deferred (Server certificate not verified)

    Notons que si je n'avais pas consulté le journal, j'aurais quand même été informé du problème en recevant, après 5 jours (valeur par défaut du paramètre maximal_queue_lifetime de Postfix), un email présentant le problème émis par « Mail Delivery System / MAILER-DAEMON », c'est-à-dire Postfix lui-même.



    Je cherche à obtenir plus d'infos.

    Ajouter « -v » dans la colonne « command + args » des services « tlsmgr » et « smtp » dans master.cf (exemple : « tlsmgr unix - - y 1000? 1 tlsmgr -v ») + systemctl reload postfix rend Postfix plus causant mais cela m'apprend rien.

    Dans main.cf, je suis déjà en smtp_tls_loglevel = 1. En changer la valeur pour « 2 » et recharger Postfix ne m'en apprendra pas d'avantage.

    Rien permet de comprendre l'origine du problème, pas un seul indice. Un message d'erreur explicite serait le bienvenu avant une généralisation de DANE TLSA.



    Je connais les compétences des salariés de l'hébergeur emails de mon destinataire, donc je choisis de remettre en cause mon installation plutôt que la leur.

    Comme m'y incite le premier résultat d'une recherche du message d'erreur « Server certificate not verified » dans un moteur de recherche, je commence à creuser la politique de validation d'un certificat x509 appliquée par Postfix (paramètres smtp_tls_(verify|secure)_cert_match) : avec quoi compare-t-on le Common Name / SubjectAltName ? Avec le nom du serveur ? Avec le nom de domaine du destinataire ? Avec celui de l'hébergeur emails ? Ma recherche en ce sens donnera rien.



    Je réfléchis (enfin). Comme l'écrasante majorité des serveurs emails, le mien est configuré pour tenter un envoi en clair si l'envoi chiffré a été impossible (on nomme ça TLS / chiffrement opportuniste). Pourquoi mon serveur n'a pas agit comme ça cette fois-ci ?

    Il est configuré pour prendre en compte les enregistrements DNS TLSA : smtp_dns_support_level=dnssec + smtp_tls_security_level=dane (attention : les versions de TLS et les suites de chiffrement autorisées se définissent désormais dans smtp_tls_mandatory_protocols et smtp_tls_mandatory_ciphers !). Si l'hébergeur emails du destinataire a positionné un enregistrement TLSA, cela signifie qu'il veut qu'on échange avec lui de manière chiffrée, donc on n'essaye pas de communiquer en clair. DANE TLSA pallie à la principale limite du chiffrement opportuniste : sans TLSA, si le message d'initialisation du chiffrement, STARTTLS, est perdu ou volontairement stoppé par un méchant, alors la communication s'effectue sans chiffrement.



    Je vérifie la présence d'un enregistrement TLSA avec dig TLSA _25._tcp.<nom_du_smtp_distant_qui_est_mentionné_dans_relay_dans_le_journal_Postfix>. Il y en a bien un.

    J'utilise tlsa, un petit script de la collection hash-slinger (qui permet, également et entre autres, la manipulation des enregistrements DNS SSHFP et des enregistrements DNS DANE OpenPGP) pour vérifier la validité de cet enregistrement.

    Attention si tu utilises Debian GNU/Linux Buster : hash-slinger n'est pas empaqueté dans cette version à cause d'une dépendance à python3-m2crypto non satisfaite. La version de hash-slinger qui utilise python2 que t'as pu installer avant de mettre à jour ton système pourrait ne pas fonctionner dans certains cas à cause de l'obsolescence de la bibliothèque TLS (« M2Crypto.SSL.SSLError: wrong version number », c'est du vécu). Bref : sudo apt-get install swig && pip3 install m2crypto + installer hash-slinger depuis le dépôt git officiel (git clone + sudo make install).

    Je vérifie donc la validité de l'enregistrement TLSA positionné par l'hebergeur emails :

    $ tlsa --verify --port 25 <nom_du_smtp_distant_qui_est_mentionné_dans_relay_dans_le_journal_Postfix>
    FAIL (Usage 3 [DANE-EE]): Certificate offered by the server does not match the TLSA record ([CENSURE])

    Oups… Tout s'explique… Le certificat x509 présenté par le serveur emails ne correspond pas à l'enregistrement TLSA.



    Afin d'être sûr de moi, je calcule moi-même le RDATA de l'enregistrement DNS en fonction du certificat actuellement utilisé avec $ openssl s_client -connect [CENSURE]:25 -starttls smtp -showcerts < /dev/null 2> /dev/null | openssl x509 -pubkey | openssl rsa -pubin | head -n -1 | tail -n +2 | base64 -d | sha256sum et, oui, il ne correspond pas à celui mis en service. Pour les détails : l'enregistrement présent est un condensat SHA-256 (mtype = 1) de la clé publique (selector = 1) du seul certificat du serveur (usage = 3), d'où cet enchaînement de commandes publié sur le blog de Stéphane Bortzmeyer pour le synthétiser.



    Je contacte l'hébergeur emails. Comment ? whois -B <IP_du_serveur_emails>. D'une manière générale, ne pas oublier « -B » : cela permet d'obtenir des adresses emails autres que celle qui permet de signaler les abus. J'ai mis de côté d'autres paramètres bien utiles de la commande whois dans mon article Découvrons la RIPE database.

    En fin de matinée du premier jour ouvré suivant mon email, l'enregistrement DANE TLSA a été retiré. Fin du problème, mais c'est dommage d'avoir laissé tomber… Peut-être est-ce un repli stratégique pour réfléchir à un meilleur déploiement, avec supervision et tout et tout ?

    30/04/2020 13:04:20 - permalink -
    - http://shaarli.guiguishow.info/?tQqSHw
  • Tout ça pour des chaussures…

    Résumé : comment j'ai passé 5 mois à cogiter sur l'achat de nouvelles chaussures à cause de blocages mentaux (plus cher = mieux ?, acheter toujours acheter…, quel modèle choisir ?, des chaussures, c'est des chaussures, quoi…). Il faut dire que c'était mon premier changement de modèle. Je publie ce shaarli pour les personnes dans ma situation. Si t'as des baskets qui prennent l'eau après trois semaines d'utilisation et dont les semelles se trouent à de multiples endroits après deux mois et sont totalement déchirées après six mois, ce n'est pas normal, change de marque / modèle, n'hésite pas à dépenser plus pour des semelles plus épaisses, c'est rentable sur le long terme : moins de temps passé à les renouveler + réduction de ton empreinte écologique + économie. Si l'apparence a aucune importance pour toi, si tu ne sais pas quel modèle choisir, si tu ne sais pas t'écouter (quel modèle me tente) ni te projeter (quel modèle me va bien), si le choix te paralyse, demande conseil aux gens que tu respectes, surtout s'ils portent des chaussures qui ne te parlent pas mais qui te paraissent pas trop-trop mal.



    Si l'on m'avait dit que j'écrirai un jour un shaarli ayant pour thèmatique les chaussures… Shit happens. Au-delà de chaussures, il est surtout là pour consigner mes blocages mentaux et mes contradictions, ce qui n'est pas inintéressant à archiver afin de visualiser, plus tard, les améliorations et les régressions.

    Je porte des fringues et des chaussures pour deux raisons : masquer mon corps et m'adapter aux conditions du terrain (température, pluie, sol irritant ‒ genre l'asphalte ou le sable ‒, chemin caillouteux, bris de verre, etc.). Forcément, j'ai jamais compris pourquoi ces éléments devaient être des éléments de distinction sociale (on notera que c'est bien pareil dans d'autres domaines : Kéké claque tout son fric pour avoir le "meilleur" tuning de voiture, JeanMi fait de même afin d'avoir le plus puissant ordinateur, etc.). Forcément, j'ai jamais compris le baratin sur l'apparence des fringues, ni la mode. Pour moi, le seul critère devrait être la fonctionnalité : est-ce que ce bout de tissu me protège mieux contre tel risque local ?

    Conséquence : cela fait plus de 15 ans que j'ai le même modèle de chaussures : des baskets basses noires de """"marque"""" Atemi qu'on trouve à la Halle aux chaussures pour 25 € (24,90 ou 24,99, je ne sais plus). Maman les avait choisies, affaire classée. Bon, j'avoue, y'a très longtemps, je me suis permis une énorme folie : changer de couleur. Le même modèle, mais en noir au lieu de blanc. Wouhou ! (Et je me souviens des propos des camarades de classe de sexe féminin pour me faire revenir au blanc en mode "ça ne te va pas, le noir".)



    Ça fait plus de 5 ans que j'avais un doute : je trouvais que ces chaussures s'usent super vite. Je ne fais pas de sport. Je me contente de déplacements en ville. Métro-boulot-magasins-dodo. Peut-être faudrait-il acheter un modèle plus coûteux "pour voir" ? J'hésite… J'ai été éduqué sur le modèle « ce n'est pas parce que c'est plus cher que ça répond à ton besoin : si ça se trouve, la différence de prix paye la marque et/ou une fonctionnalité dont tu n'as pas besoin ». Il faudrait choisir un nouveau modèle… Il faudrait étudier la question… Ça me fait chier. Ça me paralyse, donc je fais rien.

    Au fil des années, ce doute progresse… Quand même, elles durent vraiment pas longtemps, ces chaussures. J'en parle aux amis. « Non mais c'est normal des chaussures qui prennent l'eau, oui, même quand elles ont que quelques mois d'âge ». OK… J'affine mon diagnostic et j'en parle à quelques collègues : « elles durent deux mois, après y'a de gros trous partout dans la semelle ». On me répond (enfin ?) que « ce n'est pas normal, suis-je sûr de moi ? ». Cette fois-ci, je procède avec rigueur : je consigne la date d'achat dans mon agenda. Deux mois passent. Au moindre sol mouillé, à la moindre pluie, mes chaussures "neuves" sont des piscines municipales. J'en rachète. Idem deux mois après. C'est confirmé : durée de vie = 2 mois.

    Pour être précis : au bout de trois semaines / un mois, la semelle laisse passer l'eau, mais, ça va encore. Au bout de deux mois, la semelle a plusieurs trous d'une taille supérieure à une pièce de deux euros. À la moindre eau présente sur le sol, les chaussures se transforment en piscines. Au bout de six mois, la semelle est déchirée de partout (image), je marche à même le sol, ma peau se fait râper, etc.



    Ça me gonfle. Le prix, encore, ça va : je peux me permettre de claquer 25 € tous les 2 mois. C'est inutile, mais je peux me le permettre. L'impact écologique et le travail de gamins étrangers qu'un changement fréquent amplifie me dérangent beaucoup plus. Devoir me déplacer fréquemment, en transports en commun, dans la zone commerciale extérieure à la ville afin d'acheter de nouvelles chaussures, ça, c'est trop : c'est chiant, les transports en commun sont déplaisants au possible, c'est une perte de temps, etc.

    On tente un modèle de chaussures plus coûteux ? Pfff, ça fait chier… J'ai jamais choisi mes chaussures (ni mes fringues). Les personnes qui m'ont expliqué qu'il faut pas se prendre la tête, qu'il faut « juste » s'écouter : « est-ce que cette chaussure me tente ? Est-ce que je me vois bien les porter ? » : vous êtes sérieuses ? Je vois juste des chaussures. Aucune me tente. J'arrive pas à me projeter avec. Un rayonnage de chaussures me fait aucun effet. À part générer un profond ennui, bien entendu.

    Et puis, à quoi bon dépenser plus d'argent dans des chaussures si, au final, c'est la marque qui empoche la différence pendant que des gamins étrangers fabriquent les chaussures au moindre coût ? Je me dis qu'acheter des chaussures produites en France, ça me motiverait à me bouger. Les collègues me calment tout de suite : ça n'existe pas vraiment. Le Coq sportif externalise à l'étranger. Les baskets Venexan sont fabriquées en Italie (ce qui me rappelle la maltraitance des employés du cuir dans les régions italiennes), etc. Caruus, Ubac et compagnie vendent des baskets en matières qui m'ont l'air très perméables, ce qui ne répond pas à mon besoin (je chausse des baskets, qu'il fasse soleil ou qu'il pleuve), sans compter qu'il faut acheter via le web (j'vais y revenir).

    Des collègues se proposent de me faire découvrir des boutiques de pompes du centre-ville. Allons-y. J'ai droit à une formation accélérée sur chaussures de ville, chaussures de sport, running, etc. J'ai rien capté, j'ai rien retenu. Sauf qu'une chaussure en cuir bien foutue, ça fait la moitié d'une vie facile et que ça se fait réparer chez un cordonnier.

    Des chaussures de ville ont l'air pas si mal que ça… Sauf qu'elles m'explosent les talons quand je marche (l'impulsion remonte dans mes jambes, c'est très bizarre). Un modèle de baskets semble pas trop mal, mais il n'y a pas vraiment ma taille alors que j'ai un pied plus large que la moyenne au niveau de la jonction des métatarsiens et des phalanges. Il faut donc que la chaussure soit un peu flexible à cet endroit-là pour laisser paraître un bout d'os. J'aurai au moins découvert ça sur mon compte. Youpi…

    Ce qui devient sûr, c'est que je ne veux pas de chaussures de ville. Le cuir à entretenir (cirage, etc.), ça sera sans moi. Et ça fait quand même un p'tit air "je me la pète" qui ne me plaît pas. Des baskets, ça sera très bien. Ça passe partout (sauf dans les soirées habillées, mais j'y vais jamais). Ça ne fait pas chier. Quel modèle choisir ? Rebelote…

    Mon intérêt se dégonfle. Puis, je remarque les chaussures portées par deux collègues. Elles ne sont pas si mal… C'pas trop-trop mon truc, mais c'pas si mal. Je leur en parle. C'est des Timberland. On cherche sur le web : ça ressemble à des Chukka Bradstreet jaunes (mais ça n'en est pas, c'est le modèle équivalent d'il y a deux ans…). Ça fait baroudeur, me dit-on. Ça m'ira bien, me dit-on. Tu parles… À part sur Internet, j'ai baroudé nulle part ! C'est confortable me dit-on… Ouais, la vendeuse des chaussures de ville en cuir qui me défonçaient le talon m'a dit pareil… Y'a beaucoup de bullshit dans les mots employés pour présenter / vendre des chaussures (comme dans tout autre domaine).

    J'hésite. La couleur ne me plaît pas. Ça existe en noir, me dit-on, même si un peu de couleur ne me ferait pas de mal, me dit-on. Ai-je vraiment envie de chaussures qui, me dit-on, donnent une allure de baroudeur ? Ce n'est pas ce que je suis… Ai-je vraiment envie de dépenser plus de 100 € pour une paire de chaussures ? C'est hallucinant, comme chiffre. J'ai toujours eu des besoins simples… 100 €, ça symbolise quand même un autre standing, et c'est une autre image de toi que tu donnes…

    Je cogite des semaines et des semaines. Mes chaussures actuelles atteignent le stade « semelles totalement déchirées en plusieurs endroits, donc je marche à même le sol ». Soit je rachète les mêmes et, donc, je continue à perdre mon temps en déplacements et à avoir une empreinte écolo pourrie, soit j'achète les Timberland des collègues, soit j'achète un autre modèle… qu'il faut que je prenne la peine de dénicher, ce qui me démotive au plus haut point. Allons-y pour des Timberland.



    Reste à trouver un magasin qui en vende. Hors de question d'acheter sur le web. Arnaques. Enfer de la livraison. Coordonnées bancaires potentiellement enregistrées dans une base de données qui se fera pirater un jour. Galère pour retourner un produit. Difficulté pour choisir la bonne taille (j'ai eu raison : une Timberland qui me va c'est deux pointures au-dessus de l'habituelle !). Etc. Évidemment, il n'y a pas de magasin / revendeur référencé dans ma ville sur le site web officiel. Je fais le tour de plusieurs magasins du centre-ville : rien. Une collègue me dit qu'elle a acheté les siennes à Go Sport. Enrichir le groupe Casino, quelle belle perspective… Mais entre ça ou commander sur le web ou conserver mon modèle actuel de chaussures…

    Au final, Go Sport déstockait, donc plein de modèles de marques différentes étaient en promotion. J'ai donc acheté une paire de Timberland Bradstreet noires hautes (aucune idée de la déclinaison, ce n'était pas consigné sur l'étiquette) et une paire de Timberland Advendure alpine noires basses (idem). Au moins, ça fera été et hiver (les Bradstreet sont difficiles à supporter par forte chaleur, d'après mes essais). Total : 133 €. Quelles différences ? Les Advendure alpine sont totalement plates. Le talon des Bradstreet est légèrement surélevé par rapport à la pointe des pieds. Mais, surtout, les Bradstreet sont des """"taille"""" haute / tige haute, c'est-à-dire que la chaussure arrive au moins à la cheville voir la dépasse. Les Adventure alpine sont des """"taille"""" basse / tige basse, donc l'inverse : les chaussures n'arrivent pas la cheville.

    J'ai également acheté la paire de chaussures pas tout à fait à ma taille dans le magasin du centre-ville. Ça s'avère être des Clarks Stafford Park5 basses bleu marine. Vu le tissu et les trous, on est plutôt sur un modèle d'été. C'était aussi du déstockage, donc le prix était cassé, mais je ne m'en souviens plus. La critique est unanime : ça fait vieux. Je ne trouvais pas… Une fois qu'on me l'a dit et argumenté (forme, aspect jaunâtre de la semelle, etc.), ouais, en effet, ça fait chaussures de vieux…

    Entre les discussions entre collègues et l'achat, 5 mois se sont écoulés. Cinq mois de doutes, de "j'ai pas envie", de "ça va servir à rien", de "je ne sais pas quoi choisir", de "ça ne me ressemble pas" et de discussions en boucle. Si l'on regarde bien, en plus de me suggérer un modèle de chaussures en le portant, la principale qualité de mes collègues a été une capacité de projection ("ça t'irait bien") que je n'ai pas (par manque de confiance en moi ou parce que, vraiment, des fringues, ça ne me parle pas ?). Merci à eux pour leur persévérance. :)

    Reste à trouver le bon serrage des lacets. J'avais serré à fond, comme un fou, afin que mon pied ne bouge pas afin d'éviter les ampoules. Grave erreur : ça étouffe le pied et ça fait encore plus mal. Il faut pouvoir passer un peu moins d'un doigt entre l'arrière du pied et l'arrière de la chaussure. Au final, il m'a fallut deux semaines d'adaptation et deux mois de pansements quotidiens pour que mes pieds se fassent aux chaussures.



    Maintenant, ce que tout le monde veut savoir : est-ce que l'investissement est rentable ? Depuis le début de la dernière semaine d'août 2019, à l'exception de trois semaines / un mois, j'ai porté exclusivement mes Bradstreet. Après 7 mois, Les semelles ne prennent pas l'eau au contact du moindre sol mouillé. Elles ne sont pas trouées du tout. Après 7 mois d'utilisation, elles ne sont même pas au premier stade d'usure de mes anciennes chaussures. De mémoire, cette paire m'a coûté 80 €. 80 € c'est environ 3 fois 25 € (prix de mes anciennes chaussures). Si celles à 25 € ont d'énormes trous dans la semelle après deux mois, on s'attend à ce que les Timberland tiennent au moins six mois. C'est chose faite. Je suis donc satisfait. \o/

    Alors oui, les semelles extérieures sont râpées à plusieurs endroits et les semelles intérieures sont profondément déchirées au niveau des talons et des gros orteils (photo après trois mois d'utilisation quotidienne ; photo après sept mois). Le moment de m'équiper de semelles avec du """"gel"""" (élastomère thermoplastique) dont on me rebat les oreilles ?

    Au final, les chaussures à 25 € ne sont pas toutes nazes : mes pieds mettent à dure épreuve les semelles, il faut croire. Comme celles de mes Timberland sont plus épaisses et moins flexibles / souples, forcément qu'elles tiennent plus longtemps. Cela signifie également que je ne suis pas lié à une marque : n'importe quel modèle de chaussures avec des semelles épaisses me conviendra. Cela signifie aussi, qu'il est probable qu'il existe des chaussures à la semelle tout aussi épaisse / résistante pour un prix plus modique que celui des Timberland.

    Je prévois déjà mon prochain blocage. Ce sera lors du renouvellement, lorsque mes chaussures Timberland seront fichues. Les modèles que je possède actuellement n'existeront plus par effet de mode, ce qui signifie, qu'il faudra prendre le temps de chercher leur remplaçante… ou de copier à nouveau sur des gens de confiance.



    J'avais un problème d'usure similaire avec mes chaussons. Les derniers ont fait 10 mois. J'ai décidé d'en acheter des plus costauds et donc plus chers. Va pour des pantoufles en velours à 27,99 € chez Damart. Les semelles sont plus épaisses que sur mes anciens chaussons, donc ça devrait le faire. Il est encore trop tôt pour me prononcer : ça fait seulement 7 mois (dont 4 mois à temps complet) que je les porte. Le tissu des semelles intérieures s'est totalement déchiré, mais, contrairement aux modèles de pantoufles que je possédais avant, cela ne signifie pas que la semelle commence à de désintégrer et qu'elle va libérer de la """"mousse"""" un peu partout.



    Au final, qu'ai-je appris ?

    • Je note la difficulté pour acheter des pompes fabriquées en France avec des matières premières françaises. Difficile également d'acheter en dehors des grands groupes, mais je présume que mon choix arrêté pour des chaussures de la marque Timberland ainsi que celui de ne pas acheter sur le web ne sont pas étrangers à cette difficulté… Depuis ces achats, on m'a parlé de plusieurs friperies (fringues et chaussures d'occasion) de ma ville. Il faudra que j'aille y jeter un œil ;

    • Ne pas faire sécher ses chaussures avec un radiateur. Ça les déforme, donc elles prendront l'eau encore plus facilement. Mieux vaut disposer de plusieurs paires de chaussures (ça permet également de les laisser respirer / s'aérer après une bonne transpiration) ou, privilégier l'achat d'une paire de chaussures qui résistera à la flotte après 3 semaines d'utilisation ;

    • Ne te fais pas embobiner : tout vendeur te promettra confort, élégance et te vendra sa godasse comme un élément de baroudeur gnagnagna. De même, ne te fais pas avoir : de base, au moment où tu les essayes, des chaussures doivent te convenir, t'aller, ne pas te faire de mal. Ne te fais pas avoir avec des "elles vont s'adapter à votre pied" et autre baratin. Un vieux sage m'a donné ce conseil. Je ne l'ai pas suivi pour les Clarks au motif que, quand même, cette vieille dame tient une boutique respectable en plein centre-ville depuis plus de 20 ans… Mais non, le vieux sage avait raison : la chaussure ne s'adaptera pas, car elle n'est pas souple à l'endroit précis où j'en ai besoin ;

    • Utiliser un imperméabilisant pour chaussures. Mes Timberland étant en nubuck (c'est écrit sur la fiche produit), il me fait un imperméabilisant pour nubuck / daim. Je n'ai pas encore acheté cela, car je voulais constater la durée de vie de mes chaussures sans artifice. Tu peux aussi acheter des chaussures imperméables à base de Gore-Tex (Téflon-like) ;

    • Au début, je me moquais des chaussures équipées, en même temps, de lacet et d'une fermeture à glissière (fermeture éclair) : c'est pour ceux qui veulent la facilité sans l'assumer, blabla. Puis, j'ai réfléchi. J'ai l'impression qu'il y a deux variables importantes en matière de fermeture de chaussures : permettre l'entrée du pied dans la chaussure et serrer le pied afin que la chaussure tienne, ne se déplace pas et ne fasse pas mal. Quand on trouve, à tâtons, le réglage qui nous convient pour serrer le pied, on ne souhaite pas le perdre lorsqu'on enlève / met la chaussure. L'entrée du pied dans la chaussure peut être alors galère, même avec un chausse-pied. Puisqu'il y a deux contraintes, il faut deux variables pour les stocker, donc, en pratique, deux objets. Le serrage du pied en continu sera assuré par les lacets, le fait d'insérer / retirer le pied de la chaussure sera assuré par la fermeture à glissière. Pas idiot. En tout cas, c'est ma théorie personnelle ;

    • Chaussures hautes / """"taille"""" haute / tige haute : la chaussure arrive au moins à la cheville voir la dépasse. Inversement, chaussures basses / """"taille basse"""" tige basse : les chaussures n'arrivent pas la cheville. Notons qu'il y a plusieurs variétés de chaque. Genre une chaussure haute comme une Timberland Bradstreet a rien à voir avec une chaussure haute comme une botte Timberland.
    29/04/2020 17:21:15 - permalink -
    - http://shaarli.guiguishow.info/?XiDFnQ
  • E: /usr/share/initramfs-tools/hooks/growroot failed with return 1. - update-initramfs: failed for /boot/initrd.img-4.19.0-8-amd64 with 1.

    Ce matin, je veux appliquer les mises à jour de sécurité sur mon système Debian GNU/Linux Buster et…

    Paramétrage de linux-image-4.19.0-8-amd64 (4.19.98-1+deb10u1) ...
    /etc/kernel/postinst.d/initramfs-tools:
    update-initramfs: Generating /boot/initrd.img-4.19.0-8-amd64
    E: /usr/share/initramfs-tools/hooks/growroot failed with return 1.
    update-initramfs: failed for /boot/initrd.img-4.19.0-8-amd64 with 1.
    run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
    dpkg: erreur de traitement du paquet linux-image-4.19.0-8-amd64 (--configure) :
     installed linux-image-4.19.0-8-amd64 package post-installation script subprocess returned error exit status 1
    Des erreurs ont été rencontrées pendant l'exécution :
     linux-image-4.19.0-8-amd64
    E: Sub-process /usr/bin/dpkg returned an error code (1)



    Lançons update-initramfs nous-même :

    # update-initramfs -vuk 4.19.0-8-amd64
    Calling hook growroot
    Adding binary /sbin/sfdisk
    Adding library-link /lib/x86_64-linux-gnu/libfdisk.so.1.1.0
    Adding library /lib/x86_64-linux-gnu/libfdisk.so.1.1.0
    Adding library-link /lib/x86_64-linux-gnu/libsmartcols.so.1.1.0
    Adding library /lib/x86_64-linux-gnu/libsmartcols.so.1.1.0
    Adding library-link /lib/x86_64-linux-gnu/libtinfo.so.6.1
    Adding library /lib/x86_64-linux-gnu/libtinfo.so.6.1
    E: /usr/share/initramfs-tools/hooks/growroot failed with return 1.



    Regardons /usr/share/initramfs-tools/hooks/growroot (premier script qui termine en erreur) :

    # cat /usr/share/initramfs-tools/hooks/growroot
    #!/bin/sh
    set -e
    
    PREREQS=""
    case $1 in
        prereqs) echo "${PREREQS}"; exit 0;;
    esac
    
    . /usr/share/initramfs-tools/hook-functions
    
    ##
    copy_exec /sbin/sfdisk /sbin
    copy_exec /usr/bin/growpart /sbin
    […]



    Ça échoue sur « copy_exec /usr/bin/growpart ».

    # ls -lh /usr/bin/growpart
    ls: impossible d'accéder à '/usr/bin/growpart': Aucun fichier ou dossier de ce type



    Intéressant. Il vient d'où, ce fichier ?

    $ apt-file search /usr/bin/growpart
    cloud-guest-utils: /usr/bin/growpart

    Du paquet logiciel cloud-guest-utils. Cloud-init est utilisé par mon fournisseur de machines virtuelles et, en effet, je l'ai viré de mon VPS (machine virtuelle) depuis quelques mois. Pourquoi ça n'a pas supprimé le hook initramfs ?


    $ apt-file search /usr/share/initramfs-tools/hooks/growroot
    cloud-initramfs-growroot: /usr/share/initramfs-tools/hooks/growroot



    Il est installé par un autre paquet logiciel. Peut-être que ce paquet est toujours installé ?

    # apt-cache policy cloud-initramfs-growroot
    cloud-initramfs-growroot:
      Installé : (aucun)
      Candidat : 0.18.debian7
    […]



    Non. Peut-être y a-t-il de la configuration résiduelle ?

    # dpkg -l | grep cloud-initramfs-growroot
    #

    Non.



    """"Solution"""" : apt-get install --no-install-recommend cloud-initramfs-growroot && apt-get autoremove --purge cloud-guest-utils cloud-image-utils cloud-initramfs-growroot cloud-utils genisoimage qemu-utils.

    29/04/2020 11:44:26 - permalink -
    - http://shaarli.guiguishow.info/?im_Wlg
  • rivières de shaarlis - GuiGui's Show - Oros links - GuiGui's Show - Oros links - GuiGui's Show - Oros links

    @Oros :


    Pour http://kosmogonia.fr/ et https://switchy.o2switch.net:2083/ le wget fonctionne bien.

    Ils sont pourtant dans le même réseau (/24) que les shaarlis auxquels tu n'accèdes pas. Donc, ce n'est pas un problème de routage. Ce n'est très probablement pas un filtrage global à l'entrée du réseau d'o2switch (dans ce cas-là, on bloque /24 par /24, en général).
    Quand tu dis que tu n'arrives pas à accéder, ça veut dire quoi ? Est-ce que la poignée de main TCP s'effectue ou alors tu n'obtiens même pas de réponse à ton TCP SYN ?


    Pour 109.234.161.33, 109.234.161.21, kosmogonia.fr, switchy.o2switch.net, j'ai :

    Oui, c'est normal. Par défaut, l'implémentation GNU/Linux de traceroute bosse au-dessus d'UDP. o2switch bloque cela. J'ai le même résultat que toi. En revanche, traceroute -T -p 443 (TCP + port 443) fonctionne impec.

    26/04/2020 21:22:04 - permalink -
    - https://www.ecirtam.net/links/?8jLZBg
Links per page: 20 50 100
◄Older
page 91 / 302
Newer►
Mentions légales identiques à celles de mon blog | CC BY-SA 3.0

Shaarli - The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community