Syndiquer le contenu
Mis à jour : il y a 21 heures 55 min

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