leviathan a écrit 47 commentaires

  • [^] # Re: Zerobin

    Posté par  (site web personnel) . En réponse au journal PrivateBin sécurise vos partages de texte en version 1.1. Évalué à 0.

    Java ? Non, cela reste du PHP

  • [^] # Re: Intérêt réel pour l'utilisateur ?

    Posté par  (site web personnel) . En réponse à la dépêche Dans lequel on met un service caché Tor pour le site sauf.ca. Évalué à 3.

    Merci pour l'explication. Je connaissais la problématique du MITM mais qui est tout de même bien réduite avec le SSL.

    Ton troisième point me semble le plus intéressant comme argument. Cela signifie que lors de la consultation d'un site en .onion, le dernier node avant d'arriver sur le service caché n'est pas forcément un exit node ?

  • [^] # Re: Intérêt réel pour l'utilisateur ?

    Posté par  (site web personnel) . En réponse à la dépêche Dans lequel on met un service caché Tor pour le site sauf.ca. Évalué à 4.

    Tu as mal lu mon commentaire, je compare (https + Tor) et service caché. Donc pas de problème de DNS et pas de problème avec l'IP du client.

    Donc oui, je suis très sérieux sur mon interrogation :)

  • # Intérêt réel pour l'utilisateur ?

    Posté par  (site web personnel) . En réponse à la dépêche Dans lequel on met un service caché Tor pour le site sauf.ca. Évalué à 2.

    En dehors de l'intérêt technique de mise en place et de l'intérêt réel d'avoir de plus en plus de services cachés Tor pour tout un tas de raisons (faire découvrir le réseau Tor, avoir une meilleure réputation du réseau, …), je m’interroge sur l'intérêt réel pour l'utilisateur.

    Je ne connais pas forcément très bien Tor, donc petite question : ton site est accessible en http et https, quelle est donc la différence en terme de protection pour tes utilisateurs entre accéder à ton site en https + Tor et via le service caché ? (en dehors des logs qui ne sont pas activés)

  • [^] # Re: Les guillemets sont transmis

    Posté par  (site web personnel) . En réponse au message Substitution de commande et dialog. Évalué à 1.

    avec xargs, ça fonctionne parfaitement. Tu viens de sauver le reste de mes cheveux. Un immense merci !

    Le code qui fonctionne :

    #!/bin/bash
    plugin_options="\"openerp\" \"Installation d'OpenERP\" off \"lamp\" \"Installation du serveur web\" off \"security\" \"Installation de la partie securite\" on"
    
    echo ${plugin_options} | xargs dialog --args --stdout --backtitle "Choisissez les plugins à installer" --title "Plugins à installer" --checklist "Sélectionnez le ou les plugins à installer sur le serveur" 20 61 5
    
    
  • [^] # Re: une solution à base de printf

    Posté par  (site web personnel) . En réponse au message Substitution de commande et dialog. Évalué à 0.

    Tout d'abord, un grand merci pour ton lien vers le word splitting de bash, pendant mes recherches j'avais trouvé quelques références à ce concept mais le lien que tu me donnes est vraiment le mieux que j'ai pu lire.

    Ensuite, j'ai copier/coller ton code et cela me fait la même erreur qu'avant (en gros mes espaces dans mes libellés sont toujours considérés comme l'espacement entre 2 arguments)

    Enfin, j'ai compris le word splitting et vu qu'avec xargs (proposé au dessus) ça fonctionne, je pense que je vais arrêter de me prendre la tête à mettre mes arguments directement dans la commande

    merci beaucoup de ton aide.

  • [^] # Re: pourquoi ne pas faire simplement

    Posté par  (site web personnel) . En réponse au message Substitution de commande et dialog. Évalué à 1.

    Ta solution fait avancé le problème, merci.

    Mais, le soucis vient maintenant de mon ${plugins_options} à mon avis car en faisant :

    #!/bin/bash
    plugin_options=$(list_plugins_for_menu "${plugins}")
    echo ${plugins_options}
    choices=$(dialog --stdout --backtitle "Choisissez les plugins à installer" --title "Plugins à installer" --checklist "Sélectionnez le ou les plugins à installer sur le serveur" 20 61 5 ${plugin_options})
    
    

    J'ai l'erreur :

    Error: Expected 3 arguments, found only 2.
    Use --help to list options.

    et ça m'affiche bien cela :

    "openerp" "Installation d'OpenERP" off "lamp" "Installation du serveur web" off "security" "Installation de la partie securite" on

    Donc, il me semble que les options sont bien échappées vu que le echo les affiche comme elles devraient l'être dans la commande, j'ai tort ?

    Pour résumer :

    • ceci fonctionne :

      #!/bash
      choices=$(dialog --stdout --backtitle "Choisissez les plugins à installer" --title "Plugins à installer" --checklist "Sélectionnez le ou les plugins à installer sur le serveur" 20 61 5 "openerp" "Installation d'OpenERP" off "lamp" "Installation du serveur web" off "security" "Installation de la partie securite" on)
      
    • ceci ne fonctionne pas :

      #!/bash
      plugin_options="\"openerp\" \"Installation d'OpenERP\" off \"lamp\" \"Installation du serveur web\" off \"security\" \"Installation de la partie securite\" on"
      
      choices=$(dialog --stdout --backtitle "Choisissez les plugins à installer" --title "Plugins à installer" --checklist "Sélectionnez le ou les plugins à installer sur le serveur" 20 61 5 ${plugin_options})
      

    Et je n'arrive pas à comprendre pourquoi...

  • [^] # Re: Schtroumpf grognon

    Posté par  (site web personnel) . En réponse à la dépêche Framasoft lance une campagne de dons. Évalué à 3.

    Ce n'est pas mis en avant, mais il est également possible de faire un don ponctuel.
  • [^] # Re: ... ou Firefox

    Posté par  (site web personnel) . En réponse au message Conversion HTML en PDF: wkhtml2pdf. Évalué à 1.

    L'option -print n'est pas dans Firefox au départ. Il faut passer par l'installation d'un addon (Command Line Print) pour l'ajouter.
  • # ... ou Firefox

    Posté par  (site web personnel) . En réponse au message Conversion HTML en PDF: wkhtml2pdf. Évalué à 1.

    Il y a un assez bon article pour générer des PDF à partir de HTML : [http://artisan.karma-lab.net/node/1711].

    Il présente Firefox et wkhtml2pdf.

    wkhtml2pdf a l'avantage d'être simple à installer sur un serveur et moins lourd que Firefox. Mais lors de mes tests (il y a environ 6 mois - 1 an) je trouvais que wkhtml2pdf avait un rendu moins bon que Firefox. Il faudrait que je teste de nouveau.
  • # En passant par Propel

    Posté par  (site web personnel) . En réponse au message Générateur de SQL Create scripts. Évalué à 1.

    Si tu peux exécuter des scripts PHP, il y a un moyen en passant par Propel [http://www.propelorm.org/]

    Il existe des scripts pour transformer des schémas XML de DBDesigner en schémas XML pour Propel.
    Par exemple, un script (avec interface web, mais modifiable très simplement pour l'utiliser en CLI) : [http://leblanc-simon.eu/utils_dbdesigner2propel.zip]

    Ensuite, la transformation du XML généré en script SQL se fait via Propel avec une commande du style : propel-gen sql

    Cela nécessite l'installation de Propel, mais une fois en place, ça se scripte très bien.
  • [^] # Re: Sources

    Posté par  (site web personnel) . En réponse au journal OpenStreetGame : un jeu pour vous faire réviser votre géographie. Évalué à 3.

    Ctrl + S pour la page HTML avec le JS et ensuite Ctrl + S pour le fichier XML [http://mcmic.haxx.es/OpenStreetGame/capitals.xml]

    Le deux fichiers étant à mettre dans le même répertoire.
  • # La libssh

    Posté par  (site web personnel) . En réponse au message Reprendre la main sur un tty. Évalué à 2.

    Au final, le plus simple serait peut-être de passer par la libssh [http://www.libssh.org/]

    J'ai réalisé un programme C++ en passant par cette bibliothèque pour lancer des commandes ssh simplement et vu mon niveau assez faible en C++, la bibliothèque est assez simple à manipuler.
  • [^] # Re: Expect

    Posté par  (site web personnel) . En réponse au message Manipulation d'un programme interactif en C++. Évalué à 1.

    Je viens de tester et cela correspond parfaitement à ce que je cherchais. Grâce à cela, en quelques ligne de C++, j'arrive à contrôler OpenSSL.

    Un grand merci
  • [^] # Re: Qt

    Posté par  (site web personnel) . En réponse au message Manipulation d'un programme interactif en C++. Évalué à 2.

    L'utilisation de Qt pour faire un programme de ce genre me semble disproportionné. Surtout que c'est pour installer sur un serveur et que celui-ci ne possède pas les bibliothèques Qt.

    Je garde la solution sous le coude si je ne parviens pas à faire ce que je souhaite avec les autres propositions ci-dessus.
  • [^] # Re: Faire un tube

    Posté par  (site web personnel) . En réponse au message Manipulation d'un programme interactif en C++. Évalué à 1.

    J'avais effectivement pensé à coder un programme qui utiliserai l'API d'OpenSSL, mais mon niveau n'étant pas super et le souvenir que j'ai de l'utilisation de l'API d'OpenSSL m'ont un peu découragé.

    Si je génère un certificat avec l'API de GnuTLS, celui-ci sera compatible avec OpenSSL ?
  • [^] # Re: Expect

    Posté par  (site web personnel) . En réponse au message Manipulation d'un programme interactif en C++. Évalué à 1.

    Effectivement ça semble correspondre à ce que je recherche. Merci beaucoup !
  • [^] # Re: pour etre beaucoup plus precis :)

    Posté par  (site web personnel) . En réponse au message droits utilisateur. Évalué à 1.

    Pour le rsync over ssh, il y a un très bon tutoriel sur ce site : [http://troy.jdmz.net/rsync/index.html]
  • [^] # Re: Chacun le sien....

    Posté par  (site web personnel) . En réponse à la dépêche Sortie d'OpenWebReader 0.1a1. Évalué à 3.

  • # Solution retenue

    Posté par  (site web personnel) . En réponse au message Sécurité d'un rsync via ssh. Évalué à 1.

    tout d'abord merci à tous pour vos propositions.

    Vu que ma version d'OpenSSH ne supportait pas le chroot en natif et que j'avais moyennement envie d'installer une nouvelle version majeure, j'ai trouvé une autre solution.

    Il s'agit de modifier le seul script autorisé a être exécuté par mon utilisateur miroir (via le fichier "authorized_keys")

    Voici mon script :

    #!/bin/bash

    case "$SSH_ORIGINAL_COMMAND" in
    *\&*)
    echo "Rejected"
    ;;
    *\(*)
    echo "Rejected"
    ;;
    *\{*)
    echo "Rejected"
    ;;
    *\;*)
    echo "Rejected"
    ;;
    *\<*)
    echo "Rejected"
    ;;
    *\`*)
    echo "Rejected"
    ;;
    *\|*)
    echo "Rejected"
    ;;
    *\/*)
    echo "Rejected"
    ;;
    rsync\ --server*)
    $SSH_ORIGINAL_COMMAND
    ;;
    *)
    echo "Rejected"
    ;;
    esac


    L'ajout du cas "/" permet de bloquer l'utilisateur aux seuls modules définis dans le fichier rsyncd.conf et d'empêcher les miroirs de mettre un path.
  • [^] # Re: et pourquoi ssh ?

    Posté par  (site web personnel) . En réponse au message Sécurité d'un rsync via ssh. Évalué à 1.

    Oui, je sais que je peux utiliser rsync sans ssh, mais comme le port ssh est de tout façon ouvert, je préfère ne pas ouvrir un port de plus (pour rsync) sur le serveur et passer par ssh.

    Ainsi rsync n'écoute que la boucle locale et n'a pas d'accès vers l'extérieur. Mais de cette façon, j'ai l'impression que l'on ne peut pas configurer le chroot de rsync (à moins que j'ai mal cherché).

    Enfin, je ne crée qu'un seul user (et pas un par miroir) mais cet utilisateur peut s'identifier avec plusieurs clé ssh.
  • [^] # Re: ssh / chroot / force_command

    Posté par  (site web personnel) . En réponse au message Sécurité d'un rsync via ssh. Évalué à 2.

    Le chroot ssh me semble la meilleure idée. Je vais regarder de ce côté.

    Pour la copie du maître vers les miroirs, cela demande plus de travail du côté des miroirs et je ne suis pas forcément pour.

    Merci beaucoup pour l'astuce.
  • [^] # Re: l'inverse ?

    Posté par  (site web personnel) . En réponse au message Sécurité d'un rsync via ssh. Évalué à 1.

    Effectivement, cela serait une solution. Mais comme les miroirs sont de gentils bénévoles, il faudrait en plus de faire miroir qu'ils veuillent nous ouvrir un accès ssh et/ou rsync en écriture.

    Cela me semble beaucoup leur demander alors qu'avec la solution proposée, il n'ont qu'un script à mettre en cron et pas de configuration à faire sur leur serveur.
  • [^] # Re: SID

    Posté par  (site web personnel) . En réponse au message Accès réservé à des fichiers vendus. Évalué à 3.

    En fait, j'ai bien résolu le problème grâce à une identification en deux étapes (identification + vérification au début du téléchargement), et c'est vraiment bien plus léger que de s'occuper d'un cookie, qui présente certes bien plus de fonctionnalités, mais assez inutiles dans mon cas.

    J'aimerais bien savoir en quoi c'est plus léger qu'un :

    if (isset($_SESSION['login']) && $_SESSION['login'] === true) { }


    De plus tu peux très bien utiliser les sessions sans cookies en passant le SID dans l'URL et en forçant l'utilisation du SID en paramètre (en fixant session.use_cookies à 0, session.use_only_cookies à 0 et session.use_trans_sid à 1 via la fonction ini_set())
    Ce code fonctionne parfaitement sans acceptation des cookies par le client (et en plus il ajoute automatiquement le SID dans l'URL


    ini_set('session.use_cookies', 0);
    ini_set('session.use_only_cookies', 0);
    ini_set('session.use_trans_sid', 1);
    session_start();

    if (isset($_SESSION['id']) === false) {
    echo 'pas de session';
    $_SESSION['id'] = 42;
    } else {
    echo $_SESSION['id'];
    $_SESSION['id'] = 1;
    }
    <a href='./test.php>lien


    Enfin pour finir avec les sessions, si tu initialise bien ta session lors d'une connexion, tu n'auras aucun problème de cache et tes utilisateurs pourront se connecter avec plusieurs login sans que cela ne pose de problème.

    Au moins avec cette solution, pour peu que tu sécurises un peu la session, tu n'auras plus de problème avec l'identification.

    Ensuite, pour les fichiers que l'utilisateur peut télécharger, il suffit de les garder en session pour vérification avant d'envoyer le fichier demandé avec ta page php


    ini_set('session.use_cookies', 0);
    ini_set('session.use_only_cookies', 0);
    ini_set('session.use_trans_sid', 1);
    session_start();

    // Dans la page de login
    // Si le login est réussi
    // on stocke les fichiers autorise
    // dans la session
    if ($login === true) {
    $files = file_get_contents('./fichier_pour_l_utilisateur_hors_repertoire_web_avec_fichier_autorise');
    $_SESSION['files'] = explode(';', $files);
    $_SESSION['login'] = true;
    } else {
    unset($_SESSION['files']);
    unset($_SESSION['login']);
    }

    // Dans la page de telechargement
    // On vérifie que l'utilisateur est connecté
    if (isset($_SESSION['login']) === false || $_SESSION['login'] !== true) {
    // l'utilisateur n'est pas connecté
    // on le renvoie sur la page de login
    header('Location: login.php');
    exit();
    } else {
    // l'utilisateur est connecté
    // on vérifie que le fichier demandé
    // fait parti des fichiers autorisés
    if (in_array($_GET['music'], $_SESSION['files']) === true) {
    // le fichier est bin, on l'envoie
    // code d'envoie du fichier avec les headers
    } else {
    // le fichier ne fait pas parti de la liste
    // on l'indique à l'utilisateur
    echo 'fichier interdit....';
    }
    }
  • [^] # Re: Plus que ODT vers PDF

    Posté par  (site web personnel) . En réponse à la dépêche Sortie de odtPHP v0.9 : Générez des documents OpenOffice avec PHP. Évalué à 2.

    L'excellent site Artisan Numérique a fait il y a quelques temps un article à ce propos. Au lieu de passer par FPDF, il proposait de passer via Firefox ou WebKit (après quelques tests, je préfère Firefox qui génère des PDF bien plus beaux et conformes aux résultats souhaités)

    Si tu utilise Firefox, il faut faire quelques modifications dans un fichier de configuration du plugin à installer. J'ai eu un peu de mal à trouver ce qui n'allait pas avec la configuration proposé par Artisan Numérique, mais en supprimant la ligne :
    settings.paperWidth=280;
    cela va tout de suite mieux pour moi.

    Alors, oui ce n'est pas un outil standalone, mais pour l'instant c'est ce que j'ai trouvé de mieux en terme de temps de développement.

    http://artisan.karma-lab.net/node/1711