chimrod a écrit 1064 commentaires

  • # Déjà vu ?

    Posté par  (site web personnel) . En réponse au message Google Chrome court circuite la configuration DNS du système (?). Évalué à 6.

    Ça n’est pas la première fois que Chrome joue avec les DNS. C’est d’ailleurs intéressant d’en connaître la cause pour voir à quel point le web à divergé d’internet…

  • # pelican

    Posté par  (site web personnel) . En réponse au journal Static Site Generator. Évalué à 7.

    Je suis convaincu par le format RST et son expressivité, et je suis sur Pelican depuis… longtemps maintenant. J’utilise le theme Flex que j’ai customisé à ma sauce en surchargeant les éléments qui m’intéressaient. Tu peux donc y trouver un exemple pour voir comment modifier un thème par défaut pour l’enrichir de ton côté.

    L’idée pour ça est de construire le thème en y insérant des include qui correspondent à des sous-éléments que tu peux surcharger par ailleurs. Bien sûr, il est possible que le thème que tu utilises ais mis en place ces points de surcharge. (je suis pas allé voir sur le thème par défaut). La plupart des thèmes que j’ai vu correspondent à un thème que les gens ont pu construire peur eux, mais sans chercher à le rendre réutilisable par d’autres.

    L’avantage de pelican est que tu peux facilement cloner un blog existant pour le modifier à ta guise hors ligne :)

  • [^] # Re: Bastion ssh pi0

    Posté par  (site web personnel) . En réponse au journal Serveur perso basse consommation. Évalué à 6.

    J’ai pris un modèle basé sur le controleur 8152B. En recherchant "8152B Micro USB 2.0" sur le site de ton vendeur tu devrais trouver assez de références :)

  • # Bastion ssh pi0

    Posté par  (site web personnel) . En réponse au journal Serveur perso basse consommation. Évalué à 10.

    J’utilise un raspberry pi zero, qui est allumé 24h/24, avec un adapteur ethernet par usb (c’est le modèle sans wifi). Il fourni un serveur ssh, et j’ai des scripts wake-on-lan tout prêts qui me permettent de démarrer mon NAS a distance si nécessaire.

    Quand je suis à distance, j’utilise les tunnels de ssh pour accéder aux fichiers présents sur le nas et ça marche plutôt bien, le pi0 tient bien la charge du chiffrement ssh. J’ai testé une lecture de vidéo depuis chez mes parents (connectés via la fibre) et il n’y a eu aucun soucis. Je pensais que le pi-zero serait un goulet, mais tout s’est passé sans problème.

    Dans le futur je pense me construire un système buildroot dédié pour ça, mais je n’ai pas encore eu le temps de me pencher dessus, ça me permettrai d’avoir une image du système dispo à installer sur la carte SD qui me permettrait de restaurer le système.

  • [^] # Re: Pendant ce temps dans l'équipe de dev du backoffice paiement

    Posté par  (site web personnel) . En réponse au journal CISSP, sécurité, il faut que je vous raconte un truc.... Évalué à 10.

    Je ne devrai peut-etre pas poster ça ici, mais sslh génère des trames http qui sont vraiment identifiables pour qui prends la peine de regarder ce qui transite par le réseau.

    La solution "sure" que j’ai trouvé est d’ouvrir un proxy en https sur un serveur web, qui redirige le flux vers la machine désirée. (j’ai suivi ce bug report avec intéret à l’époque où j’en avais besoin)

    ProxyRequests On
    AllowConnect 22
    <Proxy *>
        Order deny,allow
        Deny from all
    </Proxy>
    <Proxy chez-moi>
        Order deny,allow
        Allow from all
    </Proxy>
    

    Puis d’utiliser une requete ssh qui simule complètement une connexion http (le user-agent est important car certain pare-feu d’entreprise se basent dessus pour filtrer les connexions)

    Host destination
        ProxyCommand  proxytunnel --cacert=/etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt -E -T -p relai:443 -d destination:22 -H 'Host: mon.domaine-public.test:443' -H 'User-Agent: <le user-agent kivabien>'
    

    (non, je ne détaillerai pas davantage)

  • # Felicitations

    Posté par  (site web personnel) . En réponse au journal CISSP, sécurité, il faut que je vous raconte un truc.... Évalué à 10.

    Merci pour ton témoignage, et bravo pour ton concours ! J’ai ressenti à la lecture du journal a quel point tu as du en baver ! Je ne connais pas le domaine de la sécurité, je ne vais donc pas broder dessus, mais ton retour est intéressant sur l’énergie nécessaire pour sortir de sa zone de confort. Tu as vraiment eu de la chance que l’employeur t’ai donné les moyens de mener ta formation.

    Te serais-tu lancé dedans si tu avais imaginé la charge que ça représentait ?

  • # OCaml (avec cohttp)

    Posté par  (site web personnel) . En réponse au journal Le taptempo du web. Évalué à 2.

    Et voici une version en OCaml, j’ai utilisé cohttp qui est une librairie bas-niveau pour construire des requêtes client/serveur.

    open Cohttp
    open Cohttp_lwt_unix
    
    let server imgCount =
      let callback _conn req body =
        ignore body;
    
        let headers =
          Header.add (Request.headers req) "Location"
            (String.concat ""
               [
                 "https://avatar.spacefox.fr/Renard-";
                 string_of_int @@ (1 + Random.int imgCount);
                 ".png";
               ])
        in
        Server.respond ~headers ~status:`Temporary_redirect ~body:`Empty ()
      in
      Server.create ~mode:(`TCP (`Port 8000)) (Server.make ~callback ())
    
    let () = Lwt_main.run (server 5)

    La sortie ps :

    $ ps aux | grep tempo
    sebasti+ 23319 0.8 0.4 119996 16464 pts/2 Sl+ 13:49 0:03 _build/default/tempo.exe

    et le résultat du bench :

    $ ab -n 100000 -c 10 http://localhost:8000/
    This is ApacheBench, Version 2.3 <$Revision: 1879490 $>
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Licensed to The Apache Software Foundation, http://www.apache.org/
    
    Benchmarking localhost (be patient)
    …
    Finished 100000 requests
    
    
    Server Software:        
    Server Hostname:        localhost
    Server Port:            8000
    
    Document Path:          /
    Document Length:        0 bytes
    
    Concurrency Level:      10
    Time taken for tests:   3.350 seconds
    Complete requests:      100000
    Failed requests:        0
    Non-2xx responses:      100000
    Total transferred:      18600000 bytes
    HTML transferred:       0 bytes
    Requests per second:    29851.08 [#/sec] (mean)
    Time per request:       0.335 [ms] (mean)
    Time per request:       0.033 [ms] (mean, across all concurrent requests)
    Transfer rate:          5422.17 [Kbytes/sec] received
    
    Connection Times (ms)
                  min  mean[+/-sd] median   max
    Connect:        0    0   0.0      0       1
    Processing:     0    0   0.5      0      51
    Waiting:        0    0   0.5      0      51
    Total:          0    0   0.5      0      51
    
    Percentage of the requests served within a certain time (ms)
      50%      0
      66%      0
      75%      0
      80%      0
      90%      1
      95%      1
      98%      1
      99%      2
     100%     51 (longest request)
    
  • [^] # Re: Complexité algorithmique

    Posté par  (site web personnel) . En réponse au journal [Letlang] Hommage à Leonardo Pisano Fibonacci. Évalué à 2.

    Merci, je n’avais pas eu cette lecture. Avec ton retour je vois mieux ce qui s’est joué.

  • [^] # Re: Complexité algorithmique

    Posté par  (site web personnel) . En réponse au journal [Letlang] Hommage à Leonardo Pisano Fibonacci. Évalué à 8.

    Je ne vois rien de condescendant dans le message auquel tu réponds. Je pense que tu fais un présupposé là il faut seulement y voir une remarque venant de quelqu’un qui a pris le temps d’écrire son commentaire, illustré par des exemples.

    Toutefois, et sans vouloir paraître condescendant, je veux bien que tu m’expliques comment tu compte implémenter la récursion terminale dans le langage.

  • # Qtpass proprio ?

    Posté par  (site web personnel) . En réponse au message [IHM] pour pass + gpg. Évalué à 5.

    Depuis quand ? La licence est toujours en GPLv3

  • [^] # Re: NetworkManager ?

    Posté par  (site web personnel) . En réponse au message fichier /etc/network/interfaces. Évalué à 7.

    J’ai pensé longtemps comme toi, et j’ai récemment changé d’avis. L’avantage de systemd est qu’il fait office d’ordonnanceur. On peut l’utiliser pour remplacer cron / init.d / interfaces etc

    Un exemple tout con, je veux lancer mes sauvegardes de manière automatique, mais j’ai besoin de m’assurer que le réseau est up. Si le réseau est géré par systemd, il suffit de déclarer une règle After dans mon service pour que la tâche se lance dès que le pc est connecté :

    [Unit]
    Description=Backup online
    After=network-online.target
    
    [Service]
    Type=simple
    

    Au final, ça reste des fichiers de configurations puisque tous est éditable directement c’est juste que nous n’avons pas pris l’habitude d’apprendre ce nouveau système.

  • [^] # Re: plus sérieusement

    Posté par  (site web personnel) . En réponse au lien Qu'est-ce que la récursivité. Évalué à 4.

    Pareil, le bouquin Le Langage Caml nous explique dès le début ce qu’est la récursivité, et termine en expliquant comment compiler le langage… avec ledit langage.

    Je trouve que ça a un côté poétique en fait.

  • [^] # Re: Machine à états ?

    Posté par  (site web personnel) . En réponse au journal Sunday Python Pattern : Une machine à état toute simple. Évalué à 6.

    J'avoue, c'est le nom le plus proche que j'ai trouvé pour ce design pattern que j'utilise sans en connaître le nom.

    Cela ressemble beaucoup à un trampoline, et c’est utilisé depuis au moins l’époque de Lisp. Cela permet de créer un code récursif sans surcharger la pile quand le compilateur n’est pas capable d’optimiser la récursion terminale.

    Je laisse les experts préciser s’il s’agit d’un cas particulier de Continuation-passing style (désolé, je saurai pas comment le traduire en français) ou non.

  • [^] # Re: sur le même thème

    Posté par  (site web personnel) . En réponse au journal Petites observations sur le travail (que l'on fait pour soi). Évalué à 4.

    C’était très intéressant. 20mn et très dense.

    Très actuel aussi, j’y ai retrouvé du vécu (par exemple ma femme qui peste contre l’obligation de rénumérer les stagiaires dans le social car ça rend la recherche de stage plus difficile… ), mais aussi de l’espoir. J’aime cette question de la valeur que l’on accorde à notre travail, ça recentre le débat sur ce qui est important dans le travail !

  • [^] # Re: Ton pain

    Posté par  (site web personnel) . En réponse au journal Petites observations sur le travail (que l'on fait pour soi). Évalué à 4.

    L’Italie avait tenté l’expérience (dans les années 70 ou 80 je ne sais plus), d’évaluer le travail domestique qui n’est pas comptabilisé. L’idée étant de proposer une allocation qui serait équivalente à se travail non comptabilisé et invisible. Si l’on se remet dans le contexte de l’époque, il s’agissait surtout d’une main d’œuvre féminine, n’ayant pas forcément de ressources autres que celles du revenu de l’époux et l’idée était de donner une autonomie aux femmes.

    C’est ce qui a fait capoter le projet : si l’on verse une allocation pour ce travail, on légitimise de ce fait la place de la femme à la maison, et au lieu de l’amener vers l’autonomie, on l’enferme à cette place…

  • [^] # Re: lisp ?

    Posté par  (site web personnel) . En réponse au journal [Letlang] Écrire un compilateur en Rust. Évalué à 6.

    Au contraire, ça casse la cohérence du langage. Le bloc de parenthèses représente une unité d’exécution du langage. (fonction arg1 arg2 …) peut se substituer à (EXPRESSION). Il faut plus les lire comme les {…} du C ou Java que les parenthèses qui listent les arguments d’une fonction.

  • [^] # Re: une idée, qui est un classique de bureau à distance

    Posté par  (site web personnel) . En réponse au message Session VNC et clefs USB. Évalué à 2.

    Je voulais éviter d’avoir à débrancher les cables qui sont actuellement relié au PC client pour les basculer sur le PC hôte. S’il me faut me logguer phhysiquement, ça perd tout cet attrait :)

  • [^] # Re: une idée, qui est un classique de bureau à distance

    Posté par  (site web personnel) . En réponse au message Session VNC et clefs USB. Évalué à 2.

    Si je comprend bien, tu ouvres ta session genre VNC sur SSH

    Effectivement, et suite à ton retour j’ai modifié la démarche, sans succès. Il y a une option qui dans lightDM qui permet de lancer le serveur VNC. Désormais je loggue donc via le gestionnaire de connexion (ssh ne sert qu’à mettre en place le tunnel).

    Pour autant, cela ne change pas le problème, l’utilisateur courant n’est pas autorisé à monter les clefs USB sans avoir à donner le mot de passe root.

    Je vais regarder plus en détail, j’ai trouvé un ticket sur le github qui semble correspondre au même problème, mais dont la seule réponse est « cela vient de la couche spécifique apportée par debian ».

  • [^] # Re: une idée, qui est un classique de bureau à distance

    Posté par  (site web personnel) . En réponse au message Session VNC et clefs USB. Évalué à 3.

    Merci du retour, je n’ai pas peut etre pas été assez clair.

    Je parle bien de la brancher sur la machine distante. Sauf qu’il semble qu’il manque une brique dans la pile qui fait remonter le matériel jusqu’aux droits utilisateurs dans la session X. Et c’est là où je ne sais pas trop chercher (udev je connais, mais tout ce qui suis derrière m’est inconnu)

    Cela fonctionne quand je lance ma session en physique (via lightDM), mais non pas quand j’ai ouvert ma session X via VNC.

  • [^] # Re: Brève de NextInpact : Wikipedia bannit sept de ses utilisateurs accusés d'avoir « zemmourisé »

    Posté par  (site web personnel) . En réponse au lien Tentative de manipulation de Wikipédia par l’équipe d’Éric Zemmour. Évalué à 3.

    Il y a très longtemps, Freenet avait un logiciel de messagerie de type forum (peut etre existe-t-il encore, je ne me souviens plus de son nom). Pour rappel, Freenet est un réseau anonyme et pair à pair, donc il n’y a pas vraiment de modération possible.

    Donc, ce logiciel avait mis en place une règle de modération automatique, dans laquelle chaque personne notait les autres utilisateurs sur la base de deux critères :

    1. Pertinence de ses propos (je suis d’accord avec ce qu’il dit / je ne partage pas ses opinions)
    2. Pertinence de ses évaluations (je fais confiance à ses notes attribuées aux autres utilisateurs)

    J’avais trouvé cette nuance intéressante : on peut etre d’accord avec une personne, mais trouver que celle-ci s’emporte trop vite dans ses propres notations et ne pas souhaiter en tenir compte, ou on peut etre en désaccord avec une personne, mais trouver que celle-ci est objective dans l’évaluation de son réseau.

    Je n’ai pas assez pratiqué à l’époque pour savoir si cela fonctionnait sur l’ensemble des forums, mais j’avais trouvé que cette séparation permettait de nuancer les opinions. Ça oblige en tout cas à aller un peu plus loin que seulement "J’aime/J’aime pas".

  • [^] # Re: sauvegarder les clés privées

    Posté par  (site web personnel) . En réponse au lien Utiliser une Nitrokey Pro 2 comme clé SSH. Évalué à 4.

    De mon côté j’ai découpé ma clef en une série de qrcode et imprimé les feuilles. C’est ce qui me semble demander le moins de manipulations pour restaurer le fichier.

  • [^] # Re: Clef GPG

    Posté par  (site web personnel) . En réponse au lien Utiliser une Nitrokey Pro 2 comme clé SSH. Évalué à 4.

    Je confirme :) si l’on a pas l’info avant, on ne la trouve pas sur le site.

    Ton journal m’a bien aidé aussi pour faire la part des choses. Je n’y avais rien compris sur le moment, mais l’avais relu avant de sauter le pas pour acheter ma 1ère clef !

  • [^] # Re: Clef GPG

    Posté par  (site web personnel) . En réponse au lien Utiliser une Nitrokey Pro 2 comme clé SSH. Évalué à 4. Dernière modification le 16 février 2022 à 09:14.

    J’ai l’impression que la solo key n’est pas une clef GPG (du moins ça n’est pas spécifié dans les specs). Elle ne serait donc pas compatible du tout.

    Je trouve difficile de mettre un pied dans les jetons de sécurité vu la pléthore d’information diffusée sur les différents vendeur : FIDO, U2F, GPG… la plupart des tokens promettant à chaque fois le meilleur de la sécurité, et l’on ne sais pas vraiment à l’avance quel besoin nous avons tant que nous n’avons pas la clef en main pour tester ce que l’on peut faire avec.

    Pour ma part, la clef GPG me suffit. Le NFC vient en bonus (afin d’avoir les mots de passes sur le téléphone) et j’attend que le firmware de la Nitrokey3 soit mis à jour pour en profiter pleinement.

  • # Clef GPG

    Posté par  (site web personnel) . En réponse au lien Utiliser une Nitrokey Pro 2 comme clé SSH. Évalué à 6.

    À noter que le modèle Pro n’est pas vraiment nécessaire ; c’est la passerelle GPG qui fait tout. Du coup, il est possible d’utiliser une Nitrokey Start (moins cher) ou meme une GPG card !

  • [^] # Re: Et la solution !

    Posté par  (site web personnel) . En réponse au journal Wordle is the new TapTempo. Évalué à 2.

    C’est pris en compte mais non documenté (seulement commenté) : dans la version en console, il faut valider une ligne vide, l’application fera une nouvelle proposition, dans la version en ligne, il y a un bouton pour "recharger" la proposition.

    Par contre il y a un cas qui n’était pas pris en compte à l’époque et que j’ai rencontré avec sutom : si le mot contient une répétition de lettres, il se peut que le moteur nous indique que la 1ère lettre est bien placé, mais n’indique pas que la seconde soit mal placée. Si l’on recopie bêtement les infos remontées, l’application va charger deux règles incompatibles (lettre présente + lettre absente) ce qui va mettre fin au processus.