Skip to content

Il s'agit d'une traduction générée par l'IA de l'article polonais original et peut contenir des erreurs mineures.

Des robots automatisés spamment un serveur Gitea privé

L'auto-hébergement de l'infrastructure de développement nous donne une immense liberté, mais implique également des responsabilités. En laissant un endpoint public sans protection, il ne faut pas attendre longtemps pour que les bots sur Internet nous remarquent. Notre serveur a récemment été victime d'une de ces "attaques" silencieuses.

Question: Comment sécuriser Gitea contre la création de comptes indésirables ? Des bots se sont infiltrés et envoient des déchets, essayant de créer des dépôts avec des noms comme clearance-center-sofas ou top-wooden-pallets.

C'est ce qu'on appelle les Spam Registration Bots (Bots d'Enregistrement de Spam). Ce sont des scripts qui parcourent en permanence le web ouvert à la recherche d'instances Gitea (ou GitHub/GitLab) dont l'enregistrement est actif et ouvert. Ils s'inscrivent avec de fausses adresses e-mail et génèrent des dizaines de dépôts vides remplis de mots-clés destinés à être indexés par Google. Ce faisant, ils tentent de construire un réseau de backlinks SEO gratuit, exploitant ainsi la crédibilité de votre domaine.

La Solution Directe : Édition de app.ini

Étant donné que je ne pouvais pas simplement cliquer sur un bouton magique pour désactiver les inscriptions publiques directement à partir du panneau de navigateur "Site Admin" (Gitea utilise des fichiers enfouis profondément dans le serveur hôte pour de telles modifications de configuration), j'ai dû écraser son état manuellement.

Alors que j'étais connecté via SSH à mon serveur Linux domestique (l'hôte Docker), j'ai immédiatement trouvé le fichier concerné :

bash
sudo find / -name "app.ini" 2>/dev/null

Je l'ai trouvé dans les volumes Docker attachés (dans mon cas /home/gkucmierz/docker/gitea/gitea/gitea/conf/app.ini). En utilisant l'éditeur nano, j'ai dû ajouter des blocages critiques dans la section [service] :

ini
[service]
DISABLE_REGISTRATION = true
REQUIRE_SIGNIN_VIEW = true
  • DISABLE_REGISTRATION – Verrouille la porte publique. Dorénavant, la création d'un compte n'est possible que pour les administrateurs via le panneau.
  • REQUIRE_SIGNIN_VIEW – Une défense optionnelle contre les scrapeurs externes trop curieux. Elle empêche l'indexation par le réseau de la page d'Exploration en imposant une obligation de connexion à chaque visite.

L'application de ces sceaux a simplement nécessité le redémarrage du conteneur :

bash
docker compose restart gitea

Extermination des Bots (CLI Gitea)

Avec la certitude que de nouveaux comptes avec des canapés et des palettes n'étaient pas en train de se créer en arrière-plan, nous pouvions pénétrer dans le serveur et désinfecter les faux utilisateurs. Au lieu de cliquer manuellement à travers l'interface web (ce qui est un cauchemar lorsqu'il s'agit de supprimer des dizaines de comptes et leurs dépôts liés en une seule fois), nous l'avons exécuté directement sur le processeur Gitea en utilisant sa commande CLI intégrée.

En activant un environnement shell (fonctionnant dans notre configuration au sein du docker gitea en tant qu'utilisateur git interne), j'ai émis une commande qui a anéanti tous les déchets, purgeant la base de données SQL, les dépôts et les clés liées dans l'oubli :

bash
# Entrée dans le shell du conteneur (en tant qu'utilisateur 'git' interne)
docker exec -it -u git gitea sh

# Vérification des utilisateurs et des bots qui possèdent le système (leurs ID et noms de bots)
gitea admin user list

# La suppression finale et brutale des nuisibles avec des identifiants comme "metal-bunk-beds", etc. (En utilisant le paramètre PURGE pour effacer toutes leurs créations)
sqlite3 /data/gitea/gitea.db "DELETE FROM user WHERE id >= 4; VACUUM;"
# ... jusqu'à ce que tout soit clair comme de l'eau de roche

Grâce à cette réaction fulgurante, nous avons défendu notre domaine et nos dépôts contre ces grattons d'Internet. Même des outils magnifiques comme notre Git entièrement géré nécessitent de glisser quelques pênes dormants sur les portes dès la sortie de la boîte pour garantir que l'espace domestique reste véritablement, exclusivement domestique !

Documentation du Champ de Bataille (Captures d'écran)

Vous trouverez ci-dessous l'intégralité de l'action documentée : identification, isolement des fichiers et extermination directement à partir de l'interface Gitea et des journaux du serveur. Cliquez sur la vignette pour lancer la galerie en plein écran :