5965 links
  • GuiGui's Show

  • Home
  • Login
  • RSS Feed
  • Tag cloud
  • Picture wall
  • Daily
Links per page: 20 50 100
◄Older
page 216 / 299
Newer►
  • GoLeaks : une plateforme pour lanceurs d'alerte dans le Grand Ouest - Next INpact

    « Le Grand Ouest aura bientôt sa plateforme de fuite de documents. Depuis la mi-décembre, le projet GoLeaks s'est lancé sur Kickstarter, demandant 5 400 euros pour permettre aux lanceurs d'alerte de l'ouest de fournir facilement aux journalistes leurs documents sensibles. Il a été fondé au printemps par deux nantais : le hacker Datapulte et Romain Ledroit, rédacteur en chef des Médias libres, qui se sont rencontrés sur un plateau de la radio associative Radio Prun'. Pour eux, les nombreux sujets polémiques de leur région manquent encore d'alertes citoyennes.

    [...]

    Cette plateforme est fondée sur GlobaLeaks, un système open source spécifiquement conçu pour cet usage. Ce projet a été choisi face à d'autres (comme SecureDrop) parce qu'il est pensé pour être partagé entre plusieurs rédactions. Le but de GoLeaks est ainsi de pouvoir envoyer des documents ainsi que discuter avec des journalistes choisis et formés par l'équipe du service. Pour le moment, des médias nationaux et régionaux ont été contactés. De toutes tailles, assure l'équipe.

    Au lancement, une dizaine de journalistes seront présents, dont probablement certains d'un petit journal vendéen. Pour chacun, le site affichera une biographie avec ses spécialités et quelques articles. [...]

    Le service sera uniquement accessible par Tor, la version sur le web classique n'étant qu'un site vitrine avec quelques tutoriels. [...]

    D'un point de vue technique, la sécurité est assurée de plusieurs manières. GlobaLeaks serait en soi une base technique fiable, maintenue et auditée régulièrement. L'hébergement chez FAIMaison permet à la fois de connaître l'équipe et permet d'accéder physiquement aux serveurs en cas de besoin. Enfin, GoLeaks promet un travail constant sur la configuration et la sécurité de sa plateforme. Des audits seront menés, mais bénévolement. « Vu l'économie du projet, nous n'avons pas vraiment le choix » défend Datapulte.

    Si la plateforme est le support du projet, ce n'est pas son seul objectif. « Le gros défi est de sensibiliser les citoyens à cette possibilité de transmettre des documents d'utilité publique sans le compromettre » affirme le hacker, selon lequel la majorité du budget passera dans cette sensibilisation. Ils comptent ainsi se rendre un peu partout dans le Grand Ouest pour rencontrer citoyens et journalistes pour les former.

    Pour trouver ses informations, la plateforme fonctionnera par campagnes de recherche, de trois mois. De quoi assurer une certaine clarté sur les sujets traités et relancer régulièrement l'intérêt autour du service.

    [...]

    Le financement via Kickstarter doit permettre au projet de tenir un et demi. « C'est une expérience. Comme toutes les expériences, elle a un temps donné. Ça ne veut pas dire qu'on va s'arrêter dans 18 mois » déclare Datapulte, qui prévoit de trouver un autre modèle si la plateforme réussit son pari.

    Une des pistes privilégiées serait une adhésion des journalistes et médias de la plateforme à une association, pour la financer. Une autre idée serait simplement de chercher des financements auprès de fondations. « Nous sommes les premiers à faire ça à l'échelle régionale et nous voulons voir ce que ça donne avant de mettre en place quelque chose d'un peu plus costaud » explique GoLeaks.

    Pour le moment, le projet occupe une bonne partie du temps libre de ses initiateurs. Les déplacements réguliers seraient donc une charge supplémentaire. Si la campagne Kickstarter échoue, ils maintiendront donc la plateforme dans la limite de leurs moyens. À moyen terme, l'équipe compte lancer une deuxième version dans une autre région, avant de potentiellement mailler le territoire. Elle aurait déjà été contactée dans ce sens. »


    Je pense qu'on n'a pas assez de médias d'investigation généralistes libres (là comme ça, à la va-vite, je vois uniquement Mediapart et le Canard...). Ces plateformes intermédiaires me semblent être une très bonne voie à explorer puisque ça mutualise les moyens entre plusieurs journaux donc réduction des coûts mais forte expertise.

    De plus, l'aspect sensibilisation prôné par le projet est super important : la réussite de telles plateformes dépend directement de si l'on arrive à redonner espoir à chacun-e que l'on peut, à notre échelle de moins-que-rien, dénoncer les choses qui ne vont pas, que l'on peut faire cesser des mauvais comportements d'entreprises, d'associations et d'élus en montrant des faits, le tout sous vérifications par des journalistes (on est donc sur un modèle de Wikileaks à ses débuts, pas ce qu'il est devenu ensuite, notons ;) ) pour éviter les dérives. Il faut lutter contre la résignation : un monde plus clean est possible.

    En un mot : soutenez-les, c'est important !
    Mon Jan 4 12:22:26 2016 - permalink -
    - http://www.nextinpact.com/news/97876-goleaks-plateforme-pour-lanceurs-dalerte-dans-grand-ouest.htm
    nomarkdown
  • Renforcement des configurations TLS sous Debian GNU/Linux Jessie

    Ce n'est pas le passage à Jessie lui-même qui va durcir vos configs TLS mais le fait que des logiciels serveur y sont présents dans une version qui ouvre de nouveaux horizons. Il s'agit d'Apache httpd, d'ejabberd et de dovecot. Je repars des configurations que j'ai donné dans un autre shaarli (à la fin) : http://shaarli.guiguishow.info/?GPqmpA

    Commençons par Dovecot :
        * La directive de configuration « ssl_prefer_server_ciphers = yes » permet de forcer les clients à respecter l'ordre du serveur dans le choix de la suite cryptographique à utiliser parmi toutes celles supportées des deux côtés. Cette directive évite le choix d'une suite cryptographique sous-optimale (bug ou attaque par repli afin de choisir une suite que l'attaquant sait cassable facilement). Voir https://www.howtoforge.com/tutorial/how-to-protect-your-debian-and-ubuntu-server-against-the-logjam-attack/

        * La génération des paramètres de Diffie-Hellman a complètement changé depuis la branche 2.1 : « When Dovecot starts up for the first time, it generates new 512bit and 1024bit Diffie Hellman parameters and saves them into <prefix>/var/lib/dovecot/ssl-parameters.dat. Dovecot v2.1.x and older regenerated them every week by default, but because the extra security gained by the regeneration is quite small, Dovecot v2.2 disabled the regeneration feature completely. » (source : http://wiki.dovecot.org/SSL/DovecotConfiguration ). Avec ce changement, rien de nous empêche de générer des paramètres de Diffie-Hellman plus robustes, même sur un tout petit serveur genre OlinuXino ou Raspberry Pi avec « ssl_dh_parameters_length = 4096 », par exemple. J'ai mis 4096 bits dans cet exemple car c'est la taille de la clé dans le certificat x509 utilisé par ce serveur. Je rappelle que l'ANSSI recommande 3072 bits et que la NSA dit 3072 bits minimum (voir http://shaarli.guiguishow.info/?r6npkg ). ;) Après l'ajout de cette directive de configuration, Dovecot générera les paramètres de Diffie-Hellman au prochain reload/restart. :)


    Continuons avec Apache httpd :
        * « Beginning with version 2.4.7, mod_ssl makes use of standardized DH parameters with prime lengths of 2048, 3072 and 4096 bits and with additional prime lengths of 6144 and 8192 bits beginning with version 2.4.10 (from RFC 3526), and hands them out to clients based on the length of the certificate's RSA/DSA key. » (source : https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslcertificatefile ). C'est déjà une excellente nouvelle : on gagne en sécurité sans avoir quoi que ce soit à configurer.

        * On voudrait aussi pouvoir utiliser des paramètres de Diffie-Hellman personnalisés afin d'être sûrs de leur unicité (pour éviter les attaques par pré-calcul) et/ou de leur bonne génération (utiliser un bon générateur de nombre pseudo-aléatoires). Pour cela, on peut utiliser la directive de configuration « SSLOpenSSLConfCmd » (voir https://httpd.apache.org/docs/trunk/mod/mod_ssl.html#sslopensslconfcmd ). Exemple : « SSLOpenSSLConfCmd DHParameters "/etc/apache2/ssl/dh_4096.pem" » (voir http://shaarli.guiguishow.info/?hCgBYQ pour apprendre à générer des dhparam). L'ennui, c'est qu'il faut avoir OpenSSL >= 1.0.2 alors que nous avons uniquement la version 1.0.1 dans Jessie... Une autre idée est de chaîner le fichier contenant les paramètres DH au fichier contenant votre certificat x509 (pour ce faire : cat moncert.pem dh_4096.pem > cert+dh.pem) et de donner ce chaînage à manger à « SSLCertificateFile ». Perso, je ne fais pas ça car je factorise un même fichier certificat entre tous mes logiciels serveur car j'ai la flemme de changer X fichiers à chaque renouvellement de certificat. J'attendrais donc OpenSSL 1.0.2


    Terminons avec ejabberd :
        * Ejabberd permet enfin de définir la liste des suites cryptographiques que l'on souhaite utiliser ! C'est la directive de configuration « ciphers » dans un listener c2s et la directive « s2s_ciphers » pour la liste à utiliser lors des communications s2s (entre deux serveurs XMPP). On peut utiliser une liste plus robuste comme celles que je donne à l'adresse suivante : http://shaarli.guiguishow.info/?YddWtQ . Exemple : « ciphers: "EDH+aRSA EECDH+aRSA aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4 !SEED !CAMELLIA" »

            Attention : il y a un comportement totalement incompréhensible : « ciphers » devrait agir uniquement sur la connexion entre mon client XMPP et mon serveur. Or, si je sélectionne uniquement des suites cryptos supportant la confidentialité persistante (parce que je sais que mon client, Gajim, supporte les algos PFS), booom, la plupart de mes contacts deviennent injoignables (remote-server-not-found). Une capture réseau côté serveur montre que mon serveur initie des connexions mais que les négociations TLS échouent et les connexions sont clôturées. Aucun problème avec les contacts qui utilisent, comme moi, un ejabberd et un gajim venant de Jessie ET (et c'est important), qui ont défini une liste de suites cryptos moins moisie que celle par défaut dans leur config ejabberd. Aucun problème si, dans ma config ejabberd, je mets uniquement des suites cryptos PFS dans s2s_ciphers et des suites PFS mais pas seulement dans ciphers... Oui, ça n'a aucun sens, il y a clairement un os quelque part...


        * On a également à notre disposition la directive de configuration « protocol_options » (et son amie « s2s_protocol_options » ;) ) qui va nous permettre de virer SSLv3 et de forcer les clients à respecter l'ordre du serveur dans le choix de la suite cryptographique à utiliser. Les autres options possibles sont consultables à l'adresse suivante : https://github.com/processone/tls/blob/master/c_src/options.h (oui, code is doc, certainement :S ). Ça donne donc ceci :
          « s2s_protocol_options:
              - "no_sslv2"
              - "no_sslv3"
              - "cipher_server_preference" »

         Et « protocol_options:
                - "no_sslv2"
                - "no_sslv3"
                - "cipher_server_preference" »

        * On n'oublie pas de préciser « starttls_required: true » dans le listener c2s. Ça évite que la communication passe en clair si, pour X raisons (bug, attaque par repli par un Homme du Milieu), la négociation TLS échoue. Je rappelle que sur la connexion c2s, il y a votre roster (liste de contacts) qui passe + l'état de vos contacts (absent puis disponible puis absent puis déconnecté,... ;) ) +  le contenu des communications par la suite. Vous devriez également préciser « s2s_use_starttls: required » mais là, ça dépend des serveurs de vos contacts... Google ne supporte pas TLS par exemple donc si vous faites ça, vous vous privez de parler à ces personnes-là. :(

        * Par défaut, ejabberd génère des paramètres de Diffie-Hellman de 1024 bits ce qui est clairement trop faible de nos jours (logjam tout ça, voir http://shaarli.guiguishow.info/?S2CJMg ). On peut générer des dhparam plus robustes (voir apache httpd ci-dessus) et les utiliser avec les directives de config « dhfile » et « s2s_dhfile» (voir https://blog.process-one.net/securing-ejabberd-against-logjam-attacks-and-future-threats/ ) mais... ces directives de configuration arrivent avec la version 15.06 alors que nous avons la 14.07 dans Debian Jessie. :( Upgrader la lib erlang-p1-tls (qui apporte les fonctionnalités TLS) indépendamment ne sert à rien. On peut utiliser la version (de ejabberd ET de erlang-p1-tls) présente dans les backports mais ça sera sans moi : la team security de Debian ne s'occupe pas des backports donc pas question sur un serveur.

        * Enfin, cette nouvelle version d'ejabberd, de par les options précédentes, re-ouvre les portes de MUC (discussion à plusieurs sur XMPP, voir http://shaarli.guiguishow.info/?fBKCuA) sur des serveurs configurés un peu durement niveau crypto comme jabber.ccc.de. \o/
    Sun Jan 3 21:35:07 2016 - permalink -
    - http://shaarli.guiguishow.info/?vjODJw
    nomarkdown
  • De Debian GNU/Linux Wheezy à Jessie

    Comme à chaque passage à une nouvelle version de Debian GNU/Linux, voici un résumé de tout ce qui a foiré ou a changé quand je suis passé à Jessie :
        * Apache httpd : NameVirtualHost et DefaultType n'ont plus aucun effet. LockFile est remplacée par Mutex. Le nom des fichiers contenant les VirtualHost doivent désormais terminer par .conf sinon ils sont ignorés. Toutes les Options doivent commencer par un signe + ou - . La syntaxe des mécanismes de contrôles des accès change mais il n'est pas encore impératif de suivre le mouvement puisque la compatibilité est assurée. Voir : http://shaarli.guiguishow.info/?oZiIVw

        * Ejabberd : passage à YAML pour la syntaxe du fichier de configuration. Le convertisseur ne supporte pas inet6. mod_admin_extra est déplacé dans ejabberd-contrib. Voir http://shaarli.guiguishow.info/?xOQeRA

        * LXC : le passage à la version 1 et à systemd complique légèrement les choses. Voir  http://shaarli.guiguishow.info/?82j-Ow . On notera également la disparition de lxc-list que l'on peut remplacer par lxc-ls -f . Voir http://shaarli.guiguishow.info/?5b7WUw

        * Netfilter-persistent : il faut penser à installer le package iptables-persistent aussi sinon netfilter-persistent est inutile. Voir http://shaarli.guiguishow.info/?W6Txug

        * OpenDNSSEC : l'auditor est déprécié, il faut le commenter dans la configuration. La base de données change de format (ajout d'une colonne), il faut utiliser le script de migration. Le fichier de configuration de softHSM contient une typo qu'il faut corriger. Voir http://shaarli.guiguishow.info/?7VlWuw

        * Postfix : le code de relay access denied passe de 554 (refus définitif) à 454 (refus temporaire) car smtpd_relay_restrictions entre en action avec la valeur « defer_unauth_destination » par défaut. Voir http://shaarli.guiguishow.info/?9vmt6A

        * Puppet : le package puppet de Debian, c't'un peu le zouk... Y'a l'initscript et l'unit systemd sans compter le fait que puppet peut rester en démon après un lancement manuel... Autrement dit, c'est le bordel pour avoir un puppet agent qu'on lance uniquement à la demande. Voir http://shaarli.guiguishow.info/?l6JxVg

        * Sympa : affichage du message d'erreur « ERREUR (arc) - arc_not_found » lors de la consultation des archives publiques d'une liste, après avoir confirmé que « je ne suis pas un spammeur ». Je n'ai pas la solution à ce problème...

        * Snmpd : « The init script /etc/init.d/snmpd will kill all processes with the name  snmpd in stead of killing by PID from /var/run/snmpd.pid which has as effect the killing of the daemon on all LXC containers. ». Ce mauvais comportement persiste des précédentes versions mais on peut l'empêcher avec une unit systemd. Voir : http://shaarli.guiguishow.info/?EFTB0Q

        * Systemd + dbus, le duo indispensable mais dbus n'est pas toujours installé par dépendance. Il faut donc penser à l'installer manuellement. Voir http://shaarli.guiguishow.info/?aZk0YQ

        * Systemd-logind se vautre sur le spawn des TTY et spamme les logs dans certains environnements (un conteneur LXC, par exemple). Voir  http://shaarli.guiguishow.info/?qkFhrQ

        * Zabbix : il faut augmenter le nombre de processus autorisé pour l'utilisateur MySQL et, suite à un changement de la hiérarchie des dossiers de configuration de PHP, il faut repositionner les valeurs de post_max_size et max_execution_time selon ce que Zabbix réclame. Voir http://shaarli.guiguishow.info/?K1UiHA
    Sun Jan 3 18:23:22 2016 - permalink -
    - http://shaarli.guiguishow.info/?fMCWbQ
    nomarkdown
  • Ejabberd - De Wheezy à Jessie

    En mettant à jour de Wheezy à Jessie, quelques problèmes sont apparus avec ejabberd :
        * Le serveur refusait d'être lancé avec un joli message dans les logs :
          « <0.38.0>@gen_mod:start_module:90 Problem starting the module mod_admin_extra for host <<"guigui.example">>
            options: []
            error: undef
           [{mod_admin_extra,start,[<<"guigui.exemple">>,[]],[]},
            {gen_mod,start_module,3,[{file,"src/gen_mod.erl"},{line,82}]},
            {lists,foreach,2,[{file,"lists.erl"},{line,1336}]},
            {ejabberd_app,start,2,[{file,"src/ejabberd_app.erl"},{line,67}]},
            {application_master,start_it_old,4,
                         [{file,"application_master.erl"},{line,272}]}]
            2016-01-03 16:10:49.411 [critical] <0.38.0>@gen_mod:start_module:95 ejabberd initialization was aborted because a module start failed.

         Cela vient du fait que j'ai conservé mon ancienne configuration, qui charge le module « mod_admin_extra » qui a été déplacé dans ejabberd-contrib (https://github.com/processone/ejabberd-contrib), voir https://www.ejabberd.im/node/24787 . Il faut donc installer le package ejabberd-contrib ou virer mod_admin_extra de la configuration ejabberd. Il n'est pas présent dans le fichier de conf' par défaut de Jessie donc on peut vivre sans. :D


        * Par défaut, ejabberd utilise désormais une syntaxe yaml pour son fichier de configuration. C'est toujours mieux que le format erlang. \o/ On peut convertir son ancien fichier de conf' à la nouvelle syntaxe avec « ejabberctl convert_to_yaml /etc/ejabberd/ejabberd.cfg /etc/ejabberd/ejabberd-converted.yml ». J'ai rencontré deux problèmes :
            * « Error: eacces ». Cela signifie que l'utilisateur ejabberd n'a pas le droit d'écrire dans le dossier de destination. Une impossibilité de lire le fichier source se manifeste par « Problem 'exit "Problem loading ejabberd config file /tmp/ejabberd.cfg : permission denied"' occurred executing the command. »

            * « Problem 'error function_clause' occurred executing the command.
                Stacktrace: [{p1_yaml,encode_pair,
                          [inet6,4],
                          [{file,"src/p1_yaml.erl"},{line,117}]},
                 {p1_yaml,'-encode/2-lc$^0/1-1-',2,
                          [{file,"src/p1_yaml.erl"},{line,98}]},
                 {p1_yaml,'-encode/2-lc$^0/1-1-',2,
                          [{file,"src/p1_yaml.erl"},{line,98}]},
                 {p1_yaml,'-encode/2-lc$^1/1-0-',2,
                          [{file,"src/p1_yaml.erl"},{line,100}]},
                 {p1_yaml,encode_pair,2,[{file,"src/p1_yaml.erl"},{line,118}]},
                 {p1_yaml,'-encode/2-lc$^0/1-1-',2,
                          [{file,"src/p1_yaml.erl"},{line,98}]},
                 {p1_yaml,'-encode/2-lc$^0/1-1-',2,
                          [{file,"src/p1_yaml.erl"},{line,98}]},
                 {p1_yaml,encode,1,[{file,"src/p1_yaml.erl"},{line,90}]}] »

             Le parser ne gère pas le mot-clé « inet6 » que l'on utilise dans le fichier de configuration pour faire écouter ejabberd en IPv6 (et aussi en IPv4 en fonction de bindv6only ;) ). C'est un bug connu et corrigé (voir https://github.com/processone/ejabberd/issues/803 ) mais ce n'est pas dans Jessie ni encore dans les backports. IPv6 c'est pour demain qu'ils disent... Deux méthodes :
                * Si votre fichier de configuration n'est pas trop spécifique / poilu, je vous recommande de prendre le modèle yml fourni par défaut et de le re-remplir à votre convenance (genre domain, certificat x509,...). Pas seulement pour éviter ce bug de parse ou le déplacement de mod_admin_extra mais aussi pour conserver les commentaires explicatifs de ce que fait chaque directive de config' et, enfin, pour éviter d'autres galères...

                * Mettre les « inet6 » en commentaire dans les blocs listen de votre ejabberd.cfg puis convertir le fichier puis corriger le fichier généré en ajoutant « ip: "::" » à chaque listener car sinon ejabberd écoute uniquement en IPv4...
    Sun Jan 3 17:05:29 2016 - permalink -
    - http://shaarli.guiguishow.info/?xOQeRA
    nomarkdown
  • Email Privacy Tester

    « Some email clients perform operations when reading an email which give away information about the reader, to the sender of the message. If you enter your email address below, this application will send you a specially crafted email which uses a variety of techniques, to attempt to send information back to this server when read. It will then display the results for you. »

    L'auteur a réfléchi à la problématique de la vie privée (voir https://emailprivacytester.com/privacy). Rien à signaler au niveau de la réputation du site dans WOT. Rien non plus à ce sujet sur Twitter. C'est pas un petit site nouveau mais un site qui date de 2012 avec une version 2 récente... À l'exception des messages signés avec GPG en utilisant la fonction de condensation SHA-1 qui commence à sentir le moisi, tout ça inspire confiance donc j'ai testé en utilisant un alias (pas folle la guêpe).


    La palette de ce que peuvent utiliser les marketeux et les méchants est impressionnante :O : vidéo ogg, vidéo webm, des tricks CSS (content, image de fond, ), images, objets (genre Flash et co), iframes, balise meta refresh, prefetch DNS et lien, applet, flux (RSS ou Atom),... Bref, toute la complexité d'HTML  et de CSS dans un mail.


    Avec un Thunderbird 38 :
        * Avec un affichage texte des mails (ce qu'il faut faire, il faut toujours proscrire l'affichage HTML) : aucun tracker n'est déclenché ;

        * Avec un affichage HTML simple, aucun tracker n'est déclenché ;

        * Avec un affichage HTML original, aucun tracker n'est déclenché ;

        * L'affichage HTML original fait apparaître un message qui nous demande si l'on veut charger des contenus distants. On accepte (uniquement pour ce mail, attention quand vous cliquez !). La moitié des trackers se déclenchent : vidéo ogg, vidéo webm, css content, css background-image, css attachment, iframe srcdoc attr, audio tag, vidéo tag, vidéo MP4, iframe, objet flash, objet data, image submit button, css import, vidéo poster, picture tag, img srcset attr, image taf, svg inline with remote image, css link tag, background attribute.

        * Pour déclencher les trackers restants, j'imagine qu'il doit falloir autoriser javascript, activer le prefetch dans about:config,...


    Il y'a d'autres moyens de traquer les gens qui ne sont pas explorés par cet outil, j'en suis sûr genre cookie, super cookie, ... C'est plutôt effrayant.

    La bonne nouvelle, à laquelle je ne m'attendais pas, c'est que même avec un affichage HTML, Thunderbird veille sur notre vie privée. Je suis agréablement surpris.

    Mais bien sûr, ce n'est pas une excuse pour activer l'affichage HTML dans les mails ! Un mail HTML ne sert à rien ! Désactiver ça dans le menu Affichage -> Corps du message en... -> Texte seul.


    Via https://twitter.com/aeris22/status/683409290409951233
    Sun Jan 3 11:02:47 2016 - permalink -
    - https://emailprivacytester.com/
    nomarkdown
  • NET-SNMP et UCD-SNMP, Configuration de l'agent SNMP sous Linux et Unix

    Avec SNMP, il est possible d'exposer tout ou partie de l'arborescence soit selon le modèle "expose uniquement telle partie" soit selon le modèle "expose tout sauf cette partie". C'est le principe des vues.

    Prenons un cas concret : Zabbix ne sait pas interpréter les valeurs qu'il remonte concernant la shared memory dont la taille varie (à la hausse comme à la baisse) en fonction des besoins jusqu'à attendre le maximum défini par kernel.shmall dont on peut positionner la valeur avec sysctl. Cette mal-interprétation génère des fausses alertes qui, en plus d'être pénibles, habituent les techs à ne plus prêter attention aux mails émis par la supervision ce qui représente la pire situation possible.

    Plutôt que de trifouiller SNMP, est-ce qu'on ne pourrait pas demander à Zabbix d'exclure la shared memory ? Zabbix la découvre tout seul, avec un discovery et tout le bazar... Il faudrait créer un filtre et tout et tout, voir https://www.zabbix.com/documentation/2.4/manual/discovery/low_level_discovery point 3.1 . Ce n'est pas fun à mes yeux et pour une fois que j'avais un alibi pour creuser la syntaxe d'un fichier snmpd... Bon ça va, ok, je le reconnais : en vrai, je suis maso. :P

    Cet exemple est bateau mais le masquage d'une partie ou de l'intégralité de l'arborescence SNMP peut servir (exemple parmi d'autres : générer un graphe de débit pour une seule interface réseau pour que seul l'utilisateur branché sur cette interface puisse consulter ce graphe, voir http://net-snmp.sourceforge.net/wiki/index.php/Vacm#VACM_Masks.2C_or_How_to_restrict_access_to_a_particular_index_.28row.29_in_a_Table) donc ce n'est pas inintéressant de se pencher sur ça.

    Dans l'arborescence SNMP, c'est le tableau nommé « hrStorageTable » qui contient, entre autres, la description, la taille d'une allocation, le nombre total d'allocations possibles et le nombre d'allocations réalisées de chaque espace logique de stockage (RAM, shared memory, points de montage,...). Voir http://www.net-snmp.org/docs/mibs/host.html#hrStorageTable . Donc pour récupérer les tailles exprimées sous la forme qu'on leur connaît (Mio, Gio, Tio,...), il faut multiplier le bon nombre d'allocations par la taille d'une allocation. Exemple : espace occupé sur le stockage en octets = taille d'une allocation * nombre d'allocations réalisées. #IZI

    L'OID (l'identifiant unique d'un élément dans l'arborescence SNMP) de ce tableau hrStorageTable est .1.3.6.1.2.1.25.2.3 (ou HOST-RESOURCES-MIB::hrStorageTable en langage presque courant...). Ensuite, on met la colonne à laquelle on souhaite accéder : .1.3.6.1.2.1.25.2.3.1.3 = HOST-RESOURCES-MIB::hrStorageTable.1.3 = description de tous les points de montage, .1.3.6.1.2.1.25.2.3.1.6 = HOST-RESOURCES-MIB::hrStorageTable.1.6 nombre d'allocations utilisées,... Ensuite, on met l'ID du stockage : dans mon cas .1.3.6.1.2.1.25.2.3.1.3.1 = HOST-RESOURCES-MIB::hrStorageTable.1.3.1 = nom donné à ma RAM, .1.3.6.1.2.1.25.2.3.1.3.31 = nom donné à la racine (/),...

    Les ID / descriptions ne se devinent pas, on les remonte avec : snmpwalk -v2c -c <communauté> <IP_agent_SNMP> HOST-RESOURCES-MIB::hrStorageTable.1.3 :)

    La shared memory a l'ID 8. Ce que nous voulons faire c'est donc dégager tout ce qui concerne .1.3.6.1.2.1.25.2.3.1.X.8. Peu importe la valeur de X puisque l'on veut virer la description, l'ID, la taille d'une allocation, les allocations effectuées,... Bref, nous voulons faire disparaître toute information sur l'objet d'ID 8 de la table hrStorageTable.

    On a l'OID : .1.3.6.1.2.1.25.2.3.1.X.8, il reste à calculer le masque. Cet OID nécessite 12 bits pour être représenté (ne faites pas attention aux nombres > 1, c'pas comme ça qu'on compte :D ). Il nous faudra donc deux octets, c'est plié d'avance.

    Mettons un 1 sous chaque élément de l'OID que l'on souhaite invariant. Et mettons 0 sous chaque partie variante. Dit de manière plus simple : on met un 1 en dessus de chaque élément de l'OID que l'on veut matcher dans la requête SNMP qui sera adressée au serveur. Nous voulons matcher tous les bits sauf le 11e, peu importe ce que contient ce dernier.

    OID :        .1.3.6.1.2.1.25.2.3.1.X.8
    Masque :  1 1 1 1 1 1  1  1 1 1 0 1 0 0 0 0
    On regroupe les bits en paquets de 8 (pour faire des octets) et on convertit en hexadécimal : 1 1 1 1 1 1 1 1 = ff ; 1 1 0 1 0 0 0 0 = d0 . Masque final : ff:d0 \o/
    On a donc tout pour créer notre vue : « view    <label>     excluded        .1.3.6.1.2.1.25.2.3.1.3.8       ff:d0 ».

    Ici, on dit donc que l'on exclut la ligne d'ID 8 dans la table hrStorageTable, peu importe la colonne. #IZI

    Si l'on remplaçait le masque par ff:f0, on dirait que seulement l'OID .1.3.6.1.2.1.25.2.3.1.3.8 doit être exclu. On exclurait donc uniquement la description de la shared memory mais on pourrait toujours récupérer la taille d'une allocation en .1.3.6.1.2.1.25.2.3.1.4.8, par exemple. #IZI

    Si l'on remplaçait « excluded » par « included », on dirait bien que seul .1.3.6.1.2.1.25.2.3.1.X.8 peut être lu. On pourrait donc récupérer uniquement les infos sur la shared memory. Et si on remplaçait « excluded » par « included » et le masque par ff:f0, alors on autoriserait uniquement la consultation de la description de la shared memory. #IZI

    Mais avant de dire ce que l'on exclu, il faudrait peut-être dire ce que l'on inclu ? Car exclure quelque chose du néant, ça va pas être possible. Voici donc la vue finale :
    « view    <label>     included        .iso
      view    <label>     excluded        .1.3.6.1.2.1.25.2.3.1.3.8       ff:d0 »
    On inclus tout l'arbre SNMP et on dégage la ligne de la table hrStorageTable qui concerne la shared memory.


    Maintenant, il faut écrire le fichier de configuration de snmpd kiVaBien. La page pointée par ce shaarli n'est plus vraiment appropriée, je lui préfère https://aresu.dsi.cnrs.fr/spip.php?article175 que j'ai shaarlié y'a quelque temps en http://shaarli.guiguishow.info/?t_NB6w.

    Pour simplifier, je vais développer un exemple complet :
    « ## Listen
    agentAddress udp:161,udp6:161


    ## Qui suis-je ?
    # snmpd remplit le sysName tout seul avec le FQDN de la machine
    sysLocation Internet
    sysContact guigui@example.com


    ## Qui voit quoi ?
    # Déclaration des machines autorisées
    # Se lit comme : les machines avec les IP 192.0.2.1 et 127.0.0.1, qui viennent nous causer
    # en positionnant la communauté à la valeur « zabbix » font partie de la comsec nommée « supervision »
    #                   Nom             Source          Communauté
    com2sec supervision     127.0.0.1       zabbix
    com2sec supervision     192.0.2.1       zabbix

    # Déclaration des groupes d'accès
    # Les machines de la comsec supervision font partie du groupe nommé « ReadOnly » (ce n'est qu'un label,
    # pas une permission effective !) qu'ils utilisent SNMP version 1 ou 2c
    #             Nom             Version         Com2sec
    group   ReadOnly        v2c            supervision
    group   ReadOnly        v1              supervision

    # Déclaration des vues
    # La vue NoSharedMem masque HOST-RESOURCES-MIB::hrStorageTable.hrStorageEntry.X.8
    # Donc on vire les infos à propos de la shared memory que Zabbix ne sait pas interpréter
    #                    Nom             Incl/Excl                      Subtree                         Masque (optionnel)
    view    NoSharedMem     included        .iso
    view    NoSharedMem     excluded       .1.3.6.1.2.1.25.2.3.1.3.8           ff:d0

    # Association entre un groupe et une vue
    # Le groupe ReadOnly est associé a la vue NoSharedMem en lecture seule
    #           GroupName       Contexte    Version      SecLevel        Prefix               Read            Write   Notif
    access  ReadOnly               ""              any             noauth          exact       NoSharedMem     none    none


    ##  Params divers
    # To keep "snmpd[3458]: Connection from UDP: [127.0.0.1]:48911" from filling your logs
    dontLogTCPWrappersConnects true »


    Notons que, sans la vue, une configuration snmpd qui autorise les mêmes deux machines à lire toute l'arborescence sans aucun droit d'écriture, ça se dit : « rocommunity zabbix 89.234.141.72/32 ». On voit donc que les vues sont complexes et pas toujours appropriées. :)

    Il ne reste plus qu'à déployer ce fichier de configuration avec Puppet^WAnsible ou autre selon vos goûts. :)
    Sat Jan 2 19:13:14 2016 - permalink -
    - http://www.loriotpro.com/ServiceAndSupport/How_to/UCD-SNMP_ConfigSNMPv1-v1.2.php#_Toc43798575
    nomarkdown
  • Zabbix - De Wheezy à Jessie

    En mettant à jour de Wheezy à Jessie, deux problèmes sont apparus avec Zabbix (j'utilise php-fpm et nginx) :
        * « SQLSTATE[HY000] [1135] Can't create a new thread (errno 11); ». Voir https://www.percona.com/blog/2013/02/04/cant_create_thread_errno_11/ : « The canonical solution to this issue, if you do a bit of Googling, is to increase the number of processes / threads available to the MySQL user, typically by adding a line like this to /etc/security/limits.conf: « mysql  soft  nproc  4096 »  followed up by a restart of MySQL in a fresh user session. J'ai donc donné la possibilité à l'user MySQL de lancer 50 processus. Problème résolu depuis de nombreux mois.

        * Zabbix se plaint que post_max_size et max_execution_time n'ont pas les valeurs qu'il souhaite. Avant, nous n'avions jamais eu de problème... /etc/php5/fpm/conf.d/30-zabbix.ini (comme demandé par /usr/share/doc/zabbix-frontend-php/README.Debian ) contenait les bonnes valeurs et faisait parfaitement le job. Voir https://wiki.debian.org/PHP/#Configuration_layout . Problème : avec Jessie, les différents dossiers représentant chaque SAPI (apache2, fpm,...) comme /etc/php5/fpm/conf.d ne sont plus des liens symboliques vers /etc/php5/conf.d comme avant donc notre fichier de conf était dans /etc/php5/conf.d/30-zabbix.ini alors qu'il était attendu dans /etc/php5/fpm/conf.d/30-zabbix.ini... Il était donc ignoré. Solutions ?
            * mv /etc/php5/conf.d/30-zabbix.ini /etc/php5/fpm/conf.d/30-zabbix.ini

            * Passer les valeurs des directives de configuration à partir du virtualhost : https://forum.ivorde.com/nginx-php-fpm-increase-upload-max-filesize-and-other-php-values-per-vhost-t1151.html. Dans le virtualhost Zabbix, dans le bloc « location ~ \.php$ » nous ajoutons donc : « fastcgi_param PHP_VALUE "post_max_size=51M \n max_execution_time=300 \n max_input_time=300 \n date.timezone = Europe/Paris"; »

            * Dans le premier cas, il faut restart php5-fpm. Dans le deuxième cas, il faut restart php5-fpm et nginx.
    Sat Jan 2 17:16:46 2016 - permalink -
    - http://shaarli.guiguishow.info/?K1UiHA
    nomarkdown
  • Chrooter Apache httpd, bonne ou mauvaise idée ?

    Sur mon serveur perso, je chroote Apache httpd depuis 3 ans et demi pour essayer mais ça cause tout un tas de problèmes pour un gain en sécurité pas évident du tout... Tant qu'à faire, voici quelques problèmes dont je me souviens et que je n'ai pas encore documenté :
        * Il fallait quand même créer les dossiers correspondants au DocumentRoot de chaque virtualhosts dans /var/www (ou autre chemin si vous l'avez changé...) sinon erreur au démarrage. Ça ne semble plus être nécessaire de nos jours.

        * Il faut charger explicitement les librairies utilisables. Genre si l'on a besoin d'une résolution de noms, il faut copier /etc/resolv.conf dans le chroot (au même emplacement, ofc) et ajouter ceci à la conf' Apache : « LoadFile /lib/x86_64-linux-gnu/libnss_dns.so.2 » sinon plus de résolution des noms et ces messages dans les logs :
        « PHP Warning:  file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/[...] on line 3
          PHP Warning:  file_get_contents([...]): failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/[...] on line 3 »

        * Il faut copier /usr/share/zoneinfo et son contenu dans le chroot sinon PHP se vautrera dès qu'une fonction relative au temps/date sera utilisée. Exemples : « PHP Fatal error:  date_default_timezone_get(): Timezone database is corrupt - this should *never* happen! », «  PHP Fatal error:  strtotime(): Timezone database is corrupt - this should *never* happen! », « PHP Warning:  strtotime(): Invalid date.timezone value 'Europe/Paris', we selected the timezone 'UTC' for now. », « PHP Warning:  date_default_timezone_get(): Invalid date.timezone value 'Europe/Paris', we selected the timezone 'UTC' for now. ».

        * Problème de suppression des fichiers de session (stockés dans session.save_path). PHP n'a pas de mécanisme pour supprimer automagiquement ces fichiers. Sous Debian GNU/Linux, c'est stocké dans /tmp qui est souvent un tmpfs qui se vide donc à chaque extinction du serveur. De plus, un script, /usr/lib/php5/sessionclean est exécuté en cron toutes les 30 minutes. Problème : ce script récupère bien le chemin où sont stockés les fichiers... mais sans tenir compte du chroot. Ainsi « session.save_path = /tmp » dans le php.ini d'un PHP exécuté dans un chroot Apache httpd ne désigne pas /tmp mais $chrootdir/tmp (/var/apache/chroot/tmp dans mon cas puis chrootdir = /var/apache/chroot). Mon workaround :
            * Dupliquer /usr/lib/php5/sessionclean en /usr/local/lib/php5-sessionclean ;

            * Définir moi-même $save_path en commentant save_path=$(echo [...]) et en le remplaçant par « save_path=/var/apache/chroot/tmp »

            * Dupliquer /etc/cron.d/php5 en /etc/cron.d/php5-custom dans lequel j'appelle /usr/local/lib/php5-sessionclean au lieu de /usr/lib/php5/sessionclean

            * systemctl restart cron pour prendre en compte cette modification

        * Problème avec la validation des certificats x509. Voir http://shaarli.guiguishow.info/?lWsIvQ

        * Les sockets UNIX deviennent compliquées à utiliser pour communiquer avec les SGBD. On doit donc utiliser des sockets TCP... C'est déjà le cas par défaut donc ça n'entraîne pas de contraintes supplémentaires.
    Sat Jan 2 13:54:05 2016 - permalink -
    - http://shaarli.guiguishow.info/?08T1Cw
    nomarkdown
  • error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed · Issue #3346 · composer/composer · GitHub

    J'utilise tt-rss (https://tt-rss.org/gitlab/fox/tt-rss/wikis/home) comme agrégateur de flux RSS et rssbridge (https://github.com/sebsauvage/rss-bridge) pour produire des flux RSS pour des sites web qui n'en fournissent plus par pur choix. Depuis la mise à jour à Jessie, certains flux RSS passant par rssbridge ne sont plus fonctionnels : rssbridge présente une page vide (dans la version récupérable fin décembre 2015 sur github, on aura un message « Requested username can't be found. ». Les flux qui ne sont plus fonctionnels correspondent à des sites auxquels le bridge accède en HTTPS ou les sites web qui redirigent automatiquement sur leur version HTTP (on ne parle pas d'HSTS (voir http://www.bortzmeyer.org/6797.html ) mais juste d'une bête redirection HTTP 301) comme Twitter, par exemple.


    Si l'on n'a pas accès aux logs, on passe rssbridge en mode debug en commentant « error_reporting(0); » et en décommentant « ini_set('display_errors','1'); error_reporting(E_ALL);  // For debugging only. » au début du fichier index.php de rssbridge. On se rend à l'URL défectueuse (ou dans les logs) et on obtient l'erreur complète :
    « Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
    error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in /var/www/rssbridge/lib/Bridge.php on line 369

    Warning: file_get_contents(): Failed to enable crypto in /var/www/rssbridge/lib/Bridge.php on line 369

    Warning: file_get_contents(http://twitter.com/aeris22): failed to open stream: operation failed in /var/www/rssbridge/lib/Bridge.php on line 369
    Requested username can't be found. »

    OpenSSL n'arrive donc pas à valider le certificat du serveur. NE PAS désactiver la vérification des certificats x509 de file_get_contents() avec une méthode comme celle exposée à l'adresse https://stackoverflow.com/questions/26148701/file-get-contents-ssl-operation-failed-with-code-1-and-more (verify_peer -> false) : c'est une connerie, ça fonctionnait avant, on va réparer ça, c'est tout, pas la peine de créer une absence de sécurité. D'autant plus que ça nécessite de modifier le code de rssbridge, ce qui ne résistera pas aux mises à jour.


    Si l'on écrit un bête fichier de test, comme « <?php echo file_get_contents('https://twitter.com/') ?> » et qu'on l'exécute avec php-cli (php test-x509.php , par exemple), on se rend compte que cela fonctionne. Le même fichier de test accédé via un serveur web comme Apache httpd retourne l'erreur vue ci-dessus. On en déduit que cela vient soit de l'environnement d'exécution, soit d'un changement entre la conf' php-cli et la conf php Apache httpd.

    Pourtant, les contextes TLS (obtenus avec « var_dump(openssl_get_cert_locations()); » sont identiques dans les deux cas :
    « array(8) {
      ["default_cert_file"]=>
      string(21) "/usr/lib/ssl/cert.pem"
      ["default_cert_file_env"]=>
      string(13) "SSL_CERT_FILE"
      ["default_cert_dir"]=>
      string(18) "/usr/lib/ssl/certs"
      ["default_cert_dir_env"]=>
      string(12) "SSL_CERT_DIR"
      ["default_private_dir"]=>
      string(20) "/usr/lib/ssl/private"
      ["default_default_cert_area"]=>
      string(12) "/usr/lib/ssl"
      ["ini_cafile"]=>
      string(0) ""
      ["ini_capath"]=>
      string(0) ""
    } »

    /usr/lib/ssl/cert.pem n'existe pas sous Debian GNU/Linux mais /usr/lib/ssl/certs est un lien symbolique vers /etc/ssl/certs qui, grâce au package ca-certificate, contient bien les certificats d'AC x509 dont l'un d'eux a signé le certificat de Twitter...

    Haaaaaaaaa mais j'y suis : cet Apache httpd tourne dans un chroot, « ChrootDir /var/apache/chroot » dans la conf' ! Or, /var/apache/chroot/usr/lib/ssl/certs n'existe pas !


    De là, on a plusieurs solutions :
        * Copier /etc/ssl/certs et tout son contenu dans /var/apache/chroot/etc/ssl/certs et faire un lien symbolique de /var/apache/chroot/usr/lib/ssl/certs vers /var/apache/chroot/etc/ssl/certs.

        * Récupérer tout un magasin de certificats d'AC x509 et demander à PHP de l'utiliser

    Dans les deux cas, la mise à jour des certificats reste problématique... Dans le deuxième cas, on peut lancer un wget en cron pour s'assurer d'avoir les derniers certificats et de ne plus avoir les certificats révoqués. Ces mises à jour sont plutôt rares (et dépendent de la source de votre magasin de certificats genre Microsoft, Mozilla, Google, Debian,...) mais mieux vaut être prévenu.


    J'ai choisi la deuxième méthode. Pour la mettre en pratique, on :
        * wget https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt (magasin de certificats de Mozilla compacté par les dev de cURL, voir http://curl.haxx.se/docs/caextract.html).

        * En fonction des besoins, on peut aussi ajouter d'autres AC au bundle genre CACert (qui n'est plus dans le magasin de certificats de Mozilla). Il suffit de concaténer les certificats intermédiaires / root de l'AC au reste du bundle : cat ca-bundle.crt root.crt > ca-bundle.crt

        * mkdir /var/apache/chroot/etc/ssl

        * mv ca-bundle.crt /var/apache/chroot/etc/ssl/

        * ajoute « openssl.cafile = /etc/ssl/ca-bundle.crt » dans /etc/php5/apache2/php.ini

        * systemctl restart apache2

    Maintenant, notre contexte TLS est le suivant :
    « array(8) {
      ["default_cert_file"]=>
      string(21) "/usr/lib/ssl/cert.pem"
      ["default_cert_file_env"]=>
      string(13) "SSL_CERT_FILE"
      ["default_cert_dir"]=>
      string(18) "/usr/lib/ssl/certs"
      ["default_cert_dir_env"]=>
      string(12) "SSL_CERT_DIR"
      ["default_private_dir"]=>
      string(20) "/usr/lib/ssl/private"
      ["default_default_cert_area"]=>
      string(12) "/usr/lib/ssl"
      ["ini_cafile"]=>
      string(19) "/etc/ssl/ca-bundle.crt"
      ["ini_capath"]=> string(0) "" } »

    Notons le « ["ini_cafile"]=> string(19) "/etc/ssl/ca-bundle.crt" » ;)

    rssbridge devrait parfaitement fonctionner (et si ce n'est pas le cas, il faut vider le cache avec rm -r <document_root>/cache/* ). \o/ On n'oublie pas de virer le mode debug de rssbridge. ;)


    Pourquoi ça s'est mis à déconner avec le passage à Jessie ? J'avais dû déjà mettre en place un trick que je n'ai pas documenté ici, que j'ai donc dû oublier et j'ai dû accepter le remplacement de php.init durant la mise à jour, quelque chose dans ce goût-là.

    Le mieux étant de ne pas chrooter Apache httpd : ça cause tout un tas de problèmes pour un gain en sécurité pas évident du tout (voir http://shaarli.guiguishow.info/?08T1Cw).
    Sat Jan 2 13:53:21 2016 - permalink -
    - https://github.com/composer/composer/issues/3346
    nomarkdown
  • #638045 - warning: xsasl_cyrus_server_get_mechanism_list: no mechanism available - Debian Bug report logs - GuiGui's Show - Liens

    « Dec 26 17:54:17 localhost postfix/smtpd[16304]: warning: SASL authentication failure: Internal Error -4 in ../../lib/server.c near line 1757
    Dec 26 17:54:17 localhost postfix/smtpd[16304]: warning: SASL authentication failure: Internal Error -4 in ../../lib/server.c near line 1757
    Dec 26 17:54:17 localhost postfix/smtpd[16304]: warning: SASL authentication failure: Internal Error -4 in ../../lib/server.c near line 1757
    Dec 26 17:54:17 localhost postfix/smtpd[16304]: warning: xsasl_cyrus_server_get_mechanism_list: no mechanism available
    Dec 26 17:54:18 localhost postfix/smtpd[16304]: fatal: no SASL authentication mechanisms
    Dec 26 17:54:18 localhost postfix/master[5159]: warning: process /usr/lib/postfix/smtpd pid 16304 exit status 1
    Dec 26 17:54:18 localhost postfix/master[5159]: warning: /usr/lib/postfix/smtpd: bad command startup -- throttling »

    Et 1 an et demi après, je me réponds à moi-même : il faut installer le package libsasl2-modules...
    Fri Jan 1 19:46:52 2016 - permalink -
    - http://shaarli.guiguishow.info/?_-omsg
    nomarkdown
  • Configuring Apache, Nginx, and OpenSSL for Forward Secrecy | Qualys Community

    Pour ne plus avoir à chercher les listes de suites cryptographiques qui supportent la confidentialité persistante (Perfect Forward Secrecy, PFS, en anglais, c'est-à-dire que même si la clé privée de votre serveur est dérobée, les échanges passés sont indéchiffrables par l'attaquant, même s'ils ont été capturés et conservées), je me note ça ici :

    On commence par celle donnée dans l'article (moins RC4, que j'ai choisi de dégager) : EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4
    Analyse : que des suites permettant la PFS. Notons que la priorité est donnée aux courbes élliptiques aussi bien pour l'échange de Diffie-Hellman éphémère que pour le chiffrement asymétrique. On a donc 21 suites cryptographiques.

    On voudrait la même chose (PFS uniquement + priorité aux courbes elliptiques) mais sans être aussi précis sur les suites qu'on autorise afin que de nouvelles suites ajoutées dans le futur soient automatiquement activées. Attention : ça permet de prendre en compte automagiquement les nouvelles suites cryptos meilleures... mais aussi des nouvelles suites cryptos moisies... Il y a donc un choix à faire.
    EECDH+ECDSA EECDH+aRSA EDH+aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4
    Et pour les personnes qui voudraient donner la priorité à RSA aussi bien pour l'échange de Diffie-Hellman que pour la crypto asymétrique, la liste devient : EDH+aRSA EECDH+aRSA EECDH+ECDSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4

    Pour chacun des exemples précédents, on peut virer SEED et CAMELLIA qui sont des algos de chiffrement symétrique sans faiblesses connues à ce jour mais qui ne sont pas accélérés matériellement comme l'est AES et qui sont largement moins utilisés (et donc moins audités ?) qu'AES : pour cela, il suffit d'ajouter « !SEED !CAMELLIA » à la fin de la liste. Il reste 18 suites cryptos dans la liste.

    Pour ceux et celles qui veulent jouer les nazis : on peut faire la même (PFS uniquement, +/- SEED/CAMELLIA selon vos préférences, priorité aux courbes elliptiques ou pas) mais en virant SHA-1 qui commence à sentir le moisi : il suffit d'ajouter « !SHA » à la fin des listes vues précédemment. À ce stade, il ne reste plus que 12 suites dans la liste. Évidemment, ça ne va pas fonctionner souvent puisqu'il faut un support TLS v1.2 minimum (qui apporte les suites PFS sans SHA-1) qui n'est pas encore du tout la norme mais c'est clairement ce qu'il faut utiliser pour des services non publics et des environnements contrôlés.

    Si l'on veut une liste plus réaliste, qui exclut le moins de logiciels clients sans pour autant être une passoire (car oui, y'a encore *beaucoup* de serveurs et clients qui ne supportent pas la PFS, comme les serveurs XMPP de mes contacts, par exemple...) : EDH+aRSA EECDH+aRSA EECDH+ECDSA ECDH aRSA !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !RC4 . On arrive à 42 suites cryptos, le compte est bon \o/ ( ;) ). Comme pour les autres listes, on peut virer SEED et CAMELLIA en fonction du niveau de confiance que l'on accorde à ces algorithmes et/ou en fonction des performances recherchées. On peut aussi donner la priorité aux courbes elliptiques puisqu'ici je la donne à RSA.
    Fri Jan 1 19:31:39 2016 - permalink -
    - https://community.qualys.com/blogs/securitylabs/2013/08/05/configuring-apache-nginx-and-openssl-for-forward-secrecy
    nomarkdown
  • [ Utilisateurs de Raspbian, vous pouvez supprimer le composant « rpi » de vos sources.list ]

    Voici ce que contient le composant « rpi » des dépôts Debian Raspbian. Soit 3 logiciels : gstreamer1.0-omx, gstreamer1.0-omx-dbg et ssh-regen-startup. Si aucun de ces logiciels est installé sur votre Raspberry Pi, vous pouvez supprimer le composant rpi de votre sources.list.

    Ça signifie aussi que les packages bricolés de partout par les mainteneurs Raspbian sont injectés directement dans le composant « main ».... C'est plutôt contestable. Mais ce n'est pas un scoop, voir http://www.guiguishow.info/2013/09/07/auto-hebergement-sur-olinuxino/#toc-4076-technique . D'où ma préférence pour les OLinuXino : ça utilise les dépôts Debian standard donc on bénéficie du support de la team Debian-Security et de sa réactivité (alors que les màj, même de sécu, sont décalées de plusieurs jours chez Raspbian).
    Fri Jan 1 18:07:17 2016 - permalink -
    - ftp://ftp.igh.cnrs.fr/pub/os/linux/raspbian/raspbian/dists/jessie/rpi/binary-armhf/Packages
    nomarkdown
  • debian - how to remove a package which post-installation and pre-removal script fails? - Server Fault

    Je découvre (hééééééééé bah comme dirait l'autre) où sont stockés les hooks dpkg (avant installation, après installation, avant suppression, après suppression) : /var/lib/dpkg/info/<package_name>.<type>.

    Exemple pratique : quand un ejabberd provenant des backports (c'était pour un test) refuse d'être supprimé, je modifie /var/lib/dpkg/info/ejabberd.postrm pour faire commencer ce script par exit 0 et je relance apt-get autoremove ejabberd...
    Fri Jan 1 18:01:08 2016 - permalink -
    - https://serverfault.com/questions/179570/how-to-remove-a-package-which-post-installation-and-pre-removal-script-fails
    nomarkdown
  • Cherche solution à l'erreur « ERREUR (arc) - arc_not_found » de Sympa (gestionnaire de listes de discussion/diffusion)

    L'interface web de Sympa m'affiche cette erreur lorsque je consulte les archives publiques d'une liste, après avoir confirmé que je ne suis pas un spammeur... On ne trouve rien sur un moteur de recherche à part des SYmpa dans le même état que le mien... Si quelqu'un a la solution, qu'il fasse signe.
    Fri Jan 1 17:53:57 2016 - permalink -
    - http://shaarli.guiguishow.info/?gL5XXA
    nomarkdown
  • New in OpenDNSSEC 1.4 - OpenDNSSEC Documentation - OpenDNSSEC

    En passant de Wheezy à Jessie, on passe d'OpenDNSSEC 1.3.9 à la version 1.4.6. Changement majeur. Pourtant, sur mon infra perso, cette mise à jour s'est mieux déroulée que celle entre Squeeze et Wheezy (http://www.guiguishow.info/2013/05/19/de-debian-gnulinux-squeeze-a-wheezy/#toc-3696-opendnssec), qui était pourtant un changement mineur de version, ce qui illustre, à mon avis, qu'OpenDNSSEC devient un logiciel mature.

    Quelques points auxquels prêter attention tout de même :
        * « Auditor is deprecated The auditor is no longer supported in 1.4. This greatly reduced the dependencies of OpenDNSSEC, namely it no longer depends on Ruby. Alternative validation tools are described here. ». Il faudra donc mettre le bloc Auditor en commentaire (« <!-- [blabla Auditor ici] --> ») dans /etc/opendnssec/conf.xml sinon, l'erreur « Relax-NG validity error : Did not expect element Auditor there » se produira.

        * « Version 1.4  has some kasp database changes compared to 1.3 to allow for an update to the zonelist.xml schema (these changes support flexibility in the input and output adapters). » voir https://wiki.opendnssec.org/display/DOCS/Migrating+from+earlier+versions+of+OpenDNSSEC.  Il faut exécuter le SQL de migration : sqlite3 /var/lib/opendnssec/db/kasp.db < /usr/share/opendnssec/migrate_adapters_1.sqlite3 (merci https://stackoverflow.com/questions/10045035/how-to-execute-an-sql-script-file-against-an-sqlite-3-database-file pour la syntaxe). Si ce n'est pas fait, ods-ksmutil key list retournera l'erreur « ERROR: database version number incompatible with software; require 3, found 2. Please run the migration scripts
    Failed to connect to database ».

        * Lors d'un ods-signer sign <zonename>, je recevais une erreur « connect() failed: No such file or directory » qui indique que le démon ods-signer n'est pas en cours d'exécution (voir http://lists.opendnssec.org/pipermail/opendnssec-user/2012-July/002075.html). En regardant dans les logs, on peut voir :
        « Dec 24 17:11:12 localhost ods-signerd: SoftHSM: init: Could not open the token database. errno=2. Probably wrong privileges: /var/lib/lib/softhsm/slot0.db
           Dec 24 17:11:12 localhost ods-enforcerd: SoftHSM: init: Could not open the token database. errno=2. Probably wrong privileges: /var/lib/lib/softhsm/slot0.db
           Dec 24 17:11:12 localhost ods-enforcerd: hsm_get_slot_id(): No slots found in HSM
           Dec 24 17:11:12 localhost ods-signerd: [hsm] hsm_get_slot_id(): No slots found in HSM
           Dec 24 17:11:12 localhost ods-signerd: [engine] setup failed: HSM error
           Dec 24 17:11:12 localhost ods-signerd: [engine] signer shutdown »
        On remarque le chemin erroné « /var/lib/lib/softhsm/slot0.db » (deux fois « lib/ »). Il s'agit d'une erreur dans le package Debian et dérivés (voir https://bugs.launchpad.net/ubuntu/+source/softhsm/+bug/1451348). Il faut corriger ça dans /etc/softhsm/softhsm.conf et relancer opendnssec : systemctl restart opendnssec-enforcer ; systemctl restart opendnssec-signer
    Fri Jan 1 17:25:31 2016 - permalink -
    - https://wiki.opendnssec.org/display/DOCS/New+in+OpenDNSSEC+1.4
    nomarkdown
  • Mise à jour de la version 2.2 vers la version 2.4 - Serveur Apache HTTP Version 2.4

    Une liste des changements qui m'ont affecté lors du passage de Wheezy à Jessie et donc d'Apache httpd 2.2 à Apache 2.4 :

        * « NameVirtualHost has no effect and will be removed in the next release » : « La directive NameVirtualHost n'a plus aucun effet, si ce n'est l'émission d'un avertissement. Toute combinaison adresse/port apparaissant dans plusieurs serveurs virtuels est traitée implicitement comme un serveur virtuel basé sur le nom. ». J'ai donc simplement supprimée cette directive de configuration. Ça signifie également que la création de plusieurs VirtualHost TLS (reposant sur SNI) fonctionne désormais out-of-box ce qui représente un beau progrès.

        * « Invalid command 'LockFile', perhaps misspelled or defined by a module not included in the server configuration » : « Les directives AcceptMutex, LockFile, RewriteLock, SSLMutex, SSLStaplingMutex et WatchdogMutexPath ont été remplacées par la directive unique Mutex. ». Voir https://askubuntu.com/questions/368515/upgraded-to-ubuntu-13-10-apache-not-able-to-start pour une directive de configuration de remplacement. Notons que c'est bien la même qui a été retenu dans la conf' par défaut chez Debian.

        * « Ignoring deprecated use of DefaultType in line NN of /path/to/httpd.conf - supprimez la directive DefaultType et remplacez-la par les directives de configuration appropriées. ». Cette ligne a simplement été supprimée de la config' par défaut chez Debian. J'en ai fait autant.

        * Chez Debian et Ubuntu, le nom des fichiers contenant les différents VirtualHosts doit terminer par « .conf » sinon ils sont ignorés, voir https://www.linode.com/docs/security/upgrading/updating-virtual-host-settings-from-apache-2-2-to-apache-2-4 . Il faut donc :
            * rm /etc/apache2/sites-enabled/*
            * cd /etc/apache2/sites-available
            * for vhost in `ls`; do mv $vhost $vhost.conf; sudo a2ensite $vhost; done;
            * systemctl reload apache2

        * « Either all Options must start with + or -, or no Option may. ». En effet, j'avais des « SymLinksIfOwnerMatch » qui n'ont jamais posés de problèmes... Il suffit donc d'ajouter un « + » devant pour confirmer qu'on veut bien activer cette option. Voir https://serverfault.com/questions/647665/either-all-options-must-start-with-or-or-no-option-may

        * Le mécanisme de contrôle d'accès change. Pour l'instant, la compatibilité est assurée mais il vaut bien se préparer en avance :
            * « Order deny,allow Deny from all » devient « Require all denied »

            * « Order allow,deny Allow from all » devient « Require all granted »

            * « Order Deny,Allow Deny from all Allow from <IP> » (très utile pour faire une maintenance peinard ;) ) devient « Require all denied Require ip <IP> »

            * « Order Allow,Deny Deny from <IP> Allow from all » (très utile contre les pénibles ;) ) devient
            « <RequireAll>
                    Require all granted
                    Require not ip <IP>
              </RequireAll>
        Voir https://httpd.apache.org/docs/2.4/fr/howto/access.html
    Fri Jan 1 16:43:05 2016 - permalink -
    - https://httpd.apache.org/docs/2.4/fr/upgrading.html
    nomarkdown
  • Debian Backports ›› FAQ [ How to get a list of all installed backports? ]

    « Q: How to get a list of all installed backports?

    A: Something like the following solutions should work:

    dpkg -l  |awk '/^ii/ && $3 ~ /bpo[6-8]/ {print $2}'

    or

    aptitude search '?narrow(?version(CURRENT),?origin(Debian Backports))' -F '%100p' »

    Pour ceux et celles qui voudraient récupérer une liste des logiciels installés en fonction de son composant (main, contrib, non-free, rpi,...) : dpkg-query -W -f='${Section}\t${Package}\n' | grep ^non-free
    Fri Jan 1 16:22:08 2016 - permalink -
    - http://backports.debian.org/FAQ/
    nomarkdown
  • Nagios: CRITICAL - Socket timeout after 10 seconds - Stack Overflow

    Chez ARN, FAI associatif en Alsace, nos machines ont une BMC c'est-à-dire un contrôleur permettant le management à distance (accès console, reboot, monitoring bas niveau,...) de la bécane (voir https://en.wikipedia.org/wiki/Intelligent_Platform_Management_Interface#Baseboard_management_controller).

    La BMC de notre HP, un truc ILO 2 est perfectible : elle peut continuer à ping mais ne plus présenter son interface web... et devenir ainsi inutile. Impossible de reboot uniquement la BMC depuis le serveur lui-même (ipmitool bmc reset cold, voir https://serverfault.com/questions/205658/restarting-an-ibm-bmc-without-restarting-the-server-itself) dans ces moments-là : ça ne juste fonctionne pas. Le seul moyen est de rebooter totalement (éteindre + couper les arrivées électriques) la machine. Pas cool de découvrir ça quand on a besoin de la BMC car on a foiré un truc...

    On a donc mis en place un monitoring HTTP en plus du monitoring ICMP des BMC. Aucun problème sur notre Dell iDRAC... Problème sur notre ILO 2, bien entendu : le check retourne toujours « CRITICAL - Socket timeout after 10 seconds » même si l'on augmente la durée avant timeout. Un navigateur web ne rencontre aucun problème. Problème avec TLS, peut-être ? Non, une capture réseau montre que c'est la même version de TLS et la même suite cryptographique qui sont choisis dans les deux cas (check et navigateur web).

    Ce n'est pas la faute de la BMC mais celle du check de monitoring check_http que l'on trouve dans nagios. En effet, ce dernier exécute une requête HTTP 1.1. La BMC répond avec un Content-Type: chunked. La norme HTTP 1.1 *impose* le support de ce content-type donc la BMC n'est pas fautive : le check demande à causer HTTP 1.1 sans savoir parler la langue... Depuis mi-2014 environ (voir https://github.com/monitoring-plugins/monitoring-plugins/pull/1286), check_http sait causer chunked mais visiblement, c'est sacrément buggué (voir https://github.com/nagios-plugins/nagios-plugins/issues/103 par exemple).

    Conclusion : on utilise l'argument « -N » de check_http pour lui dire de se concentrer sur les entêtes HTTP uniquement, et non pas sur le contenu envoyé par la BMC. Ainsi, on vérifie quand même que la BMC est fonctionnelle (une connexion HTTP est possible) sans se prendre la tête.
    Fri Jan 1 16:21:03 2016 - permalink -
    - https://stackoverflow.com/questions/7871009/nagios-critical-socket-timeout-after-10-seconds
    nomarkdown
  • Voeux aux Français [ NDLR : 2016] - vidéo Dailymotion

    Ils envoient du rêve les vœux de notre président de la République :

    « Je vous dois la vérité : on n'en a pas fini avec le terrorisme ». Merci Cap'tain Obvious, qui a écrit ce discours nul à chier ?! Mais ça indique néanmoins qu'on est loin d'en finir avec l'état d'urgence.

    « Face à la haine, la France a montré la force de ses valeurs, celles de la République » : oui, aller frapper en Syrie, les lois Renseignement, Surveillance des Communications Internationales et Prorogeant l'état d'urgence, l'exclusion des réfugiés, et les innombrables dérives de l'état d'urgence, c'est sûr que tout ça c'est les valeurs de la France et de la République ! Sale enfoiré, va !

    « Les français ont fait preuve de détermination et de solidarité et de sang froid » : à se faire enfermer, via la peur (doctrine du choc), à l'intérieur d'une cage (voir point précédent pour des exemples) et à rejeter leur prochain ? Oui, en effet, les beaufs (https://fr.wikipedia.org/wiki/Beauf) sont déterminés à faire tout ça et y'a pas de quoi en être fier.

    Des attentats sont régulièrement déjoués donc Flamby doit nous protéger... Oui, tous les États totalitaires ont toujours dit ça pour monter en puissance et assurer leur maintien via une instrumentalisation de leur utilité/légitimé.

    Donc le plan c'est toujours de continuer à alimenter le feu de la haine en Syrie sans résoudre les vraies causes du terrorisme (voir : http://shaarli.guiguishow.info/?BeoNUw) tout en affirmant attaquer le terrorisme à la racine (c'est dans le discours, je n'invente pas).

    Mais, attention, ils vont aussi engager une réforme de la procédure pénale pour lutter contre le crime organisé, son financement et les trafics qui l'alimentent. Trololololo, dois-je déduire que la France va lutter contre la pire mafia c'est-à-dire les politocards ? :D Sérieusement, on m'explique le rapport entre crime organisé et terrorisme ?

    Mais, attention, ils vont aussi engager une révision de la Constitution pour « donner un fondement incontestable à l'état d'urgence ». WTF ?! Donc c'est que l'état d'urgence actuel n'est pas incontestable, c'est bien de le reconnaître. Ça veut aussi dire qu'ils vont nous sucrer la sûreté (c'est-à-dire la protection du Peuple contre les abus des dirigeants, dans le verlan de 1789), je ne vois que ça comme signification cachée à cette déclaration (éliminer l'insécurité juridique me semble un argument faible...).

    « Nous diviser, c'est ce que veulent les extrémistes » : bien vu la pique en direction du FN mais dommage que ça s'applique très bien au PS lui-même. :)

    « Si y'a un état d'urgence sécuritaire, y'a aussi un état d'urgence économique et social », c'est bien de le reconnaître, aussi bien pour l'aspect sécuritaire de l'état d'urgence que sur l'urgence d'agir sur l'aspect social/sociétal. :)

    Le reste n'est que le blabla actuel : tout jeune aura un taff ou une formation, on va lutter contre le chômage donc on promet encore subtilement le plein emploi illusoire, patriotisme, sécuriser les frontières, réussite (trololololololo) de la COP21, sécurité, service civique pour la solidarité (trololololololololo),...

    La conclusion est à mourir de ridicule : « il faut utiliser ce sursaut qui a été salué dans le monde entier pour mener à bien toutes les réformes, pour être plus fort économiquement, plus juste socialement, plus exemplaire démocratiquement. ». J'ai déjà donné des contre-exemples ci-dessus.

    Bref, un président qui joue sur l'émotion et envoie le faux rêve habituel... Toujours aucune perspective, aucune vision d'un monde différent, plus humain. J-O-I-E. :(
    Thu Dec 31 21:43:47 2015 - permalink -
    - http://www.dailymotion.com/video/x3kb9pv_voeux-aux-francais_news
    nomarkdown
  • Twitter rejoint Facebook et CloudFlare pour continuer à supporter SHA-1, ces entreprises ne vont-elles pas dans le sens contraire de la sécurité ?

    Une histoire de dette technique. Notons que pour l'obsolescence programmée ou pour faire acheter le dernier joujou inutile mais mega cher à la mode, là y'a du monde mais pour la sécurité, y'a plus personne pour faire du gavage d'oies. :))))

    « Mozilla a annoncé qu’elle ne supporterait plus les certificats SHA-1 à partir de 1er juillet 2016. Microsoft a également abondé dans le même sens et a fixé le mois de juin 2016 comme date de fin du support de SHA-1 dans son navigateur. Google qui avait fixé la sienne au 1er janvier 2017 est en cours de réflexion afin de voir s’il ne serait pas judicieux de rapprocher la date de fin du support de SHA-1 au 1er juillet 2016 comme Mozilla.


    [...]

    À l’opposé de ces entreprises qui souhaitent ne plus supporter ce standard le plus tôt possible, nous avons CloudFlare et Facebook qui après avoir évalué l’impact de l’abandon du support de SHA-1, ont les regards tournés dans le sens contraire et encouragent les entreprises à supporter le standard afin de ne pas priver une partie des utilisateurs de la sécurité offerte par cet algorithme de hachage.

    Selon l’enquête menée par Cloudflare, 37 millions d’internautes n’ont pas d’équipements compatibles avec SHA-2 et seraient définitivement coupés des pages chiffrées avec cet algorithme de chiffrement dès l’abandon du support SHA-1.

    Facebook a produit des statistiques similaires après avoir détecté que « 3-7 % des navigateurs actuellement utilisés ne sont pas en mesure d’utiliser la norme SHA-256 plus récente

    [...]

    Twitter qui est également concerné par le problème a effectué des tests qui ont permis de démontrer que 3 à 6 % de ses utilisateurs ne pourront pas accéder à sa plateforme à partir de SHA-2.

    [...]

    Avec cette annonce, les utilisateurs disposant uniquement de support pour SHA-1 peuvent espérer continuer à accéder à ces plateformes après l’abandon du support par certaines entreprises. Toutefois, pour que cette initiative puisse atteindre son objectif, ne serait-il pas intéressant pour d’autres entreprises de suivre le pas ?

    En outre, vu que Twitter annonce que le support pour SHA-1 sera abandonné en mars 2019, ne serait-il pas mieux de le faire maintenant ? Par ailleurs, ces entreprises soulignent que le support pour SHA-1 sera abandonné si une attaque se produisait. Devrait-on attendre qu’une telle occurrence survienne avant d’abandonner ce certificat ? Ne serait-il pas mieux d’obliger ces utilisateurs à acquérir d’autres supports compatibles avec SHA-256, au lieu de vouloir leur offrir une sécurité à risques ? »

    Via https://twitter.com/aeris22/status/682517278504562689
    Thu Dec 31 12:42:40 2015 - permalink -
    - http://www.developpez.com/actu/94390/Twitter-rejoint-Facebook-et-CloudFlare-pour-continuer-a-supporter-SHA-1-ces-entreprises-ne-vont-elles-pas-dans-le-sens-contraire-de-la-securite/
    nomarkdown
Links per page: 20 50 100
◄Older
page 216 / 299
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