[{"uuid":"a9d84ffa-4380-4348-887c-d8aad9f940bc","slug":"installer","title":"Installer MariaDB","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-10 22:48:32","created_at":"2023-02-10 22:48:32","updated_at":"2023-02-10 22:48:32","tags":[],"plain":"L'installation de MariaDB se distingue par l'installation de la partie serveur appelée et la partie cliente nommée . Sécuriser l'installation avec la commande suivante : Les réponses à saisir sont les suivantes : Vérifier que le service soit opérationnel\nVous pouvez vérifier le bon fonctionnement de votre service en tapant la commande suivante : sudo systemctl status mariadb\n Vérifier la connectivité avec root\nVous pouvez vérifier en ligne de commande le service : mysql -uroot -p\n \nRésultat : Si vous n'arrivez pas à vous connecter, suivant le guide Une fois connecté tapez la commande : Vous obtiendrez le résultat suivant : voir aussi\nInstallation d’un serveur MariaDB ou MySQL en une ligne de commande sous Linux Debian"},{"uuid":"df583b78-fc45-425d-8b2e-52f2c79ea797","slug":"savoir-si-mariadb-est-installe","title":"Savoir si MariaDB est installé","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-16 00:54:21","created_at":"2023-02-16 00:54:21","updated_at":"2023-02-16 00:54:21","tags":[],"plain":"Sous Linux, pour savoir si MariaDB est installé sur un système, vous pouvez utiliser l'une des méthodes suivantes : \nVous pouvez ouvrir un terminal et exécuter la commande suivante pour vérifier si PostgreSQL est installé : sudo systemctl status mariadb Cette commande va afficher le statut de MariaDB s'il est installé sur votre système. Si vous voyez un message indiquant que le service est actif (running) et que le processus est en cours d'exécution, cela signifie que MariaDB est installé et en cours d'exécution. Si MariaDB n'est pas installé sur votre système, vous verrez un message d'erreur indiquant que le service n'est pas trouvé. Dans ce cas, vous pouvez l'installer en utilisant la commande appropriée pour votre distribution Linux (par exemple, pour les distributions basées sur Debian/Ubuntu ou pour les distributions basées sur Red Hat/CentOS/Fedora)."},{"uuid":"3e7ef528-6bd0-4fd1-83cb-a0d03ba35949","slug":"npm-le-ver-dans-le-fruit-comprendre-la-faille-systemique-et-repenser-les-pratiques-devops","title":"NPM, le ver dans le fruit : comprendre la faille systémique et repenser les pratiques DevOps","category":"informatique","author":"cedric@abonnel.fr","cover":"cover.svg","published":true,"published_at":"2026-05-12 13:08","created_at":"2026-05-12 13:08:44","updated_at":"2026-05-12 13:12:42","tags":[],"plain":"À propos de l'article du MagIT « NPM : une nouvelle campagne malveillante souligne une vulnérabilité systémique ».\r\n\r\nNPM expliqué simplement\r\n\r\nQuand on développe une application web moderne en JavaScript ou TypeScript, on ne réécrit jamais tout depuis zéro. On assemble des briques logicielles déjà écrites par d'autres : un module pour parser des dates, un autre pour valider des emails, un troisième pour discuter avec une base de données. Ces briques s'appellent des paquets, et la place de marché centrale qui les distribue s'appelle npm (Node Package Manager).\r\n\r\nConcrètement, dans un projet, on déclare la liste des paquets nécessaires dans un fichier . On lance la commande , et l'outil télécharge automatiquement les paquets demandés… ainsi que tous les paquets dont ces paquets ont eux-mêmes besoin. Un projet « simple » se retrouve souvent à dépendre de plusieurs centaines, voire plusieurs milliers, de paquets en cascade. C'est ce qu'on appelle l'arbre des dépendances.\r\n\r\nLe registre npm héberge aujourd'hui plus de 2,5 millions de paquets. C'est à la fois sa force — un écosystème colossal, une productivité décuplée — et sa faiblesse : la confiance accordée à chaque maillon de la chaîne est implicite, et chaque maillon devient une porte d'entrée potentielle.\r\n\r\nLa faille : ce qui s'est passé\r\n\r\nL'épisode décrit par LeMagIT n'est pas un bug logiciel classique. C'est ce qu'on appelle une attaque sur la chaîne d'approvisionnement logicielle (supply chain attack) : au lieu d'attaquer directement la cible finale, l'attaquant compromet un fournisseur en amont, et laisse la mise à jour légitime faire son travail de propagation.\r\n\r\nLe scénario reconstitué se déroule en plusieurs temps.\r\n\r\n1. Compromission d'un paquet de confiance. Les attaquants sont parvenus à pousser du code malveillant dans des paquets npm largement utilisés, notamment via le détournement du pipeline d'intégration continue de projets connus comme et l'écosystème Checkmarx. L'astuce n'est pas de publier un faux paquet : c'est de modifier un vrai paquet en exploitant les GitHub Actions — les robots qui construisent et publient automatiquement les nouvelles versions.\r\n\r\n2. Vol de secrets à l'installation. Une fois installé sur la machine d'un développeur ou dans un environnement de build, le code malveillant scanne l'environnement à la recherche de variables sensibles : , , , . Tout ce qui traîne dans les variables d'environnement, les fichiers , les configurations cloud.\r\n\r\n3. Auto-propagation. C'est là que l'attaque devient virale. Avec les jetons npm volés, le maliciel se reconnecte au registre npm, récupère la liste des paquets publiés par la victime, et publie automatiquement des versions piégées de ces paquets. Chaque développeur compromis devient un super-propagateur. Socket a identifié une quarantaine de paquets infectés en cascade lors d'une seule vague.\r\n\r\n4. Persistance. Sur les postes touchés, le malware installe un script pour survivre aux redémarrages, et, si nécessaire, exfiltre les données volées dans un dépôt GitHub public créé pour l'occasion.\r\n\r\nLe résultat : un binaire signé, publié sous un nom officiel, à jour, qui passe tous les contrôles de surface — et qui contamine simultanément le poste du développeur et les serveurs de production.\r\n\r\nPourquoi c'est « systémique »\r\n\r\nLe terme employé par LeMagIT est juste. Ce n'est pas un bug isolé, c'est une propriété structurelle de l'écosystème.\r\n\r\nLa confiance est transitive. On fait confiance à , qui fait confiance à , qui fait confiance à , etc. Compromettre un nœud profond et populaire suffit à toucher des millions de projets.\r\n\r\nLa publication est ouverte. N'importe qui peut publier un paquet. Les contrôles existent (provenance, 2FA pour les mainteneurs populaires) mais restent surtout a posteriori.\r\n\r\nLes scripts d'installation s'exécutent automatiquement. Un paquet npm peut déclarer un qui lance du code arbitraire au moment de . C'est pratique, mais c'est aussi un cheval de Troie idéal.\r\n\r\nLes jetons d'API sont partout. Le poste du développeur, les runners CI/CD, les serveurs : tous manipulent des secrets en clair dans des variables d'environnement. Un malware qui s'exécute dans le build n'a même pas besoin d'escalader ses privilèges.\r\n\r\nLes versions sont mutables sur fenêtre courte. Un paquet peut être republié dans les 72 heures suivant sa publication, et un peut retirer une version d'un jour à l'autre.\r\n\r\nAucun de ces points n'est un défaut technique réparable par un patch. Ce sont des choix d'architecture, vieux de plus de dix ans, qui ont accompagné l'explosion de l'écosystème.\r\n\r\nY a-t-il des alternatives ?\r\n\r\nLa question est légitime, mais la réponse honnête est : pas vraiment, et pour de bonnes raisons.\r\n\r\nLes gestionnaires de paquets alternatifs\r\n\r\n, et sont des gestionnaires différents, mais ils tirent leurs paquets du même registre npm. Migrer de à ne change rien à la surface d'attaque : ce sont les mêmes paquets, le même registre, les mêmes mainteneurs.\r\n\r\nCela dit, certains apportent des garde-fous utiles :\r\na introduit l'option , qui refuse d'installer un paquet publié il y a moins de N jours. Une vague d'attaque dure typiquement quelques heures avant détection : attendre 72 heures avant d'installer une nouvelle version élimine la fenêtre dangereuse.\r\nimpose un consentement explicite pour les scripts , là où npm les exécute par défaut.\r\net proposent des lockfiles stricts () qui garantissent que ce qui est installé en CI correspond exactement à ce qui a été testé.\r\n\r\nLes registres alternatifs\r\n\r\nJSR (JavaScript Registry), lancé par les créateurs de Deno, est le seul vrai nouveau registre crédible. Il a été conçu en tirant les leçons des problèmes de npm : TypeScript natif, modules ECMAScript par défaut, pas de scripts d'install, scoring qualité automatique, compatible avec tous les runtimes (Node, Deno, Bun). Mais JSR est complémentaire, pas un remplaçant : il héberge des milliers de paquets, pas des millions. Pour la majorité des dépendances, on continuera de passer par npm.\r\n\r\nLes registres privés — Verdaccio, GitHub Packages, JFrog Artifactory, Sonatype Nexus — ne remplacent pas npm non plus. Ils servent de proxy filtrant : on continue de récupérer les paquets publics, mais à travers un cache d'entreprise où l'on peut bloquer une version, exiger une signature, refuser un mainteneur, ou interdire les paquets publiés depuis moins de X jours. C'est probablement le meilleur compromis disponible aujourd'hui pour une organisation.\r\n\r\nLe verdict\r\n\r\nAbandonner npm en 2026 reviendrait à abandonner JavaScript. La valeur de l'écosystème (2,5 millions de paquets) est trop importante pour qu'on en sorte. Le problème ne se résoudra pas par un changement d'outil ; il se résoudra par un changement de pratiques.\r\n\r\nChanger les pratiques : ce qui doit devenir réflexe\r\n\r\nL'enseignement de cette campagne, et des précédentes (Shai-Hulud, TeamPCP, l'attaque Trivy/KICS), tient en une phrase : la confiance par défaut est morte. Il faut traiter chaque dépendance comme du code hostile par défaut, et le pipeline CI/CD comme une zone de production.\r\n\r\nAu niveau du poste de développement\r\nActiver l'option (ou équivalent) pour différer l'installation des paquets fraîchement publiés.\r\nDésactiver les scripts par défaut, et n'autoriser que ceux explicitement validés.\r\nNe jamais stocker de jetons en clair dans ou les variables d'environnement persistantes. Préférer un gestionnaire de secrets (1Password CLI, , ).\r\nUtiliser des comptes npm séparés pour la publication, avec 2FA matérielle obligatoire.\r\n\r\nAu niveau du dépôt\r\nVerrouiller systématiquement les dépendances (, , ) et installer en mode strict (, ).\r\nMettre en place un audit automatique des dépendances à chaque PR (Socket, Snyk, GitHub Dependabot, ).\r\nPublier ses propres paquets avec provenance npm (signature liée au pipeline GitHub Actions), pour que les consommateurs puissent vérifier l'origine.\r\nTenir à jour un SBOM (Software Bill of Materials) pour savoir exactement ce qui tourne en production.\r\n\r\nAu niveau du CI/CD\r\n\r\nC'est probablement le chantier le plus important.\r\nCloisonner les jetons. Un jeton de publication npm ne doit jamais coexister avec un jeton AWS dans la même étape de pipeline. Un secret par étape, durée de vie minimale, scope minimal.\r\nPréférer les jetons à courte durée de vie (OIDC entre GitHub Actions et le cloud) plutôt que des clés statiques.\r\nAuditer les GitHub Actions tierces. Une action est l'équivalent d'un . Épingler par hash SHA (), pas par tag mutable.\r\nRestreindre les permissions du au strict minimum ( par défaut, ponctuel et justifié).\r\nSurveiller le comportement réseau des runners : un build qui contacte un domaine inconnu doit lever une alerte.\r\n\r\nAu niveau de l'organisation\r\nMettre en place un registre proxy (Verdaccio, Nexus, Artifactory) avec liste blanche/noire de paquets, et l'imposer comme unique source pour tous les projets.\r\nDéfinir une politique de dependency governance : qui peut introduire une nouvelle dépendance, sous quelles conditions, avec quel niveau d'audit.\r\nPrévoir un playbook de révocation : que faire dans l'heure qui suit la détection d'un paquet compromis (rotation de tous les jetons npm/GitHub/cloud, audit des artefacts publiés, communication).\r\n\r\nEn résumé\r\n\r\nNPM n'est pas cassé, il est tel qu'il a été conçu : ouvert, automatique, transitif. Ce qui a changé, c'est la valeur que les attaquants peuvent en extraire — secrets cloud, jetons CI/CD, accès aux pipelines — et la sophistication des campagnes, qui exploitent désormais l'auto-propagation pour atteindre une échelle virale.\r\n\r\nAucune alternative ne supprime le problème, parce que le problème n'est pas npm : c'est l'idée qu'on puisse exécuter en production du code écrit par des inconnus sans jamais le regarder. Le rôle du DevOps en 2026, c'est de bâtir l'infrastructure qui rend cette inspection systématique, économique et inévitable — registres proxy, lockfiles stricts, jetons éphémères, audits continus, isolation des étapes de build.\r\n\r\nOn ne fera pas confiance à moins de gens. On exigera juste que chaque maillon prouve, à chaque exécution, qu'il est bien celui qu'il prétend être."},{"uuid":"cc16bce7-3dbc-41ed-a769-1b9837043c7a","slug":"install-server-linux-usenet-nntp","title":"Installer un serveur Usenet sous Linux Debian","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2020-12-18 13:11:15","created_at":"2020-12-18 13:11:15","updated_at":"2020-12-18 13:11:15","tags":[],"plain":"Quelques liens\nhttps:gavenkoa-tips.readthedocs.io/en/latest/nntp.html\nhttps:www.htpcguides.com/install-spotweb-on-raspberry-pi-for-personal-usenet-indexer/\nhttps:www.reddit.com/r/usenet/comments/48admu/raspberrypi3asusenetserver/\nhttps:wiki.debian.org/UseNet\nhttps:packages.debian.org/fi/sid/inn2\nhttps:*gavenkoa-tips.readthedocs.io/en/latest/nntp.html"},{"uuid":"e15511a0-4a7f-4411-93cf-65f2b741a405","slug":"mariadb-2","title":"Base de données MariaDB","category":"Informatique","author":"cedric@abonnel.fr","cover":"","published":true,"published_at":"2023-02-16 00:52:49","created_at":"2023-02-16 00:52:49","updated_at":"2023-02-16 00:52:49","tags":[],"plain":"MariaDB est un système de gestion de base de données relationnelle (SGBD) open-source, créé par les développeurs qui ont initié le développement de MySQL. Il est conçu pour être une alternative à MySQL, offrant des fonctionnalités similaires tout en ajoutant des améliorations et des nouvelles fonctionnalités. MariaDB utilise le langage de requête SQL (Structured Query Language) pour gérer les bases de données et permet de stocker, organiser, rechercher et récupérer des données. Les caractéristiques clés de MariaDB incluent la compatibilité avec MySQL, la haute disponibilité, la scalabilité, la sécurité, la réplication et la gestion des transactions. Il offre également une variété de moteurs de stockage, y compris InnoDB, MyISAM et Aria, pour offrir des fonctionnalités de stockage flexibles pour les différents cas d'utilisation. En raison de sa licence open source, MariaDB est utilisé par de nombreuses organisations pour stocker et gérer des données de toutes tailles et de tous types. Il est souvent utilisé dans des environnements d'entreprise pour des applications critiques telles que les systèmes de gestion de contenu (CMS), les systèmes de gestion de l'information (SGI), les applications Web et les systèmes de business intelligence. En 1995 est sortie la première version internationale du SGBD open source MySQL de MySQL AB. En 2009, à la suite du rachat de MySQL par Sun Microsystems et des annonces du rachat de Sun Microsystems par Oracle Corporation, le fondateur de MySQL quitte cette société pour lancer le projet MariaDB, dans une démarche visant à remplacer MySQL tout en assurant l’interopérabilité. À ce jour, en octobre 2020, le SGBD standard libre de diffusion (licence GPL) s'appelle MariaDB Community Server. Certains moteurs proposés par MariaDb (MaxScale) sont soumis aux termes de la licence Business Source License (BSL), licence payante dans certaines conditions. À partir de la version 8.0, MariaDB n'assure plus la compatibilité parfaite de MySQL au niveau binaire. Voir les notes des versions : Table des matières\nLes pages\n Les sous-catégories\n"}]