chimrod a écrit 1102 commentaires

  • [^] # Re: GNU parallel

    Posté par  (site web personnel) . En réponse au message Aide pour commande. Évalué à 3.

    par défaut, c'est les retours à la ligne, pas les espaces

    Merci tu m’apprends quelque chose là !

  • [^] # Re: Paramètres par défaut des distributions

    Posté par  (site web personnel) . En réponse au journal ssh : et si nous sensibilisions par un label, ou autre impératif?. Évalué à 4.

    Pas vraiment. J’ai le sentiment qu’il y a des plages d’IP qui prennent la relève successivement dès que la première est bloquée. Je pense que fail2ban est impuissant face un réseau de botnet un peu organisé :

    • Dès que tu es bloqué sur un hôte, tu commences à en attaquer un autre (ça ne sert à rien d’insister, il suffit d’attendre que le temps passe)
    • Tu communiques l’info à ton réseau pour qu’une autre pc vérolé prenne la relève.

    Tu peux changer les règles pour empêcher ça (tu fais une méta-règle qui parse les logs de fail2ban, et si la même IP est présente 10 fois en 3j tu la ban à vie), mais tu auras toujours un train de retard.

  • [^] # Re: GNU parallel

    Posté par  (site web personnel) . En réponse au message Aide pour commande. Évalué à 5. Dernière modification le 03 janvier 2023 à 10:01.

    Attention, la commande va se mettre à donner des résultats bizarres dès que tu auras des espaces dans le nom de fichier. Quitte à utiliser une redirection, je préfère le couple find / xargs qui te permet aussi d’utiliser plusieurs process :

    Exemple trivial :

    find . -name '*.jpg' -print0 | xargs -0 -I '{}' --max-procs 0 echo "fichier {}"

    ou la version avec find tout seul (mais séquentielle) :

    find . -name '*.jpg' -exec echo fichier {} \;

  • [^] # Re: Réponse

    Posté par  (site web personnel) . En réponse au journal Adieu Grammalecte ?. Évalué à 9.

    Tout à fait. Autant cela peut être parfois bénéfique de s’accrocher à un projet pour garder un cap, autant cela peut devenir toxique si cela devient une contrainte. Dans ton message, je sens poindre la culpabilité, et ça n’est jamais bon (c’est selon moi le pire des sentiments). Prend ce journal pour ce qu’il est, une interrogation et une source d’inquiétude, mais surtout pas comme une accusation.

    Prends soin de toi.

    (C’est peut être évident pour tout le monde mais dès fois ça peut servir d’enfoncer des portes ouvertes !)

  • [^] # Re: T'as pensé au crayon à papier ?

    Posté par  (site web personnel) . En réponse au journal J'ai testé: une ardoise à cristaux liquides. Évalué à 3.

    Oh merci ! Je cherchais depuis longtemps une application à la Zim à faire tourner sur mon PC au travail. C’est en test depuis ce matin, la prise en main s’est faite tout de suite.

  • [^] # Re: Problème d'hébergeur

    Posté par  (site web personnel) . En réponse au journal Adieu Grammalecte ?. Évalué à 6.

    Tu as aussi une version en ligne de commande (qui n’est pas mise en avant et n’est accessible que par ceux qui savent qu’elle existe déjà). Je l’utilise dans vim avec le plugin éponyme.

    Il faut récupérer l’archive standalone et utiliser le programme languagetool-commandline.jar. Voir le manuel sur le wiki.

  • # sxhkd ?

    Posté par  (site web personnel) . En réponse au message Lancer une commande lors de l'appui sur une touche du clavier. Évalué à 4.

    sxhkd fait partie du gestionnaire de fenêtre bspwm. C’est un petit démon utilisé dans le gestionnaire pour gérer tous les raccourcis claviers mais peut être utilisé de manière autonome. Il est paramétré avec un simple fichier texte (et un syntaxe très concise)

  • # buildroot

    Posté par  (site web personnel) . En réponse au journal NixOS ou comment j'ai rendu mes machines interchangeables et ennuyeuses. Évalué à 4.

    C’est amusant, j’ai en tête un journal un peu similaire sur buildroot. La version 2022-11 est en RC-1, je comptais me laisser un peu le temps avant la sortie pour préparer ce que j’avais à y mettre :)

  • [^] # Re: Force brute

    Posté par  (site web personnel) . En réponse au lien Mots de passe : une nouvelle recommandation pour maîtriser sa sécurité. Évalué à 6.

    Peut être que l’attaque par force brute n’est plus réalisée en tentant successivement les mots de passes sur le formulaire de connexion, mais à froid contre un hash qui aurait fuité lors d’une compromission de données ?

  • [^] # Re: Ça me fait penser

    Posté par  (site web personnel) . En réponse au journal [ HS ] haïku (essai). Évalué à 4.

    Souffle de la lune
    Souvenir d’une insomnie
    Lucrèce en bépo

  • [^] # Re: Nitrokey

    Posté par  (site web personnel) . En réponse au journal Clés de sécurité, pas assez utilisées. Évalué à 6.

    J’ai une nitrokey start, et j’en suis très content ( le journal devrait citer la dépeche de gouttegd à ce sujet, car on est en plein dedans). Par contre, son périmètre est réduit car il s’agit exclusivement d’une clef gpg, et ne gère pas les aspects U2F ou FIDO2.

    Je pense que la solution des jetons de sécurité est une bonne solution (si l’on compare avec ce qui est en train de se mettre en place : Passkeys : Venez centraliser vos mots de passe !) : un jeton qui prend en charge NFC et GPG, pouvant etre utilisé sur le pc ou le smartphone, la possibilité de déposer sa clef publique sur franceconnect ou sur le site de sa banque et c’en est fini des problème de compte piratés (du moins pour le 0,001% de la population qui savait déjà comment se protéger…)

  • # Si je comprends

    Posté par  (site web personnel) . En réponse au lien Cosmopolitan : la libc pour faire des exécutables multi OS (et même sans OS). Évalué à 4.

    Le code généré est interprété comme un script shell côté linux dont la première ligne MZqFpD=' correspond également à du code machine valide chez Windows.

    Sous windows, les premières instructions (en langage machine) consistent à sauter à l’emplacement du code exécutable alors que sous Linux, le programme est lu comme un script shell, qui va s’auto décompresser pour lancer le code binaire qu’il contient.

    J’imagine que le système trouve ses limites dès qu’il doit faire appel à des librairies tierces ?

  • [^] # Re: CSV

    Posté par  (site web personnel) . En réponse au lien Unix legend, who owes us nothing, keeps fixing foundational AWK code. Évalué à 4.

    C’est super le format CSV, c’est simple facile, à construire, facile à lire, sauf que

    Le format CSV n’est pas un format texte mais un format binaire.

    Le format CSV n’est pas un format texte mais un format binaire.

    Le format CSV n’est pas un format texte mais un format binaire.

    mais quand on s’en rend compte, c’est trop tard. On est piégé. Fini. Foutu.

    Ça fonctionne bien tant qu’on travaille sur ses propres fichiers de son coté, mais dès qu’on s’ouvre au monde on découvre à quel point l’univers est cruel :

    Niveau 0 :

    • les européens qui utilisent le point virgule à la place de la virgule
    • les caractères d’échappements avant les séparateurs de champs (\,)
    • les caractères d’échappements qui sont échappé eux meme (\\,)

    Niveau 1 :

    • les séparateurs de champ qui sont contenus dans un bloc texte (",")
    • les caractères de bloc textes qui n’en sont pas vraiment car précédé par un caractère d’échappement (\")

    Niveau 2 :

    • toutes les combinaisons possibles des niveau 0 et 1
    • le texte contenant des retours chariots
    • les formules excels stockées directement le CSV (="Du texte")

    Et la découverte de cette année : Excel enregistre le "CSV au format UTF-8" en ajoutant un Indicateur d'ordre des octets — ou BOM pour les intimes. Il te faut donc commencer à lire les premiers octets du fichier voir s’il s’agit d’un BOM, et si c’est le cas ne commencer à parser le fichier qu’après. (un exemple de cas posant problème dans un ticket de bug ouvert que j’ai ouvert suite à ça)

    Allez on le répète une dernière fois pour la route

    Le format CSV n’est pas un format texte mais un format binaire.

    Pfff ça va mieux.

  • # 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.