[{"data":1,"prerenderedAt":222},["ShallowReactive",2],{"seo-verification":3,"blog-pgbouncer-1-26-1-cve-2026-107350-mettre-a-jour-fr":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-pgbouncer-1-26-1-cve-2026-107350-mettre-a-jour-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":160,"ctaBody":161,"ctaButton":162,"ctaUrl":163,"relatedPosts":164},516,"pgbouncer-1-26-1-cve-2026-107350-mettre-a-jour",{"fr":10,"en":12,"ar":13,"es":14},"pgbouncer-1-26-1-cve-2026-107350-update","ثغرة-pgbouncer-cve-2026-107350-التحديث-إلى-1-26-1","pgbouncer-1-26-1-cve-2026-107350-actualizar","PgBouncer 1.26.1 : corriger CVE-2026-107350 (SCRAM)","PgBouncer 1.26.1 corrige CVE-2026-107350, contournement d'authentification SCRAM. Version en service, exposition du port 6432, mise à jour apt, Docker, parades, traces.",12,0,false,"2026-10-28T00:00:00+00:00","2026-10-29T03:10:22+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"Sécurité & Monitoring","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fpgbouncer-1-26-1-cve-2026-107350-mettre-a-jour-poster.svg","Le 14 octobre 2026, PgBouncer 1.26.1 a corrigé un contournement d'authentification SCRAM, CVE-2026-107350, ainsi que deux dénis de service. Les paquets des versions stables de Debian restent vulnérables au constat : un simple `apt upgrade` ne règle donc pas la question. Il arrive qu'on ne sache pas quelle version de PgBouncer tourne sur son serveur, ni qui peut joindre son port. Ce guide donne les commandes pour constater la version en quelques minutes, mettre à jour selon l'installation (dépôt PGDG, RHEL, Docker, sources), poser des parades en attendant, puis contrôler les traces.",[35,39,75,78,89,114,117,141,145,148,151,154,157],{"type":36,"title":37,"body":38},"h2","Ce que corrige PgBouncer 1.26.1","Le 14 octobre 2026, le projet PgBouncer a publié la version 1.26.1, qui corrige trois failles. La plus sérieuse, CVE-2026-107350, est un contournement d'authentification : un client qui connaît le mot de passe d'un utilisateur SCRAM peut se connecter comme n'importe quel autre utilisateur SCRAM, y compris les administrateurs de PgBouncer et les superutilisateurs de PostgreSQL. Le mécanisme tient à un deuxième message de démarrage, le StartupMessage, traité pendant l'authentification SCRAM lorsque la connexion vise une base inexistante. D'après la description de Mend, l'échange SCRAM reste vérifié avec les clés du premier utilisateur, tandis que la session s'ouvre sous l'identité du second. Le changelog précise que l'attaque exige SCRAM pour les deux utilisateurs.\n\nLes deux autres failles sont des dénis de service, déclenchables sans authentification, mais seulement sous certaines options de configuration : CVE-2026-107349 et CVE-2026-107348. Mend attribue à CVE-2026-107350 un score CVSS v4 de 8,7. Le score compte moins qu'une question pratique : quelle version tourne chez vous, et qui peut atteindre le port 6432 ?",{"type":40,"title":41,"headers":42,"rows":46},"comparison","Versions touchées et état des paquets",[43,44,45],"Cas de figure","Statut","Action",[47,51,54,57,61,63,67,71],[48,49,50],"PgBouncer 1.17.0 à 1.26.0","Touché par CVE-2026-107350, si SCRAM est utilisé pour les deux comptes","Passer en 1.26.1",[52,53,50],"PgBouncer 1.20.0 à 1.26.0","Touché par CVE-2026-107349 si `ignore_startup_parameters` est non vide sans `options`",[55,56,50],"PgBouncer 1.21.0 à 1.26.0","Touché par CVE-2026-107348 seulement si `max_packet_size` dépasse 2147483648",[58,59,60],"Debian bookworm, paquet 1.18.0-1+deb12u1","Listé vulnérable par le suivi de sécurité Debian","Dépôt PGDG ou compilation",[62,59,60],"Debian trixie, paquet 1.24.1-1+deb13u2",[64,65,66],"Debian forky et sid, paquet 1.26.1-1","Corrigé","Mise à jour par apt",[68,69,70],"Image Docker tierce","Dépend de la version embarquée","Vérifier `pgbouncer -V` dans le conteneur",[72,73,74],"Version antérieure à 1.17.0","Hors plage annoncée pour CVE-2026-107350","Ne pas s'en contenter, planifier la mise à jour",{"type":36,"title":76,"body":77},"« Mon PgBouncer n'est pas exposé » : un critère insuffisant","L'objection est légitime : un PgBouncer qui n'écoute que sur une adresse privée n'est pas joignable depuis Internet. Mais l'attaque ne demande pas de force brute. Il suffit de connaître le mot de passe d'un seul utilisateur SCRAM valide, et de pouvoir joindre le port. Or le mot de passe d'une application vit dans un fichier `.env`, une variable de CI, un poste de développement, parfois un journal. Une application compromise fournit à la fois le mot de passe et la position réseau. Depuis cette position, la faille transforme un compte applicatif limité en compte d'administration, voire en superutilisateur du serveur PostgreSQL derrière.\n\nLe critère qui tranche n'est donc pas « Internet ou pas Internet », mais deux questions : qui peut ouvrir une connexion vers le port 6432, et combien de mots de passe valides circulent. Une version vulnérable derrière un pare-feu strict est un risque réduit, pas supprimé.",{"type":79,"title":80,"items":81},"ul","Ce qui détermine votre exposition réelle",[82,83,84,85,86,87,88],"**Adresse d'écoute** — `listen_addr` n'a pas de valeur par défaut : sans lui, PgBouncer n'accepte que les sockets Unix. La valeur `*` ouvre toutes les interfaces.","**Type d'authentification** — l'attaque exige SCRAM pour les deux utilisateurs. Regardez `auth_type` et la nature des entrées du fichier désigné par `auth_file`.","**Nombre de comptes** — chaque mot de passe valide est un point d'entrée vers tous les autres comptes SCRAM. Dix comptes applicatifs, c'est dix clés vers la même porte.","**Comptes d'administration** — `admin_users` ouvre la console, et le rôle utilisé pour joindre PostgreSQL peut être un superutilisateur.","**Docker et pare-feu** — un port publié par Docker passe par ses propres règles réseau, qui contournent souvent celles d'ufw. Vérifiez la publication du port, pas seulement le pare-feu.","**Options liées aux dénis de service** — `ignore_startup_parameters` non vide sans `options`, ou `max_packet_size` relevé au-dessus de sa valeur par défaut.","**Conteneurs et piles embarquées** — un PgBouncer livré dans une pile Compose ou un chart garde la version de son image, quelle que soit celle du serveur hôte.",{"type":90,"title":91,"steps":92},"steps","Constater la version et l'exposition en quelques minutes",[93,96,99,102,105,108,111],{"title":94,"body":95},"Interroger la console d'administration","`psql -h 127.0.0.1 -p 6432 -U \u003Cadmin_user> pgbouncer -c \"SHOW VERSION;\"`\nSeuls les utilisateurs de `admin_users` ou `stats_users` peuvent s'y connecter. La commande `SHOW VERSION` affiche la chaîne de version de PgBouncer : après correctif, elle doit mentionner 1.26.1.",{"title":97,"body":98},"Lire la version du binaire","`pgbouncer -V`\n`which -a pgbouncer`\nPlusieurs binaires cohabitent parfois, celui du paquet, un autre sous `\u002Fusr\u002Flocal` après une compilation. Le premier de la liste n'est pas toujours celui que le service exécute.",{"title":100,"body":101},"Lire la version du paquet","Debian et Ubuntu :\n`dpkg -l pgbouncer`\n`apt-cache policy pgbouncer`\nRHEL, AlmaLinux, Rocky :\n`rpm -q pgbouncer`\n`dnf info pgbouncer`\nComparez avec le tableau ci-dessus. Un paquet de distribution peut recevoir un correctif sans changer de numéro de version amont : fiez-vous au suivi de sécurité de la distribution plus qu'au seul numéro.",{"title":103,"body":104},"Relire la configuration réellement chargée","`ps -eo pid,args | grep '[p]gbouncer'`\n`grep -nE '^(listen_addr|listen_port|auth_type|auth_file|admin_users|ignore_startup_parameters|max_packet_size)' \u002Fetc\u002Fpgbouncer\u002Fpgbouncer.ini`\nLe fichier `.ini` à lire est celui passé en argument au processus, pas forcément celui du chemin habituel.",{"title":106,"body":107},"Voir qui peut atteindre le port","`sudo ss -ltnp | grep 6432`\n`sudo ufw status numbered`\n`nc -vz \u003Cserver_ip> 6432`\nLa dernière commande, lancée depuis une autre machine, dit si le port répond hors du réseau prévu. Une réponse inattendue vaut décision immédiate sur le pare-feu.",{"title":109,"body":110},"Compter les comptes SCRAM sans afficher les secrets","`grep -c 'SCRAM-SHA-256' \u002Fetc\u002Fpgbouncer\u002Fuserlist.txt`\nRemplacez le chemin par celui de `auth_file`. Ne collez jamais le contenu du fichier dans un ticket ou une conversation : il contient les empreintes de vos mots de passe.",{"title":112,"body":113},"Inventorier les conteneurs","`docker ps`\n`docker port \u003Ccontainer>`\n`docker exec \u003Ccontainer> pgbouncer -V`\nUn conteneur en cours d'exécution garde l'image avec laquelle il a démarré. Le résultat de `docker port` dit si le port est publié sur l'hôte.",{"type":36,"title":115,"body":116},"Quelle voie de mise à jour : l'état des paquets Debian","Au jour de la rédaction, le suivi de sécurité Debian liste bookworm (1.18.0-1+deb12u1) et trixie (1.24.1-1+deb13u2) comme vulnérables à CVE-2026-107350, seuls forky et sid disposant du paquet corrigé 1.26.1-1. Tant que Debian n'a pas publié de correctif pour votre version, `apt upgrade` seul ne protège donc pas. Revérifiez le suivi le jour où vous agissez : l'état peut avoir changé.\n\nTrois voies existent. La première : le dépôt PGDG, apt.postgresql.org pour Debian et Ubuntu, yum.postgresql.org pour RHEL et dérivés, que la page de téléchargement de PgBouncer présente comme des constructions parfois plus récentes que celles des distributions. La deuxième : une image Docker ou un tag à jour, sachant que le projet ne mentionne aucune image officielle et que vous utilisez donc une image tierce. La troisième : compiler l'archive des sources de la version 1.26.1. Avant de basculer, confirmez par `apt-cache policy pgbouncer` ou `dnf info pgbouncer` que le dépôt propose bien la version corrigée.",{"type":90,"title":118,"steps":119},"Mettre à jour selon votre mode d'installation",[120,123,126,129,132,135,138],{"title":121,"body":122},"Sauvegarder la configuration","`sudo cp -a \u002Fetc\u002Fpgbouncer \u002Froot\u002Fpgbouncer-etc-backup`\nCette copie permet de revenir en arrière si une mise à jour remplace un fichier. Notez aussi la version actuelle avant de commencer.",{"title":124,"body":125},"Debian et Ubuntu : activer le dépôt PGDG","`sudo apt install -y postgresql-common ca-certificates`\n`sudo \u002Fusr\u002Fshare\u002Fpostgresql-common\u002Fpgdg\u002Fapt.postgresql.org.sh`\n`apt-cache policy pgbouncer`\nLe script officiel configure le dépôt apt.postgresql.org. La dernière commande doit afficher un candidat en 1.26.1 ; s'il est absent, n'allez pas plus loin avec cette voie.",{"title":127,"body":128},"Debian et Ubuntu : installer","`sudo apt update`\n`sudo apt install --only-upgrade pgbouncer`\n`pgbouncer -V`\nSi dpkg propose de remplacer votre fichier de configuration, conservez votre version locale. `pgbouncer -V` confirme le binaire installé.",{"title":130,"body":131},"RHEL, AlmaLinux et Rocky","Ajoutez le dépôt PGDG avec les commandes que génère le sélecteur de yum.postgresql.org pour votre distribution, puis :\n`sudo dnf makecache`\n`dnf info pgbouncer`\n`sudo dnf upgrade pgbouncer`\nContrôlez que la version proposée est bien 1.26.1 avant de valider.",{"title":133,"body":134},"Docker et Compose","`docker compose pull pgbouncer`\n`docker compose up -d pgbouncer`\n`docker compose exec pgbouncer pgbouncer -V`\nSi l'image est épinglée par un tag ou un digest ancien, mettez d'abord à jour cette référence dans votre fichier Compose. Si aucun tag 1.26.1 n'existe, construisez l'image à partir des sources.",{"title":136,"body":137},"Compiler depuis les sources","`curl -LO https:\u002F\u002Fwww.pgbouncer.org\u002Fdownloads\u002Ffiles\u002F1.26.1\u002Fpgbouncer-1.26.1.tar.gz`\n`sha256sum pgbouncer-1.26.1.tar.gz`\nComparez la somme obtenue avec celle publiée sur la page de téléchargement avant de poursuivre.\n`tar xzf pgbouncer-1.26.1.tar.gz`\n`cd pgbouncer-1.26.1`\n`.\u002Fconfigure --prefix=\u002Fusr\u002Flocal`\n`make`\n`sudo make install`\nLa compilation demande libevent 2.0 ou supérieur, OpenSSL 1.0.1 ou supérieur et un compilateur C11. La documentation recommande Autoconf pour la production.",{"title":139,"body":140},"Redémarrer, puis constater","`sudo systemctl restart pgbouncer`\n`ps -o lstart= -p $(pgrep -o pgbouncer)`\n`sudo readlink -f \u002Fproc\u002F$(pgrep -o pgbouncer)\u002Fexe`\nUn rechargement ne suffit pas : le processus doit repartir sur le nouveau binaire. La date de démarrage et le chemin de l'exécutable le prouvent. Relancez enfin `SHOW VERSION` sur la console.",{"type":142,"title":143,"body":144},"tip","Redémarrer sans couper les clients, et le cas search_path","Un redémarrage coupe les connexions en cours. La documentation décrit une alternative : plusieurs processus sur le même port avec `so_reuseport`, puis `SHUTDOWN WAIT_FOR_CLIENTS` sur un processus à la fois pendant que les clients se reconnectent. Autre point de vigilance : depuis la version 1.26.0, `search_path` est suivi par défaut, et 1.26.1 fait primer `ignore_startup_parameters` sur les paramètres suivis. Si une application envoyait `search_path` au démarrage et que vous comptiez l'ignorer, ajoutez `ignore_startup_parameters = search_path` dans la configuration pour retrouver le comportement de la 1.25.",{"type":36,"title":146,"body":147},"Parades en attendant le correctif","Pour CVE-2026-107350, l'annonce ne donne aucune parade de configuration : la mise à jour est la seule vraie réponse. Vous pouvez en revanche réduire qui tente sa chance. Limitez le port 6432 au réseau applicatif :\n`sudo ufw allow from \u003Capp_subnet> to any port 6432 proto tcp`\n`sudo ufw status numbered`\n`sudo ufw delete \u003Cn>`\nIci `\u003Cn>` est le numéro d'une règle plus large déjà présente, par exemple une ouverture du port 6432 à tous, que l'on supprime une fois la règle restreinte posée. Sur RHEL et dérivés, la même règle se pose avec firewalld. Si `listen_addr` vaut `*`, remplacez-le par l'adresse privée du serveur. Auditez ensuite le fichier `auth_file` : retirez les comptes inutilisés, faites tourner les mots de passe qui ont circulé, et réduisez `admin_users` au strict nécessaire.\n\nPour les deux dénis de service, voici notre lecture des conditions du changelog, pas une consigne de l'éditeur. CVE-2026-107349 suppose `ignore_startup_parameters` non vide et sans `options` : ajouter `options` à la liste lève la condition ; vider le paramètre la lève aussi, mais peut faire rejeter les clients qui envoient des paramètres de démarrage (voir le cas de `search_path` ci-dessus). CVE-2026-107348 suppose un `max_packet_size` supérieur à 2147483648 : garder la valeur par défaut, 2147483647, l'écarte.",{"type":36,"title":149,"body":150},"Contrôler les traces d'une connexion usurpée","PgBouncer journalise par défaut les connexions réussies et les déconnexions, avec leur motif, grâce à `log_connections` et `log_disconnections`. Lisez la période qui suit la publication des correctifs, et au-delà si vos journaux le permettent :\n`sudo journalctl -u pgbouncer --since \"2026-10-14\"`\nCherchez des tentatives vers des noms de base qui n'existent pas dans votre section `[databases]`, puis une session ouverte juste après sous un autre nom d'utilisateur depuis la même adresse. Sur la console, ces deux commandes montrent l'état courant :\n`psql -h 127.0.0.1 -p 6432 -U \u003Cadmin_user> pgbouncer -c \"SHOW DATABASES;\"`\n`psql -h 127.0.0.1 -p 6432 -U \u003Cadmin_user> pgbouncer -c \"SHOW CLIENTS;\"`\nCôté PostgreSQL, listez les rôles et leurs changements récents avec `psql -c \"\\du\"`.\n\nNous n'avons pas de signature exacte de cette attaque dans les journaux, et nous n'en inventons pas. Une absence de trace ne prouve pas l'absence d'intrusion, surtout si `log_connections` était coupé ou si les journaux ont tourné. En cas de doute sérieux, changez les mots de passe de tous les comptes SCRAM et des rôles privilégiés du serveur PostgreSQL.",{"type":36,"title":152,"body":153},"Fermer le dossier : de la version au suivi","Une mise à jour réussie se prouve, elle ne se suppose pas. Pour chaque serveur, consignez dans un tableau la machine, le mode d'installation, la version avant et après, la règle de pare-feu posée, et la date du contrôle. Vérifiez que `SHOW VERSION` annonce 1.26.1, que le processus a redémarré après l'installation, et que le port 6432 n'est joignable que depuis le réseau prévu. Confirmez aussi que vos deux réglages de déni de service respectent les conditions décrites plus haut, ou qu'ils sont devenus sans objet.\n\nEnfin, ne comptez pas sur les mises à jour automatiques : un paquet de distribution non corrigé ne se met pas à jour tout seul, et une image Docker épinglée non plus. Ajoutez un rappel pour revérifier le suivi de sécurité de votre distribution, puis basculez sur son paquet quand il sera corrigé, ou gardez le dépôt PGDG de façon délibérée.",{"type":36,"title":155,"body":156},"Sur un VPS à vous, vous tenez les trois leviers","Corriger PgBouncer demande trois accès : choisir la version installée, poser le pare-feu du port 6432 et lire les journaux. Sur un VPS Cloud avec accès root, ces trois leviers sont les vôtres, sans dépendre du calendrier d'un hébergeur mutualisé. Les guides liés sous cet article détaillent le pare-feu et la mise en place de PostgreSQL. Ce guide est fourni sans prise en charge : la mise à jour reste à votre charge. Si vous préférez déléguer l'administration du serveur, l'option d'administration VPS existe, à examiner selon votre besoin.",{"type":36,"title":158,"body":159},"La documentation officielle","Annonce de la version 1.26.1 : https:\u002F\u002Fwww.postgresql.org\u002Fabout\u002Fnews\u002Fpgbouncer-1261-released-fixes-three-cves-3403\u002F\n\nJournal des modifications de PgBouncer : https:\u002F\u002Fwww.pgbouncer.org\u002Fchangelog.html\n\nTéléchargements de PgBouncer : https:\u002F\u002Fwww.pgbouncer.org\u002Fdownloads\u002F\n\nUtilisation et console d'administration : https:\u002F\u002Fwww.pgbouncer.org\u002Fusage.html\n\nConfiguration de PgBouncer : https:\u002F\u002Fwww.pgbouncer.org\u002Fconfig.html\n\nSuivi de sécurité Debian pour CVE-2026-107350 : https:\u002F\u002Fsecurity-tracker.debian.org\u002Ftracker\u002FCVE-2026-107350\n\nFiche Mend de CVE-2026-107350 : https:\u002F\u002Fwww.mend.io\u002Fvulnerability-database\u002FCVE-2026-107350\u002F\n\nDépôt apt de PostgreSQL : https:\u002F\u002Fwiki.postgresql.org\u002Fwiki\u002FApt\n\nDépôt yum de PostgreSQL : https:\u002F\u002Fyum.postgresql.org\u002F\n\nDocker et pare-feu : https:\u002F\u002Fdocs.docker.com\u002Fengine\u002Fnetwork\u002Fpacket-filtering-firewalls\u002F","Un serveur dont vous tenez la version et le pare-feu","Sur un VPS Cloud avec accès root, vous choisissez la version de PgBouncer, fermez le port 6432 aux seules machines prévues et lisez vos journaux. L'option d'administration VPS permet de déléguer ce suivi.","Voir les VPS Cloud","\u002Fvps-cloud",[165,188,204],{"id":166,"slug":167,"slugs":168,"title":172,"excerpt":173,"readTime":174,"views":18,"isPinned":19,"publishedAt":175,"updatedAt":176,"category":177,"categories":183,"featuredImage":30,"bgImage":31,"posterImage":185,"relatedSolution":186},56,"heberger-postgresql-vps",{"fr":167,"en":169,"ar":170,"es":171},"postgresql-on-a-vps-a-reliable-and-controlled-database","postgresql-على-خادم-vps-قاعدة-بيانات-موثوقة-ومتحكم-بها","alojar-postgresql-en-un-vps","PostgreSQL sur VPS : base fiable et contrôlée","Hébergez PostgreSQL sur VPS : configuration prod, sauvegardes pgBackRest, haute disponibilité streaming, comparatif RDS\u002FSupabase\u002FNeon et dépannage OOM.",9,"2026-04-25T00:00:00+00:00","2026-10-21T15:21:37+00:00",{"id":178,"name":179,"slug":180,"color":181,"icon":182},6,"Bases de données","bases-de-donnees","bg-teal-500\u002F10 text-teal-400","database",[184],{"id":178,"name":179,"slug":180,"color":181,"icon":182},"\u002Fblog\u002Fcovers\u002Fheberger-postgresql-vps-poster.svg",{"categorySlug":180,"appSlug":187},"postgresql-stack",{"id":189,"slug":190,"slugs":191,"title":195,"excerpt":196,"readTime":197,"views":18,"isPinned":19,"publishedAt":198,"updatedAt":199,"category":200,"categories":201,"featuredImage":30,"bgImage":31,"posterImage":203,"relatedSolution":30},115,"pare-feu-ufw-vps",{"fr":190,"en":192,"ar":193,"es":194},"configure-your-vps-firewall-with-ufw","تهيئة-جدار-الحماية-ufw-على-خادمك-vps","configurar-firewall-ufw-vps","Configurer le pare-feu UFW de votre VPS","Configurez le pare-feu UFW de votre VPS pas à pas : règles, ports, rate limiting SSH et bonnes pratiques pour réduire la surface d'attaque.",4,"2026-02-25T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[202],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fpare-feu-ufw-vps-poster.svg",{"id":205,"slug":206,"slugs":207,"title":211,"excerpt":212,"readTime":197,"views":213,"isPinned":19,"publishedAt":214,"updatedAt":199,"category":215,"categories":216,"featuredImage":30,"bgImage":31,"posterImage":218,"relatedSolution":219},109,"proteger-vps-fail2ban",{"fr":206,"en":208,"ar":209,"es":210},"fail2ban-enhanced-on-vps-blocking-repeated-attacks","fail2ban-enhanced-على-خادم-vps-حجب-الهجمات-المتكررة","fail2ban-en-vps-bloquear-ataques-repetidos","Fail2Ban Enhanced sur VPS : bloquer les attaques répétées","Reliez Fail2Ban Enhanced au catalogue ServOrbit : bannissement SSH\u002FNginx, logs lisibles et documentation officielle.",1,"2026-03-03T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[217],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fproteger-vps-fail2ban-poster.svg",{"categorySlug":220,"appSlug":221},"securite","fail2ban-enhanced",1793251274057]