Syndiquer le contenu
Mis à jour : il y a 18 heures 3 min

Sbires! La suite

5 août, 2014 - 14:58

Sbires! est un roman photo narrant la vie méconnue de ces personnages normalement cantonnés au second plan dont la principale fonction est de mourir sans faire d'histoire pour montrer que l'heure est grave ou que le méchant est vraiment méchant.

Il s'agit du deuxième épisode, diffusé sous forme de feuilleton tous les lundis. La première fournée a été livrée le 4 août 2014 au soir.

Sous licence art libre, Sbires! est produit avec Gimp, Inkscape et un peu Blender. Excédant légèrement les impératifs de la licence, les sources seront mises à disposition (celles de l'épisode 1 sont déjà disponibles).

Sbires! est fait sous l'égide de l'AMMD, coopérative d'artistes libristes qui s'occupaient notamment de la partie sono/concert lors des dernières RMLL.

Télécharger ce contenu au format Epub

Lire les commentaires

Que peut faire le service d'élite JTRIG du GCHQ ?

5 août, 2014 - 13:05

Bonjour tout le monde, comme l'article précédent la version originale de cet article possède énormément de liens et de références ; je ne peux pas tout mettre ici, vous avez le lien vers l'article en question en bas de la page. J'espère que ça vous plaira :)

Nous allons parler dans cet article du JTRIG (pour Joint Threat Research Intelligence Group), qui est l'équivalent anglais pour le GCHQ (les services de renseignements anglais) du département TAO de la NSA. La mission du JTRIG consiste entre autres à détruire ou à empêcher d'agir les ennemis en les discréditant via de fausses informations ou en empêchant leurs communications de fonctionner : déni de service (DoS) via appels ou sms, suppression de la présence en ligne d'une cible, changement de photos sur les réseaux sociaux (pour discréditer une cible ou augmenter drastiquement sa parano), captation des courriels (par exemple pour apporter de la crédibilité lors de l'infiltration d'un groupe), … la liste est longue.

Sommaire

Le GCHQ possède un rayon d'action étendu, allant d'une cible individuelle à l'échelle d'un pays.

GCHQ vs Anonymous

Dans un article du 5 février 2014, Mark Schone (NBC News) racontait comment le JTRIG lançait des DDoS contre les Anonymous avec le programme ROLLING THUNDER (DDoS via P2P/syn flood selon le journal).

Le GCHQ était aussi présent sur des canaux IRC Anons, ce qui leur a permis d'arrêter quelques personnes : Edward Pearson dit GZero. Jake Topiary Davis (porte-parole du groupe Lulzsec), Mustafa Tflow Al-Bassam, aussi du groupe Lulzsec, ainsi que quelques autres.

Quelques infos supplémentaires sur les condamnations

GZero a sans aucun doute cherché les emmerdes : vol de comptes paypal, utilisation de CB volées, discussion en ligne avec un agent se faisant passer pour un Anon à propos d'attaque…, le blog garwarner.blogspot.fr raconte des choses très intéressantes : son compte SoundCloud aurait eu comme Userid GZero et comme nom "Edward Pearson". Selon la diapositive 7 de ce document, un whois sur un de ses liens échangés sur IRC aurait rapporté des informations… même pas sûr que le GCHQ ait eu à utiliser le programme PHOTON TORPEDO qui permet de récupérer l'adresse IP d'un utilisateur de MSN : oui… il avait aussi son adresse en clair sur un site, lié à son pseudo…

Un autre Anon, p0ke, a cliqué sur un lien menant vers l'article de la BBC “Who loves the hacktivists" qu'un agent lui a envoyé. Je pense que vous devinez ce qui s'est passé, le GCHQ a été capable de récupérer l'adresse IP qu'il avait derrière son VPN.

Ça marche avec des liens (rappelez-vous de QUANTUM et de FOXACID), mais ça marche aussi très bien avec des pièces jointes, comme avec un document Office : TRACER FIRE permet de récupérer des infos sur la machine ciblée, comme des fichiers ou des logs), TORNADO ALLEY fait plus ou moins la même chose sous la forme d'un document Excel. Ou encore GURKHAS SWORD qui permet de faire remonter l'adresse IP de la cible. Le lien sur lequel il a cliqué était sans doute piégé, mais il existe une autre hypothèse : une surveillance passive des connexions à l'article via TEMPORA et ANTICRISIS GIRL, et qui aurait pu permettre par ricochet de remonter à sa navigation, comme son compte Facebook, et ses adresses de courriels.

Ça aurait aussi pu venir de l'utilisation d'un programme comme GLASS BACK (permet de récupérer l'adresse IP d'une cible en la spammant), ou tout simplement une requête en bonne et due forme au fournisseur du VPN en question (on en oublierait presque les bonnes vieilles méthodes).

Que font les terroristes déjà ? Des DDoS ?

Il est toujours agréable d'apprendre que le GCHQ sait très, très bien utiliser le déni de services sous toutes ses formes : DoS sur des serveurs web (PREDATORS FACE), sur les téléphones via call bombing (SCARLET EMPEROR), contre SSH (SILENT MOVIE) ou encore de manière silencieuse sur les téléphones satellite / GSM avec VIPERS TONGUE (par silencieux, on entend que la cible ne voit rien du DoS ; les messages n'arrivent pas réellement sur le périphérique mais bloquent les communications).

AMBASSADORS RECEPTION a été utilisé dans différentes situations : quand il est utilisé sur une machine cible, il se chiffre lui-même, efface tous les courriels, chiffre tous les fichiers, fait trembler l'écran et empêche l'utilisateur de s'identifier. STEALTH MOOSE cible spécifiquement les machines Windows.

Une autre opération visant spécifiquement les Talibans en Afghanistan a consisté en une tempête de fax, d'appels et de SMS programmée pour arriver toutes les minutes sur les terminaux cibles.

CANNONBALL permet de spammer via SMS une cible, BURLESQUE permet d'envoyer des SMS modifiés et CONCRETE DONKEY permet l'envoi d'un message audio à de nombreux téléphones ou de "spammer" une cible avec le même message (on notera la référence à Worms Armageddon <3).

Spam

Et le GCHQ n'hésite pas à envoyer via les réseaux sociaux (Facebook, Twitter, Skype) le message "DDOS and hacking is illegal, please cease and desist" pour « dissuader » des activistes de participer à des DDoS. Une des diapositives indique que 80% des personnes à qui avait été envoyé le message n'étaient plus sur les canaux IRC un mois après.

On parle ici de programme comme BADGER ou WARPATH qui permettent d'envoyer massivement (qui a dit spammer ?) du courriel.

Pour information, MINIATURE HERO vise spécifiquement le logiciel Skype et permet de collecter et d'enregistrer des conversations (aussi bien skypeOut que en skype to skype), les messageries instantanées et les listes de contacts.

Honey traps (pots de miel)

ROYAL CONCIERGE exploite les réservations d'hôtels pour tracker les diplomates étrangers (et sans doute pas que les diplomates). Le GCHQ utilise ce programme pour essayer de mener les cibles vers des hôtels "SIGINT friendly" : plus facilement espionnables, aussi bien électroniquement que humainement.

La mise en place de pots de miel fait aussi partie du catalogue du JTRIG, et il arrive qu'une opération soit mise en place pour leurrer une cible en lui faisant miroiter une possibilité de relation amoureuse et/ou sexuelle et ainsi l'amener à faire quelque chose (le B.A.BA des services de renseignements quoi…). C'est typiquement ce qui s'est passé en 1986 avec Mordechai Vanunu et l'agente du Mossad (les services de renseignements israéliens) Cheryl Bentov.

Plus d'infos sur le cas Julian Assange

Réseaux sociaux

La propagande est à la Démocratie ce que la violence est aux dictatures. Noam Chomsky

Et ça le GCHQ l'a trop bien compris, ils peuvent accroître artificiellement le trafic d'un site (GATEWAY), amplifier un message (c'est à dire augmenter le nombre de vues et donc le référencement), comme une vidéo sur Youtube (GESTATOR), ou encore modifier un mur Facebook aussi bien pour une seule personne que pour un pays entier (CLEANSWEEP).

Ils ont aussi bien la possibilité de modifier les photos d'utilisateurs sur les réseaux sociaux que d'envoyer des courriels ou des sms à vos collègues ou à vos voisins à votre place, il est indiqué dans les documents fuités que ce type de méthode a aidé la police britannique à « arrêter des criminels ».

Donc, maintenant, si (par exemple) vous trompez votre conjoint-e et qu'arrive le moment où vous vous trompez de destinataire lors de l'envoi d'un message, vous avez maintenant l'excuse « c'est une opération des services de renseignements anglais pour me discréditer ! ». Pas mal non ?

Quelques programmes bonus

  • BABYLON permet de faire une requête sur une adresse de courriel Yahoo ou Hotmail (à la date du document) pour savoir quand elle est utilisée ou non ce qui permet de savoir quand s'y connecter.
  • DANCING BEAR permet d'obtenir la localisation d'un point d'accès wifi.
  • HACIENDA permet de scanner une ville ou un pays entier
  • SWAMP DONKEY localise des types de fichiers prédéfinis et les chiffre.
  • DEEPSTALKER aide à la géolocalisation des téléphones satellites et des GSM en faisant un « appel silencieux » (invisible pour la cible).
  • SQUEAKY DOLPHIN permet une supervision en temps-réel des vues sur Youtube, des Likes sur Facebook ou encore des visites sur Blogspot/Blogger. Ce qui permet de récupérer des informations pertinentes sur des tendances (diapos 29 à 32), et donc potentiellement "prévoir" des événements (l'exemple dans les diapos concerne les tags "14FEB", "Bahrain" et "March rally" le 13 février 2012, c'est à dire la veille du premier anniversaire du « jour de colère » au Bahrein).
Pour finir "Nul ne sera l'objet d'immixtions arbitraires dans sa vie privée, sa famille, son domicile ou sa correspondance, ni d'atteintes à son honneur et à sa réputation. Toute personne a droit à la protection de la loi contre de telles immixtions ou de telles atteintes." Article 12 de la déclaration universelle des droits de l'homme

Que pouvons nous faire ? La réponse est simple à écrire, mais plus difficile à mettre en œuvre, il faut commencer par faire son modèle de menace, après ça, vous avez le choix : chiffrer, tout, tout le temps. Utiliser Tor, dont les services cachés, le plus souvent possible. Mettre en place des machines virtuelles dédiées (par exemple KVM ou virtualbox—pour les adminsys : SSH au-dessus de Tor seulement par exemple, navigation web), utiliser des logiciels libres (vous méritez de vous faire prendre sinon ;-)), SSL/TLS par défaut pour TOUT, OTR sur les messageries, ouvrir les liens que quelqu'un vous donne sur une machine distante (sans lien avec vous) ou sur une VM… etc.

Et évidemment, ne pas faire de conneries : toute la crypto du monde ne vous protégera jamais si vous faites des erreurs bêtes, comme permettre des passerelles entre votre pseudo et votre nom (comme une adresse de courriel). Le fondateur de SilkRoard, William Ulbricht (dit Dread Pirate Robert's) peut en témoigner.

Télécharger ce contenu au format Epub

Lire les commentaires

Jericho Chat - Chiffrement incassable utilisant les masques jetables

4 août, 2014 - 21:11

Jericho Chat est un programme de communication chiffrée utilisant un vrai générateur de nombres aléatoires (TRNG: True Random Number Generator) et des masques jetables. L'objectif est d'offrir un programme libre, open source, dont les communications sont chiffrées, pour les journalistes, les avocats, les militants et les citoyens du monde qui ont besoin d'une réelle assurance que leurs communications ne soient pas censurées, contrôlées, ni surveillés par des gouvernements de régimes totalitaires ni par les agences de renseignement les plus puissantes.

Pour vaincre les meilleures agences de renseignement du monde, vous devez élever votre jeu à leur niveau. Cela signifie l'utilisation de chiffrement qu'ils ne pourront jamais, jamais rompre, indépendamment des progrès en mathématiques, physique quantique, cryptanalyse ou technologique (NdM : la méthode de masque jetable utilisée est théoriquement/mathématiquement impossible à casser, bien qu'en pratique elle reste vulnérable car nécessitant d'échanger des clés et de les conserver secrètes).

En 2ème partie, un résumé très succinct des possibilité du programme. Je ne peux que vous conseiller de lire la page d'accueil et les pages d'information technique du site qui sont en anglais.

La nouvelle version de Jericho Chat 1.3 vient d'être publiée le 3 août 2014. Elle apporte la possibilité de chatter en groupe de 2 à 7 utilisateurs, un nouveau protocole d'authentification API côté serveur et un nouveau vrai générateur de nombres aléatoires.
L'installation nécessite la mise en place d'un serveur web.

Le programme rend le processus très simple pour générer de vrai nombres aléatoires, la gestion des clés et de chatter en toute sécurité. Après qu'un message soit envoyé, le masque jetable utilisé est automatiquement supprimé de l'ordinateur. Une fois reçu, il est également supprimé du serveur. Cela empêche que le message soit déchiffré dans le futur si l'un des ordinateurs est compromis. Si un utilisateur pense que leur ordinateur est sur le point d'être compromis il peut également activer la fonction "Auto Nuke" qui permet de supprimer les masques jetables de la base de données et du serveur. Plus d'informations à propos de la conception et la mise en œuvre technique sont disponibles sur le site. Le code source complet est disponible sur la page de téléchargement ou sur Github.

La raison principale pour laquelle les masques jetables sont rarement utilisés en dehors des réseaux gouvernementaux et militaires, c'est que vous avez besoin de données vraiment aléatoires, la clé doit être au moins aussi longue que le message et les masques jetables doivent être envoyés à travers un canal sécurisé remis en personne. Cela les rend peu pratiques à utiliser, mais ce ne sont pas des problèmes insurmontables. Ce logiciel a pour but de résoudre la plupart des problèmes qui rendent l'utilisation de masques jetables difficile. La seule petite question serait comment livrer les masques jetables à l'autre utilisateur, mais il y a des façons de le faire assez facilement. Dans le monde d'aujourd'hui complètement surveillé, il est effectivement nécessaire pour une rencontre physique d'avoir une assurance complète que vous communiquez réellement avec la bonne personne et non un attaquant. Évidemment, ce logiciel n'est pas une solution à tous les problèmes de cryptographie. Il ne résout toutefois qu'un problème spécifique et vous permet de communiquer en toute sécurité avec votre famille, vos amis, collègues ou associés à l'avenir si vous les avez rencontrés au moins une fois et échangé des masques jetables avec eux.

Télécharger ce contenu au format Epub

Lire les commentaires

Revue de presse de l'April pour la semaine 31 de l'année 2014

4 août, 2014 - 13:37

La revue de presse de l'April est régulièrement éditée par les membres de l'association. Elle couvre l'actualité de la presse en ligne, liée au logiciel libre. Il s'agit donc d'une sélection d'articles de presse et non de prises de position de l'association de promotion et de défense du logiciel libre.

Sommaire

[Le Monde.fr] Guerre des brevets: Microsoft porte plainte contre Samsung aux Etats-Unis

Par la rédaction, le vendredi 1 août 2014. Extrait:

Microsoft a annoncé, vendredi 1er août, avoir porté plainte contre le fabricant sud-coréen d'appareils électroniques Samsung, qu'il accuse de ne plus respecter les conditions d'un accord sur des brevets. Dans un communiqué, l'avocat de Microsoft explique que «Microsoft a engagé une procédure légale contre Samsung» devant un tribunal new-yorkais «pour faire respecter notre contrat avec Samsung» passé en 2011.

Lien vers l'article original: http://www.lemonde.fr/economie/article/2014/08/01/guerre-des-brevets-microsoft-porte-plainte-contre-samsung-aux-etats-unis_4466009_3234.html

Et aussi:

[PhonAndroid] Un système d'exploitation 100% open source est-il possible?

Par Julien Lada, le jeudi 31 juillet 2014. Extrait:

On parle souvent de la philosophie open source d'Android. Le site Ars Technica va plus loin en essayant de construire un OS entièrement open source.

Lien vers l'article original: http://www.phonandroid.com/systeme-exploitation-entierement-open-source-possible.html

[Les Echos] Cultivez vos hackers!

Par Frédéric Bardeau, le jeudi 31 juillet 2014. Extrait:

L’apprentissage du code informatique à tous les niveaux de l’entreprise est une voie vers la croissance grâce à un usage créatif du numérique. Par Frédéric Bardeau, coauteur de Lire, Ecrire, Compter, Coder (éditions FYP).

Lien vers l'article original: http://business.lesechos.fr/directions-numeriques/0203672525409-cultivez-vos-hackers-102075.php

[comptanoo.com] Les freins rencontrés par l'Open Innovation: explications

Par la rédaction, le mercredi 30 juillet 2014. Extrait:

L'«innovation ouverte» est basée sur le partage, la coopération entre entreprises. Ce partage peut se faire sur l'intelligence économique, des savoir-faire ou de la R&D.

Lien vers l'article original: http://www.comptanoo.com/innovation/actualite-tpe-pme/22623/les-freins-rencontres-par-open-innovation-explications

[Les Echos] Logiciels: les audits des contrats de licences, un pactole pour les éditeurs

Par Jacques Henno, le mardi 29 juillet 2014. Extrait:

Certains éditeurs de logiciels infligeraient à leurs clients des amendes de plusieurs millions d'euros. Ils sanctionnent ainsi le non-respect des contrats de licences.

Lien vers l'article original: http://www.lesechos.fr/journal20140729/lec2_high_tech_et_medias/0203667138819-logiciels-les-audits-des-contrats-de-licences-un-pactole-pour-les-editeurs-1028513.php

[Next INpact] Toulouse économise un million d'euros en basculant d'Office à LibreOffice

Par Vincent Hermann, le lundi 28 juillet 2014. Extrait:

Toulouse est depuis peu l’une des villes de France les plus fournies en solutions libres pour son administration. Elle a ainsi annoncé la semaine dernière avoir économisé un million d’euros en basculant l’ensemble des postes de son administration vers LibreOffice. Mais ce mouvement est simplement le dernier en date d’une longue série de travaux.

Lien vers l'article original: http://www.nextinpact.com/news/88935-toulouse-economie-million-deuros-en-basculant-doffice-a-libreoffice.htm

Et aussi:

Télécharger ce contenu au format Epub

Lire les commentaires

Capsicum dans Linux : ça bouge !

4 août, 2014 - 12:26

Capsicum a été évoqué sur LinuxFr.org une première fois en 2011. C'est un projet de chercheurs de Cambridge concernant de nouvelles primitives de gestion des droits pour les systèmes UNIX, très prometteur et en passe d'être intégré à FreeBSD.
Voyons quels sont les mouvements autour de ce projet.

Linux n'avait à l'époque pas de bonne solution pour un sandboxing (littéralement garder dans le bac à sable) fin; en 2012, une revue complète du système seccomp (dépêche LinuxFr.org) apportait un mécanisme très fin de contrôle des appels systèmes, mais ne gérant pas le transfert de droits qui fait de Capsicum un mécanisme si complet. Seccomp avait ensuite été mentionné dans deux journaux, un journal de 2012 sur le sandboxing de Google Chrome (qui se mettait à utiliser Seccomp sous Linux, en plus d'une solution interne de passage de message; alors que la version BSD utilise déjà Capsicum), et un de cette année 2014, par Pinaraf, sur l'implémentation finale seccomp-bpf qui réutilise le Berkeley Packet Filter (qui a récemment récupéré un compilateur JIT).

Vous serez ravi-e-s d'apprendre que David Drysdale, un ingénieur Google, est en train de travailler sur un support Capsicum dans Linux. Il a déjà envoyé une première, puis une deuxième série de patches (le 30 juin, puis le 25 juillet), qui essaient différents choix techniques pour intégrer Capsicum à Linux. Il y a une bonne quantité de retours sur les patchs, du positif (ça intéresse beaucoup les gens de Chrome, dont Julien Tinnes résume les choix de design pour la sécurité dans ce fil, mais aussi les gens de QEMU, avec Paolo Bonzini qui est très en faveur de cette approche), mais aussi des critiques. Ne vous attendez pas à voir Capsicum dans la prochaine version du kernel (et même dans la suivante à mon humble avis), mais ça a l'air de bouger pas mal et si/quand ça arrive ce sera une très grande, et très bonne nouvelle.

Je note que l'équipe de sécurité de Chrome est partout dans ces discussions de bonnes idées issues du monde de la recherche. Ils ont pas mal interagi avec les chercheurs au départ, poussé Capsicum en production dans leur version FreeBSD, et sont ceux qui font le boulot pour l'intégration aussi dans le monde Linux—alors même que la compartementalisation est un sujet très en vogue avec l'explosion de popularité de Docker par exemple. On a plein de raison de râler contre Google dans le monde du libre, mais cette petite équipe fait un excellent travail de conception et d'ingénérie, qui pourrait nous apporter beaucoup à tous.

Enfin, si je peux vous parler de tout ça c'est parce que je lis attentivement Linux Weekly News, qui fait un excellent travail de vulgarisation de tout ce qui se passe autour du noyau Linux et dans le monde du libre en général. Pour les soutenir, je me suis inscrit à leur contenu pour 7 dollars par mois (il est possible de réclamer à ne payer que la moitié), et je vous encourage à faire de même si le contenu ci-dessus vous a intéressé.

Télécharger ce contenu au format Epub

Lire les commentaires

NSA - temps de faire le (premier) point

2 août, 2014 - 21:50

Préambule : bonjour tout le monde, j'ai écrit cet article il y quelques jours (NdM: sur son blog, puis republié par Reflets.info), j'en profite pour le partager avec vous. La version originale possède énormément de liens et je ne peux pas tout mettre ici, vous avez le lien vers l'article en question en bas de la page.

En 1988, on commença à parler du programme Echelon ; vient ensuite Frenchelon ; et bien sûr le lanceur d'alerte Edward Snowden. La Quadrature du Net a mis en place le site nsa-observer pour regrouper les infos. Dans la suite de la dépêche, un petit tour d'horizon rapide de ce site.

Sommaire

(petite) Introduction

En 1988, le journaliste Duncan Campbell révéla l'existence d'un programme de renseignement, Echelon, dans un article pour The New Statesman qui s'intitulait "Somebody's listening". En 1996, c'était le journaliste néo-zélandais Nicky Hager qui publiait "Secret power" sur l'implication de son pays dans le programme. En 1999, suite à une demande du Parlement Européen, Duncan Campbell rend un rapport intitulé "Interception capabilities 2000" pour le STOA (Science and Technology Options Assessment du Parlement Européen—traduction française disponible sous le titre "surveillance électronique planétaire" aux éditions Allia).

Pour rappel, le projet Echelon désignait un système mondial d'interception SIGINT via les satellites, et regroupant les États-Unis (NSA), le Royaume-Uni (GCHQ), le Canada (CSTC), l’Australie (DSD) et la Nouvelle-Zélande (GCSB) dans le cadre du traité UKUSA.

Pour ne pas rester derrière, la France a rapidement mis en route un projet similaire, surnommé "frenchelon".

Ce qui nous amène à…

Edward Snowden. Cet (ex-)analyste de la CIA et de la NSA décide d'alerter l'ensemble de la planète sur les capacités d'écoute et d'interception des États-unis et de ses alliés. Nous n'allons pas nous étendre là-dessus. Vous pouvez lire cette histoire un peu partout autour de vous.

Fin 2013, ne trouvant aucune base de données des différents programmes, La Quadrature du Net commence grâce à quelques bénévoles le site https://www.nsa-observer.net/ qui regroupe l'ensemble des programmes de la NSA et du GCHQ provenant des fuites de Snowden.

Et à un premier tour d'horizon

Même si l'immense majorité des programmes est sous l'égide de la NSA (National Security Agency) et donc des États-unis, certains programmes viennent d'autres pays (en particulier du Royaume-uni via le GCHQ). La NSA classe ses pays partenaires en 3 grandes familles :

  • Five Eyes (FVEY / AUSCANNZUKUS)
  1. États-unis (indicatif pays : USA - agence : NSA),
  2. Royaumes-unis (indicatif pays : GBR - agence : GCHQ),
  3. Nouvelle-Zélande (indicatif pays : NZL - agence : GCSB),
  4. Canada (indicatif pays : CAN - agence : CSEC),
  5. Australie (indicatif pays : AUS - agence : ASD).
  • Nine Eyes : consiste aux Five Eyes avec en plus : le Danemark, la France, les Pays-Bas et la Norvége.
  • Fourteen Eyes (SSEUR - Sigint Senior EURope) : les Nine Eyes plus l'Allemagne, la Belgique, l'Italie, l'Espagne et la Suède.
La collecte de données

Les services récupèrent tout ce qu'ils peuvent, c'est-à-dire dans le désordre :

Tout ce que vous faites avec un navigateur (sans oublier sa version, la langue, les plugins installés…), les flux voix (VoIP, GSM, téléphone fixe…), fax, courriels, chats (MSN-like, Jabber…), vidéos (que ce soit en provenance de Youtube, de Skype,…), photos, fichiers (en transferts, stockés, …), DNI (Digital Network Intelligence), DNR, empreintes des réseaux wifi (cf. VICTORY DANCE en dessous), activités sur les réseaux sociaux, détails des comptes Google/Yahoo/outlook…), et j'en passe.

Pour faire simple, tout ce que vous faites laisse forcément des traces quelque part. Et c'est ce qu'ils cherchent, collectent, et parfois stockent. Voici donc la première partie de ce tour d'horizon concernant quelques programmes de la NSA et du GCHQ.

UPSTREAM / TEMPORA / RAMPART-(x)

Aussi connu sous le nom de "ROOM641A", le programme UPSTREAM a commencé en 2003, a été révélé en 2006 et consiste en la collecte via des "écoutes" sur les câbles de fibres optiques (oui, je simplifie énormément). Le projet UPSTREAM concerne la collecte sur l'ensemble des fibres optiques trans-océaniques, qui permettent l'acheminement des communications internationales, comme Internet, les appels, les SMS…

UPSTREAM englobe beaucoup de sous-programmes qui correspondent à des régions du monde. Ils collectent différentes données (DNI, DNR, métadonnées, contenu, voix, fax…). Pour plus de détails sur UPSTREAM et ses sous-programmes, je vous conseille le blog electrospaces.

TEMPORA est l'équivalent d'UPSTREAM pour le Royaume-uni, et RAMPART l'équivalent en coopération via certains pays Européens.

PRISM

PRISM est un accès direct aux serveurs de certaines compagnies américaines : Microsoft (+Skype), Yahoo, Google (+Youtube), Facebook, PalTalk, AOL, Apple…

Ce programme permet de faire des requêtes concernant des personnes ou des groupes précis concernant les courriels, les chats/vidéos, les photos, les données stockées (coucou le cloud), de la VoIP, etc. Il suffit de voir les différents services de ses compagnies pour avoir une idée de qu'ils peuvent avoir. PRISM est donc utilisé pour "cibler" quelqu'un en particulier.

MUSCULAR

Ce programme a fait beaucoup parler de lui quand il a été rendu public, et pour cause : il permet l'interception des données entre les datacenters de Google (et de Yahoo) ce qui permet entre autres d'éviter les connexions HTTPS clients/serveurs. Google a chiffré ses communications inter-datacenters depuis.

VICTORY DANCE

Il s'agit d'une coopération entre la CIA et la NSA au Yémen. Ils ont listé les empreintes wifi de presque toutes les grandes villes yéménites via des drones (si vous ne voyez pas à quoi ça peut servir, cf. XKEYSCORE).

Je vous laisse vous rappeler ce que les Google Cars ont fait pendant un bon moment dans le reste du monde et ce que ça a pu devenir depuis…

MYSTIC

MYSTIC est un ensemble de programme qui collecte des données (le plus souvent provenant des téléphones et/ou des GSM) dans certains pays. On peut ainsi noter ACIDWASH (qui a collecté entre 30 et 40 millions de métadonnées par jour en Afghanistan), DUSKPALLET (qui vise les GSM au Kenya), EVENINGWEASEL (wifi mexicain) et SOMALGET.

SOMALGET permet de "monitorer" les systèmes de télécommunications d'un pays (via des entreprises américaines implantées localement le plus souvent). Ce programme a visé les Bahamas (sans doute pour servir de test avant de passer à plus gros) puis l'Afghanistan où il a collecté et stocké TOUS les appels téléphoniques, aussi bien localement que vers l'international.
Mais que fait-on des données après ?

Voici justement quelques exemples.

ANTICRISIS GIRL

Via des programmes comme UPSTREAM / TEMPORA / RAMPART qui permettent de faire de la collecte passive, il est possible de collecter les adresses IP des personnes se connectant à un site, par exemple au site wikileaks.org ou aux recherches Google ayant permis l'accès au site.

XKEYSCORE

XKEYSCORE consiste en un ensemble d'interfaces et de bases de données qui permettent de sélectionner certaines données collectés via différents moyens (et il y en a beaucoup).

Voici quelques exemples des possibilités de ce programme :

  • trouve moi tous les Allemands (disons germanophones, via la langue du navigateur) qui sont en Afghanistan (géolocalisation de l'IP) et qui ont été sur youporn et sur Facebook dans les dernières 24h.
  • marque comme "extrémiste" toutes les personnes (connexion IP) allant sur le site du projet Tor ou sur celui du projet Tails. Même chose si la source télécharge Tor.

Ne vous leurrez pas, ce dernier exemple est bel et bien réel, je vous laisse voir par vous même :

OPTIC NERVE (GCHQ)

En 2008, ce programme a collecté une photo toutes les 5 secondes provenant de chaque flux vidéo des chats Yahoo (soit environ 1.8 millions d'utilisateurs sur une période de 6 mois). Les documents indiquent qu'il y a un avertissement pour les opérateurs car l'on y trouve entre 8 et 12% de "nudité" (à prendre au sens large).

Pour information, en 2008 déjà, le GCHQ indique faire des tests pour de la reconnaissance faciale automatique, ainsi que pour la XBOX360. Nous sommes maintenant en 2014, je parie que c'est aussi le cas pour Skype) ainsi que pour Snapchat. N'oubliez pas que la X BOX ONE a une caméra et un micro allumé 24/7, avec de la reconnaissance faciale/vocale par défaut).

La NSA espionne aussi certains sites pornos.

Et oui ! Et il parait que c'est pour la lutte contre le terrorisme (comme le reste quoi…) : par exemple pouvoir faire pression sur un intégriste musulman parce qu'il a été "vu" en train de regarder du porno.

Une cible ? Que peut-on faire ?

QUANTUM (à lire en écoutant Attack !)

Pour rediriger une cible vers un serveur FOXACID, la NSA réalise un Man-in-the-Middle (ou Man-on-the-Side) sur une connexion vers des serveurs de compagnies US (google (gmail), yahoo, linkedin..) grâce à l'emplacement de nœuds (TAO nodes) à des endroits clés sur le réseau (comprendre : "sur les dorsales de certains FAI"). La NSA utilise donc ses nœuds pour permettre des redirections à la volée vers les serveurs FOXACID, qui lanceront eux-mêmes différents types d'attaques selon la cible et les besoins.

Il existe beaucoup de sous-programmes pour QUANTUM, chacun vise quelque chose en particulier, comme QUANTUMBOT pour IRC, QUANTUMINSERT (implantation de malware - utilisé dans le hack de Belgacom), QUANTUMCOOKIE (force les cookies dans le navigateur ciblé), QUANTUMSPIM (messagerie instantanée, comme MSN ou XMPP)…

HUNT SYSADMINS (à lire en écoutant "a bullet in your head")

ATTENTION : j'ai volontairement fait au plus rapide en "coupant" la partie technique, merci de suivre les liens pour approfondir ! C'est TRÈS intéressant !

Je dois vous avouer que j'ai réellement hurlé en lisant les posts sur un forum interne d'un opérateur de la NSA qui s'intitule "hunt sysadmins". Cet opérateur raconte que le meilleur moyen d'avoir accès à des informations est de "passer" par les administrateurs systèmes qui ont accès aux serveurs ou aux routeurs (possibilité de mettre la main sur la topologie des réseaux, trouver des configurations, obtenir des accès, des courriels…).

Il explique ainsi comment ils collectent PASSIVEMENT toutes les transmissions via le protocole Telnet (programme DISCOROUTE). Oui, quand je parle de Telnet je parle bien du procotole développé en 1968 (dans la RFC 15, c'est dire si c'est vieux !), absolument non sécurisé (aucun chiffrement), et qui est apparemment encore pas mal utilisé pour administrer des routeurs à distance.

Il explique alors comment identifier un administrateur système, trouver son webmail et/ou son compte Facebook (oui oui) et de là utiliser la famille QUANTUM pour réaliser une attaque et avoir un accès à sa machine ET/OU au(x) routeur(s).

Et là, comme tout le monde, tu te dis "Moi j'utilise SSH \o/"

Sauf qu'il explique AUSSI comment identifier une personne ayant accès à un serveur en SSH. Shorter : on peut deviner qui a vraiment accès à un serveur selon la taille des paquets qui passent et le temps de connexion.

Une fois la source (via l'IP) identifiée, vous pouvez voir (par exemple avec XKEYSCORE) les connexions à des webmails, Facebook (ou n'importe quoi qui peut l'identifier), et là, PAN ! Tu peux le QUANTUM-ifier \o/

Et il termine gentiment sur le pourquoi et comment prendre la main sur un routeur (fort instructif aussi).

ATTENTION : encore une fois, TOUT le document est disponible en ligne, je vous conseille GRANDEMENT la lecture (et c'est obligatoire si vous êtes sysadmins ;-)).

INTERDICTION

C'est tout simplement la possibilité pour la NSA d'intercepter un colis (comme l'ordinateur que vous venez de commander en ligne), d'installer ce qu'ils veulent dessus (comme un firmware persistant dans le BIOS, un composant permettant à un appareil de la famille d'ANGRYNEIGHBOR (qui porte toujours aussi bien son nom) de fonctionner…).

Il suffit de jeter un coup d'oeil au catalogue pour avoir une idée de ce qu'ils peuvent faire.

Et pour finir

« Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire. » (Albert Einstein)

Je pense qu'après ce tour d'horizon rapide (il y a plus de 400 programmes sur nsa-observer.net), tout le monde aura compris que cette voie est dangereuse. Il est impossible de prévoir qui décidera de son utilisation demain, ni même aujourd'hui.

Nous ne pouvons pas faire confiance aux gouvernements et encore moins aux entreprises pour assurer notre sécurité et notre vie privée.

Nous pouvons, par contre, nous appuyer sur la société civile (comme l'EFF (eff.org) ou La Quadrature du Net, les lanceurs d'alerte (comme Chelsea Manning ou Edward Snowden) et sur des outils qui ne nous trahiront pas, comme les logiciels libres.

La cryptographie fonctionne ! Et c'est une des nouvelles importantes de ces révélations. Il existe des tutoriaux partout sur le Net pour se mettre à chiffrer ses communications. Je vous laisse aller voir OTR pour Jabber (messagerie instantanée), SSL/TLS pour à peu près tout (courriel, chat,…), GPG (qui demande un niveau technique un peu supérieur), Tor, et surtout, surtout, je vous invite à venir à des cryptoparty / café vie privée pour apprendre à s'en servir :)

Télécharger ce contenu au format Epub

Lire les commentaires

systemd pour les administrateurs, partie 1 et 2

2 août, 2014 - 01:36

On vous parle depuis longtemps de systemd. On vous dit que c’est très bien. La plupart des distributions l’ont adopté (Fedora, openSUSE, Mageia, Frugalware, Arch, etc), vont l’adopter (Debian, Ubuntu) ou vous permettent de l’utiliser de manière optionnelle (Gentoo, etc). Mais, savez-vous l’utiliser ?

Voici une série d’articles didactiques pour apprendre à utiliser systemd et vous permettre de mieux l’appréhender et de comprendre les avantages qu’il apporte par rapport aux systèmes précédents.

Les informations ci-dessous sont tirées, traduites et adaptées du blog de Lennart Poettering et sont accessibles dans la langue de Shakespeare aux adresses ci-dessous :

Sommaire Partie 1 : vérifier le démarrage

Comme vous le savez, systemd est le mécanisme d’initialisation de nombreuses distributions. Il est également en cours d’adoption par de nombreuses autres distributions (comme Debian et Ubuntu). systemd fournit une variété de nouvelles fonctionnalités, modifie et facilite les processus d’administration du système.

Cet article est le premier d’une série — dans chacun d’eux, j’essaierai d’expliquer une nouvelle fonctionnalité de systemd. Ces fonctionnalités sont souvent simples. Ces articles devraient donc intéresser un large public. Cependant, de temps en temps, nous plongerons plus en détail dans les nouveautés géniales que systemd apporte.

Traditionnellement, lorsque l’on démarre un système Linux, on voit une liste de petits messages défiler à l’écran. Comme nous travaillons à accélérer et paralléliser le processus de démarrage, ces messages défilent de plus en plus vite et sont de moins en moins lisibles — sans compter que les machines deviennent de plus en plus rapides et que les systèmes de démarrage graphique comme Plymouth masquent carrément ces informations.
Malgré tout, les informations de démarrage restent toujours très utiles parce qu’elles vous montrent, pour chaque service, s’il a réussi à démarrer correctement ou non (à l’aide des indicateurs [ OK ] verts et [ FAILED ] rouges). Pour rendre cette information plus accessible, nous avons rajouté une fonctionnalité à systemd qui surveille et enregistre pour chaque service s’il a démarré correctement, s’il s’est terminé avec un code de sortie différent de zéro ou s’il s’est terminé de façon anormale (par erreur de segmentation ou similaire). Et ceci non seulement au démarrage, mais aussi s’il a un problème par la suite. En tapant simplement systemctl dans votre terminal, vous pouvez interroger l’état de tous les services, tant systemd que SysV/LSB :

[root@lambda] ~# systemctl UNIT LOAD ACTIVE SUB JOB DESCRIPTION […] netfs.service loaded active exited LSB: Mount and unmount network filesystems. NetworkManager.service loaded active running Network Manager ntpd.service loaded maintenance maintenance Network Time Service polkitd.service loaded active running Policy Manager prefdm.service loaded active running Display Manager […] LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. JOB = Pending job for the unit. 221 units listed. Pass --all to see inactive units, too. [root@lambda] ~#

(J’ai un peu raccourci la sortie ci-dessus et supprimé quelques lignes sans intérêt pour cet article.)

Regardez la colonne ACTIVE. Elle vous montre l’état général d’un service (ou de n’importe quelle sorte d’unité que systemd maintient, qui peut être plus qu’un service — mais nous y jetterons un œil lors d’un futur article).
Il est soit actif (en cours d’exécution), soit inactif (arrêté), soit dans n’importe quel autre état. Si vous regardez attentivement, vous remarquerez un élément dans la liste étiqueté « maintenance » en rouge (NdT: malheureusement, pas de couleur sur Linuxfr !). Ce signalement vous informe qu’un service n’a pu s’exécuter ou a rencontré un problème. Dans le cas présent, il s’agit de ntpd. Regardons maintenant ce qui s’est passé avec ntpd avec la commande systemctl status :

[root@lambda] ~# systemctl status ntpd.service ntpd.service - Network Time Service Loaded: loaded (/etc/systemd/system/ntpd.service) Active: maintenance Main PID: 953 (code=exited, status=255) CGroup: name=systemd:/systemd-1/ntpd.service [root@lambda] ~#

La sortie nous montre que NTP s’est terminé brutalement (il avait alors le PID 953) et nous donne la condition d’erreur exacte : le processus s’est terminé avec le code de sortie 255.

Dans une prochaine version de systemd, nous avons l’intention de le relier à ABRT, dès que cette demande d’amélioration aura été honorée. Alors, lorsque systemctl status vous affichera les informations concernant un service qui aura planté, il vous redirigera directement sur la vidange de plantage (crash dump) adéquate dans ABRT.

Résumé : systemctl et systemctl status sont des remplaçants modernes et sont plus complets que les traditionnels messages d’état des services SysV au démarrage. systemctl status enregistre non seulement plus de détails, mais montre aussi les erreurs qui ont eu lieu après le démarrage.

Partie 2 : quels services possèdent quels processus ?

Sur la plupart des systèmes Linux, le nombre de processus en fonctionnement est important. Il est de plus en plus difficile de savoir quel processus fait quoi et d’où il vient. Certains ont même plusieurs processus de travail qui surchargent la sortie de ps avec beaucoup de processus additionnels souvent difficiles à reconnaitre. Ça se complique encore avec les démons qui lancent des processus tiers, comme Apache le fait avec les processus CGI ou cron avec les tâches utilisateurs.

Souvent, le seul demi-remède consiste à regarder l’arbre d’héritages des processus tel qu’il est donné par ps xaf, mais ce n’est généralement pas fiable. Les processus orphelins sont réassignés au PID 1 et par conséquent, toutes les informations d’héritage sont perdues. En faisant deux forks successifs, un processus peut perdre sa relation avec celui qui l’a lancé (c’est supposé être une fonctionnalité et cela repose sur le comportement traditionnel de création de démons sous UNIX). Par ailleurs, les processus peuvent à leur convenance changer leur nom grâce à PR_SETNAME ou en modifiant argv[0], rendant ainsi leur reconnaissance plus difficile. En fait, ils peuvent ainsi jouer à cache-cache avec l’administrateur assez aisément.

Avec systemd, nous plaçons chaque processus engendré dans un groupe de contrôle (cgroup) nommé d’après le service. Les groupes de contrôle, du point de vue le plus élémentaire, sont simplement des groupes de processus qui peuvent être classés hiérarchiquement et étiquetés individuellement. Quand des processus engendrent d’autres processus, ces enfants sont automatiquement membres du cgroup de leur parent. Quitter un cgroup n’est pas possible pour un processus sans privilèges. C’est pourquoi les cgroups peuvent être utilisés pour étiqueter tous les processus d’un service efficacement et indépendamment du nombre de forks ou de renommage. En allant plus loin, les cgroups peuvent être utilisés pour tuer proprement un service et tous les processus qu’il a créés, sans exception.

Dans le billet d’aujourd’hui, je veux vous présenter deux commandes permettant de faire le lien entre les services créés par systemd et les processus. La première est la commande bien connue ps qui a été mise à jour pour afficher les informations cgroup à côté des autres informations. Ça ressemble à ceci :

$ ps xawf -eo pid,user,cgroup,args PID USER CGROUP COMMAND 2 root - [kthreadd] 3 root - \_ [ksoftirqd/0] 4281 root - \_ [flush-8:0] 1 root name=systemd:/systemd-1 /sbin/init 455 root name=systemd:/systemd-1/sysinit.service /sbin/udevd -d 8188 root name=systemd:/systemd-1/sysinit.service \_ /sbin/udevd -d 8191 root name=systemd:/systemd-1/sysinit.service \_ /sbin/udevd -d 1131 root name=systemd:/systemd-1/auditd.service auditd 1133 root name=systemd:/systemd-1/auditd.service \_ /sbin/audispd 1171 root name=systemd:/systemd-1/NetworkManager.service /usr/sbin/NetworkManager --no-daemon 4028 root name=systemd:/systemd-1/NetworkManager.service \_ /sbin/dhclient -d -4 -sf /usr/libex[...] 1193 root name=systemd:/systemd-1/rsyslog.service /sbin/rsyslogd -c 4 1195 root name=systemd:/systemd-1/cups.service cupsd -C /etc/cups/cupsd.conf 1210 root name=systemd:/systemd-1/irqbalance.service irqbalance 1216 root name=systemd:/systemd-1/dbus.service /usr/sbin/modem-manager 1219 root name=systemd:/systemd-1/dbus.service /usr/libexec/polkit-1/polkitd 1332 root name=systemd:/systemd-1/getty@.service/tty2 /sbin/mingetty tty2 1339 root name=systemd:/systemd-1/getty@.service/tty3 /sbin/mingetty tty3 1344 root name=systemd:/systemd-1/crond.service crond 1362 root name=systemd:/systemd-1/sshd.service /usr/sbin/sshd 1376 root name=systemd:/systemd-1/prefdm.service /usr/sbin/gdm-binary -nodaemon 1391 root name=systemd:/systemd-1/prefdm.service \_ /usr/libexec/gdm-simple-slave --displa[...] 1394 root name=systemd:/systemd-1/prefdm.service \_ /usr/bin/Xorg :0 -nr -verb[...] 1495 root name=systemd:/user/lennart/1 \_ pam: gdm-password 1521 lennart name=systemd:/user/lennart/1 \_ gnome-session 1621 lennart name=systemd:/user/lennart/1 \_ metacity 1635 lennart name=systemd:/user/lennart/1 \_ gnome-panel 1638 lennart name=systemd:/user/lennart/1 \_ nautilus 1453 root name=systemd:/systemd-1/dbus.service /usr/libexec/upowerd 1473 rtkit name=systemd:/systemd-1/rtkit-daemon.service /usr/libexec/rtkit-daemon

(Notez que la sortie est un peu raccourcie. J’ai supprimé la plupart des tâches du noyau ici, car elles n’ont pas d’intérêt pour cet article.)

Dans la troisième colonne, vous pouvez voir le cgroup systemd assigné à chaque processus. Vous verrez que les processus udev sont rassemblés dans le cgroup name=systemd:/systemd-1/sysinit.service. C’est le cgroup utilisé pour tous les processus démarrés par le service sysinit.service, qui s’occupe du début du démarrage.

Je recommande personnellement de créer pour la commande ps ci-dessus l’alias suivant :

alias psc='ps xawf -eo pid,user,cgroup,args'

Avec ça, les informations sur les services des processus ne sont plus qu’à 4 touches de distance !

L’outil systemd-cgls fourni avec systemd est un autre moyen de présenter ces mêmes informations. Il affiche la hiérarchie des cgroups sous forme d’arbre. Sa sortie ressemble à ceci :

$ systemd-cgls + 2 [kthreadd] [...] + 4281 [flush-8:0] + user | \ lennart | \ 1 | + 1495 pam: gdm-password | + 1521 gnome-session | + 1621 metacity | + 1635 gnome-panel | + 1638 nautilus | \ 29519 systemd-cgls \ systemd-1 + 1 /sbin/init + rtkit-daemon.service | \ 1473 /usr/libexec/rtkit-daemon + prefdm.service | + 1376 /usr/sbin/gdm-binary -nodaemon | + 1391 /usr/libexec/gdm-simple-slave --disp[...] | \ 1394 /usr/bin/Xorg :0 -nr -verbose -auth [...] + getty@.service | + tty3 | | \ 1339 /sbin/mingetty tty3 | \ tty2 | \ 1332 /sbin/mingetty tty2 + crond.service | \ 1344 crond + sshd.service | \ 1362 /usr/sbin/sshd + irqbalance.service | \ 1210 irqbalance + NetworkManager.service | + 1171 /usr/sbin/NetworkManager --no-daemon | \ 4028 /sbin/dhclient -d -4 -sf /usr/libexe[...] + rsyslog.service | \ 1193 /sbin/rsyslogd -c 4 + cups.service | \ 1195 cupsd -C /etc/cups/cupsd.conf + auditd.service | + 1131 auditd | \ 1133 /sbin/audispd | \ 1135 /usr/sbin/sedispatch \ dbus.service + 1216 /usr/sbin/modem-manager \ 1219 /usr/libexec/polkit-1/polkitd

(Cette sortie est également raccourcie.)

Comme vous pouvez le constater, cette commande montre les processus par leur cgroup et ainsi leur service, car systemd nomme les cgroups d’après les services. Par exemple, vous pouvez facilement voir que le service d’audit auditd.service lance trois processus indépendants, auditd, audisp et sedispatch.

Si vous y regardez de plus près, vous remarquerez que plusieurs processus ont été assignés au cgroups /user/1. Pour le moment, restons en là : systemd non seulement maintient des services dans les cgroups, mais aussi les processus de session utilisateur. Dans le prochain épisode, nous parlerons plus en détail de ce sujet.

C’est tout pour aujourd’hui ! La suite au prochain épisode !

Télécharger ce contenu au format Epub

Lire les commentaires

Fermeture du site Fotopedia

1 août, 2014 - 14:56

Le site Fotopedia a annoncé sa prochaine fermeture le 10 août 2014. J'ignorais son existence jusqu'ici, mais ayant vu passer l'information, j'ai eu la curiosité d'en lire un peu plus à leur sujet : ~26000e site le plus fréquenté au monde (source Alexa), il a été lancé en 2009 par 5 anciens d'Apple et permet d'écrire des articles autour de photos, avec des infos en provenance de Wikipédia et Google Maps. Et le site utilise des licences Creative Commons, permettant à certaines photos d'être réutilisées dans l'encyclopédie collaborative. Le PDG de l'organisation Creative Commons de 2006 à 2012, Joi Ito, était d'ailleurs dans leur conseil d'administration.

Ce site à service gratuit ferme car il n'a cependant pas trouvé de modèle économique viable, selon ses fondateurs.

Je n'ai pas trouvé d'info sur le nombre de photos disponibles, ni sur les différentes licences utilisées (hormis les données anciennes de 2011 dans Wikipédia évoquant 51000 pages et plus de 755000 photos).

Bref au 10 août, toutes les données seront perdues, donc si vous vous voulez préserver des photos sous licence libre, c'est le moment.

Télécharger ce contenu au format Epub

Lire les commentaires

Ryzom libère l'intégralité de ses artworks !

29 juillet, 2014 - 23:03

Après avoir libéré son moteur de jeu en 2009, le MMORPG Ryzom, jouable sous Windows, GNU/Linux et Mac, vient de faire un pas de plus vers le monde du Libre en passant toutes ses illustrations originales - soit 1916 artworks - sous licence CC-by-SA.

L'ensemble des œuvres (soit presque 2000 illustrations originales sous licence CC-by-SA) est consultable pour la première fois sur la page Flickr de Ryzom.

Au-delà de la libération de ces Artworks, leur publication elle-même réjouit la communauté des joueurs et promet d'être une mine précieuse pour le projet libre Ryzom Forge, qui travaille à enrichir Ryzom de nouvelles créations.

Gageons que ces illustrations seront une source d'inspiration pour la production de nouveaux contenus !

Télécharger ce contenu au format Epub

Lire les commentaires

Facette, outil de visualisation de séries numériques

29 juillet, 2014 - 12:01

Facette est un nouvel outil libre sous licence BSD permettant de réaliser des graphiques à partir de métriques collectées et stockées par divers outils tels que collectd, Graphite, InfluxDB. Cette alternative aux autres logiciels de visualisation permet de présenter sur les mêmes graphiques des séries de données numériques provenant de sources hétérogènes.

Facette est une application web développée en Go, par conséquent très facile à déployer et peu coûteuse en ressources système. L'interface web a été pensée pour permettre une utilisation simple et intuitive, et esthétiquement agréable — ce qui n'est pas toujours le cas des alternatives dans ce domaine ;-) Pour aller plus loin, le logiciel met également à disposition une API RESTful permettant par exemple de se servir de Facette "juste" pour fédérer plusieurs sources de données hétérogènes, ou encore d'automatiser certaines actions au niveau du catalogue interne.

Cette application ne fait pas de collecte ni de stockage de métriques : elle se contente d'interroger les sources des outils déjà mis en place afin de récupérer et afficher les données dans une interface unifiée.

Le projet est encore très jeune, toutefois l'équipe est très motivée à pousser l'outil très loin et a d'ores et déjà beaucoup d'idées pour la suite.

Télécharger ce contenu au format Epub

Lire les commentaires

Revue de presse de l'April pour la semaine 30 de l'année 2014

29 juillet, 2014 - 01:02

La revue de presse de l'April est régulièrement éditée par les membres de l'association. Elle couvre l'actualité de la presse en ligne, liée au logiciel libre. Il s'agit donc d'une sélection d'articles de presse et non de prises de position de l'association de promotion et de défense du logiciel libre.

Sommaire

[Next INpact] Le Royaume-Uni impose des standards ouverts à ses administrations

Par Xavier Berne, le vendredi 25 juillet 2014. Extrait:

Alors que la publication des déclarations d’intérêts des parlementaires a donné lieu hier à de nombreuses critiques, étant donné que les plus de 900 fichiers ainsi mis en ligne se sont avérés être des versions scannées de formulaires remplis au stylo, le gouvernement britannique semble avoir un train d’avance sur les pouvoirs publics français. Mardi, les services du 10 Downing Street ont en effet annoncé que deux types de standards ouverts seraient désormais imposés à toutes les administrations du pays dès lors qu’il serait question de documents publics.

Lien vers l'article original: http://www.nextinpact.com/news/88863-le-royaume-uni-impose-standards-ouverts-a-ses-administrations.htm

Voir aussi:

[JDN] Comment se repérer dans la jungle des licences open source

Par Alain Clapaud, le jeudi 24 juillet 2014. Extrait:

N'est pas logiciel libre ou open source qui veut. Pour éviter le droit d'auteur classique, il faut choisir une licence. Pas si simple: il en existe pléthore avec des nuances subtiles.

Lien vers l'article original: http://www.journaldunet.com/solutions/dsi/comparatif-des-licences-open-source.shtml

[Mediapart] Profil de libriste: Goffi

Par André Ani, le jeudi 24 juillet 2014. Extrait:

Je m’appelle Jérôme Poisson, aussi connu sous le pseudonyme «Goffi», développeur et voyageur à mes heures, j’ai plusieurs centres d’intérêts, dont la politique. Difficile d’en dire plus: je préfère nettement une rencontre autour d’une bonne bière qu’une autobiographie

Lien vers l'article original: http://blogs.mediapart.fr/blog/andre-ani/240714/profil-de-libriste-goffi

[Next INpact] La distribution Tails, spécialisée dans l'anonymat, comporte des failles 0-day

Par Vincent Hermann, le jeudi 24 juillet 2014. Extrait:

La distribution Tails Linux, axée sur la sécurité, contiendrait plusieurs failles de sécurité 0-day qui exposeraient les données de l’utilisateur. Un vrai problème pour le chercheur Loc Nguyen, qui a fait la découverte, puisque ce système se veut justement nettement plus sécurisé que la moyenne.

Lien vers l'article original: http://www.nextinpact.com/news/88877-la-distribution-tails-specialisee-dans-anonymat-comporte-failles-0-day.htm

[ZDNet] Alliage, solution aquitaine en logiciels libres pour personnes âgées

Par Thierry Noisette, le mercredi 23 juillet 2014. Extrait:

Portée par le pôle Aquinetic, la solution Alliage a été développée et expérimentée pendant deux ans. Objectif: améliorer la qualité de vie à domicile des personnes âgées. Une cinquantaine de seniors l'ont testée pendant plusieurs mois.

Lien vers l'article original: http://www.zdnet.fr/actualites/alliage-solution-aquitaine-en-logiciels-libres-pour-personnes-agees-39804191.htm

Et aussi:

Télécharger ce contenu au format Epub

Lire les commentaires

Ascension de la bureautique libre en Europe de l'ouest

28 juillet, 2014 - 22:01

Ces derniers jours, ont été annoncées plusieurs bonnes nouvelles concernant l'utilisation des logiciels libres de bureautique au Royaume-Uni, en France et en Espagne. En France, c'est Toulouse Métropole qui est passé à LibreOffice sur environ 9000 postes. La migration a pris un an et demi et l'économie réalisée (par rapport au coût de la suite bureautique propriétaire) est estimé à un million d'euros sur trois ans.

Au Royaume-Uni, le UK cabinet office a adopté le format ODF (Open Document Format for Office Applications) pour le partage des documents au sein du gouvernement et des institutions publiques. D'autres formats ouverts comme le PDF et le HTML sont également approuvés. En cassant la dépendance avec les formats propriétaires et les logiciels du même acabit, le Bureau du cabinet estime que les économies réalisées seront de l'ordre de 1,2 milliards de livres sterling.

En Espagne, la communauté autonome de Valence confirme ses choix technologiques en publiant une distribution Linux (dérivée d'Edubuntu) qui a été déployée sur plus de 100 000 ordinateurs dans les écoles. Et dans le secteur administratif, LibreOffice est utilisé sur 120 000 postes depuis l'année dernière.

Télécharger ce contenu au format Epub

Lire les commentaires

Simplification des démarches administratives : appel à voter

28 juillet, 2014 - 14:20

Un précédent article a signalé la possibilité jusqu'au 15 septembre 2014 de proposer des idées pour simplifier les démarches administratives en France. Le nombre de propositions grandit et il est important maintenant de voter pour donner de l'importance aux sujets qui concernent la communauté du Libre.

Plusieurs propositions favorables (notamment) au Libre ont été retenues, avec difficulté, le système de modération étant difficile à comprendre et ne justifiant pas ses refus (robot ?). Mais face à votre mobilisation, certaines sont passées, par exemple :

Il y en a certainement d'autres à trouver, ce serait intéressant de les signaler ici ou sur le pad de la FSFE afin de savoir pour lesquelles voter et/ou apporter des propositions constructives en commentaires.

Dans les propositions faites et à faire, il y a beaucoup de sujets d'actualité : sécurité, respect de la vie privée (fichier médical centralisé, carte d'identité fusionnée avec d'autres papiers etc.), formation des utilisateurs à l'informatique, informatisation de toutes les démarches, etc…

Centraliser toutes les données privées, faciliter les recoupements, augmenter les dégâts en cas de piratage des serveurs (ça arrive souvent, si, si) vont poser beaucoup de problèmes techniques, politiques, juridiques. Quelles seront les suites données à ces propositions, votes et commentaires ? Est-ce que les associations libristes, la CNIL, les juristes seront aussi consultés ? En général, un tel débat public sert ensuite politiquement à justifier les changements et quelques passages en force. Aussi, vous êtes invités dès à présent à vous exprimer, à voter, à continuer à faire des propositions, à commenter les propositions existantes. Difficile de savoir si c'est la bonne stratégie (le robot qui refuse les propositions n'est déjà pas un bon signe d'ouverture du dialogue) mais dans le doute, il vaut mieux s'exprimer. Quoique parfois, le refus du débat public est aussi une bonne stratégie, comme cela s'est passé à Bure (ville française ayant un laboratoire de recherches sur le stockage des déchets radioactifs en couche géologique profonde).

Télécharger ce contenu au format Epub

Lire les commentaires

Tails 1.1 est disponible

26 juillet, 2014 - 15:32

La distribution Tails (The Amnesic Incognito Live System) est un live-CD/live-USB visant à protéger votre anonymat et votre vie privée quand vous vous connectez à Internet.
La sortie de la version 1.1 a été annoncée le 22 juillet dernier par l'équipe de développement.

Sommaire

Depuis la dernière dépêche LinuxFR annonçant la sortie de la version 0.20 il y a un peu moins d'un an, la distribution Tails a continué son évolution. La version 1.0 était auparavant sortie le 29 avril dernier. C'était une version de stabilisation et de corrections de bogues/failles de sécurité sans nouveautés majeures.

Tout comme Tor qui a vu son nombre de téléchargements exploser depuis les révélations d'Edward Snowden, le projecteur s'est braqué sur Tails lorsque Bruce Schneier, cryptologue ayant travaillé en collaboration avec des journalistes du Guardian, a indiqué qu'il utilisait Tails pour travailler sur les documents de Snowden.
Pour rappel, si vous avez cliqué sur un lien ci-dessus, vous êtes probablement maintenant considéré comme un « extrémiste » potentiel par la National Security Agency.

La version 1.1 apporte davantage de nouveautés. Tout d'abord, Tails 1.1 est maintenant basé sur Debian 7 « Wheezy » ce qui a conduit à la régénération de milliers de paquets, la migration vers le mode « fallback » de GNOME 3 ainsi que le remplacement d'OpenOffice par LibreOffice.

Changement majeurs

Cette nouvelle version prend maintenant en charge l'UEFI (Unified Extensible Firmware Interface) ce qui devrait permettre à Tails de se lancer sur les ordinateurs récents ainsi que sur Mac.
Le « camouflage » Windows XP a été remplacé par un « camouflage » Windows 8.

Les modules « guest » de VirtualBox ont été importés depuis les rétroportages (« backports ») de Wheezy. L'ensemble des fonctionnalités ne sont disponibles qu'avec le noyau 32 bits.

Autres changements Correctifs de sécurité

Les logiciels embarqués dans Tails ont été mis à jour ce qui leur permet de profiter des derniers correctifs de sécurité. Le noyau Linux est ainsi présent en version 3.14.13-1, le navigateur web maison s'appuie sur la version 24.7.0 ESR de firefox, les paquets libav sont présents en version 0.8.13 (corrigeant CVE-2014-4609), libxml2 en version 2.8.0 (corrigeant CVE-2014-0191) et dbus en version 1.6.8 (corrigeant CVE-2014-3477, CVE-2014-3532 et CVE-2014-3533), …
Par ailleurs, il n'est maintenant plus possible à l'utilisateur du bureau de passer des arguments à tails-upgrade-frontend, les permissions persistantes sur les fichiers ont été rendues plus sûres, le « handler » du protocole proxy:// de FoxyProxy a été désactivé.

Améliations et modifications mineures

systemd fait son apparition dans Tails. Cependant il n'est pas activé par défaut ; sa présence actuelle facilitera la travail d'intégration pour les futures versions. Python 2.6 n'est plus présent en parallèle de la version 2.7 ; seahorse-nautilus remplace seahorse-plugins, la version stable de scribus remplace scribus-ng ; la version 0.4 de Gobby a laissée la place à la version 0.5 ; le nouveau logo de Tails a été intégré à l'installateur.

Le message « Not enough memory available to check for upgrades » qui pouvait apparaitre lors d'une mise à jour devrait moins apparaitre du fait qu'un peu moins de mémoire est maintenant nécessaire pour lancer ce processus.

La résolution de la fenêtre d'aide du Tails Greeter prend maintenant en compte la résolution de l'écran ce qui devrait arranger les petites résolutions (précédemment la résolution était fixée 800x600).

Whisperback est un logiciel permettant de rapporter des bogues de manière anonyme depuis Tails. La nouvelle version supprime plus proprement les fichiers de log attachés au niveau des données DMI, des adresses IPv6 et des numéros de série.

L'installateur reçoit aussi diverses améliorations (marges cohérentes dans l'interface graphique, installation du chargeur d'amorçage (bootloader) à partir du binaire syslinux présent sur le support cible, …)

Attendre une version corrective

Cette version présenterait plusieurs failles critiques de type 0-day si l'on en croit Exodus Intelligence, une société chargée de détecter les failles logicielles pour ensuite revendre ce genre d'information. La société a posté un message sur Twitter le jour de la sortie de Tails 1.1 pour indiquer que toutes les failles qu'ils avaient repérées étaient toujours présentes.

La société a cependant indiqué qu'elle ne comptait pas divulguer ces informations et qu'elle transmettrait un rapport sur ces failles aux développeurs de Tails afin qu'elles soient corrigées. L'équipe de Tails a confirmé avoir été contactée par Exodus Intelligence en ce sens.

Une version corrective de la distribution devrait donc rapidement faire son apparition dans les semaines qui arrivent.

Et pour la suite ?

D'après l'annonce qui a été faite au moment de la sortie de Tails 1.0, voici ce que l'on peut attendre pour les futures version majeures de la distribution.

Tails 2.0 se focalisera sur la soutenabilité et la maintenabilité. Une grande part du travail consiste à réduire la charge de travail demandée par la création de nouvelles versions de Tails grâce à l'amélioration de l'infrastructure et à l'automatisation des tests. L'objectif est d'être capable de sortir des mises à jour de sécurité le jour même.

Tails 3.0 se focalisera sur les changements internes de Tails pour le rendre plus sécurisé. Cela comprendra un sandboxing (compartimentage) des applications critiques et un durcissement des logiciels.

Télécharger ce contenu au format Epub

Lire les commentaires

Sortie de LemonLDAP::NG 1.4

26 juillet, 2014 - 06:25

LemonLDAP::NG est un logiciel libre de SSO, de gestion des accès et de fédération des identités. Il est publié sous licence GPL. Il est développé par la Gendarmerie Nationale et la société Linagora.

Il implémente de nombreux protocoles standards, tels que Central Authentication Service, OpenID et SAML.

La version 1.4 est sortie fin juin. Cette dépêche présente les principales nouveautés de cette version.

Thème graphique

Un nouveau thème graphique basé sur Bootstrap est disponible. Ce thème est adaptatif (responsive), il permet donc d'utiliser le SSO depuis tout type de périphérique (téléphone, tablette, poste de travail).

De nombreux thèmes sont disponibles sur Internet permettant de changer l’apparence d'un site utilisant Bootstrap, facilitant ainsi la personnalisation de l'interface Web de LemonLDAP::NG.

Création de compte

LemonLDAP::NG propose plusieurs libre-services (self service), en particulier la possibilité de réinitialiser son mot de passe lorsqu'il a été perdu. La nouvelle version propose désormais dans le même esprit de pouvoir créer un compte si l'on n'en possède pas.

La démarche est simple, calquée sur la plupart des services similaires proposés par des sites en ligne :
1. L'utilisateur remplit un formulaire avec nom, prénom et adresse mail
2. Il reçoit un message avec un lien sur lequel cliquer
3. Après avoir cliqué, il reçoit un message lui confirmant la création de son compte, avec ses informations de connexion

Bien entendu cette fonctionnalité a peu d'intérêt en entreprise, où les utilisateurs sont déclarés dans un annuaire central et ne peuvent choisir de s'inscrire ou non au service. Toutefois cela offre désormais la possibilité de proposer plusieurs services en ligne protégés par LemonLDAP::NG, permettant à un nouvel utilisateur de s'inscrire s'il ne possède pas de compte.

Utilisation de Mouse

Mouse est un module Perl permettant une manipulation haut niveau des objets. Ce module est utilisé dans la nouvelle version de LemonLDAP::NG, ce qui a entraîné beaucoup de réécriture de code, avec un objectif de meilleure maintenabilité.

Ces changements sont visibles essentiellement des développeurs, mais ils ont tout de même permis quelques améliorations :
- gestion unifiée du cache des sessions, pour tous les types de session (SSO, CAS, SAML, etc.) ;
- centralisation des valeurs par défaut des attributs de configuration ;
- simplification des appels au Handler dans la configuration Apache ;
- support des captcha en cluster ;

Génération des identifiants

C'est le principe du SSO : l'accès aux différentes applications est possible à l'aide d'un jeton, en l'occurrence pour LemonLDAP::NG une clé de session stockée dans un cookie.

Par défaut, les identifiants de session sont générés en MD5 avec une taille de 32 caractères. Cela peut poser des problèmes de sécurité, en particulier si un attaquant tente de découvrir un identifiant de session par force brute. Ce n'est pas spécifique au SSO, ce type d'attaque est possible sur toute application utilisant un cookie de session. Toutefois dans le cas du SSO, la découverte de la session permet l'accès à toutes les applications protégées.

La nouvelle version de LemonLDAP::NG permet de choisir son propre module de génération d'identifiant de session, et propose un module basé sur SHA, créant des clés sur 64 caractères.

SAML

Le mode SSO initié par le fournisseur d'identité (SSO IDP initiated) est désormais disponible. Il permet de générer des URLs sur le portail LemonLDAP::NG (agissant comme IDP SAML) qui transmettent directement une réponse SAML à un fournisseur de service (SP).

Cela permet une authentification en deux étapes (authentification sur l'IDP puis accès au SP) au lieu des trois étapes du processus standard (accès au SP, authentification sur l'IDP puis retour sur le SP).

La nouvelle version de LemonLDAP::NG permet également une configuration plus fine des dates utilisées dans les messages SAML (durée de validité des assertions et des sessions).

Nginx

Depuis ses origines (il y a plus de 10 ans), LemonLDAP::NG a été conçu pour fonctionner avec Apache. Le support de Nginx étant une demande de plus en plus forte, l'équipe de développement a planché sur le sujet.

Une première implémentation du Handler en LUA a été publiée. Cette implémentation ne permet pas de couvrir 100% des fonctionnalités offertes par le Handler standard (gestion des expressions régulières, de l'interception des déconnexion, etc.), c'est toutefois une bonne base de départ pour protéger l'accès à une application derrière Nginx.

Des travaux sont encore en cours sur un Handler Perl pour Nginx, pour l'instant freinés par les manques de l'API Perl de Nginx. Les discussions entre les communautés sont en cours (et toute aide est la bienvenue sur le sujet).

Télécharger ce contenu au format Epub

Lire les commentaires

Crux 3.1: une distribution KISS à la saveur BSD

25 juillet, 2014 - 12:44

Crux est disponible dans sa version 3.1 depuis le 16 juillet dernier. Cette distribution, qui a été la principale source d'inspiration à la création d'Arch Linux, suit le principe KISS (keep it simple), dispose d'un système d'init à la BSD ainsi que d'un système de [ports]. C'est une distribution légère ciblant l'architecture x86-64 et des utilisateurs Linux avancés.

Crux, dont la première version date de décembre 2002, n'est basée sur aucune autre distribution et possède ses propres outils pour, par exemple, la gestion des paquets et ports.

Plus d'informations se trouvent dans la suite de la dépêche.

Sommaire Scripts d'initialisation

Les utilisateurs de systèmes *BSD ne devraient pas être trop dépaysés par Crux. En effet, point de systemd ici mais un système d'init à la BSD.

Le système comporte plusieurs runlevels, tels que définis dans /etc/inittab:

  • 0: halt
  • 1: mode utilisateur unique
  • 2: mode multi-utilisateur
  • 3-5: non utilisés
  • 6: reboot

Le script de démarrage système est défini dans /etc/rc alors que celui pour l'extinction se trouve dans /etc/rc.shutdown et l'initialisation des modules passe par /etc/rc.modules. Le script pour le mode utilisateur unique dans /etc/rc.single, pour le mode multi-utilisateur dans /etc/rc.multi.

La configuration de base du système se fait via /etc/rc.conf et les scripts des services, par exemple sshd, se trouve dans /etc/rc.d.

Ports et paquets

Le système de paquets utilise des simples tarballs tar.gz, sans métadonnées. Cependant, l'extension .pkg.tar.gz est utilisée afin de permettre de différencier un paquet d'un simple tarball. Les paquets peuvent également être compressés avec bzip2 ou encore xz et dans ce cas là, l'extension est changée en accord (.pkg.tar.bz2 et .pkg.tar.xz).

Les paquets s'installent et se mettent à jour via pkgadd(8), se désinstallent via pkgrm(8) et peuvent se créer via pkgmk(8) tandis que pkginfo(8) permet l'obtention d'informations sur les paquets.

Ce système de paquets simple ne supporte pas, par exemple, la résolution des dépendances. En revanche, un front-end, prt-get(8), est fourni avec le système et permet notamment la résolution des dépendances.

Crux comprend également un système de ports que l'on peut trouver dans /usr/ports. Un port comprend les fichiers Pkgfile, .md5sum et .footprint. Le Pkgfile est en réalité un script shell spécial qui permet la création d'un paquet, un peu à la manière d'un PKGBUILD chez Arch Linux. Un exemple valant mieux que mille mots:
```

Description: Compression utility using the lzma algorithm, successor of lzma-utils URL: http://tukaani.org/xz/ Maintainer: CRUX System Team, core-ports at crux dot nu

name=xz
version=5.0.5
release=1
source=(http://tukaani.org/xz/$name-$version.tar.bz2)

build() {
cd $name-$version
./configure --prefix=/usr \
--mandir=/usr/man \
--disable-nls
make
make DESTDIR=$PKG install

ln -s liblzma.so.$version $PKG/usr/lib/liblzma.so.0 rm -r $PKG/usr/share

}
``Le fichier.md5sumsert donc à stocker la somme md5 du (des) tarball(s) nécessaire(s) à la création du paquet tandis que le fichier.footprint` contient la liste des fichiers et dossiers créés par le port. Évidemment, si des patches ou fichiers de configuration sont nécessaires, ils prendront également leur place dans le dossier du port en question.

Il faut noter que les paquets sont réduits au strict minimum. Ainsi, les fichiers de traduction ne sont pas installés, de même que les fichiers de documentation tels des README, fichiers *.info ou *.html, etc. Seules les pages de manuels sont conservées comme documentation.

L'arbre des ports se synchronise via l'utilitaire ports(8). Ainsi, une mise à jour de son système peut être réalisée simplement via un ports -u && prt-get sysup.

Le noyau Linux est une exception. En effet, il n'existe pas de port pour le noyau Linux. Les sources du noyau se trouvent par défaut dans /usr/src. Par exemple, la version 3.1 de Crux fournit les sources du noyau Linux 3.12 dans /usr/src/linux-3.12.24. L'installation du noyau passe donc par un procédé standard:

$ cd /usr/src/linux-3.12.24
$ make menuconfig
$ make all
$ make modules_install
$ cp arch/x86/boot/bzImage /boot/vmlinuz
$ cp System.map /boot

Pour une mise à jour du noyau, il suffit donc de télécharger les sources depuis kernel.org, de copier le fichier de configuration du noyau et de lancer un make oldconfig suivi d'un make all && make modules_install && make install.

Étant donné que le noyau n'est pas géré par pkgadd(8), il est tout à fait possible de télécharger et installer le noyau de son choix sans rendre la base de données des paquets inconsistante. Par ailleurs, cela n'affecte pas non plus les headers kernel qui se trouvent dans /usr/include/linux et /usr/include/asm étant donné que ceux-ci ne sont pas des liens symboliques vers les sources du kernel mais contiennent une copie des headers.

Installation

Concernant l'installation, point de GUI ou de superflu. Le média d'installation est une image ISO hybride pouvant autant être gravée sur un CD-ROM qu'utilisée pour créer une clé USB amorçable. Une fois démarré sur le média d'installation, l'utilisateur se trouve connecté en tant que root et peut donc procéder à l'installation du système.

Le partitionnement se fait généralement via fdisk(8) suivit d'un mkfs(8). Une fois cela fait, il faut monter la (ou les) partition(s) nouvellement créée(s), par exemple dans /mnt et lancer la commande setup. Cette dernière permet d'installer les paquets nécessaires au système, notamment les paquets de core. Une fois cela effectué, il faut créer un chroot pour finir la configuration de son système. Cela peut se faire de manière traditionnelle mais la commande setup-chroot permet d'automatiser le processus. Une fois dans le chroot, l'utilisateur doit donc définir un mot de passe pour le super-utilisateur, éditer /etc/fstab afin de configurer les systèmes de fichiers, éditer /etc/rc.conf pour configurer le système de base tel que la timezone, le layout du clavier ou encore le hostname et les services à lancer au démarrage. La configuration du réseau passe par l'édition des fichiers /etc/rc.d/net, /etc/hosts et /etc/resolv.conf.
Une fois ceci fait, il est nécessaire de configurer et installer son kernel, tels que décrit dans la section précédente. À noter qu'un fichier .config générique est fourni de base pour simplifier le processus.
Le gestionnaire de démarrage de base par défaut est lilo. Pour autant que l'utilisateur le choisisse, il doit passer par l'édition de /etc/lilo.conf afin de rendre son système démarrable.

Changements dans la version 3.1

La toolchain utilise glibc 2.19.0, gcc 4.8.3 et binutils 2.24.

Le kernel par défaut est le kernel à support à long terme 3.12.24. À noter que depuis la disponibilité de Crux 3.1, la version 3.12.25 est disponible et une mise-à-jour du noyau est donc conseillée.

À noter également que udev a disparu au profit de eudev.

Les détails peuvent se trouver dans les notes de mise à jour ainsi que dans le changelog.

Télécharger ce contenu au format Epub

Lire les commentaires

[Livre] Un panel de solutions informatiques libres pour les TPE

25 juillet, 2014 - 08:45

Le 17 juin dernier est sorti en librairie et sur le Web le livre « Solutions informatiques pour les TPE… avec des logiciels libres » aux éditions D-BookeR (qui d'ailleurs travaille avec des logiciels libres comme DocBook et GNU/Linux comme système). Ce manuel propose des solutions à base de logiciels libres pour tous les problèmes que se posent un gérant de petite entreprise afin de mener à bien son activité.

Sous la direction de Philippe Scoffoni aidé de Sébastien Mirate et moi-même, ainsi que Sandrine Monllor pour ses précieuses relectures, il aborde les thèmes suivants :

  • quels logiciels choisir ? introduction sur le logiciel libre et l'importance des formats ouverts ;
  • communiquer avec les autres ;
  • s'organiser ;
  • travailler en équipe ;
  • créer son image de marque ;
  • administrer sa société ;
  • gérer ses données.

Le livre existe donc en version papier, mais aussi électronique. Il ne s'agit pas d'un simple PDF identique à l'imprimé, mais d'un véritable livre électronique enrichi par des vidéos. À noter que les possesseurs de la version papier peuvent visionner facilement chaque vidéo grâce à des QR-codes insérés dans le livre.

Les vidéos sont visibles sur la chaîne Youtube de D-BookeR. Enfin, un site compagnon. accompagne le livre.

Télécharger ce contenu au format Epub

Lire les commentaires

Movim: Appel à soutien

24 juillet, 2014 - 09:05

Ce billet fait suite à la demande de soutien de Timothée Jaussoin sur sa page personnelle: http://edhelas.movim.eu/blog/?post/2014/07/16/Movim-%C3%A0-besoin-d-aide

D'autres billets devraient suivre pour décrire ce qu'il se passe autour de Movim avec notamment les fonctionnalités, une levée de fond sur Kickstarter et bien sûr les dernières nouveautés.

Présentation du projet

Movim pour ceux qui ne connaissent pas, est une application web de réseau social décentralisé, sous licence AGPL, qui se base sur le protocole XMPP, standard de communication déjà largement utilisé.
Le projet est en grande partie développé en PHP, l'interface reposant sur les technologies HTML5.

Movim est compatible avec les bases de données MySQL et PostgreSQL. L'architecture du projet repose sur un système de modules (appelés widgets) lui permettant d'être facilement extensible et modifiable.

Plusieurs dépêches à propos de Movim étaient déjà sorties sur LinuxFr.org. Dont une en particulier qui décrit un peu plus le projet et montre comment installer son propre réseau social avec le couple Movim/Metronome.

XMPP est surtout connu pour ses fonctions de messagerie instantanée, mais sa nature extensible lui permet aujourd'hui d'offrir bien plus que ça. L'extension [Pubsub] permet, par exemple, de mettre en place un puissant système de flux de publication avec la gestion des droits, des abonnements et de la configuration.
L'utilisation de tels services permet dans le cas de Movim de mettre en place un réel réseau social sur lequel vous pouvez poster vos messages, liens et images tout en voyant ceux postés par les personnes que vous suivez.
Movim implémente également le protocole [Jingle] permettant d'établir une connexion multimédia (de type VoIp) entre deux clients web (à l'aide de la technologie [WebRTC]).

Plus généralement Movim possède toutes les fonctionnalités d'un réseau social :

  • personnalisation de son profil ;
  • gestion des contacts ;
  • ajouts d'images dans une galerie personnelle ;
  • rédaction de billets avec possibilité d'ajout de liens et d'images ;
  • lecture des billets des contacts ;
  • chat avec un contact ou un groupe de contacts ;
  • audio et vidéo-conférence ;
  • respect de la norme Atom pour le format de publication des billets ;

Un autre point fort de l'application est la possibilité donnée à chacun d'installer sa propre instance Movim sur son serveur, conjointement à un serveur Jabber, ou non. Réunir les deux serveurs sur la même machine offre alors l'opportunité de conserver l'ensemble des informations de l'utilisateur sur le même hôte.

Aujourd'hui, Movim est sur le point de sortir la version 0.8. Celle-ci étant une grande étape pour l'application puisque c'est la première version que l'on peut considérer comme pleinement utilisable par le grand public. Le cœur du projet a été entièrement réécrit permettant l'ajout de nombreuses nouvelles fonctionnalités. Pour plus de détails, je vous invite à visiter le site officiel du projet ou d'attendre le prochain billet.

Besoin de soutien

Depuis 2008, Movim est développé par son créateur, Timothée Jaussoin, pseudo edhelas, avec l'aide de sa petite amie. Il est aidé par de nombreux traducteurs à travers le monde qui ont abattu un travail déjà conséquent. Sur la partie développement, Timothée est relativement seul malgré les contributions ponctuelles qui ont pu l'aider jusqu'ici.

Movim cherche donc des développeurs motivés par un logiciel libre, passionnant et avec un but simple : construire et rendre universel les méthodes de communications sociales actuelles. Tous les niveaux et compétences sont les bienvenues et plus il y aura de personnes investies, d'échanges et d'idées, et plus le projet Movim pourra grandir.

Movim est un projet libre, qui se base sur un protocole ouvert et qui a pour seul but de fournir au monde un outil de communication efficace qui se détache des solutions fermées, propriétaires et intrusives, de Facebook ou Google.
Si vous êtes donc motivé et prêt à vous investir dans un projet innovant et unique en son genre, n'hésitez pas à vous manifester. Les contributeurs seront ravis de vous expliquer les différents rouages de l'application et d'écouter vos idées et suggestions.

Pour contacter Timothée et les quelques autres contributeurs, rendez-vous la page du projet :D

Télécharger ce contenu au format Epub

Lire les commentaires

Améliorer la disponibilité de ses services

23 juillet, 2014 - 13:11

Votre aventure d'hébergeur amateur prend de l'ampleur. Depuis quelques mois, vous avez réussi à gérer plusieurs services de façon transparente, mais maintenant que vous avez de plus en plus d'utilisateurs de vos services, vous vous rendez compte que votre unique serveur web est surchargé et que chaque maintenance provoque des coupures de service que ne comprennent pas vos visiteurs.

Afin de répondre à cette problématique, le plus simple est de multiplier les serveurs : la charge sera répartie entre les différents serveurs et vous pourrez couper un serveur pour une maintenance, sans couper le service associé.

    Sommaire Étape 1 : digérer quelques concepts

    Afin de simplifier les explications et de coller à ce qui est probablement votre cas d'usage, nous considérerons dans ce tutoriel que nous travaillons dans une infrastructure totalement IPv4.

    Répartition de charge

    La répartition de charge « est un ensemble de techniques permettant de distribuer une charge de travail entre différents ordinateurs d'un groupe. Ces techniques permettent à la fois de répondre à une charge trop importante d'un service en la répartissant sur plusieurs serveurs, et de réduire l'indisponibilité potentielle de ce service que pourrait provoquer la panne logicielle ou matérielle d'un unique serveur »1 . On distingue deux grands types de répartition de charge :

    • la répartition parallèle (« actif / actif ») : plusieurs serveurs offrent de façon simultanée le service, le répartiteur de charge peut envoyer une requête indifféremment à chaque serveur ;

    • la répartition séquentielle (« actif / passif ») : plusieurs serveurs sont capables de rendre le service, mais le répartiteur de charge n'envoie des requêtes qu'à un seul d'entre eux ; l'envoi de requête à un autre serveur ne sera fait que si le serveur nominal n'est plus en mesure de prendre en compte les requêtes.

    Le mode séquentiel ne permet pas de répartir la charge de travail à proprement parler puisque seul un serveur rend le service à la fois, en revanche cela répond bien au besoin de ne pas interrompre le service en cas de coupure d'un serveur.

    Adresse IP virtuelle

    Une adresse IP virtuelle (parfois appelée « vIP » ou « serveur virtuel », même si l'usage de ce dernier terme est tombé en désuétude suite à l'arrivée des « machines virtuelles » et le risque de confusion associé) est l'adresse IP d'un service faisant l'objet d'une répartition de charge : l'adresse est dite virtuelle parce qu'elle n'est portée par aucun serveur à proprement parler, mais par un groupe de serveurs, défini dans la configuration du répartiteur de charge. L'adresse IP virtuelle peut être utilisée comme n'importe quelle adresse IP, on doit notamment en autoriser l'accès depuis le pare-feu comme on le ferait pour l'adresse IP d'un serveur.

    Test de vie

    Puisqu'on demande au répartiteur de charge de n'envoyer les requêtes qu'aux serveurs en état de les traiter, il faut lui donner les moyens de définir quels serveurs sont hors-service. Pour cela, on va configurer un ou plusieurs tests de vie par service, par exemple :

    • un ping du serveur cible (test rarement pertinent, mais dans le cadre d'un réseau local non filtré et non routé, on peut considérer que si un serveur ne répond pas au ping c'est qu'il n'est plus en état de rendre le service)

    • une connexion TCP sur un port (si le serveur ne permet pas d'ouvrir une connexion sur le port 443, il ne rend à priori pas le service HTTPS)

    • un test applicatif (pour un serveur HTTP on peut vérifier qu'un « GET / » ne renvoie pas une erreur 500)

    • un test de service (pour un serveur HTTP hébergeant un wiki on peut aller jusqu'à tester qu'une modification de page réussit).

    Les tests de vie sont associés à une fréquence d'exécution, qui définira la durée maximale pendant laquelle on accepte qu'un serveur HS continue de recevoir des requêtes (par exemple, si on veut que le serveur ne reçoive plus de requêtes moins de 2 secondes après être tombé, il faut mettre en place un test de vie toutes les secondes), il faut donc veiller :

    • à avoir un test de vie plus rapide que votre fréquence d'exécution (si vous lancez un test qui prend 5 secondes chaque seconde, ceux-ci vont s'empiler sur les serveurs) ;

    • à ne pas avoir des tests de vie qui deviennent une cause de surcharge des serveurs rendant le service (pour reprendre l'exemple du wiki, si vous avez 30 éditions par jour habituellement en faisant une édition par test de vie vous allez subitement en avoir des milliers).

    Ordonnanceur de répartition

    Dans le cadre d'une répartition parallèle, chaque requête vers une adresse IP virtuelle est envoyée à un ordonnanceur qui se charge de définir par quel serveur la requête doit être traitée, parmi tous les serveurs détectés comme vivants. Il y a 3 grandes familles d'ordonnanceurs :

    • les ordonnanceurs impartiaux : si on a 1000 requêtes réparties entre 4 serveurs, chaque serveur en traitera 250 ; pour cela l'algorithme généralement utilisé est le round-robin (les serveurs reçoivent une requête chacun leur tour), mais certains répartiteurs de charge proposent également des ordonnanceurs basés sur un algorithme aléatoire

    • les ordonnanceurs compensateurs : la requête est envoyée au serveur qui la traitera le plus vite (l'algorithme généralement utilisé est d'envoyer au serveur qui a le moins de connexions actives), l'ordonnanceur se charge donc de compenser l'éventuelle lenteur d'un serveur en lui envoyant moins de requêtes ; attention : même si cela n'est pas intuitif, un serveur défaillant traite souvent les requêtes plus rapidement qu'un serveur fonctionnel (un accès refusé à une base de données peut prendre quelques millisecondes quand le traitement d'une requête peut prendre plusieurs secondes), donc ce type d'ordonnanceur favorisera les serveurs défaillants si votre test de vie n'est pas suffisamment bien conçu pour que ceux-ci ne soient plus considérés comme vivants

    • les ordonnanceurs déterministes : une fonction de hachage appliquée à la requête reçue permet de définir le serveur qui traitera la requête ; il y a deux principaux types de déterminisme :

      • déterminisme réseau : une même adresse IP source (ou un même couple adresse/port) enverra toujours au même serveur ; à noter que si vous avez de nombreux utilisateurs derrière un même proxy la répartition ne sera pas optimale ;
      • déterminisme applicatif : la même demande (par exemple "GET /login.php") enverra toujours au même serveur (en général la requête est analysée au niveau de la couche application, l'analyse du paquet TCP n'étant pas suffisante pour calculer un hash pertinent).

    Les ordonnanceurs acceptent parfois des options :

    • gestion des poids : on peut donner des poids différents aux serveurs pointés par une adresse virtuelle afin que ceux-ci soient privilégiés par l'algorithme de répartition (par exemple un ordonnanceur impartial enverra deux fois plus de connexions à un serveur de poids 10 qu'à un serveur de poids 5).

    • persistance de session : l'ordonnanceur n'est appelé que pour la première connexion d'un client, puis le répartiteur de charge conserve dans une table de sessions le serveur cible associé à ce client : tant que ce serveur sera vu vivant, toutes les requêtes du client lui seront envoyées.

    Un peu de routage

    Vous allez donc avoir des connexions qui vont arriver depuis vos répartiteurs de charge vers vos serveurs ; maintenant, il faut se poser une question : comment répondre au client qui a fait la requête ? Il y a deux écoles, chacune ayant ses avantages et inconvénients.

    Méthode 1 : tout passe par le répartiteur de charge


    Les connexions arrivent au répartiteur de charge ? Qu'elles y retournent ! Cette méthode qui est la plus utilisée consiste à répondre aux requêtes envoyées par le répartiteur de charge au répartiteur de charge lui-même, celui-ci s'occupant de les renvoyer sur Internet. Il y a deux façons de procéder :

    • le NAT source : le repartiteur de charge se présente au serveur avec sa propre adresse IP, la réponse est faite naturellement à cette adresse

      • avantages : cela fonctionne avec à peu près tous les services imaginables sans avoir à modifier le serveur cible, si on n'a pas que du logiciel libre côté serveur cela simplifiera grandement les choses ;
      • inconvénients : comme dans le cas d'un proxy, le serveur ne verra pas l'adresse IP d'origine, cela complique la gestion des traces que l'on doit conserver dans le cadre de la loi pour la confiance dans l'économie numérique, le diagnostic des problématiques rencontrées par certains utilisateurs et la mise en place de contrôles d'accès.
    • le routage statique : le répartiteur de charge envoie les connexions telles quelles au serveur, mais celui-ci dispose d'un routage statique pour renvoyer toutes les requêtes provenant d'Internet au répartiteur de charge

      • avantages : on n'a pas les inconvénients du NAT ;
      • inconvénients : il faut maintenir une table de routage pour chaque serveur en y listant l'ensemble des réseaux et services auxquels on est susceptible de devoir accéder sans passer par le répartiteur de charge.
    Méthode 2 : faisons travailler le serveur


    Cette méthode consiste à déléguer au serveur la réponse aux clients, sans repasser par le répartiteur de charge :

    • avantage : le répartiteur de charge se comporte comme un simple routeur, il consomme donc peu de ressources système, une machine virtuelle minuscule est suffisante pour rendre ce service ;

    • inconvénient : cela nécessite de bidouiller les serveurs pour que ceux-ci acceptent de gérer des communications réseau peu orthodoxes et, en général, et dans ce cas hors système Linux cela s'avère complexe à mettre en œuvre.

    Il y a deux façons de gérer ces connexions :

    • le routage direct : on fait croire à chaque serveur qu'il est porteur de l'adresse IP virtuelle afin qu'il traite les connexions concernant cette adresse IP comme une connexion à une adresse IP locale ;

    • le tunnel IP-IP : le répartiteur de charge envoie la connexion dans un tunnel et le serveur traite les connexions venant de son interface tunnel comme une connexion à une adresse IP locale (on préfère cette méthode au routage direct uniquement quand le répartiteur de charge n'est pas dans le même réseau que le serveur).

    Étape 2 : multiplier les serveurs

    Maintenant que vous savez que vous pouvez repartir la charge entre plusieurs serveurs, vous allez pouvoir commencer à multiplier ceux-ci : attention cependant à vous poser les bonnes questions.

    Mon service est-il multipliable ?

    Certains services nécessitant une ressource locale ne peuvent pas faire l'objet d'une répartition de charge. Par exemple, une base SQLite ne garantit sa cohérence que si elle est capable de poser un verrou sur un fichier : un verrou de fichier étant local à un serveur, il n'est pas possible de partager une telle base de données entre différents serveurs. Dans ce type de cas, un répartiteur de charge séquentiel peut devenir intéressant : on peut installer plusieurs serveurs mais demander au répartiteur de charge de n'en adresser qu'un seul à la fois, ainsi toutes les requêtes accéderont à la même ressource locale.

    Mes ressources sont-elles accessibles de partout ?

    Votre service utilise probablement des fichiers locaux et/ou des informations en mémoire pour fonctionner, il convient donc de s'assurer que celles-ci sont accessibles par tous les serveurs rendant le service. Il faut surtout se poser la question des informations de session que peut porter le service : celles-ci doivent être dans un espace partagé (il est commun de stocker des sessions php dans un montage NFS par exemple) ou dans un outil qui sait gérer la replication (une base de données en réseau par exemple). Si vous ne pouvez pas partager ou répliquer les informations de session entre vos différents serveurs, il conviendra de veiller à ce qu'un client ne change jamais de serveur pendant sa session, soit en utilisant la fonctionnalité de persistance de session de votre répartiteur de charge, soit en utilisant un ordonnanceur déterministe.

    Comment gérer mon routage ?

    On peut se contenter de faire du NAT et ne pas se poser la question. C'est même la solution préconisée par de nombreux outils de répartition de charge. Cependant, si le NAT ne répond pas à votre besoin pour une des raisons indiquées précédemment (obligation légale, contrôle d'accès, besoin d'investigation) ou tout simplement parce que votre applicatif ou votre protocole ne le gère pas, la mise en place d'une infrastructure répartie peut affecter la configuration de votre serveur.

    Définition d'un routage statique

    Le plus simple lorsqu'on fait le choix d'un routage statique est de configurer le répartiteur de charge comme passerelle par défaut de votre serveur. Cependant, si votre serveur ne fait pas que répondre à des requêtes en utilisant des ressources locales (par exemple s'il s'agit d'un serveur mail, il doit aussi communiquer avec le reste du monde pour envoyer des mails), il va falloir gérer un routage différent pour ces autres besoins : si votre applicatif le permet vous pouvez envoyer ces connexions à une interface réseau spécifique qui ne passera pas par la passerelle par défaut, sinon il faudra envisager l'usage d'un système de routage intelligent.

    Gérer le routage direct

    Si vous avez une plate-forme 100% Linux, n'hésitez pas à faire ce choix, il faudra juste autoriser le trafic d'ARP en ajoutant cela dans votre sysctl.conf :

    net.ipv4.conf.all.arp_ignore=1 net.ipv4.conf.all.arp_announce=2 net.ipv4.conf.eth0.arp_ignore=1 net.ipv4.conf.eth0.arp_announce=2

    (il faut le faire pour all et pour l'interface avec laquelle vous communiquez avec le répartiteur de charge) ; si vous n'avez pas prévu de redémarrer votre serveur, vous pouvez forcer la prise en compte de vos modifications :

    # sysctl -p

    Ensuite, il convient de faire comprendre au serveur qu'il gère l'adresse IP virtuelle. Le plus propre pour faire cela est de déclarer celle-ci comme un alias de l'interface de loopback :

    # ifconfig lo:9 lo:4 Link encap:Boucle locale inet adr:192.168.10.9 Masque:255.255.255.255 UP LOOPBACK RUNNING MTU:16436 Metric:1 Étape 3 : mon premier répartiteur de charge

    Linux Virtual Server, abrégé en LVS, est un logiciel répartiteur de charge pour GNU/Linux. Il peut se configurer simplement en ligne de commande, mais afin de gérer simplement la configuration on utilise en général un logiciel spécialisé, dans ce tutoriel ce sera keepalived.

    installation Machines

    Pour installer ce service, une simple machine virtuelle avec quelques centaines de Mo d'espace disque et quelques dizaines de Mo de mémoire suffira. Et puis comme on veut gérer la redondance en cas de panne, on va même en installer deux !

    Paquets

    Sur une Debian fraîchement installée avec le système de base, installer le paquet keepalived avec toutes ses dépendances mais sans les paquets recommandés :

    # apt-get install keepalived Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Les paquets supplémentaires suivants seront installés : ipvsadm libnl1 Paquets suggérés : heartbeat ldirectord Les NOUVEAUX paquets suivants seront installés : ipvsadm keepalived libnl1 0 mis à jour, 3 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 331 ko dans les archives. Après cette opération, 995 ko d'espace disque supplémentaires seront utilisés.

    Bien entendu ça fonctionne aussi bien avec d'autres distributions…

    Paramètres système

    Ajouter le paramètre suivants dans /etc/sysctl.conf* :

    # Parametres pour le LVS net.ipv4.ip_forward=1

    Charger la configuration :

    # sysctl -p net.ipv4.ip_forward = 1 Configuration de base

    Source : http://www.keepalived.org/documentation.html

    Debian ne génère aucune configuration à l'installation, il faut donc créer le fichier /etc/keepalived/keepalived.conf après l'installation. Pour commencer, il faut y mettre la section globaldefs qui permet de définir la configuration de base :

    global_defs { notification_email { georgette@example.com } notification_email_from lvs@example.com smtp_server relayhost.example.com smtp_connect_timeout 30 router_id LVS } vrrp_sync_group VG1 { group { linuxfr } }

    Voici l'explication des paramètres :

    • notification_email : liste des adresses (séparées par des sauts de ligne) notifiées en cas de changement d'état d'une adresse IP virtuelle (enverra par exemple un e-mail lorsqu'un serveur ne répond plus) ; ne pas mettre cette ligne si on ne désire pas être notifié

    • notification_email_from, smtp_server, smtp_connect_timeout : paramètres d'expédition des mails

    • router_id : le petit nom donné au service LVS, comme on n'en a qu'un sur la plateforme, on va faire simple en mettant LVS, mais on peut faire plus intelligent

    • group : liste des instances déclarées (voir ci-dessous)

    Configuration de l'instance

    Toujours sans keepalived.conf, on peut créer plusieurs instances ayant chacune leur configuration (par exemple "prod" et "dev"), pour commencer on ne va en créer qu'une, nommée linuxfr :

    vrrp_instance linuxfr { state MASTER interface eth0 smtp_alert virtual_router_id 51 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.2.9 } }

    Explication des paramètres :

    • vrrp_instance : début du bloc de paramètres de l'instance, doit être suivi du nom de l'instance (ici linuxfr)

    • state : il s'agit de la seule différence entre la configuration du LVS primaire et du LVS secondaire : l'un d'entre eux doit être "MASTER", l'autre "SLAVE" (c'est pour cela qu'on peut se permettre de metre en place deux serveurs dès le début, la mise en place du second tient à un copier/coller suivi de cette seule modification)

    • interface : nom de l'interface surveillée par le service

    • smtp_alert : à positionner ou non selon que l'on souhaite avoir des notification par courriel des défaillances

    • virtual_router_id : on peut mettre n'importe quel nombre entre 0 et 255, il faut juste qu'il soit différent entre les différentes instances

    • authentication, auth_type, auth_pass : identifiants utilisés par les serveurs LVS pour communiquer entre eux, notez cependant que ces informations circulent en clair dans le réseau

    • virtual_ipaddress : liste des adresses virtuelles portées par le LVS (une par ligne, 20 maximum) ; c'est la partie que vous oublierez systématiquement de remplir en ajoutant de nouvelles adresses IP virtuelles, et vous perdrez 5 minutes à chercher pourquoi ça ne marche pas

    Ma première adresse IP virtuelle

    Dans cet exemple, nous déclarons une adresse virtuelle suivante 192.168.10.9 qui renvoie le port 80 vers le port 80 des serveurs 192.168.10.98 et 192.168.10.85.

    Rappel des pré-requis pour le routage direct
    • vos répartiteurs de charge doivent être dans le même réseau que vos serveurs (sinon configurez votre LVS pour utiliser des tunnels)

    • vos serveurs doivent accepter le trafic ARP entre leurs interfaces (cf. paramètres systcl plus haut, si vous n'avez pas la main sur vos serveurs, configurez votre LVS pour faire du NAT source)

    • chaque serveur doit croire qu'il porte l'adresse IP du service (ici on déclarera un alias de l'interface de loopback avec l'adresse IP 192.168.10.9)

    • l'adresse doit être connue du bloc virtual_ipaddress de votre instance LVS (certes on vous l'a déjà précisé dans le paragraphe précédent, mais on sait que vous allez l'oublier)

    Déclaration dans keepalived.conf virtual_server 192.168.10.9 80 { delay_loop 6 lb_algo rr lb_kind DR protocol TCP real_server 192.168.10.98 80 { weight 1 TCP_CHECK { connect_port 80 connect_timeout 3 } } real_server 192.168.10.85 80 { weight 1 TCP_CHECK { connect_port 80 connect_timeout 3 } } } }
    • virtual_server : doit être suivi de l'adresse IP virtuelle puis du port

    • delay_loop : délai entre deux tests de vie (n'oubliez pas que vous avez deux serveurs LVS, donc vos serveurs se prendront deux fois la charge correspondante)

    • lb_algo : l'algorithme utilisé par l'ordonnanceur ; les plus utilisés sont rr (round-robin) et lc (moins de connexions actives) avec leurs équivalents wrr et wlc prenant en compte les poids ; la liste complète des algorithmes est disponible dans http://www.linuxvirtualserver.org/docs/scheduling.html

    • lb_kind : méthode d'accès aux serveurs, pour du routage direct on indique '''DR'''

    • real_server : doit être suivi de l'adresse IP d'un serveur et du port du service. Il faut autant de blocs real_server qu'il y a de serveurs derrière l'adresse virtuelle

    • weight : poids, notamment utilisé pour les algorithmes wlc et wrr ; par défaut, le poids est 1

    • TCP_CHECK : test de vie de type ouverture de connexion TCP ; dans cette exemple si une connexion au port 80 prend plus de 3 secondes, le serveur n'est plus considéré comme vivant

    On s'en fait une deuxième ?

    Vous avez probablement plus d'un service à répartir, donc il faudra créer une adresse IP virtuelle par service.

    Choix de l'adresse IP

    Pour votre deuxième service vous pouvez soit attribuer une nouvelle adresse IP, soit réutiliser celle d'une adresse de service existante, à condition évidemment que ce soit sur un port différent (et en plus comme ça elle est déjà dans le bloc virtual_servers, vous ne l'oublierez pas pour une fois).

    Ajout de quelques options persistence_timeout 60 virtualhost supervision.fr.local quorum 30 hysteresis 2 quorum_up "/usr/local/bin/notify.pl qourum up" quorum_down "/usr/local/bin/start_spare_vm.pl" sorry_server 192.168.10.55 80
    • persistence_timeout : mettre un nombre de secondes si on veut activer la persistance de session ; pendant ce nombre de secondes, une même adresse IP source sera systématiquement envoyée au même serveur sans que l'ordonnanceur ne soit sollicité

    • quorum : poids total des serveurs actifs nécessaire pour considérer l'adresse virtuelle comme pleinement opérationnelle

    • quorum_down : commande à lancer quand le quorum n'est plus atteint, en général on met une commande qui envoie une alarme par sms ou dans l'outil de supervision, mais selon votre architecture vous pouvez aussi envisager de démarrer automatiquement des serveurs supplémentaires, d'activer une version allégée de vos services, etc.

    • quorum_up : commande à lancer une fois que le quorum est de nouveau atteint

    • hystérésis : différence de poids minimum entre deux appels de commande quorum_up/quorum_down ; par exemple dans notre cas si un quorum_down a été détecté à 29, le quorum_up ne sera pas appelé lors du passage à 30 mais seulement lors du passage à 31 ; cette fonctionnalité permet d'éviter d'appeler les commandes trop souvent lorsqu'on est proche des limites, c'est surtout utile si la commande appelée est particulièrement lourde

    • sorry_server : serveur auquel seront envoyées les requêtes si aucun des serveurs pointés par l'adresse virtuelle ne répond ; pour un service web ça pourrait être un mini serveut hébergeant une simple page html d'excuses

    • virtualhost : pour un service web, nom de domaine vers lequel seront envoyés les tests de vie HTTP ou HTTPS (cf. paragraphe suivant)

    Choix du test de vie

    Pour notre première adresse IP virtuelle nous avons choisi un test de vie TCP, mais keepalived permet d'autres tests de vie.

    GET d'une URL HTTP_GET { url { path /test_vie.php digest 5f1a4b7e269b7f5ddf6bbce06856c1e8 status_code 200 } connect_port 80 connect_timeout 3 }

    Si la page test_vie.php n'est pas dans le virtual host par défaut de votre serveur web, il faudra préciser le paramètre virtualhost dans la configuration de l'adresse IP virtuelle. Le paramètre digest correspond au hash MD5 de la réponse du serveur, on peut le récupérer avec la commande suivante :

    # genhash -s 192.168.10.85 -p 80 -u /test_vie.php MD5SUM = 5f1a4b7e269b7f5ddf6bbce06856c1e8

    Veuillez noter que :

    • on peut ne mettre qu'une seule information entre digest et status_code (code retour HTTP, a priori ce sera 200)

    • on peut déclarer autant de blocs url{} que l'on veut dans un test, le serveur ne sera plus vu vivant si un seul d'entre eux échoue

    • si on veut faire un test en HTTPS, il faut nommer le bloc SSL_GET au lieu de HTTP_GET (et pour récupérer le digest ajouter l'option « -S » à la commande genhash)

    • le digest dépend du contenu de la page, n'ayez pas de contenu dynamique dedans ! Afficher l'heure ou la durée d'affichage par exemple ferait tomber systématiquement le test en erreur ; par contre c'est utile pour valider que tout va bien, par exemple on peut faire une page qui affiche « OK » quand elle arrive à accéder à la base de données, et « KO » sinon : le digest n'étant retrouvé que lorsque la page affiche OK, le répartiteur de charge n'enverra pas de trafic aux serveurs incapables d'accéder à la base de données

    test personnalisé

    Il est possible d'écrire un script qui sera utilisé pour les checks, par exemple pour tester qu'un serveur LDAP est opérationnel, on fera un script qui fait une requête LDAP :

    MISC_CHECK { misc_path "/usr/local/bin/test_ldap.pl 192.168.10.72" misc_timeout 15 # misc_dynamic }

    Le script doit simplement renvoyer 0 si le serveur est vivant, et une autre valeur si ce n'est pas le cas. Ici on n'a pas opté pour l'option misc_dynamic (elle est commentée), mais on peut l'activer si on utilise les algorithmes wrr ou wlc, dans ce cas le code retour du script sera interprété ainsi :

    • 0: le serveur est vivant, son poids doit rester celui configuré dans keepalived.conf

    • 1 : le serveur n'est pas vivant, plus aucune requête ne doit lui être envoyé

    • de 2 à 255 : le serveur est vivant, mais son poids doit être changé par la valeur renvoyée moins deux (par exemple si le script a un code retour de 10 le nouveau poids du serveur sera 8)

    Étape 4 : Exploitons tout ça

    Votre service est configuré, il n'y a plus qu'à le lancer !

    # service keepalived start

    Keepalived permet seulement de gérer une configuration pour LVS, sans donner d'outils d'exploitation supplémentaires. Pour ensuite suivre la vie de votre service LVS, il faut utiliser la commande ipvsadm.

    Extraire des statistiques

    L'option --list (abréviations : -l ou -L) permet de lister toutes les adresses virtuelles portées par votre répartiteur de charge avec le nombre de connexions en cours pour chacun des serveurs qu'elles contiennent. En y ajoutant l'option --stats, vous aurez en plus des statistiques réseau :

    # ipvsadm -ln -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.10.9:443 rr persistent 1 -> 192.168.10.70:443 Route 1 0 0 -> 192.168.10.85:443 Route 1 0 0 TCP 192.168.10.9:80 rr persistent 50 -> 192.168.10.70:80 Route 1 416 136 -> 192.168.10.85:80 Route 1 48 91

    La plupart des outils de monitoring savent interpréter ces chiffres pour sortir des graphes qui peuvent vous être utiles, par exemple voici ce que donne un suivi de nombre de connexions en cours avec munin :

    Manipuler vos adresses virtuelles dynamiquement

    Si vous avez décidé d'utiliser le paramètre quorum_down pour adapter votre architecture dynamiquement, vous pouvez vouloir ajouter des serveurs dans la liste de ceux portés par une adresse virtuelle dynamiquement. Pour cela, il faut utiliser l'option --add-server (abrégeable en -a), il y a bien évidemment une option --delete-server pour faire l'inverse :

    # ajout du serveur 192.168.10.44 # à l'adresse virtuelle 192.168.10.9:80 ipvsadm -a -t 192.168.10.9:80 -r 192.168.10.75 # retrait du serveur 192.168.10.44 # de l'adresse virtuelle 192.168.10.9:80 ipvsadm -d -t 192.168.10.9:80 -r 192.168.10.75
    1. Source : Article Répartition de charge de Wikipédia en français - Liste des auteurs 

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Firefox sur son 31

    23 juillet, 2014 - 12:58

    Si cette nouvelle version met l'accent sur les outils de développement, il faut aussi souligner la prise en charge tant attendue de WebVTT qui autorise le placement à la volée de sous-titres sur les vidéos HTML5, le tout nativement par le navigateur.

    À noter que cette version sert de base à la prochaine version ESR (Extended Support Release) qui sera maintenue d'un point de vue sécurité pendant une année. La version ESR est utilisée par les entreprises ne voulant pas requalifier une version toutes les six semaines, le projet Tor Browser ou par certaines distributions GNU/Linux comme Debian ou Tails.

    Commun (Desktop & Mobile) Blocage des malwares lors du téléchargement

    Lorsque Firefox va télécharger un fichier il va extraire un certain nombre de données :

    • l’URL depuis laquelle le fichier est téléchargé, l’URL qui nous a mené à ce lien, ainsi que toutes les URL dans la chaîne de redirection ;
    • le hachage SHA-256 du contenu du fichier ;
    • n’importe quelle information de vérification obtenue via les API Windows Authenticate ;
    • la taille du fichier en octets ;
    • le nom de fichier suggéré pour le téléchargement.

    Firefox va ensuite vérifier en cherchant si les caractéristiques correspondent aux listes de blocage et d’autorisation. Si le binaire ne correspond ni à un téléchargement de confiance, ni à un téléchargement suspect, Firefox va vérifier la réputation du site via l'API Google Safe Browsing.

    Vérification des certificats

    La vérification des certificats se fait maintenant via mozilla::pkix. Cette nouvelle bibliothèque est plus robuste (la vérification des certificats n'étant plus fiable) et maintenable (on passe de presque 82 000 lignes de code à seulement un peu de 4 000).

    Gestion de Prefer:Safe

    Lorsque le contrôle parental est activé sous OS X ou Windows, lors de l’initialisation de la connexion, Firefox va envoyer au serveur une directive Prefer:Safe indiquant, si besoin, que le contenu et les fonctionnalités du site doivent être réduites.

    Techniquement, c’est un entête HTTP, c’est donc un système analogue au mécanisme « Ne me pistez pas » (ou Do not track).

    Dévelopeurs

    Comme souligné en première partie de dépêche, Firefox prend maintenant en charge WebVTT, le format standard du web pour les sous-titres de vidéos HTML5. Par rapport à SRT, il a comme avantage d’avoir des options de formatage plus poussées.

    On notera aussi la prise en charge des variables CSS, fonctionnalité qui existe depuis longtemps dans les pré-processeurs CSS comme LESS, Sass ou Stylus.

    Firefox Desktop Nouveautés

    Un champ de recherche est apparu sur la page d’accueil.
     

    Les fichiers Ogg et PDF sont maintenant gérés par Firefox si aucune application n'est spécifiée sous Windows.

    Outils développeurs

    Les canvas sont fortement utilisés dans les jeux et les animations en général. Un débugueur de canvas fait son apparition, permettant de comprendre, corriger et d'améliorer les contextes WebGL ou 2D.

    Un autre débugueur arrive, cette fois-ci pour les extensions. Cet outil permet de débuguer le Javascript utilisé dans les extensions. Il est disponible uniquement pour les extensions sans redémarrage et basées sur le SDK.

    Qui n'a jamais eu besoin de sélectionner une couleur dans son navigateur ? Avec l'outil pipette, c'est maintenant possible ! On peut soit sélectionner l’outil depuis le menu développeur pour copier une couleur dans le presse-papier, soit cliquer sur le rond à côté du nom de la couleur d’une propriété CSS dans l’onglet Règles de l’inspecteur pour la modifier.

    Modèle de boite modifiable : vous pouvez désormais cliquer sur les valeurs dans l’onglet concernant le modèle de boite pour les modifier et voir le résultat immédiatement.

    L'éditeur de code a lui aussi droit à quelques améliorations.

    Il est maintenant possible d'afficher la pile d'exécution dans la console, dont le rendu est d'ailleurs personnalisable.

    L'option Copier comme cURL a été ajoutée. Concrètement, cela permet de copier une requête réseau sous forme de ligne de commande cURL afin de la rejouer depuis la ligne de commande.

    Firefox Mobile Nouveautés

    Outre la possibilité de rafraîchir les onglets synchronisés, on notera l'arrivée de nombreuses nouvelles langues : Assamese [as], Bengali [bn-IN], Gujarati [gu-IN], Hindi [hi-IN], Kannada [kn], Malayalam [ml], Marathi [mr], Oriya [or], Panjabi [pa-IN], Tamil [ta] et Telugu [te].

    Développeurs

    Introduction de l'API Firefox Hub : elle offre aux extensions la possibilité de personnaliser la page d’accueil de Firefox Mobile. Quelques exemples sont déjà disponibles sur le site addons.mozilla.org.

    Quelques statistiques
    • 484 développeurs ont contribué à cette version, 62 d'entre eux sont de nouveaux contributeurs ;
    • 5441 modifications ont été acceptées pour cette version, 726962 lignes ont été ajoutées et 460522 supprimées (soit un delta de 266440).
    Prochaines versions

    Avec la version 33, l'écran de veille ne se déclenchera plus lorsque vous regarderez une vidéo en plein écran sous GNU/Linux.

    Toujours à partir de la version 33 et même si le port vers GTK+3 ne sera pas terminé, il sera désormais possible de créer des paquets expérimentaux pour tester Firefox en GTK+3 (d'autant qu'il sera possible de faire tourner les greffons GTK+2 — comme Adobe Flash, au hasard). Peut-être bientôt dans Debian (vu que c'est notre Mike Hommey national, aka glandium, de la Debian Mozilla team, qui s'y est collé) ? En tout cas des exécutables peuvent d'ores et déjà être téléchargés. Accessoirement, le port vers GTK+3 est un des prérequis pour faire tourner Firefox nativement sous Wayland (mais on n'en est pas encore là).

    Télécharger ce contenu au format Epub

    Lire les commentaires