Journal Launch And Forget

Posté par  (site web personnel) .
Étiquettes : aucune
3
9
août
2010
Dernièrement mes collègues ont terminé un projet de contrôle des frigos. Il s'agit d'un réseau de sondes communiquant sur un bus dédié et rapportant l'état vers Nagios.

Durant ce projet, j'ai été amené à faire transiter des données d'un serveur à un autre afin de les stocker et de les présenter. Ces données présentaient la température de chaque frigo. Pour chaque transfert de données une action devait être exécutée, soit stocker ça dans une base RRD. Finalement ces données une fois stockée devaient être présentées aux utilisateurs sous forme de graphique.

Comme à chaque fois dans ce genre d'application on se retrouve à devoir se connecter sur un serveur, exécuter un script sous un utilisateur particulier, genre www-data. Comme à chaque fois je me retrouve avec la problématique de devoir faire soit une authentification ssh, soit un dépôt ftp (ou autre) et bricoler une ou deux script avec inotify (et plein d'autres solutions à l'aide du protocole universel).

J'ai donc fait un petit programme exécutant les commandes reçues sur l'entrée standard. Ces commandes sont prédéfinies dans un fichier de configuration. La sortie standard et d'erreur de la commande n'est pas retournée. Le programme n'échoue jamais. Chaque commande se voit attribuer un utilisateur et un groupe et sera lancé avec cet utilisateur et ce groupe. Au bout d'un temps prédéfini, la commande est tuée sans autre forme de procès (le temps sera paramétrable par le fichier de configuration). Aucune authentification nécessaire.
Ce programme a été prévu pour tourner en root (afin de pouvoir changer d'utilisateur à la volée (mais ce n'est pas obligatoire)) à l'aide d'un programme comme inetd.

Le programme en lui-même n'inclue aucun code réseau, aucun code de chiffrement, aucun code d'authentification, il exécute les commandes reçues en entrée si elles sont décrites dans le fichier de configuration. Il existe assez de possibilités comme stunnel ou openssh pour faire du chiffrement et/ou de l'authentification.

Ce programme devrait être utilisable actuellement, il y a encore deux fonctionnalités que je souhaites implémenter :
  1. Pouvoir configurer le temps avant de tuer le processus dans le fichier de configuration
  2. Récupérer la configuration depuis un annuaire LDAP (ou une autre base de donnée)
Après je crois qu'il sera complet.

Sinon dans souci de liberté, j'ai décidé de mettre ce programme sous licence Do What The Fuck You Want To Public License, la seule vraiment libre comparée à la GPL ou la BSD ...

La documentation lacunaire est dans le fichier README.

Il ne reste plus qu'à mettre un lien vers le code de LAF ... (non je ne l'ai pas fait en python)
  • # sonde -> log -> syslog -> serveur

    Posté par  . Évalué à 10.

    inventer une appli root qui recoit des ordres sans identification via une ligne de commande, je trouve ca moyen.

    D'autant quand on sait qu'il y a des applis faites pour prendre des infos et les envoyer en logs (syslog par exemple)

    puis il y a des applis pour lire les logs et en faire une analyse et des graphes.
    • [^] # Re: sonde -> log -> syslog -> serveur

      Posté par  (site web personnel) . Évalué à 2.

      inventer une appli root qui recoit des ordres sans identification via une ligne de commande, je trouve ca moyen.

      L'application reçoit des ordres sur l'entrée standard et les exécute suivant la configuration donnée. Si tu veux pouvoir changer d'utilisateur durant l'exécution, root est nécessaire.
      Si tu veux de l'identification et du chiffrage, tu passes par stunnel, par exemple.

      Après syslog, ça pourrait être une solution, mais lire des fichiers de log toutes les 5 minutes pour trouver une température (donc 3-4 caractères), c'est peut-être un peu lourd à mon goût.

      Là tu fais un netcat et tu continues ton traitement. Tu veux commander un serveur simplement depuis internet, tu rajoutes un peu de stunnel et tu peux pratiquement installer une machine virtuelle par sms (j'exagère à peine).

      "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

      • [^] # Re: sonde -> log -> syslog -> serveur

        Posté par  . Évalué à 3.

        Après syslog, ça pourrait être une solution, mais lire des fichiers de log toutes les 5 minutes pour trouver une température (donc 3-4 caractères), c'est peut-être un peu lourd à mon goût.
        De tête, avec syslog-ng, tu peux définir une destination qui est une fifo nommée ^^.

        Donc syslog-ng envoie juste les lignes qui t'interesse, et tu execute un programme sans droit qui lis la fifo.

        Et voila une architecture modulable et sécurisée.
        • [^] # Re: sonde -> log -> syslog -> serveur

          Posté par  (site web personnel) . Évalué à 1.

          De tête, avec syslog-ng, tu peux définir une destination qui est une fifo nommée ^^.

          Oui ça tu peux.

          Et voila une architecture modulable et sécurisée.

          Oui, c'est une solution.

          Mais ça fait déjà plus de travail de configuration. Tu dois avoir syslog-ng configuré sur les deux serveurs + le script qui va bien sur chaque serveur.

          Si j'ai volontairement pas mis de sécurité, c'est parce que je ne voulais pas l'aspect sécurité. Après rien n'empêche de l'ajouter, tout est disponible.

          Finalement j'ai parlé des frigos parce que c'est de là qu'est parti l'idée, mais réellement j'ai pris une autre solution pour les frigos. L'aspect intéressant, pour moi, c'est de pouvoir lancé des commandes définies sans identification avec un utilisateur défini et je n'ai rien trouvé le permettant.

          "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

      • [^] # Re: sonde -> log -> syslog -> serveur

        Posté par  . Évalué à 4.

        Si tu veux pouvoir changer d'utilisateur durant l'exécution, root est nécessaire.
        Tant qu'à faire des trucs crades, il y a aussi rsh qui te le permet.

        Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.

        • [^] # Re: sonde -> log -> syslog -> serveur

          Posté par  (site web personnel) . Évalué à 3.

          Oui. Mais maintenant ce qui se fait pour lancer des commandes, c'est de passé par ssh avec soit le mot de passe d'un utilisateur ayant un shell sur le serveur écrit dans fichier et d'utiliser expect, soit d'utiliser les clés privées/publiques pour l'authentification de l'utilisateur.

          Dans tout les cas il y a un shell complet de l'autre côté (ou limité). Je ne veux pas
          1) modifier, par exemple, www-data pour qu'on puisse s'authentifier avec
          2) créer un utilisateur bidon pour faire un sudo pour devenir www-data
          3) avoir accès à un shell pour une utilisateur n'existant pas réellement

          En gros ce programme fait ce que les gens font déjà mais en contournant les sécurités. Après c'est à celui qui installe ce truc de voir comment il le fait, mais il n'est pas "pas sécurisable".

          "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

          • [^] # Re: sonde -> log -> syslog -> serveur

            Posté par  . Évalué à 1.

            ssh permet de faire à peu près ce que tu veux je crois. Il faut ajouter quelque paramètre devant la clé publique dans le fichier authorized_keys.

            Les paramètres intéressants entre autres (man ssh pour les avoir toutes ;-))
            command="command"
            environment="NAME=value"
            from="pattern-list"
            no-pty

            "command" va déclencher l'utilisation de cette commande lors de la connexion ssh. Notamment dans l'environnement il y a SSH_ORIGINAL_COMMAND, donc lorsque tu fais:

            "ssh user@machine_distante ma_commande"

            tu peux tout à fait faire que la machine distante exécutera toujours:

            "sudo -u utilisateur_restreint ma_commande"

            avec un sudo bien réglé.

            Tu peux mettre ton petit programme aussi, comme ça ça lui évitera de tourner en root mais uniquement lors de la connexion et avec l'identité "finale". A charge de ce programme de vérifier si tel utilisateur peut exécuter ce programme, à la rigueur.

            Voilà un lien où cette solution est évoquée: https://linuxfr.org/comments/1014767.html#1014767


            En tous cas tu peux faire en sorte que l'utilisateur n'aie aucun shell à sa disposition, voire pas de pty, c'est un cas prévu par ssh.
  • # euh

    Posté par  . Évalué à 3.

    et un paramétrage de sudo ?

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

    • [^] # Re: euh

      Posté par  (site web personnel) . Évalué à 3.

      oui, mais il te faut un utilisateur pour se connecter sur le serveur dans ce cas. donc un utilisateur bidon avec clé privée/publique ?

      "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

      • [^] # Re: euh

        Posté par  . Évalué à 5.

        et finalement, puisque c'est d'avoir un utilisateur connectable à ta machine qui te pose souci,

        pourquoi ne pas mettre un simple serveur web.

        utilisateur www-data
        ensuite rien de l'empeche de lire les senseurs du frigo, ou d'executer des scripts.

        l'interface web n'a alors pas besoin d'identification
        si c'est le cas un simple htpassword permet de securiser cet acces.

        et un utilisateur www-data qui serait sudoer pourrait alors se faire passer pour root pour modifier certains fichiers systemes importants
  • # Ahhhhhh

    Posté par  . Évalué à 9.

    Enfin une niouze fraiche :D
  • # Binouzes

    Posté par  . Évalué à 9.

    Au moins peux-tu voir le niveau de la bière et le nombre de pizzas restantes dans le réfrigérateur?
    • [^] # Re: Binouzes

      Posté par  . Évalué à 9.

      une légume pas frais prend le contrôle du frigo et hack ta bécane

      Je trolle dès quand ça parle business, sécurité et sciences sociales

    • [^] # Re: Binouzes

      Posté par  (site web personnel) . Évalué à 2.

      Faisable avec du rfid ... Mais sinon c'est principalement la température et la porte (si elle reste ouverte trop longtemps, ça hurle)

      "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

  • # Heuuu

    Posté par  . Évalué à 6.

    Donc si j'ai bien compris, tes scripts:
    - se logguent en tant que www-data sur une machine distant (authentification automatique donc?)
    - puis executent ton programme LAF, qui tourne en root via un sticky bit, en lui passant des commandes "predefinies" dans /etc/laf/laf.conf
    - Si /etc/laf/laf.conf n'existe pas, ca se rabat donc sur une variable d'environment locale ou ./laf.conf. Les deux sont accessibles en ecriture par l'utilisateur automatiquement logge, qui peut donc creer une commande "installe le rootkit".
    - Si /etc/laf.conf existe, il "suffit" de modifier un des scripts des commandes predefinies, avec par exemple, un simple chmod 666 /etc/laf/laf.con planque qq part?
    - Tu n'as strictement aucun retour sur ce qui a effectivement ete effectue, par l'utilisateur root.

    J'ai bien compris?
    Je suis le seul que ca choque?

    Pourquoi ne pas partir sur une voie de service web ou tu pourrais implementer une politique de securite un tant soit peu decente?

    If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

    • [^] # Re: Heuuu

      Posté par  . Évalué à 0.

      tant qu'on y est, venant de man access

      CAVEAT
      Access() is a potential security hole and should never be used.

      If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

      • [^] # Re: Heuuu

        Posté par  (site web personnel) . Évalué à 2.

        Il faut lire en entier les pages de man.


        Attention : Utiliser access() pour vérifier si un utilisateur a le
        droit, par exemple, d'ouvrir un fichier avant d'effectuer réellement
        l'ouverture avec open(2), risque de créer un trou de sécurité.


        Pour savoir si le fichier existe c'est bon.,

        "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

        • [^] # Re: Heuuu

          Posté par  . Évalué à 2.

          Ben on a pas la meme page man alors. Potentiellement une gnuserie.

          If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

          • [^] # Re: Heuuu

            Posté par  . Évalué à 2.

            Moi j'ai :
            access(2)
            NOTES
            Warning: Using access() to check if a user is authorized to, for example, open a file before actually doing so using open(2) cre‐
            ates a security hole, because the user might exploit the short time interval between checking and opening the file to manipulate
            it. For this reason, the use of this system call should be avoided.


            et
            access(3P)
            EXAMPLES
            Testing for the Existence of a File
            The following example tests whether a file named myfile exists in the /tmp directory.
    • [^] # Re: Heuuu

      Posté par  (site web personnel) . Évalué à 1.

      J'ai bien compris?
      Non pas du tout.

      "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

      • [^] # Re: Heuuu

        Posté par  (site web personnel) . Évalué à 7.

        woua, maintenant grâce à tes explications supplémentaires tout est devenu clair !
        • [^] # Re: Heuuu

          Posté par  (site web personnel) . Évalué à 2.

          Je vois pas comment mieux plus que ça :

          J'ai donc fait un petit programme exécutant les commandes reçues sur l'entrée standard. Ces commandes sont prédéfinies dans un fichier de configuration. La sortie standard et d'erreur de la commande n'est pas retournée. Le programme n'échoue jamais. Chaque commande se voit attribuer un utilisateur et un groupe et sera lancé avec cet utilisateur et ce groupe. Au bout d'un temps prédéfini, la commande est tuée sans autre forme de procès (le temps sera paramétrable par le fichier de configuration).

          "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

          • [^] # Re: Heuuu

            Posté par  (site web personnel) . Évalué à 6.

            En fait si je réagissais c'est surtout que ta réponse était inutile.
            Le gars t'écris ce qu'il pense avoir compris de ton soft, demande si c'est bien ça et toi ... tu lui dis simplement non (et là tu refais pareil, c'est juste un copié collé de ce que tu as déjà écris).
            Lorsque quelqu'un ne comprend pas ce que tu racontes, c'est souvent autant de sa part (il n'a pas bien lu, n'a pas les compétences, etc) que de celui qui a expliqué (mal expliqué car dans son truc, oublis de détails, etc) et c'est ce point que je pointais.

            Maintenant, perso je ne suis toujours pas sur d'avoir compris ce que glandouille ton soft, et je pense que le problème vient du fait que tu parles de www-data alors que tu ne l'utilise pas, non ? (en clair désolé mais si certains ont compris de quoi tu parles, c'est loin d'être le cas de tout le monde et loin d'être limpide - en plus d'avoir le sentiment de lire que ce que fait ton soft c'est crade)
            • [^] # Re: Heuuu

              Posté par  (site web personnel) . Évalué à 4.

              Oui ma première réponse est ... voilà quoi, 3h le mat, j'étais un peu dépité.

              En fait je me rends bien compte que j'explique mal, mais j'arrive pas mieux. Je suis pas porte-parole, c'est pas par hasard. Je re-fais une autre explication :

              Ce programme lance des commandes reçues sur l'entrée standard. Ces commandes doivent avoir été préalablement décrites dans le fichier de configuration. Le fichier de configuration doit indiquer un utilisateur et un groupe pour chaque commande. Chaque commande est lancée avec l'utilisateur et le groupe décrit. Aucun contenu et aucune valeur ne sont retournés.

              Ce programme peut être utilisé avec inetd pour être mis en réseau (c'est le but) ou stunnel (pour la sécurité). Ce programme ne fais pas d'authentification.

              "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

              • [^] # Re: Heuuu

                Posté par  . Évalué à 1.

                Comme un sudo en somme.
                Ce que je ne capte pas bien c'est comment tu passes les ordres.
                Tu parlais de netcat donc ça écoute sur un port ?
                • [^] # Re: Heuuu

                  Posté par  . Évalué à 7.

                  Non. Bon à mon tour d'essayer :)
                  Le but de LAF est de permettre d'exécuter sous contrôle des commandes prédéfinies lancées par des utilisateurs prédéfinis. Oublie le réseau, l'authentification ..., il ne le fait pas. Ces choses là sont gérées par d'autres programmes auxquels laf s'intègrera grâce à un peu de "magie unix". (Mais si rappelez vous: KISS, "des programmes qui effectuent une seule chose et qui le font bien. des programmes qui collaborent. des programmes pour gérer des flux de texte, car c'est une interface universelle" :)

                  Les ordres se passent très simplement: par la ligne de commande.
                  Chaque "ordre" possible est spécifié dans un fichier de configuration où tu définis et associes:
                  - un type (le nom de l'ordre en fait)
                  - un user/groupe
                  - un programme a lancer

                  Par exemple: si tu définis dans ton fichier de configuration
                  type: FRIDGE
                  user: AoKiji
                  script: IceAge.sh

                  et si tu exécute
                  # laf ^t:273,15^ ^type:FRIDGE^
                  laf vérifie que FRIDGE est bien dans le fichier de conf et lance IceAge.sh -t 273,15 en tant qu'utilisateur AoKiji.

                  Si tu veux lancer laf depuis une autre machine de ton réseau, tu ajoute laf dans ta configuration inetd (ou tu utilise netcat, ou ...). Quand inetd recevra des paquet sur le port que tu a configuré, il exécutera laf en lui passant les données reçues sur la ligne de commande. Et hop, tu as ton laf en réseau.

                  Les particularités de laf sont
                  - il n'envoie pas pas le code de retour des programmes qu'il exécute
                  - il ne renvoie pas ce que retournent les programmes qu'il exécute

                  Ce qui a pour conséquence de le rendre inutile dans le cas du lancement d'une simple commande, mais très utile dans le cas ou tu lui envoie aveuglément des données.

                  Si on prend un exemple pour faire "sentir" un cas d'utilisation, imagine un frigo qui envoie sa température interne à un PC par le réseau. Sur ce PC tu veux faire un zouli graphique qui montre l'évolution de cette température. Au fur et à mesure que tu reçois cette température, tu stocke les valeurs quelque part: ce sera le rôle du programme lancé par laf. (Puis un autre programme se chargera de générer le graphique.)
                  Le frigo se fiche d'avoir un retour sur les valeurs qu'il envoie. Et au cas où le programme qui stocke les valeurs foire, cela n'a pas d'importance non plus: le frigo n'a pas les moyens de les renvoyer et rien ne sera bloqué car laf relance le programme à chaque fois. (d'où la nécéssité de garder ce programme simple et petit également)

                  (note: j'ai simplifié et omit beaucoup de choses mais l'idée générale est là je pense)


                  Et là je me demande comment j'en suis arrivé à écrire ce pavé alors que j'essayai de simplifier. J'espère au moins avoir bien compris :) et m'être fait compris :/
                  • [^] # Re: Heuuu

                    Posté par  (site web personnel) . Évalué à 6.

                    Terrible, j'ai l'impression que tu as mieux compris que moi mon programme ... C'est l'explication que j'aurais voulu faire. Merci.

                    "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

                  • [^] # Re: Heuuu

                    Posté par  . Évalué à -2.

                    Ok, je comprends mieux. Cela dit, ca ne change pas le fait qu'un process suid qui execute un peu tout et n'importe quoi, qui plus est sans rien dire, ca fait peur.
                    D'ou ma question: pourquoi ne pas avoir fait un service web pour ca? La securite serait bien plus fiable.
                    Typiquement pour envoyer une temperature, un service rest serait tres bien.

                    Ca sent un peu le je reinvente la roue en plus complique et plus troue explique comme ca.

                    If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

                    • [^] # Re: Heuuu

                      Posté par  (site web personnel) . Évalué à 2.

                      Je crois que personne a aucun moment n'a parlé de suid. Par contre il possible de faire tourner le programme en root pour bénéficier de la possibilité de changer d'utilisateur avant l'exécution de la commande, mais ce n'est pas obligatoire.

                      Ensuite un service web aurait été la meilleure solution pour tout le monde, vu que le protocole HTTP est universel et sert à tout faire. La seule chose qui me dérange c'est de faire tourner un système LAMP pour un truc qui peut-être fait en une centaine de ligne et un service déjà installé par défaut sur tous les systèmes Unix. C'est juste grillé de l'électricité pour rien du tout.

                      Ensuite je n'ai rien vraiment trouvé d'équivalent, donc je l'ai fait. Et niveau sécurité, ben le programme ne lui même ne fait rien d'autres que lancés des scripts contenus dans un répertoire particulier et prédéfinis (à moins d'un bug de sécurité, mais ça c'est la même chose pour tout le monde), il le fait avec les droits de l'utilisateur qui l'a lancé et n'a nativement pas accès au réseau. En gros il est aussi sécurisé que n'importe quel autre exécutable sur ta machine, après si tu l'utilises mal, c'est évident que c'est un trou de sécurité.

                      "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

                      • [^] # Re: Heuuu

                        Posté par  (site web personnel) . Évalué à 1.

                        HTTP != LAMP. Mini-httpd est packagé dans Debian (et si tu n'utilises pas Debian, c'est pas la mort à compiler) et contient tout ce dont tu as besoin : CGI, authentification, SSL, etc.

                        http://www.acme.com/software/mini_httpd/
                      • [^] # Re: Heuuu

                        Posté par  . Évalué à 1.

                        C'est juste grillé de l'électricité pour rien du tout.
                        Ca doit etre la justification la plus ridicule que j'ai jamais entendu...

                        Si quelqu'un exploite ta passoire, il va ressembler a quoi ton bilan energetique?
                        Surtout que la consommation electrique d'un service http qui tourne a vide, tres honnetement...

                        il le fait avec les droits de l'utilisateur qui l'a lancé et n'a nativement pas accès au réseau
                        C'etait pas un process root? Qui peut su-er en n'importe qui?
                        Et le probleme c'est pas tant que LAF n'ait pas acces au reseau, vu qu'il peut executer n'importe quel script en root. Et ces scripts la, ils auront acces au reseau eux.

                        If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

                        • [^] # Re: Heuuu

                          Posté par  (site web personnel) . Évalué à 2.

                          Ca doit etre la justification la plus ridicule que j'ai jamais entendu...
                          D'ailleurs c'est tellement ridicule que google investit des millions pour diminuer la consommation électrique de leurs centres de calculs ? pourquoi ibm fait des présentations sur les "green datacenter" à tour de bras ?
                          Le prix de l'énergie augmente et la moindre économie est importante. On économise des milliers de francs par année juste avec des petits détails comme, par exemple, déconnecter les ordinateurs du réseau électrique la nuit.
                          Alors un service HTTP sur 30 machines, je me demande l'impacte, mais il doit pas être de 0, comparé à un service qui tourne déjà pour autre chose.

                          Sinon pour le reste, je sais pas comment te le dire :
                          1) Il ne peut _pas_ exécuter n'importe quel script ou programme
                          2) Aucun accès au réseau
                          3) Les droits de l'utilisateur qui le lance
                          4) Ne peut _pas_ su-er ou sudo-er comme il veut.

                          "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

                          • [^] # Re: Heuuu

                            Posté par  . Évalué à 2.

                            pour le service http, il y a dans busibox un mini server http qui fait du cgi avec des script shell, pour cette fois c'est fini, mais c'est peut être un idée pour autre chose : inetd, busibox-http (à la limite recompilé juste pour cela), shell. et cela peu par exemple implémenter la chose dans un tout petit truc embarqué minimaliste.
                          • [^] # Re: Heuuu

                            Posté par  . Évalué à 0.

                            Le jour ou t'auras un data center de la taille de ceux de google, tu feras le calcul de gain de consommation electrique de ta methode.
                            Tu pensera a me prevenir, je suis curieux de voir savoir si l'economie est de 0.00001% ou de 0.00002%.

                            If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

                          • [^] # Re: Heuuu

                            Posté par  (site web personnel) . Évalué à 2.

                            > Le prix de l'énergie augmente et la moindre économie est importante.
                            dans ce cas, as-tu fait le rapport entre installer un serveur http et le configurer proprement et le temps passé à développer ton laf, le tester, le configurer, et venir expliquer à quoi ça sert ?
                            Car si on suit ton raisonnement il y a intérêt que la balance soit dans le bon sens...
                            • [^] # Re: Heuuu

                              Posté par  (site web personnel) . Évalué à 1.

                              Oui je pense. Notamment en utilisation avec les petits circuits qui utilisent un bus RS-485 pour communiquer (comme les frigos, ils ne passent pas sur un réseau ethernet).
                              Après venir expliquer ... ben c'est bon, je le ferais plus.

                              "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

                              • [^] # Re: Heuuu

                                Posté par  (site web personnel) . Évalué à 3.

                                > Après venir expliquer ... ben c'est bon, je le ferais plus.
                                ra mais volà, faut pas prendre la mouche tout le temps hein !
                                tu fais un truc, ok.
                                on comprend pas vraiment à quoi ça sert, ni comment, ni pourquoi, soit (mais ça s'améliore depuis qq messages je crois avoir saisi ;))
                                tu le partage super bien (même si ça ne me sert à rien)
                                après si tu te braque dès que les commentaires fusent, ça cloche ! on est sur dlfp quand même !
                                surtout que tu as donné le bâton pour te faire battre, tu parles de conso, de gains peu quantifiables voir tout simplement très faibles et tu coupe court à la discussion tout de suite ?
                                alors ok on est pas (encore) vendredi mais quand même, faut pas partir comme ça ;)

                                (en plus, la réponse était intéressante puisque tu expliques que de toute façon tu n'utilise pas de l'ethernet, c'est un point utile car explique facilement qu'un serveur http ne fasse pas l'affaire et aurait surement permis de comprendre plus tôt le but de ton soft si tu l'avais précisé ;))
                                • [^] # Re: Heuuu

                                  Posté par  (site web personnel) . Évalué à 1.

                                  ra mais volà, faut pas prendre la mouche tout le temps hein !
                                  Tous les commentaires que j'ai fait c'est pour dire : pas d'accès réseau, pas de droits particulier, ... Les remarques étant "quoi ? droits root avec un accès réseau pas authentifié !" J'ai juste l'impression de me répéter.

                                  Les autres remarques étant : utilise HTTP, le protocole universel et utilise *syslog*. HTTP n'est pas fait pour ça et syslog non plus. Donc des applications pas prévue pour ça mais dont une exploitation presque obscure permet d'arriver au même résultat, avec moins de souplesse (essaie de lancer une procédure sur apache ou apache avec un serveur mail qui va d'abord contrôler que le mail est signé avec la bonne clé GPG. Ou alors quand je compose un numéro de téléphone depuis une centrale Asterisk (authentification étant garantie par les opérateurs (en Suisse en tous cas) qui ne permettent pas de modifier le caller id)).
                                  J'ai fait un programme qui reçoit une ou des commandes sur stdin et, si elles sont prévues, les exécutent. Si les droits de l'application le permettent, la commande va être lancée avec des droits préalablement définis. Rien n'est retourné à l'appelant.

                                  tu parles de conso, de gains peu quantifiables voir tout simplement très faibles
                                  Il y'a une année ou deux on a commencé à se poser ce genre de question. Et on a commencé à racler ces "gains peu quantifiables", et on a été très surpris du résultat. On a un cluster fait avec les machines de bureau pour les opérations lourdes. Un linux en service Windows. Ce programme ira bien là aussi.

                                  que de toute façon tu n'utilise pas de l'ethernet,
                                  Première phrase du journal :[...] de sondes communiquant sur un bus dédié [...]

                                  "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

                  • [^] # Re: Heuuu

                    Posté par  (site web personnel) . Évalué à 2.

                    Et donc, c'est quoi l'intérêt par rapport à rsyslog par exemple ? Genre le frigo envoi un paquet syslog UDP et rsyslog exécute l'action prédéfinie (avec possible changement d'user via sudo).

                    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

                    • [^] # Re: Heuuu

                      Posté par  (site web personnel) . Évalué à 2.

                      L'histoire des frigos c'était un exemple. J'aurais pu prendre un autre exemple comme démarré des procédures de sauvegardes sur différents serveurs. On s'en fout de la valeur de retour puisque la procédure de sauvegarde lance un mail pour nous avertir, log dans syslog, produit des jolis graphiques des la quantités de données ayant transiter sur le réseau. Au lieu de créer un utilisateur fictif avec authentification automatique sur chaque serveur, on peut utiliser ça (avec stunnel).

                      "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

                      • [^] # Re: Heuuu

                        Posté par  (site web personnel) . Évalué à 2.

                        Et pour autant que je sache, tu peux faire tout ça avec rsyslog aussi.

                        pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

                        • [^] # Re: Heuuu

                          Posté par  (site web personnel) . Évalué à 1.

                          Non pas démarrer la procédure de sauvegarde. Après rsyslog ou syslog-ng vont récupérer les données et tout mais pas lancer la procédure.

                          "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

  • # NRPE ?

    Posté par  . Évalué à 7.

    Ca ressemble quand même bien à NRPE ton histoire.
    Et NRPE c'est quand même fait pour Nagios...

    A moins que j'ai raté quelque chose ?

    Dans l'autre sens, il y a NCSA.

    Ce sont les premiers addons ici :
    http://www.nagios.org/download/addons
    • [^] # Re: NRPE ?

      Posté par  (site web personnel) . Évalué à 2.

      En effet, j'ai un peu oublié NRPE ...

      "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.