• At chevron_right

      Quand Debian me gonfle : Stretch et OpenVPN

      raspbeguy · pubsub.gugod.fr / atomtest · Saturday, 1 July, 2017 - 22:00 · 5 minutes

    Comme vous le savez sûrement, la nouvelle version stable de Debian, nom de code Stretch, est sortie. Je vous conseille à tous de faire la mise à jour les yeux fermés, ça va bien se passer, aucun accrochage à déplorer, un simple apt dist-upgrade et c'est une affaire qui roule. ... Nan j'déconne. Enfi...

    Comme vous le savez sûrement, la nouvelle version stable de Debian, nom de code Stretch, est sortie. Je vous conseille à tous de faire la mise à jour les yeux fermés, ça va bien se passer, aucun accrochage à déplorer, un simple apt dist-upgrade et c'est une affaire qui roule.

    ...

    Nan j'déconne.

    Enfin je vous conseille quand même de faire la mise à jour bien entendu, pour des raisons évidentes de sécurité, prévoyez de le faire au moins à long terme. Parce que bon, la oldstable est toujours supportée à travers des mises à jour de sécurité, mais après y a plus rien, et votre serveur est livré à lui même et aux attaquants qui sauront profiter de failles non corrigées.

    Ce que je veux dire, c'est qu'en mettant à jour votre distribution, attendez-vous à des trucs qui vont péter sévère. Faites-ça quand vous n'avez rien d'autre à faire et quand un minimum de choses vitales sont attendues de votre serveur par vos utilisateurs. Va y avoir du vilain.

    Et hop c'est cassé

    Donc oui j'aime Debian, mais Debian me gonfle parfois. Notamment ce comportement très fâcheux que je viens de découvrir aujourd'hui même concernant OpenVPN.

    OpenVPN, j'en ai déjà parlé et je ne m'étendrai pas plus là dessus, est un outil permettant de construire des réseaux virtuels privés (VPN), utiles pour abstraire des réseaux entre des machines géographiquement distantes et/ou pour déporter son point de sortie pour "sembler" se connecter d'ailleurs. Il y a donc une machine qui crée le VPN, dite serveur ou tête de pont, et des machines qui s'y connectent à distance, dites clients.

    J'ai donc une tête de pont que j'ai récemment mis à jour sur Stretch. Tout se passa bien entendu parfaitement en apparence, et tout le monde il était beau. Je me retrouvai avec une jolie Debian Stretch toute mignonne dont le cœur et l'âme n'aurait en aucun cas pu être mis en doute par quiconque. Sauf que sous ses jupons, elle avait dissimulé des trucs moins fun. Et en conséquence, quelques jours après, je me rendis compte que mes clients OpenVPN ne se voyaient plus. Je ne mis pas longtemps à soupçonner la belle Stretch d'avoir des aveux à me faire.

    L'élément fautif : le service Systemd a changé bien en profondeur.  Sous Jessie, les fichiers nécessaires pour l'établissement du VPN (configurations, certificats, clefs...) se trouvaient alors modestement dans /etc/openvpn, et ne faisait pas la distinction entre configurations clients et configurations serveurs. Le service utilisé pour démarrer OpenVPN était nommé tout simplement openvpn.service, et son boulot était uniquement de lancer une instance d'OpenVPN par fichier de configuration (dont le nom se terminait par .conf) dans ce dossier. Pour lancer openvpn, il suffisait donc de la commande simple suivante :

    systemctl start openvpn

    Sous Stretch, tout a été changé. Premièrement, le service a changé de nom très salement. Par salement, je veux dire que l'ancien nom existe toujours, mais a été remplacé par un service qui ne fait absolument rien (il lance le programme /bin/true, programme dont l'utilité crève les yeux), ce qui fait que ce changement de service implique non seulement une rupture de ce service si aucune action n'est prise par la suite, mais également que c'est très difficile de s'en rendre compte, le service ancien openvpn.service étant diagnostiqué par le système comme actif et bien portant. Donc, la nouvelle forme de ce service est en fait un couple de service, openvpn-client@.service et openvpn-server@.service, le premier se chargeant de lancer OpenVPN en temps que client, et le second en temps que serveur. Mais ce n'était pas fini : les configurations VPN devaient être déplacées aux nouveaux endroits adéquats, et la ségrégation entre clients et serveurs a été instaurée : désormais, les configurations clients doivent aller dans /etc/openvpn/client et les configurations serveurs dans /etc/openvpn/server. Mais ce n'est encore pas tout : ces nouveaux services ne s'invoquent plus de la même manière. On doit maintenant spécifier le nom de la configuration dans la commande qui démarre le service. Par exemple, pour une configuration serveur qui s'appelle hashtagueule.conf (dûment placée dans /etc/openvpn/server), la commande pour démarrer le service associé est donc :

    systemctl start openvpn-server@hashtagueule

    Pour couronner le tout, un bug de configuration, oui un bug, et non une modification de comportement, s'est glissée dans le fichier de service openvpn-serveur@.service. Ce fichier comporte la ligne suivante :

    LimitNPROC=10

    Cette directive est utile pour contrôler le nombre maximum de processus exécutés par un service, pour éviter dans certain cas l'explosion du load du serveur. Sauf qu'ici, cette valeur est beaucoup trop petite. On se retrouve alors avec l'erreur suivante consignée dans les logs :

    openvpn_execve: unable to fork: Resource temporarily unavailable

    Ce qui veut dire que le système refuse la création d'un nouveau processus pour ce service. Je me résolus donc à réparer salement et de manière non safisfaisante en changeant la valeur 10 par 100 (aucune idée si c'est carrément trop), et enfin, le service a accepté de fonctionner.

    Quelle leçon tirer de cette aventure ? Premièrement, les mises à jour sont rarement simple, surtout dans le cas de Debian. Deuxièmement, même si le nouveau fonctionnement d'OpenVPN est désormais plus propre et correspond à l'usage conventionné sur les systèmes les plus récents, on peut déplorer la manière dont elle a été mise en place. Le bon usage aurait été d'instaurer une période de transition pendant laquelle les deux workflows auraient coexisté, plutôt que de casser brutalement une configuration existante et fonctionnelle. Et je ne parle même pas de la mauvaise limite du nombre de processus...

    En espérant que cette histoire aura été utile à des gens, je vous souhaite une bonne mise à jour.

    • At chevron_right

      Lettre ouverte au Président élu de la République française

      raspbeguy · pubsub.gugod.fr / atomtest · Sunday, 7 May, 2017 - 22:00 · 11 minutes

    Bonjour M. le Président. Au nom de l'équipe d'Hashtagueule, je tiens tout d'abord à vous adresser nos sincères félicitations (des félicitations républicaines, le terme étant très à la mode dans les médias aujourd'hui) pour votre victoire à l'élection du chef de l'État français. Nous sommes soulagés ...

    Bonjour M. le Président.

    Au nom de l'équipe d'Hashtagueule, je tiens tout d'abord à vous adresser nos sincères félicitations (des félicitations républicaines, le terme étant très à la mode dans les médias aujourd'hui) pour votre victoire à l'élection du chef de l'État français. Nous sommes soulagés en premier lieu que la France n'ait pas cédé au désespoir qui semble s'emparer du monde entier, en donnant le pouvoir à un parti extrémiste dangereux, prompt à briser les alliances amicales entre les nations européennes et mondiales, alliances qui ont demandé tant d'efforts, de réflexions et de remises en questions, et qui sont, à mon sens, l'évolution naturelle dans le cadre de l'épopée de l'humanité vers le Bien. À titre personnel, je suis même plutôt satisfait du résultat de cette élection, qui a au moins le mérite d'ouvrir des possibilités que les précédents titulaires de la Présidence ne laissaient pas apercevoir. Sur un point de vue bassement terre-à-terre, l'élection d'un Président ayant moins de 15 ans de plus de moi me remplit d'espoir quant au minimum d'ouverture d'esprit de la société. Bon, je sais très bien qu'on ne peut pas juger quelqu'un sur son âge, pas de panique, bien que je sois une personne très faible en politique et diplomatie, je garde quand même un brin de lucidité.

    J'admire également la manière dont vous ne cédez pas (au moins en apparence) au triomphalisme de bas étage et le sang-froid que vous témoignez. J'espère très sincèrement que cela va durer.

    Le but de cette lettre ouverte n'est bien sûr pas uniquement de vous féliciter, sans quoi ce blog aurait plutôt un nom du style notice-me-president.fr et on aurait d'ailleurs bien du mal à éviter de rester politiquement neutre. Le but n'est pas non plus de vous ennuyer, c'est pourquoi je renonce à la langue formelle et imbitable afin de vous délivrer l'essentiel. Vous me paraissez être une personne capable de se remettre en question et d'écouter les arguments sensés. À ce titre nous aimerions que vous preniez conscience de nos espoirs et de nos craintes concernant notre domaine de prédilection qui est l'informatique.

    Vous avez évoqué dans votre programme l'importance de la mise des administrations au numérique. En voilà une bonne nouvelle. Un bon moyen d'apporter de la sécurité au sein des institutions (pour peu que l'outil informatique soit correctement utilisé) et de l'emploi moderne. Et puis il y a un aspect écologique à ne pas négliger, même s'il n'est pas forcément aussi trivial qu'il n'y paraît. Mais attention, ce chemin, très bénéfique pour peu que l'on suive un minimum de précautions, peut très rapidement finir en eau de boudin dans le cas contraire.

    Le bon chemin, à notre sens, est de favoriser et même d'imposer aux administrations publiques l'usage de logiciels libres. Afin que vous gardiez toute votre attention et votre ouverture d'esprit pour les raisons qui font que c'est une drôlement bonne idée, examinons de plus près les arguments avancés par les lobbyistes contre le logiciel libre.

    Les mauvaises langues diront qu'on ne change pas une équipe qui gagne, et que l'administration a toujours tourné sur du logiciel privateur comme Microsoft Office, Windows, Oracle SQL, services Google, j'en passe et pas des moindres, et que ça a toujours très bien marché. Vous êtes désormais Président, vous devez donc être incollable dans le domaine de l'industrie, et vous n'ignorez donc pas le nombre de sociétés à croissance forte qui se spécialisent dans le logiciel libre. Il s'agit d'ailleurs d'un domaine dans lequel la France excelle, soit dit en passant. Ces sociétés qui ont le vent en poupe sont appelées des SS2L, sociétés de services en logiciel libre. Et croyez moi M. le Président, ça dépote grave. Vous avez donc des entreprises à la pelle, des entreprises européennes et françaises prêtes à fournir leur savoir-faire pour concevoir, déployer et maintenir des architectures libres, ainsi qu'à former le personnel pour qu'il soit autonome.

    Les mauvaises langues répliqueront : oh là là, le coût de mise en place va être exorbitant. À ces personnes visiblement expertes en mauvaise foi, je ferai remarquer que les licences d'utilisation des logiciels privateurs ont elles-même un prix à tomber par terre, tout simplement parce que les sociétés qui les proposent ont le monopole sur le produit qu'elles vendent et qu'elles sont les seules aptes et autorisées à vendre du support. Le fonctionnement du logiciel libre est simple : vous avez liberté d'utiliser le logiciel gratuitement, vous avez le droit de l'entretenir et de le faire évoluer à votre convenance, et vous avez la liberté de distribuer votre version et tout le savoir-faire que vous y avez placé. Si vous avez recours à une SS2L afin de vous aider à utiliser vos logiciels libres, vous être libre à tout moment de prendre en charge la maintenance et l'infogérance du logiciel en interne ou encore de changer de SS2L. Ce mode de fonctionnement est beaucoup plus sain au niveau industriel, favorise la concurrence nécessaire à l'économie et est un gage de qualité.

    Mais alors, rétorqueront les mauvaises langues, je préfère encore payer pour une société qui développe mes logiciels plutôt que de confier mon infrastructure à du travail "gratuit", car c'est bien connu, plus on y met d'argent, plus c'est efficace. Alors déjà, travailler dans le domaine du libre n'est pas du tout incompatible avec gagner de l'argent. Sinon les fameuses SS2L dont je vous parle tant n'existeraient pas. Comme je l'ai dit, ces entreprises vendent le savoir faire et non le logiciel en question. Les ingénieurs n'y inventent pas des technologies à partir de rien : ils font un énorme travail de "veille technologique" constant et rigoureux afin d'adapter leurs offres et d'en proposer de nouvelles. Et éventuellement, si la société en vient à modifier le code des logiciels libre qu'elle utilise, elle reverse les modifications à la communauté, elle y est tenu par la licence du logiciel libre. Le meilleur exemple de ce fonctionnement est la société américaine Red Hat qui vend la compilation de son propre système d'exploitation et qui reverse les modifications à la communauté, ce qui permet à n'importe qui ayant les compétences d'obtenir gratuitement le logiciel en question, pour peu qu'il puisse le maintenir lui-même. La mise à disposition des sources permet également à n'importe qui de vérifier le fonctionnement d'un logiciel et c'est grâce aux vérifications menées par la communauté qu'on peut s'assurer que le logiciel est de confiance. En comparaison, du côté des logiciels privateurs, absolument rien ne vous assure que le logiciel fait exactement ce qu'on lui demande et qu'on y a pas glissé une faille de sécurité, par incompétence ou par malice, vu qu'il n'y a qu'une seule société qui accède à la recette du logiciel.

    Pour être sûr que vous me compreniez, M. le Président, je vais utiliser une analogie classique, et je vais vous demander de comparer un logiciel à un gâteau au chocolat. Cette analogie est parlante car elle tend à unifier le peuple Français, non, l'humanité entière, autour du fait que les gâteaux au chocolat c'est bougrement bon. Donc, imaginez qu'un pâtissier vende des gâteaux au chocolat. S'il ne donne pas la recette de son gâteau, il encourt plusieurs risques. D'une part, en théorie, il peut remplacer le chocolat par une matière marron beaucoup moins ragoutante et le vendre tel quel, le client n'y verra que du feu jusqu'à ce qu'il le mange, et ce sera trop tard. D'autre part, si le pâtissier fait faillite, plus personne ne sera en mesure de le remplacer, condamnant ainsi l'humanité à se passer de gâteau au chocolat, ce qui, vous en conviendrez, M. le Président, serait bien triste. Cependant, s'il partage la recette du gâteau au chocolat, certes il va devoir faire preuve d'esprit pratique pour gagner autant d'argent, car n'importe qui sera en mesure de devenir pâtissier et de se lancer dans le gâteau au chocolat. Cependant, à partir de ce moment là, le pâtissier vendra son talent et non pas un produit alimentaire, car aussi claire une recette de cuisine peut être, un gâteau au chocolat demande du talent et de l'amour : on a gagné ainsi un gage de qualité. S'il est inventif, il pourra également se distinguer sur des plus-values, par exemple proposer une jolie salle de restauration où les clients peuvent savourer leurs gâteaux au chocolat dans un décor détendu, avec des jolies plantes, et du smooth-jazz en musique de fond. Et en plus, désormais, n'importe quel pâtissier peut déployer son talent en proposant des versions altérées de la recette, disons en ajoutant de la crème de marron, ce qui est succulent à mon sens, mais peut déplaire à d'autres personnes, et on a donc une recette qu'il est très aisé d'adapter en fonction du client.

    Passons désormais au reste des arguments. Adopter le libre, c'est refuser de s'enfermer dans un cercle vicieux mené par les sociétés privatrices. Par exemple, en utilisant Microsoft Office, on condamne non seulement l'utilisateur, mais également tous ses collaborateurs à utiliser Microsoft Office. En effet, le meilleur compère du logiciel privateur est le format fermé : le format des documents générés par un logiciel privateur a toutes les chances d'avoir des spécifications tenues secrètes, ce qui oblige chaque personne disposant d'un document privateur d'utiliser le logiciel privateur correspondant : c'est de l'esclavagisme numérique. À l'opposé, un format ouvert est un format dont les spécifications sont publiques : n'importe quel logiciel (en particulier un logiciel libre) sera en mesure d'implémenter la prise en charge de ce format. Les formats fermés sont donc un frein à la collaboration. Prenons un cas concret : supposons que pendant votre campagne, vous ayez mis en consultation votre programme en format Microsoft Word sur votre site internet. Surtout que votre programme, ce n'est pas la chose la plus légère informatiquement : il y a énormément d'images, de styles de texte différents, et globalement la mise en page a demandé beaucoup de travail et a utilisé beaucoup de spécificités. Il n'y a aucune chance que ce document ait pu être ouvert par autre chose que Microsoft Word. Du coup, les seules personnes à même de pouvoir lire votre programme auraient été les possesseurs de licences Microsoft, dont je ne fais pas partie. Vous conviendrez, M. le Président, que c'est un peu gênant pour se faire élire. Mais en réalité, votre programme a été exporté au format PDF, qui est un format ouvert : tout le monde disposant d'un ordinateur était en mesure de lire votre programme sans débourser un sou de plus. Vous voyez à quel point c'est important ?

    Enfin, nous pensons que le logiciel libre devrait être surtout favorisé dans les systèmes éducatifs. À l'heure de la transition vers les métiers du futur, il est nécessaire de former nos enfants et étudiants à des technologies neutres et libres plutôt que de déjà les enfermer dans des technologies orientées par des entreprises qui ne sont motivées que par l'appât du gain plutôt que par le rayonnement de la connaissance et du savoir faire. Grâce au logiciel libre, les enfants peuvent être menés à s'interroger sur le fonctionnement des choses, et peuvent reprendre des mécanismes pour créer quelque chose d'encore plus grand, de totalement nouveau, et que peut-être personne n'aurait vu venir. Le logiciel libre est une source d'inspiration et d'innovation.

    Ma longue tirade approche de sa fin, si vous m'avez lu jusque là, rassurez-vous, vous allez pouvoir retourner à vos occupations plus "présidentielles". Je veux simplement attirer votre attention sur la surveillance de masse qui sévit actuellement en France, dans le cadre de ce que certains ont appelés "l'état d'urgence". Nous avons bien connaissance des raisons qui motivent de tels dispositifs, et sans pour autant adhérer aux mesures effectives, nous les comprenons. Nous tenions juste à vous inciter à faire preuve d'une immense sagesse et de vous rappeler que la sécurité ne justifie pas la privation de liberté, sous peine de mettre la démocratie en danger, et nous ne vous cachons pas que nous avons conscience que la démocratie est depuis un certain temps en réel danger et nous nous faisons beaucoup de souci. Je suis sûr qu'en tant que Président du pays des libertés, vous saisissez complètement nos inquiétudes. Je ne vais pas m'étendre sur le sujet tout de suite, un seul sujet à la fois.

    Sur ces paroles, nous nous permettons encore une fois de vous féliciter, et nous vous rappelons que, sur les points évoqués ici, vous avez le pouvoir de faire changer les choses et que nous comptons sur vous.

    Amicalement,

    Raspbeguy, pour l'équipe d'Hashtagueule.

    • Ha chevron_right

      Lettre ouverte au Président élu de la République française

      raspbeguy · pubsub.gugod.fr / hashtagueule · Sunday, 7 May, 2017 - 22:00 · 11 minutes

    Bonjour M. le Président. Au nom de l'équipe d'Hashtagueule, je tiens tout d'abord à vous adresser nos sincères félicitations (des félicitations républicaines, le terme étant très à la mode dans les médias aujourd'hui) pour votre victoire à l'élection du chef de l'État français. Nous sommes soulagés ...

    Bonjour M. le Président.

    Au nom de l'équipe d'Hashtagueule, je tiens tout d'abord à vous adresser nos sincères félicitations (des félicitations républicaines, le terme étant très à la mode dans les médias aujourd'hui) pour votre victoire à l'élection du chef de l'État français. Nous sommes soulagés en premier lieu que la France n'ait pas cédé au désespoir qui semble s'emparer du monde entier, en donnant le pouvoir à un parti extrémiste dangereux, prompt à briser les alliances amicales entre les nations européennes et mondiales, alliances qui ont demandé tant d'efforts, de réflexions et de remises en questions, et qui sont, à mon sens, l'évolution naturelle dans le cadre de l'épopée de l'humanité vers le Bien. À titre personnel, je suis même plutôt satisfait du résultat de cette élection, qui a au moins le mérite d'ouvrir des possibilités que les précédents titulaires de la Présidence ne laissaient pas apercevoir. Sur un point de vue bassement terre-à-terre, l'élection d'un Président ayant moins de 15 ans de plus de moi me remplit d'espoir quant au minimum d'ouverture d'esprit de la société. Bon, je sais très bien qu'on ne peut pas juger quelqu'un sur son âge, pas de panique, bien que je sois une personne très faible en politique et diplomatie, je garde quand même un brin de lucidité.

    J'admire également la manière dont vous ne cédez pas (au moins en apparence) au triomphalisme de bas étage et le sang-froid que vous témoignez. J'espère très sincèrement que cela va durer.

    Le but de cette lettre ouverte n'est bien sûr pas uniquement de vous féliciter, sans quoi ce blog aurait plutôt un nom du style notice-me-president.fr et on aurait d'ailleurs bien du mal à éviter de rester politiquement neutre. Le but n'est pas non plus de vous ennuyer, c'est pourquoi je renonce à la langue formelle et imbitable afin de vous délivrer l'essentiel. Vous me paraissez être une personne capable de se remettre en question et d'écouter les arguments sensés. À ce titre nous aimerions que vous preniez conscience de nos espoirs et de nos craintes concernant notre domaine de prédilection qui est l'informatique.

    Vous avez évoqué dans votre programme l'importance de la mise des administrations au numérique. En voilà une bonne nouvelle. Un bon moyen d'apporter de la sécurité au sein des institutions (pour peu que l'outil informatique soit correctement utilisé) et de l'emploi moderne. Et puis il y a un aspect écologique à ne pas négliger, même s'il n'est pas forcément aussi trivial qu'il n'y paraît. Mais attention, ce chemin, très bénéfique pour peu que l'on suive un minimum de précautions, peut très rapidement finir en eau de boudin dans le cas contraire.

    Le bon chemin, à notre sens, est de favoriser et même d'imposer aux administrations publiques l'usage de logiciels libres. Afin que vous gardiez toute votre attention et votre ouverture d'esprit pour les raisons qui font que c'est une drôlement bonne idée, examinons de plus près les arguments avancés par les lobbyistes contre le logiciel libre.

    Les mauvaises langues diront qu'on ne change pas une équipe qui gagne, et que l'administration a toujours tourné sur du logiciel privateur comme Microsoft Office, Windows, Oracle SQL, services Google, j'en passe et pas des moindres, et que ça a toujours très bien marché. Vous êtes désormais Président, vous devez donc être incollable dans le domaine de l'industrie, et vous n'ignorez donc pas le nombre de sociétés à croissance forte qui se spécialisent dans le logiciel libre. Il s'agit d'ailleurs d'un domaine dans lequel la France excelle, soit dit en passant. Ces sociétés qui ont le vent en poupe sont appelées des SS2L, sociétés de services en logiciel libre. Et croyez moi M. le Président, ça dépote grave. Vous avez donc des entreprises à la pelle, des entreprises européennes et françaises prêtes à fournir leur savoir-faire pour concevoir, déployer et maintenir des architectures libres, ainsi qu'à former le personnel pour qu'il soit autonome.

    Les mauvaises langues répliqueront : oh là là, le coût de mise en place va être exorbitant. À ces personnes visiblement expertes en mauvaise foi, je ferai remarquer que les licences d'utilisation des logiciels privateurs ont elles-même un prix à tomber par terre, tout simplement parce que les sociétés qui les proposent ont le monopole sur le produit qu'elles vendent et qu'elles sont les seules aptes et autorisées à vendre du support. Le fonctionnement du logiciel libre est simple : vous avez liberté d'utiliser le logiciel gratuitement, vous avez le droit de l'entretenir et de le faire évoluer à votre convenance, et vous avez la liberté de distribuer votre version et tout le savoir-faire que vous y avez placé. Si vous avez recours à une SS2L afin de vous aider à utiliser vos logiciels libres, vous être libre à tout moment de prendre en charge la maintenance et l'infogérance du logiciel en interne ou encore de changer de SS2L. Ce mode de fonctionnement est beaucoup plus sain au niveau industriel, favorise la concurrence nécessaire à l'économie et est un gage de qualité.

    Mais alors, rétorqueront les mauvaises langues, je préfère encore payer pour une société qui développe mes logiciels plutôt que de confier mon infrastructure à du travail "gratuit", car c'est bien connu, plus on y met d'argent, plus c'est efficace. Alors déjà, travailler dans le domaine du libre n'est pas du tout incompatible avec gagner de l'argent. Sinon les fameuses SS2L dont je vous parle tant n'existeraient pas. Comme je l'ai dit, ces entreprises vendent le savoir faire et non le logiciel en question. Les ingénieurs n'y inventent pas des technologies à partir de rien : ils font un énorme travail de "veille technologique" constant et rigoureux afin d'adapter leurs offres et d'en proposer de nouvelles. Et éventuellement, si la société en vient à modifier le code des logiciels libre qu'elle utilise, elle reverse les modifications à la communauté, elle y est tenu par la licence du logiciel libre. Le meilleur exemple de ce fonctionnement est la société américaine Red Hat qui vend la compilation de son propre système d'exploitation et qui reverse les modifications à la communauté, ce qui permet à n'importe qui ayant les compétences d'obtenir gratuitement le logiciel en question, pour peu qu'il puisse le maintenir lui-même. La mise à disposition des sources permet également à n'importe qui de vérifier le fonctionnement d'un logiciel et c'est grâce aux vérifications menées par la communauté qu'on peut s'assurer que le logiciel est de confiance. En comparaison, du côté des logiciels privateurs, absolument rien ne vous assure que le logiciel fait exactement ce qu'on lui demande et qu'on y a pas glissé une faille de sécurité, par incompétence ou par malice, vu qu'il n'y a qu'une seule société qui accède à la recette du logiciel.

    Pour être sûr que vous me compreniez, M. le Président, je vais utiliser une analogie classique, et je vais vous demander de comparer un logiciel à un gâteau au chocolat. Cette analogie est parlante car elle tend à unifier le peuple Français, non, l'humanité entière, autour du fait que les gâteaux au chocolat c'est bougrement bon. Donc, imaginez qu'un pâtissier vende des gâteaux au chocolat. S'il ne donne pas la recette de son gâteau, il encourt plusieurs risques. D'une part, en théorie, il peut remplacer le chocolat par une matière marron beaucoup moins ragoutante et le vendre tel quel, le client n'y verra que du feu jusqu'à ce qu'il le mange, et ce sera trop tard. D'autre part, si le pâtissier fait faillite, plus personne ne sera en mesure de le remplacer, condamnant ainsi l'humanité à se passer de gâteau au chocolat, ce qui, vous en conviendrez, M. le Président, serait bien triste. Cependant, s'il partage la recette du gâteau au chocolat, certes il va devoir faire preuve d'esprit pratique pour gagner autant d'argent, car n'importe qui sera en mesure de devenir pâtissier et de se lancer dans le gâteau au chocolat. Cependant, à partir de ce moment là, le pâtissier vendra son talent et non pas un produit alimentaire, car aussi claire une recette de cuisine peut être, un gâteau au chocolat demande du talent et de l'amour : on a gagné ainsi un gage de qualité. S'il est inventif, il pourra également se distinguer sur des plus-values, par exemple proposer une jolie salle de restauration où les clients peuvent savourer leurs gâteaux au chocolat dans un décor détendu, avec des jolies plantes, et du smooth-jazz en musique de fond. Et en plus, désormais, n'importe quel pâtissier peut déployer son talent en proposant des versions altérées de la recette, disons en ajoutant de la crème de marron, ce qui est succulent à mon sens, mais peut déplaire à d'autres personnes, et on a donc une recette qu'il est très aisé d'adapter en fonction du client.

    Passons désormais au reste des arguments. Adopter le libre, c'est refuser de s'enfermer dans un cercle vicieux mené par les sociétés privatrices. Par exemple, en utilisant Microsoft Office, on condamne non seulement l'utilisateur, mais également tous ses collaborateurs à utiliser Microsoft Office. En effet, le meilleur compère du logiciel privateur est le format fermé : le format des documents générés par un logiciel privateur a toutes les chances d'avoir des spécifications tenues secrètes, ce qui oblige chaque personne disposant d'un document privateur d'utiliser le logiciel privateur correspondant : c'est de l'esclavagisme numérique. À l'opposé, un format ouvert est un format dont les spécifications sont publiques : n'importe quel logiciel (en particulier un logiciel libre) sera en mesure d'implémenter la prise en charge de ce format. Les formats fermés sont donc un frein à la collaboration. Prenons un cas concret : supposons que pendant votre campagne, vous ayez mis en consultation votre programme en format Microsoft Word sur votre site internet. Surtout que votre programme, ce n'est pas la chose la plus légère informatiquement : il y a énormément d'images, de styles de texte différents, et globalement la mise en page a demandé beaucoup de travail et a utilisé beaucoup de spécificités. Il n'y a aucune chance que ce document ait pu être ouvert par autre chose que Microsoft Word. Du coup, les seules personnes à même de pouvoir lire votre programme auraient été les possesseurs de licences Microsoft, dont je ne fais pas partie. Vous conviendrez, M. le Président, que c'est un peu gênant pour se faire élire. Mais en réalité, votre programme a été exporté au format PDF, qui est un format ouvert : tout le monde disposant d'un ordinateur était en mesure de lire votre programme sans débourser un sou de plus. Vous voyez à quel point c'est important ?

    Enfin, nous pensons que le logiciel libre devrait être surtout favorisé dans les systèmes éducatifs. À l'heure de la transition vers les métiers du futur, il est nécessaire de former nos enfants et étudiants à des technologies neutres et libres plutôt que de déjà les enfermer dans des technologies orientées par des entreprises qui ne sont motivées que par l'appât du gain plutôt que par le rayonnement de la connaissance et du savoir faire. Grâce au logiciel libre, les enfants peuvent être menés à s'interroger sur le fonctionnement des choses, et peuvent reprendre des mécanismes pour créer quelque chose d'encore plus grand, de totalement nouveau, et que peut-être personne n'aurait vu venir. Le logiciel libre est une source d'inspiration et d'innovation.

    Ma longue tirade approche de sa fin, si vous m'avez lu jusque là, rassurez-vous, vous allez pouvoir retourner à vos occupations plus "présidentielles". Je veux simplement attirer votre attention sur la surveillance de masse qui sévit actuellement en France, dans le cadre de ce que certains ont appelés "l'état d'urgence". Nous avons bien connaissance des raisons qui motivent de tels dispositifs, et sans pour autant adhérer aux mesures effectives, nous les comprenons. Nous tenions juste à vous inciter à faire preuve d'une immense sagesse et de vous rappeler que la sécurité ne justifie pas la privation de liberté, sous peine de mettre la démocratie en danger, et nous ne vous cachons pas que nous avons conscience que la démocratie est depuis un certain temps en réel danger et nous nous faisons beaucoup de souci. Je suis sûr qu'en tant que Président du pays des libertés, vous saisissez complètement nos inquiétudes. Je ne vais pas m'étendre sur le sujet tout de suite, un seul sujet à la fois.

    Sur ces paroles, nous nous permettons encore une fois de vous féliciter, et nous vous rappelons que, sur les points évoqués ici, vous avez le pouvoir de faire changer les choses et que nous comptons sur vous.

    Amicalement,

    Raspbeguy, pour l'équipe d'Hashtagueule.

    • At chevron_right

      Un jukebox à partir d'un Raspberry Pi

      raspbeguy · pubsub.gugod.fr / atomtest · Wednesday, 15 March, 2017 - 23:00 · 7 minutes

    Ça y est ! Enfin un tutoriel Raspberry Pi. Depuis le temps qu'on m'en demande, vous êtes servi. Le Raspberry Pi (et les autres ordinateurs monocartes de la même farine) est remarquable du fait de la multitude d'usages qu'on peut lui attribuer. On le vois dans tous les domaines, Domotique, informatiq...

    Ça y est ! Enfin un tutoriel Raspberry Pi. Depuis le temps qu'on m'en demande, vous êtes servi.

    Le Raspberry Pi (et les autres ordinateurs monocartes de la même farine) est remarquable du fait de la multitude d'usages qu'on peut lui attribuer. On le vois dans tous les domaines, Domotique, informatique embarquée, serveur écologique, ordinateur de bureau low-cost, Internet des objets, montage électronique, cluster de calcul réparti, pour ne citer que ces exemples. Cet article va se concentrer sur l'aspect média-center du Raspberry Pi et plus précisément la lecture de bibliothèque musicale.

    Dans un premier temps, je vais vous expliquer comment vous monter un serveur MPD de base, chose que vous pourrez en grande partie trouver en quelques clics sur n'importe quel moteur de recherche. La deuxième partie présentera une manière très amusante de contrôler votre serveur de musique via un écran LCD, un projet en python qui a occupé mes soirées depuis ce dimanche (panne d'internet, vous comprenez) et dont je suis par conséquent assez fier, parce qu'il marche d'une part, et qu'en plus vous pouvez épater la galerie lorsque vous invitez des amis à l'heure de l'apéro et que vous voulez mettre un fond sonore.

    Le serveur MPD

    Si vous fréquentez des milieux barbus parlant entre autres d'usage de Linux au quotidien, de lecteurs multimédia, qui lancent des guerres sanglantes ayant pour motif par exemple le meilleur environnement graphique, qu'un environnement graphique en fait c'est pourri, que Arch Linux c'est bien mieux que Gentoo, bref, de tout ce qui relève de l'UNIX porn, vous avez très certainement déjà entendu parler de MPD (Music Player Daemon). Il s'agit d'une référence dans le domaine des lecteurs de bibliothèques musicales du type client-serveur (vous avez une machine qui lis la musique, et vous pouvez vous connecter dessus avec un client pour la contrôler).

    Ce qui fait la force de MPD, c'est sa légèreté (un Raspberry Pi peut l'exécuter sans trembler des genoux) ainsi que la flexibilité de sa configuration vis-à-vis des sorties audio, mais également et surtout la grande diversité des programmes clients, reflétant une communauté considérable, ce qui en fait en quelques sortes un standard de la lecture musicale sur UNIX.

    Nous partirons du principe que vous disposez d'un Raspberry Pi (même la première génération convient), et que vous avez installé une distribution dessus (par exemple Raspbian). Il est également conseillé de disposer d'un DAC (Digital to Analog Converter) externe, la carte son intégrée su RPi étant médiocre pour rester poli. Le DAC, pour faire court, est l'élément qui convertit le flux numérique audio en signal électrique analogique que vous pouvez brancher sur un ampli. Par exemple, la carte son de n'importe quel PC est un DAC. Je vous conseille également d'utiliser un DAC USB et non un DAC branché sur GPIO, sachant qu'ils est appréciable de pouvoir utiliser le GPIO pour autre chose (par exemple la deuxième partie du tutoriel...). Si vous cherchez une bonne affaire mais que vous pouvez quand même y mettre un certain prix, je vous conseille le Cambridge DacMagic 100, qui est d'excellente qualité, qui fonctionne sur le RPi avec une configuration de base et que j'utilise moi-même en étant satisfait.

    Niveau installation, il vous suffit d'installer MPD, présent sur la très grande majorité des distributions. Chose à noter, si vous avez des morceaux au format ALAC dans votre bibliothèque, vous devres en plus installer les plugins gstreamer adaptés. Sur Raspbian, il s'agit du paquet gstreamer1.0-plugins-bad. Puis vous êtes bon pour le décollage.

    Il est important d'ajouter le support de votre bibliothèque musicale dans le fichier /etc/fstab du RPi, cela permettra bien entendu de monter votre disque dur USB ou votre volume NFS dès le démarrage de l'appareil. Dans le cas d'un partage NFS, vous pouvez par exemple écrire :

    192.168.0.5:/chemin/vers/dossier/musique    /data   nfs    rsize=8192,wsize=8192,timeo=14,intr

    En remplaçant bien sûr l'IP de votre serveur NFS et le chemin du dossier musique sur ce serveur.

    Ensuite vous aurez besoin de configurer MPD. Direction le fichier /etc/mpd.conf pour dans un premier temps dire au lecteur où se trouve votre musique.

    music_directory "/mnt"

    Le fichier de configuration de MPD est assez bien documenté via le texte commenté. Ainsi vous pourrez personnaliser l'emplacement de vos futures playlists et de la base de donnée par exemple si ça vous chante.

    Partie également importante de ce fichier, la configuration des sorties audio. Si vous n'utilisez pas de DAC externe, vous pouvez laisser sans toucher. Si vous avec un DAC externe supportant de bonnes fréquences d'échantillonnage et que vous avez de la musique haute qualité, il sera intéressant d'y faire figurer :

    audio_output {
        type                "alsa"
        name                "My ALSA Device"
        device              "hw:CARD=C1,DEV=0"
        mixer_type          "none"
        auto_channels       "no"
        auto_format         "no"
        auto_resample       "no"
    }

    Le nom de la carte correspond pour le Cambridge DacMagic 100. Pour trouver le nom de votre DAC, vous pouvez par exemple faire usage de la commande aplay -L, qui vous listera l'ensemble des périphériques audio et leurs caractéristiques.

    Cette configuration impose à MPD de laisser le flux intouché (pas de traitement a posteriori) et de laisser le DAC révéler son potentiel en traitant du son à des fréquences échantillonnages élevées.

    Normalement c'est tout bon, vous pouvez démarrer ou redémarre MPD et initialiser la base de donnée. Pour ça,  vous allez avoir besoin d'un client, à installer sur les machines qui contrôleront le serveur. Par exemple sonata si vous voulez une interface graphique, ou l'excellent ncmpcpp si vous voulez du joli ncurses dans votre console. Astuce : il est pratique d'utiliser directement sur le RPi un client en ligle de commande minimaliste mpc, qui vous permettra rapidement de faires certaines actions, par exemple mettre la musique en pause parce que le voisin vous attend à votre porte avec une batte de baseball (mpc pause) ou bien mettre à jour la base de donnée (mpc update). Attention, la création de la base de donnée peut être très longue en fonction de la taille de votre bibliothèque. Pendant cette période, le CPU du RPi sera très solicité. Du coup vous saurez vite quand il aura fini...

    L'utilisation de MPD se base sur une liste de lecture centrale, dans laquelle vous ajoutez les morceaux dans l'ordre souhaité de lecture. Pour alimenter cette liste, vous aurez besoin de piocher dans la banque de musique qui a été créée par MPD. Je reste volontairement vague à ce sujet car la présentation de ces concepts varie en fonction du client utilisé.

    Il est également très amusant de contrôler son serveur via une interface web. Si vous désirez le faire, je vous conseille vivement de jeter un œil à ympd, une interface web propre et très légère, et dont il existe une version pour RPi justement.

    Bon, vous l'aurez compris, toute cette première partie n'était qu'un prétexte pour vous présenter le fruit de mon temps libre, mon projet du mois.

    Utiliser un écran LCD

    Il y a quelques années, je cherchais un écran LCD à contrôler par le RPi. J'ai craqué pour le Display-O-Tron 3000, qui dispose d'un rétroéclairage sous stéroïdes et multicolore, d'une série de diodes lumineuses supplémentaires à contrôler et d'un joystick de contrôle. Tout est contrôlable et personnalisable, et le fabriquant a développé une bibliothèque très facile d'usage, utilisable en Python, en C/C++ et en NodeJS. J'avais eu l'idée d'en faire un panneau de contrôle MPD mais je n'avais jamais pris le temps de le coder. C'est maintenant chose faite.

    Ce programme en python donc permet d'afficher les informations de la musique en cours sur MPD, avec les fonctionnalités suivantes :

    • Affichage du titre, de l'artiste et de l'album
    • Défilement du texte quand celui ci est trop long pour tenir sur une ligne
    • Changemment de la couleur du rétroéclairage en fonction de l'état du lecteur
    • Contrôle du lecteur grâce au joystick
    • Killer feature : affichage en temps réel de la puissance sonore via les diodes supplémentaires.

    Mieux que des paroles, voici une vidéo de démonstration

    Je vous invite à allez voir mon code commenté en détail (en anglais).

    Pour le mettre en application, il vous suffira d'installer la bibliothèque Python (voir le lien vers la page Github du fabricant) ainsi que la bibliothèque python-mpd2 utilisée pour contrôler MPD.

    Si vous trouvez des fonctionnalités à ajouter ou des améliorations possibles, n'hésitez pas à me le faire savoir, je serais heureux de prendre toutes les remarques en considération.

    • Ha chevron_right

      Un jukebox à partir d'un Raspberry Pi

      raspbeguy · pubsub.gugod.fr / hashtagueule · Wednesday, 15 March, 2017 - 23:00 · 7 minutes

    Ça y est ! Enfin un tutoriel Raspberry Pi. Depuis le temps qu'on m'en demande, vous êtes servi. Le Raspberry Pi (et les autres ordinateurs monocartes de la même farine) est remarquable du fait de la multitude d'usages qu'on peut lui attribuer. On le vois dans tous les domaines, Domotique, informatiq...

    Ça y est ! Enfin un tutoriel Raspberry Pi. Depuis le temps qu'on m'en demande, vous êtes servi.

    Le Raspberry Pi (et les autres ordinateurs monocartes de la même farine) est remarquable du fait de la multitude d'usages qu'on peut lui attribuer. On le vois dans tous les domaines, Domotique, informatique embarquée, serveur écologique, ordinateur de bureau low-cost, Internet des objets, montage électronique, cluster de calcul réparti, pour ne citer que ces exemples. Cet article va se concentrer sur l'aspect média-center du Raspberry Pi et plus précisément la lecture de bibliothèque musicale.

    Dans un premier temps, je vais vous expliquer comment vous monter un serveur MPD de base, chose que vous pourrez en grande partie trouver en quelques clics sur n'importe quel moteur de recherche. La deuxième partie présentera une manière très amusante de contrôler votre serveur de musique via un écran LCD, un projet en python qui a occupé mes soirées depuis ce dimanche (panne d'internet, vous comprenez) et dont je suis par conséquent assez fier, parce qu'il marche d'une part, et qu'en plus vous pouvez épater la galerie lorsque vous invitez des amis à l'heure de l'apéro et que vous voulez mettre un fond sonore.

    Le serveur MPD

    Si vous fréquentez des milieux barbus parlant entre autres d'usage de Linux au quotidien, de lecteurs multimédia, qui lancent des guerres sanglantes ayant pour motif par exemple le meilleur environnement graphique, qu'un environnement graphique en fait c'est pourri, que Arch Linux c'est bien mieux que Gentoo, bref, de tout ce qui relève de l'UNIX porn, vous avez très certainement déjà entendu parler de MPD (Music Player Daemon). Il s'agit d'une référence dans le domaine des lecteurs de bibliothèques musicales du type client-serveur (vous avez une machine qui lis la musique, et vous pouvez vous connecter dessus avec un client pour la contrôler).

    Ce qui fait la force de MPD, c'est sa légèreté (un Raspberry Pi peut l'exécuter sans trembler des genoux) ainsi que la flexibilité de sa configuration vis-à-vis des sorties audio, mais également et surtout la grande diversité des programmes clients, reflétant une communauté considérable, ce qui en fait en quelques sortes un standard de la lecture musicale sur UNIX.

    Nous partirons du principe que vous disposez d'un Raspberry Pi (même la première génération convient), et que vous avez installé une distribution dessus (par exemple Raspbian). Il est également conseillé de disposer d'un DAC (Digital to Analog Converter) externe, la carte son intégrée su RPi étant médiocre pour rester poli. Le DAC, pour faire court, est l'élément qui convertit le flux numérique audio en signal électrique analogique que vous pouvez brancher sur un ampli. Par exemple, la carte son de n'importe quel PC est un DAC. Je vous conseille également d'utiliser un DAC USB et non un DAC branché sur GPIO, sachant qu'ils est appréciable de pouvoir utiliser le GPIO pour autre chose (par exemple la deuxième partie du tutoriel...). Si vous cherchez une bonne affaire mais que vous pouvez quand même y mettre un certain prix, je vous conseille le Cambridge DacMagic 100, qui est d'excellente qualité, qui fonctionne sur le RPi avec une configuration de base et que j'utilise moi-même en étant satisfait.

    Niveau installation, il vous suffit d'installer MPD, présent sur la très grande majorité des distributions. Chose à noter, si vous avez des morceaux au format ALAC dans votre bibliothèque, vous devres en plus installer les plugins gstreamer adaptés. Sur Raspbian, il s'agit du paquet gstreamer1.0-plugins-bad. Puis vous êtes bon pour le décollage.

    Il est important d'ajouter le support de votre bibliothèque musicale dans le fichier /etc/fstab du RPi, cela permettra bien entendu de monter votre disque dur USB ou votre volume NFS dès le démarrage de l'appareil. Dans le cas d'un partage NFS, vous pouvez par exemple écrire :

    192.168.0.5:/chemin/vers/dossier/musique    /data   nfs    rsize=8192,wsize=8192,timeo=14,intr

    En remplaçant bien sûr l'IP de votre serveur NFS et le chemin du dossier musique sur ce serveur.

    Ensuite vous aurez besoin de configurer MPD. Direction le fichier /etc/mpd.conf pour dans un premier temps dire au lecteur où se trouve votre musique.

    music_directory "/mnt"

    Le fichier de configuration de MPD est assez bien documenté via le texte commenté. Ainsi vous pourrez personnaliser l'emplacement de vos futures playlists et de la base de donnée par exemple si ça vous chante.

    Partie également importante de ce fichier, la configuration des sorties audio. Si vous n'utilisez pas de DAC externe, vous pouvez laisser sans toucher. Si vous avec un DAC externe supportant de bonnes fréquences d'échantillonnage et que vous avez de la musique haute qualité, il sera intéressant d'y faire figurer :

    audio_output {
        type                "alsa"
        name                "My ALSA Device"
        device              "hw:CARD=C1,DEV=0"
        mixer_type          "none"
        auto_channels       "no"
        auto_format         "no"
        auto_resample       "no"
    }

    Le nom de la carte correspond pour le Cambridge DacMagic 100. Pour trouver le nom de votre DAC, vous pouvez par exemple faire usage de la commande aplay -L, qui vous listera l'ensemble des périphériques audio et leurs caractéristiques.

    Cette configuration impose à MPD de laisser le flux intouché (pas de traitement a posteriori) et de laisser le DAC révéler son potentiel en traitant du son à des fréquences échantillonnages élevées.

    Normalement c'est tout bon, vous pouvez démarrer ou redémarre MPD et initialiser la base de donnée. Pour ça,  vous allez avoir besoin d'un client, à installer sur les machines qui contrôleront le serveur. Par exemple sonata si vous voulez une interface graphique, ou l'excellent ncmpcpp si vous voulez du joli ncurses dans votre console. Astuce : il est pratique d'utiliser directement sur le RPi un client en ligle de commande minimaliste mpc, qui vous permettra rapidement de faires certaines actions, par exemple mettre la musique en pause parce que le voisin vous attend à votre porte avec une batte de baseball (mpc pause) ou bien mettre à jour la base de donnée (mpc update). Attention, la création de la base de donnée peut être très longue en fonction de la taille de votre bibliothèque. Pendant cette période, le CPU du RPi sera très solicité. Du coup vous saurez vite quand il aura fini...

    L'utilisation de MPD se base sur une liste de lecture centrale, dans laquelle vous ajoutez les morceaux dans l'ordre souhaité de lecture. Pour alimenter cette liste, vous aurez besoin de piocher dans la banque de musique qui a été créée par MPD. Je reste volontairement vague à ce sujet car la présentation de ces concepts varie en fonction du client utilisé.

    Il est également très amusant de contrôler son serveur via une interface web. Si vous désirez le faire, je vous conseille vivement de jeter un œil à ympd, une interface web propre et très légère, et dont il existe une version pour RPi justement.

    Bon, vous l'aurez compris, toute cette première partie n'était qu'un prétexte pour vous présenter le fruit de mon temps libre, mon projet du mois.

    Utiliser un écran LCD

    Il y a quelques années, je cherchais un écran LCD à contrôler par le RPi. J'ai craqué pour le Display-O-Tron 3000, qui dispose d'un rétroéclairage sous stéroïdes et multicolore, d'une série de diodes lumineuses supplémentaires à contrôler et d'un joystick de contrôle. Tout est contrôlable et personnalisable, et le fabriquant a développé une bibliothèque très facile d'usage, utilisable en Python, en C/C++ et en NodeJS. J'avais eu l'idée d'en faire un panneau de contrôle MPD mais je n'avais jamais pris le temps de le coder. C'est maintenant chose faite.

    Ce programme en python donc permet d'afficher les informations de la musique en cours sur MPD, avec les fonctionnalités suivantes :

    • Affichage du titre, de l'artiste et de l'album
    • Défilement du texte quand celui ci est trop long pour tenir sur une ligne
    • Changemment de la couleur du rétroéclairage en fonction de l'état du lecteur
    • Contrôle du lecteur grâce au joystick
    • Killer feature : affichage en temps réel de la puissance sonore via les diodes supplémentaires.

    Mieux que des paroles, voici une vidéo de démonstration

    Je vous invite à allez voir mon code commenté en détail (en anglais).

    Pour le mettre en application, il vous suffira d'installer la bibliothèque Python (voir le lien vers la page Github du fabricant) ainsi que la bibliothèque python-mpd2 utilisée pour contrôler MPD.

    Si vous trouvez des fonctionnalités à ajouter ou des améliorations possibles, n'hésitez pas à me le faire savoir, je serais heureux de prendre toutes les remarques en considération.

    • At chevron_right

      Protégez vos flux : stunnel

      raspbeguy · pubsub.gugod.fr / atomtest · Monday, 13 March, 2017 - 23:00 · 3 minutes

    On ne vous le répétera jamais assez, mais il est indispensable de prendre conscience des enjeux des communications électroniques en clair. En effet, vous n'avez sûrement pas envie qu'un malandrin s'approprie vos messages et actions privées, comme votre correspondance avec votre médecin et vos opérat...

    On ne vous le répétera jamais assez, mais il est indispensable de prendre conscience des enjeux des communications électroniques en clair. En effet, vous n'avez sûrement pas envie qu'un malandrin s'approprie vos messages et actions privées, comme votre correspondance avec votre médecin et vos opérations bancaires, données qu'ils pourrait retourner contre vous pour vous faire chanter, vous voler, ou tout bonnement vous faire du mal d'une manière quelconque. Il faut à tout prix préférer les communications chiffrées, et ce pour n'importe quel protocole.

    Fort heureusement, aujourd'hui le chiffrement des flux est devenu en quelques sortes un standard grâce à l'essor des implémentation du protocole TLS et de ses variantes. Les protocoles anciens se sont pour la plupart dotés d'une surcouche sécurisée (HTTP, IMAP, SMTP, IRC) et les protocoles naissants sont aujourd'hui regardés de travers s'ils omettent la sécurité dans leurs cahiers des charges.

    Malheureusement il existe encore des protocoles/programmes irréductibles qui continuent sans répit à laisser se balader à poil des paquets sur la toile. Ne leur jetons pas tout de suite la pierre, ou du moins pas trop fort, ce choix n'est pas toujours dénué de sens comme nous le verrons par la suite.

    Ici comme dans pas mal d'articles sur Hashtagueule, il y a un déclencheur personnel du besoin qui fait l'objet du tutoriel en question. On est pas des hommes politiques, nous on vous parle de choses qu'on connaît. On a l'idée de parler de certaines choses en se frottant à des problèmes et en y trouvent des solutions. Je vais donc vous parler de l'outil Bitlbee, qui agit comme une passerelle entre divers messageries comme Jabber, Twitter, MSN et Yahoo d'un côté, et IRC de l'autre côté, ce qui permet de centraliser toutes ses messageries sur un simple client IRC. Pour ce faire, il simule un serveur IRC sur lequel se connectent les client qui veulent accéder aux services agrégé. Seulement, alors que la plupart des serveurs IRC proposent une connexion sécurisée, Bitlbee n'implante pas cette couche TLS. En partie parce que le serveur est destiné à être exécuté en local (donc pas grand risque d'intercepter les communications). Mais n'empêche que ça semble bizarre et qu'à priori ça bride pas mal les utilisations.

    En réalisant ça, j'étais d'abord outré, et ça a même remis en question mon utilisation du programme. Cependant, j'ai trouvé une solution, qui est par ailleurs proposée par les développeurs. J'ai découvert un outil magique qui s'appelle stunnel, qui permet de transformer n'importe quel flux en clair par un flux chiffré à travers un certificat TLS. Pour ceux qui s'y connaissent un peu en serveur web, il s'agit du même principe qu'un reverse proxy comme le ferait un nginx ou un HAproxy, mais pour n'importe quel flux TCP (même si HAproxy est capable de gérer les flux TCP mais c'est moins marrant).

    Du coup, il suffit de posséder un certificat adapté au nom de domaine qui pointe vers votre serveur (chose très facile en utilisant Let's Encrypt, pour peu que vous ayez un serveur web qui sert ce nom de domaine) et il vous est possible d'envelopper ce flux dans un tunnel TLS. Voici ce que j'ai ajouté dans ma configuration stunnel :

    [bitlbee]
    accept = 6697
    connect = 6667
    cert = /etc/letsencrypt/live/mon.domaine.tld/fullchain.pem
    key = /etc/letsencrypt/live/mon.domaine.tld/privkey.pem

    Le port 6667 est le port non sécurisé, et le port 6697 est le port sécurisé. Elle est pas belle la vie ?

    De plus stunnel peut fonctionner dans l'autre sens, c'est à dire servir du contenu en clair à partir d'un canal sécurisé, ce qui est pratique quand derrière on a pas de client compatible avec TLS.

    Bon, revenons sur les raisons qui poussent un programme à ne pas adopter la sécurisation des flux. Dans le cas de bitlbee, comme je l'ai dit plus tôt, c'est un serveur destiné à être atteint en local. De plus, certains projets choisissent de ne pas implémenter le chiffrement et de recommander explicitement des solutions comme stunnel pour ne pas être responsables d'une éventuelle faille dans leur implémentation. Et aussi parce que c'est gonflant de faire de la sécu quand le projet à l'origine n'a absolument pas de rapport, il faut le reconnaître.

    • Ha chevron_right

      Protégez vos flux : stunnel

      raspbeguy · pubsub.gugod.fr / hashtagueule · Monday, 13 March, 2017 - 23:00 · 3 minutes

    On ne vous le répétera jamais assez, mais il est indispensable de prendre conscience des enjeux des communications électroniques en clair. En effet, vous n'avez sûrement pas envie qu'un malandrin s'approprie vos messages et actions privées, comme votre correspondance avec votre médecin et vos opérat...

    On ne vous le répétera jamais assez, mais il est indispensable de prendre conscience des enjeux des communications électroniques en clair. En effet, vous n'avez sûrement pas envie qu'un malandrin s'approprie vos messages et actions privées, comme votre correspondance avec votre médecin et vos opérations bancaires, données qu'ils pourrait retourner contre vous pour vous faire chanter, vous voler, ou tout bonnement vous faire du mal d'une manière quelconque. Il faut à tout prix préférer les communications chiffrées, et ce pour n'importe quel protocole.

    Fort heureusement, aujourd'hui le chiffrement des flux est devenu en quelques sortes un standard grâce à l'essor des implémentation du protocole TLS et de ses variantes. Les protocoles anciens se sont pour la plupart dotés d'une surcouche sécurisée (HTTP, IMAP, SMTP, IRC) et les protocoles naissants sont aujourd'hui regardés de travers s'ils omettent la sécurité dans leurs cahiers des charges.

    Malheureusement il existe encore des protocoles/programmes irréductibles qui continuent sans répit à laisser se balader à poil des paquets sur la toile. Ne leur jetons pas tout de suite la pierre, ou du moins pas trop fort, ce choix n'est pas toujours dénué de sens comme nous le verrons par la suite.

    Ici comme dans pas mal d'articles sur Hashtagueule, il y a un déclencheur personnel du besoin qui fait l'objet du tutoriel en question. On est pas des hommes politiques, nous on vous parle de choses qu'on connaît. On a l'idée de parler de certaines choses en se frottant à des problèmes et en y trouvent des solutions. Je vais donc vous parler de l'outil Bitlbee, qui agit comme une passerelle entre divers messageries comme Jabber, Twitter, MSN et Yahoo d'un côté, et IRC de l'autre côté, ce qui permet de centraliser toutes ses messageries sur un simple client IRC. Pour ce faire, il simule un serveur IRC sur lequel se connectent les client qui veulent accéder aux services agrégé. Seulement, alors que la plupart des serveurs IRC proposent une connexion sécurisée, Bitlbee n'implante pas cette couche TLS. En partie parce que le serveur est destiné à être exécuté en local (donc pas grand risque d'intercepter les communications). Mais n'empêche que ça semble bizarre et qu'à priori ça bride pas mal les utilisations.

    En réalisant ça, j'étais d'abord outré, et ça a même remis en question mon utilisation du programme. Cependant, j'ai trouvé une solution, qui est par ailleurs proposée par les développeurs. J'ai découvert un outil magique qui s'appelle stunnel, qui permet de transformer n'importe quel flux en clair par un flux chiffré à travers un certificat TLS. Pour ceux qui s'y connaissent un peu en serveur web, il s'agit du même principe qu'un reverse proxy comme le ferait un nginx ou un HAproxy, mais pour n'importe quel flux TCP (même si HAproxy est capable de gérer les flux TCP mais c'est moins marrant).

    Du coup, il suffit de posséder un certificat adapté au nom de domaine qui pointe vers votre serveur (chose très facile en utilisant Let's Encrypt, pour peu que vous ayez un serveur web qui sert ce nom de domaine) et il vous est possible d'envelopper ce flux dans un tunnel TLS. Voici ce que j'ai ajouté dans ma configuration stunnel :

    [bitlbee]
    accept = 6697
    connect = 6667
    cert = /etc/letsencrypt/live/mon.domaine.tld/fullchain.pem
    key = /etc/letsencrypt/live/mon.domaine.tld/privkey.pem

    Le port 6667 est le port non sécurisé, et le port 6697 est le port sécurisé. Elle est pas belle la vie ?

    De plus stunnel peut fonctionner dans l'autre sens, c'est à dire servir du contenu en clair à partir d'un canal sécurisé, ce qui est pratique quand derrière on a pas de client compatible avec TLS.

    Bon, revenons sur les raisons qui poussent un programme à ne pas adopter la sécurisation des flux. Dans le cas de bitlbee, comme je l'ai dit plus tôt, c'est un serveur destiné à être atteint en local. De plus, certains projets choisissent de ne pas implémenter le chiffrement et de recommander explicitement des solutions comme stunnel pour ne pas être responsables d'une éventuelle faille dans leur implémentation. Et aussi parce que c'est gonflant de faire de la sécu quand le projet à l'origine n'a absolument pas de rapport, il faut le reconnaître.

    • At chevron_right

      Battle for Wesnoth

      motius · pubsub.gugod.fr / atomtest · Monday, 27 February, 2017 - 23:00 · 6 minutes

    Bonjour à tous ! Aujourd'hui je vais vous présenter (pour ceux qui ne le connaissent pas déjà) le jeu Battle For Wesnoth. C'est un très beau jeu mono- et multijoueur en tour par tour, stratégique, et qui fait aussi appel à la chance, le tout dans un univers de type médiéval fantastique. Battle for W...

    Bonjour à tous !

    Aujourd'hui je vais vous présenter (pour ceux qui ne le connaissent pas déjà) le jeu Battle For Wesnoth. C'est un très beau jeu mono- et multijoueur en tour par tour, stratégique, et qui fait aussi appel à la chance, le tout dans un univers de type médiéval fantastique.

    Battle for Wesnoth est un logiciel libre écrit en C++ et disponible  sous licence GPLv2. Il s'installe très facilement sous Windows (binaires disponibles) GNU/Linux, et sous Mac aussi, quoique je n'ai pas testé. Sur ma debian (idem sur Ubuntu) je l'ai installé ainsi :

    apt-get install wesnoth

    Vous avez la possibilité de jouer une campagne pour vous familiariser avec le jeu, après avoir fait le tutoriel. Comme vous le voyez ci-dessous, le jeu est facile à prendre en main, puisqu'on vous indique ce qu'il faut faire.

    Dans le jeu, on se déplace sur des cases hexagonales, vous pouvez voir un hexagone jaune autour de la pièce que mon roi a recruté.

    Les bases de la stratégie

    Le héros/roi

    Vous avez un roi qu'il ne faut pas perdre sans quoi vous perdez le jeu, et qui est le seul qui permette de recruter de nouvelles unités, seulement quand il est à certains endroits stratégiques de la carte : ici à une place particulière du château, celle entourée par des tours pointues.

    L'or

    Vous avez une certaine quantité d'or qu'il faut bien gérer, il s'agit de l'unique ressource du jeu. L'or diminue quand vous recrutez des combattants, et à chaque tour, proportionellement au nombre de combattants. Vous gagnez d'autant plus d'or que vous avez de villages (ceux avec un drapeau rouge au dessus).

    Se déplacer

    La distance de déplacement dépend du terrain pour les unités qui ne volent pas. Certaines unités vont plus vite sur l'eau, d'autres sur terre. Ici, on voit que mon roi se défend mieux dans la forêt (50%) que sur un chemin (40%).

    On se déplace mal dans les cases adjacentes à des ennemis, une partie de la stratégie repose donc parfois sur la création d'un "mur" de personnages pour empêcher la prise de villages. Pour un mur, il suffit d'espacer les unités de 0 ou 1 ou 2 cases pour que l'adversaire ne puisse pas passer.

    Combattre

    Il y a deux types d'attaques : corps-à-corps et à distance. Ici je suis dans le tutoriel, donc je n'ai qu'une attaque : "6-3" signifie que j'attaque 3 fois en faisant 6 points de dommage. Le hasard fait que j'ai touché deux fois sur trois, et que mon adversaire a riposté trois fois sur cinq. Il a "3-5", qui signifie qu'il attaque cinq fois, en faisant trois points de dommages

    Il y a des armes qui sont plus efficaces que d'autres sur un adversaire, il faut donc choisir qui attaque qui sera la plus efficace. Par défaut le jeu propose souvent l'attaque la plus utile.

    Vous pouvez voir le détail des attaques avec des statistiques avancées.

    Par exemple si un adversaire n'a pas d'attaque à distance, il peut être utile de l'attaquer à distance pour ne pas subir de dommages. Lorsque lui nous attaquera, on pourra riposter avec notre attaque corps-à-corps. Les attaques à distance se font aussi quand on est sur une case adjacente à notre adversaire, ce qui fait qu'il pourra aussi attaquer à son tour.

    La stratégie minimale

    Il y a beaucoup de modificateurs de chance qu'il faut bien utiliser (c'est une grande partie de la stratégie). Premièrement le terrain, on attaque mieux à certains endroits que d'autres. Deuxièmement le jour est divisé en deux tours ou il fait "jour", deux ou il fait "nuit", et deux périodes liminaires. Certains combattants sont avantagés le jour, d'autre la nuit, certains lors des périodes limites, enfin d'autres ne sont pas affectés.

    Il faut aussi choisir ses combattants en fonction de l'adversaire si possible. Je vous l'ai déjà dit, certaines armes sont plus efficaces que d'autres.

    Pour la suite, je vous conseille le tutoriel, il est très facile. Le jeu vient en anglais par défaut mais est complètement traduit en français.

    Vous pourrez vous diriger vers cette page du wiki pour en apprendre plus sur la stratégie, et défaire plus facilement l'IA, qui est assez fûtée.

    Une partie à plusieurs

    Sur la machine d'un joueur

    Retrouvons les passionnés du code et de l'adminsys en installant un serveur Wesnoth.

    Sous Windows, on peut lancer le serveur Wesnoth à partir du jeu. Sous debian, wesnoth est un service.

    Tout d'abord, installer le serveur wesnoth à l'aide de la commande :

    apt-get install wesnoth-1.10-server

    ou

    apt-get install wesnoth-1.12-server

    La version du serveur importe moins que celle du client, et c'est un problème que l'on verra plus tard.

    Puis démarrez le service. Il tourne sur le port 15000.

    service wesnoth-1.10-server status 
    service wesnoth-1.10-server start # si status == stop.

    Sur un serveur dédié

    Pour pouvoir jouer avec des personnées n'étant pas sur votre sous-réseau local, il faut installer le service sur un ordinateur exposé à internet. Personnellement, j'ai installé un serveur Wesnoth sur une machine virtuelle Qemu-KVM de mon serveur. Pour la simple raison que mon serveur est sous debian 8 stable codename Jessie, et que la version de Wesnoth par défaut est la 1.10, qui est l'ancienne version stable. Sous debian testing codename Stretch, on a la version 1.12 de Wesnoth.

    Je n'ai pas eu de problèmes de compatibilité client-serveur, mais j'en ai eu client-client, donc pour une partie à plusieurs, choisissez la même version (1.10 ou 1.12 au moment de publication de l'article).

    Voici la configuration que j'ai utilisée (il faut rediriger le trafic IP du port 15000 depuis le serveur vers la machine virtuelle). Cette machine virtuelle a pour adresse 192.168.122.145, il faudra que vous adaptiez en fonction de votre propre configuration :

    #!/bin/bash
    
    IP_FWD_ON=`/sbin/sysctl net.ipv4.ip_forward | cut -d '=' -f2 | tr -d '[:space:]'`
    if [ "${IP_FWD_ON}" = "1" ] ; 
    then
        /sbin/iptables -t nat -I PREROUTING -p tcp -d 192.168.1.16 --dport 15000 -j DNAT --to-destination 192.168.122.145:15000
        /sbin/iptables -t nat -I PREROUTING -p tcp -d 192.168.1.16 --dport 15000 -j DNAT --to-destination 192.168.122.145:15000
        /sbin/iptables -I FORWARD -m state -d 192.168.122.0/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT
    else
        echo "Err: Routage NAT désactivé."
    fi

    Ce script (à utiliser en tant que root sur la machine hôte) vérifie que l'IP forwarding est activé, et si oui route le trafic du port 15000 vers l'IP 192.168.122.145.

    Le jeu est assez complet et mériterait une description plus avancée, notamment des races (Loyalistes, Rebelles, Nordiques, Morts-Vivants, Aliance knalgane, Dracans) des types d'attaques (perforantes, tranchantes, froid, chaud) , mais ça ferait un article long comme le bras, et c'est déjà assez bien documenté dans le jeu et dans le wiki, donc je vous laisse là avec largement de quoi jouer, et même de quoi mettre en place un serveur, éventuellement public. Vous pouvez aussi rejoindre des serveurs officiels.

    Bonne partie !

    Motius

    • Ha chevron_right

      Battle for Wesnoth

      motius · pubsub.gugod.fr / hashtagueule · Monday, 27 February, 2017 - 23:00 · 6 minutes

    Bonjour à tous ! Aujourd'hui je vais vous présenter (pour ceux qui ne le connaissent pas déjà) le jeu Battle For Wesnoth. C'est un très beau jeu mono- et multijoueur en tour par tour, stratégique, et qui fait aussi appel à la chance, le tout dans un univers de type médiéval fantastique. Battle for W...

    Bonjour à tous !

    Aujourd'hui je vais vous présenter (pour ceux qui ne le connaissent pas déjà) le jeu Battle For Wesnoth. C'est un très beau jeu mono- et multijoueur en tour par tour, stratégique, et qui fait aussi appel à la chance, le tout dans un univers de type médiéval fantastique.

    Battle for Wesnoth est un logiciel libre écrit en C++ et disponible  sous licence GPLv2. Il s'installe très facilement sous Windows (binaires disponibles) GNU/Linux, et sous Mac aussi, quoique je n'ai pas testé. Sur ma debian (idem sur Ubuntu) je l'ai installé ainsi :

    apt-get install wesnoth

    Vous avez la possibilité de jouer une campagne pour vous familiariser avec le jeu, après avoir fait le tutoriel. Comme vous le voyez ci-dessous, le jeu est facile à prendre en main, puisqu'on vous indique ce qu'il faut faire.

    Dans le jeu, on se déplace sur des cases hexagonales, vous pouvez voir un hexagone jaune autour de la pièce que mon roi a recruté.

    Les bases de la stratégie

    Le héros/roi

    Vous avez un roi qu'il ne faut pas perdre sans quoi vous perdez le jeu, et qui est le seul qui permette de recruter de nouvelles unités, seulement quand il est à certains endroits stratégiques de la carte : ici à une place particulière du château, celle entourée par des tours pointues.

    L'or

    Vous avez une certaine quantité d'or qu'il faut bien gérer, il s'agit de l'unique ressource du jeu. L'or diminue quand vous recrutez des combattants, et à chaque tour, proportionellement au nombre de combattants. Vous gagnez d'autant plus d'or que vous avez de villages (ceux avec un drapeau rouge au dessus).

    Se déplacer

    La distance de déplacement dépend du terrain pour les unités qui ne volent pas. Certaines unités vont plus vite sur l'eau, d'autres sur terre. Ici, on voit que mon roi se défend mieux dans la forêt (50%) que sur un chemin (40%).

    On se déplace mal dans les cases adjacentes à des ennemis, une partie de la stratégie repose donc parfois sur la création d'un "mur" de personnages pour empêcher la prise de villages. Pour un mur, il suffit d'espacer les unités de 0 ou 1 ou 2 cases pour que l'adversaire ne puisse pas passer.

    Combattre

    Il y a deux types d'attaques : corps-à-corps et à distance. Ici je suis dans le tutoriel, donc je n'ai qu'une attaque : "6-3" signifie que j'attaque 3 fois en faisant 6 points de dommage. Le hasard fait que j'ai touché deux fois sur trois, et que mon adversaire a riposté trois fois sur cinq. Il a "3-5", qui signifie qu'il attaque cinq fois, en faisant trois points de dommages

    Il y a des armes qui sont plus efficaces que d'autres sur un adversaire, il faut donc choisir qui attaque qui sera la plus efficace. Par défaut le jeu propose souvent l'attaque la plus utile.

    Vous pouvez voir le détail des attaques avec des statistiques avancées.

    Par exemple si un adversaire n'a pas d'attaque à distance, il peut être utile de l'attaquer à distance pour ne pas subir de dommages. Lorsque lui nous attaquera, on pourra riposter avec notre attaque corps-à-corps. Les attaques à distance se font aussi quand on est sur une case adjacente à notre adversaire, ce qui fait qu'il pourra aussi attaquer à son tour.

    La stratégie minimale

    Il y a beaucoup de modificateurs de chance qu'il faut bien utiliser (c'est une grande partie de la stratégie). Premièrement le terrain, on attaque mieux à certains endroits que d'autres. Deuxièmement le jour est divisé en deux tours ou il fait "jour", deux ou il fait "nuit", et deux périodes liminaires. Certains combattants sont avantagés le jour, d'autre la nuit, certains lors des périodes limites, enfin d'autres ne sont pas affectés.

    Il faut aussi choisir ses combattants en fonction de l'adversaire si possible. Je vous l'ai déjà dit, certaines armes sont plus efficaces que d'autres.

    Pour la suite, je vous conseille le tutoriel, il est très facile. Le jeu vient en anglais par défaut mais est complètement traduit en français.

    Vous pourrez vous diriger vers cette page du wiki pour en apprendre plus sur la stratégie, et défaire plus facilement l'IA, qui est assez fûtée.

    Une partie à plusieurs

    Sur la machine d'un joueur

    Retrouvons les passionnés du code et de l'adminsys en installant un serveur Wesnoth.

    Sous Windows, on peut lancer le serveur Wesnoth à partir du jeu. Sous debian, wesnoth est un service.

    Tout d'abord, installer le serveur wesnoth à l'aide de la commande :

    apt-get install wesnoth-1.10-server

    ou

    apt-get install wesnoth-1.12-server

    La version du serveur importe moins que celle du client, et c'est un problème que l'on verra plus tard.

    Puis démarrez le service. Il tourne sur le port 15000.

    service wesnoth-1.10-server status 
    service wesnoth-1.10-server start # si status == stop.

    Sur un serveur dédié

    Pour pouvoir jouer avec des personnées n'étant pas sur votre sous-réseau local, il faut installer le service sur un ordinateur exposé à internet. Personnellement, j'ai installé un serveur Wesnoth sur une machine virtuelle Qemu-KVM de mon serveur. Pour la simple raison que mon serveur est sous debian 8 stable codename Jessie, et que la version de Wesnoth par défaut est la 1.10, qui est l'ancienne version stable. Sous debian testing codename Stretch, on a la version 1.12 de Wesnoth.

    Je n'ai pas eu de problèmes de compatibilité client-serveur, mais j'en ai eu client-client, donc pour une partie à plusieurs, choisissez la même version (1.10 ou 1.12 au moment de publication de l'article).

    Voici la configuration que j'ai utilisée (il faut rediriger le trafic IP du port 15000 depuis le serveur vers la machine virtuelle). Cette machine virtuelle a pour adresse 192.168.122.145, il faudra que vous adaptiez en fonction de votre propre configuration :

    #!/bin/bash
    
    IP_FWD_ON=`/sbin/sysctl net.ipv4.ip_forward | cut -d '=' -f2 | tr -d '[:space:]'`
    if [ "${IP_FWD_ON}" = "1" ] ; 
    then
        /sbin/iptables -t nat -I PREROUTING -p tcp -d 192.168.1.16 --dport 15000 -j DNAT --to-destination 192.168.122.145:15000
        /sbin/iptables -t nat -I PREROUTING -p tcp -d 192.168.1.16 --dport 15000 -j DNAT --to-destination 192.168.122.145:15000
        /sbin/iptables -I FORWARD -m state -d 192.168.122.0/24 --state NEW,RELATED,ESTABLISHED -j ACCEPT
    else
        echo "Err: Routage NAT désactivé."
    fi

    Ce script (à utiliser en tant que root sur la machine hôte) vérifie que l'IP forwarding est activé, et si oui route le trafic du port 15000 vers l'IP 192.168.122.145.

    Le jeu est assez complet et mériterait une description plus avancée, notamment des races (Loyalistes, Rebelles, Nordiques, Morts-Vivants, Aliance knalgane, Dracans) des types d'attaques (perforantes, tranchantes, froid, chaud) , mais ça ferait un article long comme le bras, et c'est déjà assez bien documenté dans le jeu et dans le wiki, donc je vous laisse là avec largement de quoi jouer, et même de quoi mettre en place un serveur, éventuellement public. Vous pouvez aussi rejoindre des serveurs officiels.

    Bonne partie !

    Motius