URL:     https://linuxfr.org/users/zatalyz/journaux/comment-bannir-presque-tout-internet
Title:   Comment bannir (presque) tout internet
Authors: Zatalyz
Date:    2026-08-31T19:56:17+02:00
License: CC By-SA
Tags:    ddos, administration_système, nftables, apache et bot
Score:   16


La semaine dernière, j’ai constaté un fort ralentissement sur un des sites web que je gère, au point où accéder au site était par moment impossible. Je me suis donc connectée au serveur, et j’ai rapidement trouvé le souci : apache qui saturait à cause du nombre de connexion.

Ce n’est pas la première fois que je rencontre ce souci depuis deux ans, sur un serveur ou un autre. À chaque fois, j’applique une rustine ou une autre dans l’urgence, en me promettant de faire les choses correctement une fois l’attaque passée. Quant au souci en question, beaucoup de sysadmin y ont été confrontés : une armée de bot qui a soudainement décidé que *ce* domaine devait être harcelé.

De façon intéressante, alors que le serveur en question héberge 5 domaines différents (et pas mal de sous-domaine), un seul était la cible de l’attaque, d’après les logs Apache. De façon tout aussi intéressante, ce flood (sur les diverses attaques que j’ai eu) ne concerne que le web (ports 80 et 443). Enfin, ça ne veut pas dire que les autres services ne sont pas floodés de bots aussi, mais pas dans des proportions à faire tomber le serveur, et je les gère avec un bazooka un peu moins excessif.

TL:DR : ceci est un roman, ça n’a aucun intérêt en version courte, puisqu’il s’agit plus de raconter une histoire que de partager des astuces techniques. Bon sang, ne suivez pas les astuces partagées ici. Mais si le TL:DR vous est réellement nécessaire : je me suis retrouvée à bannir quasi tout internet à cause des bots. Le titre suffit presque. 

# Mauvais timing (comme toujours)

Avant que j’entre un peu plus dans les détails techniques, commençons par les détails humains, qui ont toujours leur importance, dans toutes les structures.

On ne fait pas face aux problèmes avec les mêmes contraintes et possibilités suivant qu’on est tout seul, dans une petite association, dans une entreprise. Et il y a forcément quelques différences d’approche entre le [sysadmin de métier](https://people.kernel.org/monsieuricon/creepy-crawlies), vénérable baroudeur des réseaux, et la hobbyiste du dimanche qui tatouille de la ligne de commande à l’occasion.

Lors de ma première attaque de ce genre, ça n’impactait quasi que moi : j’avais une page web sur mon serveur mail pour dire « c’est un serveur mail, voici les contacts en cas de souci » et un petit service pour gérer les alias. J’ai juste coupé le web, ça a réglé le souci (et je le rallumais le temps de régler mes questions d’alias à l’occasion). Enfin, ce n’est pas *tout* ce que j’ai fait, en réalité je me suis débattu longuement avec Nftables, Fail2ban, Reaction, etc, avant d’arriver à cette solution basique mais efficace. Pas de web, pas de DdoS.

Dans le second cas, cela concernait un serveur qui héberge des sites à moi et ceux de mon cher époux. J’ai aussi bataillé quelques jours, j’ai fini par faire un montage crasseux que j’ai évidemment oublié de documenter, l’attaque s’est épuisée, et ça n’a pas impacté grand monde.

Ces deux gros coups de speed (et les diverses “petites” attaques entre-temps) m’avaient déjà bien motivée à lire la doc et à réfléchir aux solutions ; je lisais aussi avec intérêt les retours des autres sysadmins par rapport à ce souci.

Cette fois, le serveur en question héberge plusieurs sites et services associatifs, dont une instance forgejo qui était déjà tombée plusieurs fois à cause de ce genre de souci, sur laquelle on a mis diverses rustines, dont l’efficacité était relative.

Il y avait un peu plus d’enjeux : une des assos est en plein dans une de ses campagnes de communication (argh), une autre avait besoin du site *ce* week-end là pour faire un achat groupé (re-argh, ceci dit ça, je l’ai appris après la crise, donc ça ne m’a pas mis de pression durant la gestion de l’incident). Difficile de dire « tout est down, osef ».

Ce qui n’a pas changé, c’est la sysadmin motivée à se bagarrer avec les bots : moi. Qui est toujours :
- juste une passionnée qui s’est formée sur le tas, ce qui veut dire que j’ignore plein de choses basiques ;
- qui n’est pas payée pour ça (c’est un loisir en principe !) ;
- plus ou moins profond dans le gouffre de l’épuisement, ce qui est [l’histoire d’une vie](https://www.ameli.fr/paris/assure/sante/themes/asthenie-fatigue/un-cas-particulier-le-syndrome-de-fatigue-chronique-ou-encephalomyelite-myalgique) mais qui, ces temps, se caractérise en particulier par une incapacité totale à gérer le moindre ajout de charge mentale. Pour donner le niveau, j’ai réussi à engueuler quelqu’un qui me demandait ce que je préférais manger. Je ne suis pas fière de ça. Mais depuis de longs mois, les choix les plus basiques sont trop lourds, alors commencer à mobiliser le cerveau pour décider comment remettre le serveur up…

Bref ; ça a beau faire un moment que je suis consciente que nos défenses sont trop légères, j’ai repoussé le moment de m’y attaquer à demain, et puis finalement, demain, c’était il y a une semaine. Dans ce genre de moment, après le sentiment de se faire écraser par une montagne, après s’être enroulé dans sa cape cthulhoïde la plus douillette et avoir invoqué l’apocalypse sur les agents IA du monde entier, il vient le moment de se frotter réellement à l’indicible, parce qu’il n’y a pas réellement le choix, et personne d’autre pour faire le taf.

Pourquoi je vous parle de tout ça ? Pas juste pour me plaindre en mode Caliméro (même si ça soulage), mais surtout en guise d’avertissement : ne faites pas ce que j’ai fait, parce que mes choix étaient uniquement liés à cette situation assez pourrie, et que je suis certaine qu’il y a mieux à faire. J’avais noté les bonnes idées ici et là et j’ai tout un sac de marque-pages de gens plus doués que moi qui envisagent de [vraies solutions](https://forum.chatons.org/t/mutualiser-une-whitelist-dinfrastructures-de-confiance-chatons-fediverse-libre) (mais qui me semblent aussi un peu désespérés, je l’avoue). Je ne suis pas un exemple. Vraiment pas. Mais les contre-exemples, ça a aussi un intérêt didactique, donc je partage. Et puis ça vous permettra de vous moquer (avec gentillesse), et c’est important de rigoler.

Je ne suis pas toute seule à gérer ces serveurs associatifs. Nous sommes actuellement deux sysadmins à avoir accès à tout. L’un est vigneron de profession, l’autre cuisinière : je trouve toujours fantastique tout ce qu’on arrive à faire, vu nos parcours. Mais y’a des jours, on galère pas mal. Là, ça a été ce genre de jours, et comme je suis celle qui a le plus bossé sur ce genre de souci et qui avait le temps (à défaut de l’énergie) à ce moment, c’est moi qui ai géré. 

# Analyser le souci

C’est en théorie la première chose à faire.

Donc, j’ai coupé Apache histoire de pouvoir bosser sur le serveur. Puis j’ai essayé de discerner les patterns dans les logs avec mes petits yeux d’humain, ce qui s’est vite révélé foireux. J’ai donc installé goaccess, j’ai bataillé pour le faire marcher, j’ai constaté que le format de mes logs Apache était totalement foireux, j’ai modifié Apache, relancé le service le temps d’avoir une nouvelle fournée de log, et constaté que c’était le moment où les bots floodent à fond. 

Habituellement, Fail2ban et/ou Reaction sont très bons contre les bots. On détermine les patterns qui signent les badbot, et on bannit dès qu’ils arrivent, et voilà. Mon meilleur filtre, jusque-là, était assez simple et facile à mettre en place avec Reaction : s’il y a une erreur 404 sur un lien ayant le motif “admin”, on bannit. Au premier coup. Un mois. Mon filtre liste quelques autres mots-clés testés pour voir les fails sur les serveurs, et je n’ai rien inventé, vous le trouverez dans les [exemples officiels](https://reaction.ppom.me/examples/filters/web-crawlers/), même si ma façon de l’appliquer est un coup de bambou direct. 

J’avoue : je n’avais configuré ni Fail2ban, ni Reaction sur ce serveur. En fait, j’avais surtout une version hyper basique d’Iptable sur le Proxmox, avec tout le trafic web dirigé sur un container proxy, lequel re-dispatchait ensuite aux bons containers suivant les services demandés. Le serveur n’était pas complètement à poil, mais quand même honteusement peu protégé face aux évidentes menaces. Ça faisait partie des trucs à faire “demain”. Même que j’avais déjà bien bossé en coulisse (et pas sur le serveur de prod) à affiner des playbooks Ansible, et même si mon serveur de test était depuis longtemps une forteresse foireuse où je m’auto-bannissais  régulièrement. Mais la prod ? Wouah, qui oserait toucher à la prod ? Ça Marche™ !

On se demande même comment ça n’avait pas tourné mal plus tôt. Ça faisait un moment que je faisais des prières aux dieux du chaos pour qu’ils m’oublient, et mon co-sysadmin avait géré son lot de galères et de rustines et a évité les pires scénarios. 

Là, j’ai donc installé Fail2ban et lancé mon script de paramétrage de nftables avant de réfléchir plus. Non, je ne me suis pas trompée de chapitre : je suis bien en train d’expliquer que j’ai tenté d’appliquer une solution de tech avant d’avoir compris le souci. Sans surprise, ça a été absolument inutile, mais j’ai perdu quelques heures à ne pas comprendre pourquoi Fail2ban était aussi inutile. Rien que ça, déjà : pourquoi Fail2ban ? Alors que je sais qu’il n’arrive pas à la cheville de Reaction, sauf que je me suis dit que Fail2ban avait déjà ses filtres tout prêts, que peut-être il avait pris en compte ce genre de souci qui, je le sais, est classique, et que ça allait être aussi rapide qu’un *apt install* suivi de la déclaration de 5 jails.

J’adore Reaction, il est tout simplement parfait quand on veut ajouter ses propres regex, mais justement, il faut les écrire et s’assurer que celles qu’on a écrit l’année dernière sont bonnes pour le serveur du moment (surtout quand on change la façon dont les logs s’écrivent). Alors qu’avec Fail2ban, il suffit d’y croire très fort, et de ne jamais aller vérifier à quel point les filtres déjà proposés sont en réalité bien aux fraises (surtout sur les serveurs web ; sur le mail, ça va mieux), et d’ignorer qu’ajouter ses propres règles est laborieux. L’un ne ment pas, fait un peu peur mais finit par être un allié fidèle ; l’autre laisse facilement un faux sentiment de sécurité et devient un véritable enfoiré quand on essaie de l’adapter à nos besoins. Chaque fois que j’utilise l’un ou l’autre, je finis par conclure que je devrais rester avec Reaction seul, mais Fail2ban a un côté « rassurant » qui m’attrape à chaque fois.

Ceci dit, dans ce cas précis, les deux étaient aussi utiles que de danser emballée dans du jambon un soir de pleine lune. 

Une fois ces actions inutiles accomplies (sans le jambon), et constatant que ma RAM et mon CPU étaient toujours à 100 % dès que je rallumais Apache, j’ai lu un peu mieux la doc de goaccess, constaté que ça ne m’aidait pas des masses, mais quand même, j’ai réussi à générer un rapport lisible, et j’ai commencé à comprendre le problème réel, LE scénario pénible.

Donc, le souci était, à première vue de goaccess, que des milliers d’IP se connectaient, chacune UNE fois (pas plus). Or, les filtres de Reaction ou Fail2ban sont plutôt du genre à agir après quelques essais. On peut effectivement faire bannir à la première connexion (ça aide parfois, comme dans le cas des 404 sur les liens contenant « admin » !), encore faut-il avoir un pattern exploitable, or là, je n’avais pas tellement de 404, mais plein de 200 : les bots visitaient des pages existantes. Je ne peux pas bannir tous les gens qui vont sur l’index ; autant laisser le serveur web éteint.

À noter que dans ce genre de cas, il est possible de filer un lien honeypot : le lien existe (code 200) mais on bannit quiconque va dessus. Cependant, dans le cas présent, ça n’aurait pas non plus suffi. Le serveur montait en charge à cause du nombre de connexion avant tout. 

À noter que j’ai aussi installé libapache2-mod-evasive, qui est sans doute génial, mais qui ne m’a pas aidé des masses. Peut-être que j’ai loupé le bon détail dans la configuration. 

# Explorer les solutions

Vous avez noté le «  à première vue » ? On va y revenir. 

Ayant (imparfaitement) compris ce qui se passait, ayant testé des solutions inadaptées sans succès, j'ai continué à faire ce qu’on fait quand on craque : n’importe quoi.

J’ai commencé à explorer les mystères des [adresses IP](https://fr.wikipedia.org/wiki/Adresse_IP) et de la notation CIDR il n’y a pas si longtemps. En fait, ça fait moins de 3 ans que je commence à vaguement comprendre quelque chose au réseau, et la notation CIDR est encore emplie de brumes dans ma tête. Heureusement pour moi, goaccess m’avait signalé que les adresses étaient en ipv4, je me suis donc concentrée sur ça. Dupliquer les logiques avec l’ipv6 (que je comprends encore moins qu’ipv4) aurait été en trop.

J’ai commencé par faire un script bash crasseux (non, je ne le partagerais pas) pour analyser une heure de log et voir d’où venaient les IPs.

Que fait une néophyte face à des adresses qui semblent venir de même plages d’IP ?

Elle bannit à grand coup de /8.

Alors, ouais : ça a calmé les attaques. Ça a aussi banni les utilisatrices légitimes. En fait, je me suis même banni moi-même ; heureusement, uniquement sur le container et non sur l’hyperviseur, donc via l’interface de proxmox, j’ai pu rectifier le tir.

Cela faisait deux jours que je me débattais à essayer de bloquer des fichus bots et là, soudain, le trafic repassait à un niveau plus ou moins acceptable. Même si j’avais banni la moitié du web, je suis allée me coucher avec l’esprit un peu apaisé. Tout en sachant que noooon, ce n’était pas une solution.

Le lendemain, je me suis rendu compte qu’en plus, ça ne marchait pas complètement ; j’ai passé une après-midi à tourner en rond pour comprendre pourquoi une ip dans la plage bannie pouvait quand même passer sur le serveur. La réponse était d’une simplicité totale pour quiconque comprend le réseau : le proxy file les ip en “forward”. Mais si je ne bannis pas le proxy (hem hem), ALORS il vaut mieux que j’applique les règles de bannissement sur le proxy. PAS sur le container avec le site web. En plus, c’est un peu à ça que sert un proxy : filtrer les enquiquineurs en amont.

À partir de là, c’est allé réellement mieux, mais malgré tout, je savais que j’avais banni trop largement. J’ai quand même continué à tourner en rond un moment sur le web, en cherchant quelle solution mettre en place.

- Cloudflare ? C’est probablement efficace, mais je refuse de mettre un Man-in-the-Middle des USA entre mes sites et mes visiteuses.
- Les solutions comme Anubis, Iocaine, les challenges à base de Javascript, les configurations d’Apache/Nginx, etc, n’étaient pas une solution puisque le souci venait juste du nombre de connexions ; chaque page, ensuite, ne consommait pas des masses. Il fallait éviter qu’Apache réponde à ces IPs. 
- N’étant pas un service commercial, bannir AWS, Alphabet et Meta ne me gênait pas le moins du monde. Des fois que certaines grandes entreprises auraient été dans les plages d’où les bots venaient. 

Accessoirement, je ne peux pas aller avec mon ordiphone sur les sites avec Anubis et Cloudflare : il chauffe, tourne dans le vide, et ne passe jamais les challenges. Donc ça ne me motive pas à y mettre sur mes propres services.

Pendant ce temps, sur le canal tech, des amis plus compétents que moi susurraient des mots comme [ASN](https://fr.wikipedia.org/wiki/Autonomous_System), mais je n’étais pas encore en état de donner du sens à ça.

J’ai donc découvert ce que voulait dire ASN le lendemain. J’en avais déjà vaguement entendu parler, mais jusque-là, ça restait un concept lointain et nébuleux, que je ne pensais pas devoir utiliser. Cette fois, j’ai lu la doc, comment ça marchait, et je me suis dit « bingo, je vais *juste* bannir les mauvais datacenters. »

Facile, hein ?

# Faire vite et mal

J’ai pris des adresses ip un peu au pif, en me disant que ça suffirait à identifier les horribles datacenter chinois qui osaient flooder mon serveur pour entraîner leurs IA. Parce que là aussi, pourquoi se baser sur les faits quand on peut faire des suppositions ?

Mes diverses analyses de log pointent quand même que mes idées préconçues sont exactement ça : préconçues. Je n’ai pas refait de stats par pays, mais c’était assez réparti. Vite fait, il y avait le Paraguay, l’Éthiopie, la Malaisie, par exemple (et dans les exemples qui m’ont frappés). 

Par ailleurs, bien que dans les logs, les bots se prétendent parfois être “ClaudeBot” dans l’user-agent (si si, il y en a), en réalité leur IP ne correspond pas du tout aux serveurs d’Anthropic. Idem sur les autres grosses entreprises d’IA. Je ne prétends pas qu’elles ne font pas de dégâts, mais elles ne sont pas forcément derrière ce genre d’attaque (pas directement). 

Enfin, et c’est le point le plus important : l’analyse des ASN montrent que ce ne sont pas forcément les datacenters, le souci. Ho, ils en font partie. Mais… J’ai rapidement trouvé quelques gros acteurs des telecoms de divers pays. Pour le dire autrement : les bots étaient dans les ip résidentielles. Là, je commençais à voir pointer le fait que j’allais être obligée de bannir des gens qui n’avaient rien à voir avec le problème. La télé connectée, le smartphone avec cette appli trop bien, qui relayaient les appels des bots-criquets… Désolé, Mémé, mais ça va couper.

J’ai repris mon script bash, je l’ai torturé pour qu’il me donne de meilleures plages d’ip, et à la fin d’une autre journée de travail, j’en ai conclu que le mieux, c’était de bannir en /8 toute ip entre 1.* et 255.*. En plus, ça ne faisait que 255 lignes dans mon set nftables, trop la classe.

Les sysadmins compétents sont déjà en train de se marrer, mais je sais qu’il y a aussi des gens un peu moins techniciens dans l’assemblée, donc je me permets d’expliciter la blague : j’ai bien failli bannir tout internet. Tout. Enfin, en ipv4. Une solution qui, certes, avait le mérite d’arrêter les bots. Je me suis arrêtée avant de le faire réellement ; une petite étincelle de compréhension est passée dans mon esprit embrumé par le désespoir et le burn-out avant que j’applique la solution.

Je continue de penser que c’était une solution. Sans doute pas parfaite, mais ça réglait le souci.

# Faire un peu moins vite et quand même mal

Une autre nuit de sommeil, à laisser les neurones faire des liens. Comment éviter de bannir le monde entier ?

Retour alors à l’aspect humain. Quel est l’impératif ? Que mes utilisatrices dans leurs associations aient accès à leurs sites, leurs clouds, leurs pads, etc.

Or, ces associations, je les connais. J’ai le numéro de téléphone de leurs dirigeantes, je sais à quoi ressemblent les membres. Quel est le dénominateur commun ? Leur lieu de résidence. À ma connaissance, il n’y a personne en Éthiopie ou au Paraguay. On a parfois des gens en Chine, mais pas ces temps-ci. En fait, on a surtout des gens en France, en Suisse, en Belgique et au Canada.

Et si on faisait l’inverse ? Non pas bannir tout le monde, mais autoriser uniquement certains pays ?

J’ai récupéré les listes des [rang d’ip par pays](https://www.ipdeny.com/) puis j’ai utilisé iprange pour tenter de diminuer un peu le nombre de lignes. J’ai ensuite fait un set « allow_country » dans nftables, avec tous ces rangs d’ip, puis déclaré que seul les set « allow_sysadmin » (les ip personnelles de là où moi et mon co-sysadmin on se connecte) et « allow_country » étaient autorisées à se connecter. Ensuite, d’autres règles s’appliquent ; il y a aussi des bots dans ces 4 pays.

````

chain input_all { 
    type filter hook input priority 0; policy drop; 
    ip saddr @allowlistsys accept 
    ip saddr != @allowcountry drop 
    # [...] 
    ct state vmap { invalid : drop, established : accept, related : accept } 
    # [...] 
}

````

Étonnamment, ça se charge vite, nftables ne bronche pas, la consommation mémoire est ridicule. Il y a pourtant 13 820 plages déclarées dans le set...

À la fin, les logs apaches montraient que j’étais de nouveau la seule à explorer les pages. Ouf !

Bon, pas complètement la seule : les autres membres des assos m’ont confirmé qu’elles accédaient bien aux sites (c'était l'objectif). Et puis j’ai encore quelques bots, qui ne font pas trop de bruit, et qui vont se prendre un coup de Reaction sur la tronche un de ces jours.

Est-ce que cette solution me satisfait ?

Franchement… non.

Mais ça marche. Ça répond au besoin de base actuel. Ça a viré les bots les plus gênants. Je déteste l’idée d’appliquer une sanction internationale à cause de quelques margoulins qui pourrissent internet, mais je n’ai pas non plus les moyens de faire mieux.

# Et demain ?

Ah, pour demain, bien sûr, j’ai plein de projets. Je sais très très bien ce que je veux mettre en place. De quoi faire un set avec mes membres identifiés, qui sera en allow-list (qu’ils soient co ou non, comme ça), appliquer un rate-limit via nftables sur les autres (comme ça, le serveur restera confortable pour mes utilisatrices même en cas d’attaque mais en général accessible pour le reste du monde), mettre en place un serveur honeypot pour mieux analyser les plages qui génèrent du trafic de bot, reprendre mes configurations sur Reaction, paramétrer plus finement nginx (sur le proxy) et apache (sur les containers) pour que leurs propres mécanismes tamponnent, servir des « Too Many Requests » à ceux qui n’ont qu’une ip mais crawlent trop vite, améliorer les robots.txt (pour les bots honnêtes), autoriser peut-être certains indexeurs à venir avec des règles spéciales, partager les règles de ban entre mes serveurs, mettre plus de honeypot dans les coins, filtrer aussi par user-agent, comprendre un peu mieux comment les modifs du noyau à propos de synack pourraient aider, etc, etc.

Et évidement, appliquer tout ça à ipv6.

Demain.

Ou après-demain.

Dès que j’en ai l’énergie.

… Ouais, on peut parier que le monde entier ou presque va rester banni un moment.

Et mon code, il est où ?

Sans doute que je pourrais partager mes règles nftables. Elles sont loin d’être parfaites, cependant, et donc je doute que les offrir en exemple soit bon ; il y a encore des aspects que je n’ai pas compris (comme les rate limit ! ça ne marche jamais comme je l’espère). Idem sur le reste. Je sais que partager des solutions offre le risque que les gens derrière ces slop-bot trouvent des contournements, ceci dit je n’ai pas inventé la lune. Je veux leur interdire de me dire bonjour, point. 

Mais… ça fait du job, de partager ça, que je préfère passer à peaufiner mes configurations. S’il y a vraiment une demande, je le ferais, mais comme je doute de la passion à lire des scripts bash mal conçus et des règles nftables un peu bancales, je m’économise cette partie pour le moment.

# Ce que j’en retiens

- Je craignais le jour où les bots viendraient des ip résidentielles (ça nous pendait au nez depuis un bail) : c’est bon c’est fait.
- Pour le moment, tout ceci reste encore grandement basé sur ipv4 (pour ce que j’ai eu) mais la suite sera forcément en ipv6.
- Je crains la fin de l’internet ouvert. Bientôt on vérifiera la qualité de nos visiteuses suivant leur score de confiance dans une toile qui reste à inventer. On le voit déjà bien chez les GAFAMS, mais ceci est pour un autre roman : « comment Google m’aide à me désintoxiquer de sa came, et comment Meta évite que je tombe dedans » (oui, je pourrais l’écrire, si je m’ennuie).
- Combien de temps des bidouilleuses dans mon genre parviendront  à maintenir des bouts d’internet ? Je ne sais pas. Ça finira peut-être en intranet, mes bidouilles… on en est déjà pas si loin.
- Les amis sont ce qui permet de faire face aux tempêtes. Ok, je ne me serais pas autant pris le chou si personne n’avait eu besoin de ces serveurs ; mais j’ai été amplement soutenue durant cette longue semaine, avec des voisins qui m’ont fait à manger, des gens qui m’ont envoyé des encouragements, qui m’ont dit que ce n’était pas grave que ce ne soit pas accessible, qui m’ont envoyé des liens vers de la doc, donné des pistes utiles. Autant les bots donnent envie de tout cramer, autant toute cette humanité fait chaud au cœur et aide à tenir le coup.
- Comme toujours quand je partage un retour d’expérience sur Linuxfr, je suis à la fois fière de partager mes déboires (parce que j’adore lire ce genre de chose et que je me dis que je participe à ma mesure ainsi), soulagée d’avoir lâché tout ça (c’était intense à écrire aussi), et inquiète des retours cruels qui vont me pointer à quel point je suis nulle en enrobant ça dans un pseudo-cynisme soi-disant bienveillant. Mais l’autre solution est de garder le silence, et j’ai bien assez de journaux, articles et écrits jamais publiés sur mon disque dur : P

J’espère que ça vous aura amusé un peu, à défaut d’offrir des pistes viables sur comment faire face à ces attaques !

