🚀 Infrarust V2 is now in alpha! Check out the new documentation. V1 will be archived once V2 is released.
Skip to content

Système de Bannissement ​

Le Système de Bannissement dans Infrarust vous permet de gérer l'accès des joueurs en bannissant des adresses IP spécifiques, des UUID Minecraft ou des noms d'utilisateur. Il permet des bannissements permanents et temporaires avec prise en charge de motifs de bannissement détaillés.

Configuration ​

Pour activer le système de bannissement, ajoutez ces paramètres à votre fichier config.yaml :

yaml
filters:
  ban:
    enabled: true
    storage_type: "file"
    file_path: "bans.json"
    enable_audit_log: true
    audit_log_path: "bans_audit.log"
    auto_cleanup_interval: 3600  # Nettoie les bannissements expirés toutes les heures (en secondes)
    cache_size: 10000

Options de configuration complètes ​

OptionDescriptionValeur par défaut
enabledActiver ou désactiver le système de bannissementtrue
storage_typeType de stockage ("memory" ou "file")"file"
file_pathChemin pour le fichier de stockage des bannissements"bans.json"
enable_audit_logActiver ou non les journaux d'audittrue
audit_log_pathChemin pour le fichier de journal d'audit"bans_audit.log"
audit_log_rotation.max_sizeTaille maximale des journaux avant rotation (octets)10485760 (10MB)
audit_log_rotation.max_filesNombre maximal de fichiers de rotation Ă  conserver5
audit_log_rotation.compressCompression des journaux en rotationtrue
auto_cleanup_intervalSecondes entre les nettoyages de bannissements expirés (0 pour désactiver)3600
cache_sizeTaille du cache de bannissement pour les performances10000

Utilisation du système de bannissement ​

Bannir des joueurs ​

Pour bannir un joueur, utilisez la commande ban via la console Infrarust :

> ban [--ip/-ip <adresse> | --username/-u <nom_utilisateur> | --uuid/-id <uuid>] [--reason <motif>] [--duration <durée>]

Paramètres :

  • --ip ou -ip : L'adresse IP Ă  bannir
  • --username ou -u : Le nom d'utilisateur Ă  bannir
  • --uuid ou -id : L'UUID Ă  bannir
  • --reason : Le motif du bannissement (optionnel, par dĂ©faut "Banned by administrator")
  • --duration : La durĂ©e du bannissement (optionnel, permanent par dĂ©faut)

Format de durée :

  • Xs : X secondes
  • Xm : X minutes
  • Xh : X heures
  • Xd : X jours
  • Xw : X semaines
  • Xmo : X mois
  • Xy : X annĂ©es

Exemples :

> ban --ip 192.168.1.10 --reason "Spamming" --duration 2d
Bannissement appliqué avec succès :
  IP : 192.168.1.10
  Motif : Spamming
  Durée : 2 jours

> ban --username Steve --reason "Griefing"
Bannissement appliqué avec succès :
  Nom d'utilisateur : Steve
  Motif : Griefing
  Durée : Permanent

> ban --uuid 7f8d3a2e-9c5b-4b1d-8a7c-3d2f6e9a1b5c --duration 1w
Bannissement appliqué avec succès :
  UUID : 7f8d3a2e-9c5b-4b1d-8a7c-3d2f6e9a1b5c
  Motif : Banned by administrator
  Durée : 1 semaine

Retirer des bannissements ​

Pour débannir un joueur, utilisez la commande unban :

> unban [--ip/-ip <adresse> | --username/-u <nom_utilisateur> | --uuid/-id <uuid>]

Paramètres :

  • --ip ou -ip : L'adresse IP Ă  dĂ©bannir
  • --username ou -u : Le nom d'utilisateur Ă  dĂ©bannir
  • --uuid ou -id : L'UUID Ă  dĂ©bannir

Exemples :

> unban --ip 192.168.1.10
Bannissement supprimé avec succès pour l'IP : 192.168.1.10

> unban --username Steve
Bannissement supprimé avec succès pour le nom d'utilisateur : Steve

> unban --uuid 7f8d3a2e-9c5b-4b1d-8a7c-3d2f6e9a1b5c
Bannissement supprimé avec succès pour l'UUID : 7f8d3a2e-9c5b-4b1d-8a7c-3d2f6e9a1b5c

Afficher les bannissements actifs ​

Pour voir tous les bannissements actifs, utilisez la commande bans :

> bans

Exemple de sortie :

=== Bannissements actifs (2) ===

1. IP : 192.168.1.10
   Motif : Spamming
   Banni par : console
   Créé : il y a 2 heures
   Expire : Dans 1 jour, 22 heures (dans 1 jour)

2. Nom d'utilisateur : Griefer123
   Motif : Griefing
   Banni par : console
   Créé : il y a 3 jours
   Expire : Jamais (bannissement permanent)

Options de stockage ​

Le système de bannissement prend actuellement en charge deux backends de stockage :

Stockage en mémoire ​

  • Les bannissements sont stockĂ©s uniquement en mĂ©moire
  • Les bannissements sont perdus au redĂ©marrage d'Infrarust
  • Utile pour les environnements de test
yaml
filters:
  ban:
    storage_type: "memory"
    enabled: true

Stockage de fichiers (Recommandé) ​

  • Stocke les bannissements dans un fichier JSON
  • Persiste Ă  travers les redĂ©marrages du serveur
  • Enregistre automatiquement les modifications en arrière-plan
yaml
filters:
  ban:
    storage_type: "file"
    file_path: "bans.json"
    enabled: true

Fonctionnalités automatiques ​

Nettoyage des bannissements expirés ​

Le système supprime automatiquement les bannissements expirés à l'intervalle configuré dans auto_cleanup_interval. Définissez à 0 pour désactiver cette fonctionnalité.

yaml
filters:
  ban:
    auto_cleanup_interval: 3600  # Toutes les heures

Journal d'audit ​

Lorsqu'il est activé, toutes les actions de bannissement (ajout, suppression, expiration) sont enregistrées avec :

  • Qui a effectuĂ© l'action
  • Quand cela s'est produit
  • DĂ©tails complets du bannissement
yaml
filters:
  ban:
    enable_audit_log: true
    audit_log_path: "bans_audit.log"

Rotation des journaux ​

Pour les serveurs à longue durée de fonctionnement, la rotation des journaux d'audit empêche les fichiers journaux de devenir trop volumineux :

yaml
filters:
  ban:
    audit_log_rotation:
      max_size: 10485760  # 10MB
      max_files: 5
      compress: true

Configuration d'exemple ​

Voici un exemple complet de configuration du système de bannissement dans votre config.yaml :

yaml
filters:
  # D'autres filtres comme la limitation de requĂŞte peuvent ĂŞtre ici
  ban:
    enabled: true
    storage_type: "file"
    file_path: "data/bans.json"
    enable_audit_log: true
    audit_log_path: "logs/bans_audit.log"
    audit_log_rotation:
      max_size: 10485760  # 10MB
      max_files: 5
      compress: true
    auto_cleanup_interval: 3600
    cache_size: 10000

Cas d'utilisation courants ​

Bannissement temporaire pour violations des règles ​

> ban --username Steve --reason "Spam dans le chat" --duration 24h

Bannissement permanent pour infractions graves ​

> ban --uuid 7f8d3a2e-9c5b-4b1d-8a7c-3d2f6e9a1b5c --reason "Triche"

Bannissement d'une IP malveillante ​

> ban --ip 192.168.1.100 --reason "Tentative de DDoS"

Bannissement multi-niveaux pour cas graves ​

Pour les violations graves, vous pourriez vouloir bannir Ă  la fois le compte et l'IP :

> ban --uuid 7f8d3a2e-9c5b-4b1d-8a7c-3d2f6e9a1b5c --reason "Botting"
> ban --ip 192.168.1.100 --reason "Botting depuis cette IP"

Débannissement après appel ​

> unban --username Steve

Intégration avec d'autres systèmes ​

Le système de bannissement s'intègre automatiquement avec :

  1. Gestion des connexions - Vérifie automatiquement les connexions entrantes par rapport aux listes de bannissement
  2. Validation des noms d'utilisateur - Vérifie les bannissements des noms d'utilisateur pendant le processus de connexion
  3. Commandes de console - Fournit les commandes ban, unban et bans

Détails techniques ​

  • Toutes les vĂ©rifications de bannissement sont effectuĂ©es de manière asynchrone pour un impact minimal sur les performances
  • Le système de bannissement utilise un indexage efficace pour gĂ©rer des milliers d'entrĂ©es de bannissement
  • Lors de l'utilisation du stockage de fichiers, les modifications sont enregistrĂ©es de manière asynchrone en arrière-plan
  • Les bannissements expirĂ©s sont automatiquement nettoyĂ©s sans intervention manuelle

IMPORTANT

Si vous modifiez le chemin de stockage dans votre configuration, vous devez redémarrer Infrarust pour que les changements prennent effet.

Ă€ VENIR

Les mises à jour futures incluront des capacités de recherche améliorées et des backends de stockage supplémentaires.

Released under the AGPL-3.0 License.