Optimiser WordPress : Pnwy sous Stéroide !

La licorne Geekeries allège une page WordPress en retirant une police et des fichiers inutiles

Salut à tous, j’ai profité d’une maintenance récente pour enfin (ré)optimiser le WordPress de Geekeries.org. Pas en installant un énième plugin miracle, mais en regardant ce que le navigateur chargeait vraiment.

Le site n’était pas à genoux. Il fonctionnait, les pages s’ouvraient, et personne ne m’avait signalé de catastrophe. PageSpeed lui me scorait pourtant à 72 sur mobile et 73 sur ordinateur. Le plus visible était le décalage de mise en page : le logo arrivait sans dimensions réservées et poussait le contenu pendant le chargement.

J’ai donc repris la chaîne complète, du reverse proxy jusqu’au navigateur, avec deux règles assez simples : une modification à la fois, et un retour arrière prêt avant de toucher à la production. Pwny m’a aidé à faire l’inventaire et à préparer les contrôles, et les appliquer mais chacun autorisé et vérifié manuellement.

Le serveur n’était pas le principal coupable

Une requête sur le site suit ce chemin : visiteur → Nginx Proxy Manager → Nginx et PHP → WordPress → MariaDB et Redis. Mon premier réflexe aurait pu être de régler PHP-FPM ou d’ajouter encore du cache. Les mesures racontaient autre chose.

Une fois la page anonyme servie à chaud, le TTFB… Lire la suite

Quicky : PHP2shell sur Docker, patcher PHP-FPM sans perdre ses modules

La licorne rose de Geekeries remplace un conteneur PHP provisoire par une image officielle validée.

Salut à tous, petite séance de maintenance imprévue avec PHP2shell sur Docker. Le 21 octobre 2026, les correctifs PHP ont été annoncés à 2pm UTC (16h en France), mais l’image docker officielle dont j’ai besoin n’était pas encore dispo. Voici la méthode suivie pour protéger Geekeries, conserver mes extensions PHP et revenir sur la base officielle dès sa disponibilité.

Les deux failles, CVE-2026-109618 et CVE-2026-109619, permettent une exécution de code à distance. L’avis officiel PHP inclut PHP-FPM et indique les versions corrigées : 8.2.35, 8.3.36, 8.4.27 et 8.5.12.

PHP2shell sur Docker : vérifier l’image, pas seulement le tag

Premier piège : le tag peut apparaître alors que la liste des images disponibles est encore vide. Pour vérifier la variante FPM utilisée ici, Docker avec son plugin Buildx suffit :

docker buildx imagetools inspect php:8.5.12-fpm-bookworm

Cette commande consulte le registre sans déployer de conteneur. Cherchez votre plateforme, par exemple linux/amd64, et son digest, l’identifiant précis de l’image. Un tag seul ne suffit pas.

En attendant, j’ai placé le site derrière une page statique de maintenance (sans PHP évidement). Puis j’ai construit une image provisoire depuis les sources officielles corrigées. Un dépannage temporaire pas une invitation à maintenir ma … Lire la suite

Script de veille serveur sous Linux et Docker : alertes CVE, silence radio et vrais pièges

Illustration Geekeries d'un script de veille serveur Linux et Docker filtrant le bruit pour détecter les mises à jour de sécurité CVE

Bonjour à tous, quand on administre un serveur Linux qui héberge une vingtaine de conteneurs Docker en production, on finit vite écartelé entre deux extrêmes. Soit on délègue tout à des mises à jour automatiques aveugles (ce que je vous racontais récemment dans mon article sur MariaDB et les surprises de Watchtower et comment ça peut casser silencieusement un schéma de base de données), soit on reprend le contrôle en manuel… au risque d’oublier de vérifier les correctifs pendant trois semaines et de se faire poncer bien comme il faut ! Pour sortir de ce dilemme, j’ai construit un script de veille serveur, léger, en Python, piloté par systemd, qui inspecte l’état réel de la machine deux fois par jour sans jamais toucher à la production.

L’idée de départ est très simple : je voulais un observateur strictement en lecture seule (observer-only), capable de croiser en quelques secondes les paquets APT en attente, les images Docker (qu’elles viennent de Docker Hub, de GitHub ou d’un build local), les extensions WordPress, la fraîcheur des sauvegardes et les unités systemd. Surtout, je voulais qu’il respecte une règle d’or : se taire quand tout va bien, mais ne jamais rater … Lire la suite

Build a CSIRT Second Brain with OpenCode, Obsidian, MCP, and an AbuseIPDB custom tool

CSIRT second brain: workshop introduction (French)

Bonjour à tous ! Le 1er octobre 2026, j’ai animé à Stockholm un atelier consacré au « CSIRT second brain » (ou « second cerveau » en français), pour les équipes de réponse à incident. Il s’inscrivait dans le cadre des 78e rencontres du TF-CSIRT, organisées en Suède du 29 septembre au 1er octobre (auxquelles j’ai aussi assisté 😊).

J’ai préparé cet atelier suite au meeting précédent du TF-CSIRT à Riga au printemps, où plusieurs personnes m’ont demandé de montrer comment on s’y prend au CERT pour qualifier nos incidents avec des agents. Et autant c’est « assez simple » à expliquer, autant l’implémentation réelle en prod est vite complexe à reproduire : entre le choix des LLM, les tools, les MCP, les skills et les bases de connaissances…

Mettre tout ça en musique dans un atelier suffisamment simple pour que tout le monde comprenne en une demi-journée, gratuitement, mais suffisamment complexe pour être représentatif de la réalité, c’était un beau challenge sur lequel je me suis fait des nœuds au cerveau… pour vous sortir la version la plus simple d’un agent SOC/CSIRT de qualification d’incidents.

L’idée de mon workshop est de conserver … Lire la suite