Contribuer - ceketrumdev/Zdefender GitHub Wiki

Développement et Contribution 🚀

Nous sommes ravis que vous souhaitiez contribuer à ZDefender ! Ce projet est open source et repose sur la collaboration de la communauté. Que vous soyez développeur, testeur, rédacteur ou simplement passionné, toute contribution est la bienvenue.

Avant de commencer, veuillez lire attentivement les instructions ci-dessous pour comprendre comment contribuer efficacement.

Table des matières


Introduction

ZDefender est un système avancé de protection contre les attaques DDoS, développé en Rust. Le projet est conçu pour être modulaire, performant et facile à maintenir. Nous encourageons les contributions sous toutes leurs formes : code, documentation, tests, rapports de bugs, etc.


Premiers pas

Prérequis

Avant de contribuer, assurez-vous que votre environnement de développement répond aux prérequis suivants :

  • Système d'exploitation : Linux (testé sur Ubuntu 20.04+, Debian 11+, CentOS 8+).
  • Langage : Rust 1.56 ou supérieur (installation).
  • Dépendances :
    • libpcap-dev
    • build-essential

Installez les dépendances nécessaires avec les commandes suivantes (pour Ubuntu/Debian) :

sudo apt update
sudo apt install libpcap-dev build-essential

Installation locale

  1. Clonez le dépôt :

    git clone https://github.com/ceketrumdev/Zdefender.git
    cd Zdefender
    
  2. Compilez le projet :

    cargo build --release
    
  3. Installez le service localement (facultatif) :

    sudo ./install.sh
    

Pour plus de détails sur l'installation, consultez la section Installation dans le README.


Structure du projet

Voici une vue d'ensemble de la structure du projet :

zdefender/
├── src/
│   ├── models.rs       # Structures de données fondamentales
│   ├── log_mode.rs     # Configuration des modes de journalisation
│   ├── logger.rs       # Gestion de la journalisation
│   ├── config.rs       # Configuration et paramètres
│   ├── protection.rs   # Coordination des stratégies de protection
│   ├── analyzer.rs     # Analyse du trafic
│   ├── packet_inspection.rs  # Inspection profonde des paquets
│   ├── detect_attacks.rs     # Algorithmes de détection
│   ├── defender.rs     # Actions de défense
│   └── service.rs      # Gestion du service
├── tests/              # Tests unitaires et d'intégration
├── config/             # Fichiers de configuration par défaut
└── ...

Pour plus de détails sur chaque module, consultez la documentation de l'API.


Contribution

Rapport de bugs

Si vous rencontrez un bug, veuillez ouvrir une issue sur GitHub en suivant ces étapes :

  1. Assurez-vous que le bug n'a pas déjà été signalé en consultant les issues existantes.
  2. Créez une nouvelle issue en fournissant les informations suivantes :
    • Titre clair et concis.
    • Description détaillée du problème.
    • Étapes pour reproduire le bug.
    • Versions utilisées (OS, Rust, etc.).
    • Logs pertinents (si disponibles).

Exemple de titre : [BUG] Échec de détection SYN Flood sur Ubuntu 22.04.

Proposition de fonctionnalités

Si vous avez une idée pour améliorer ZDefender, ouvrez une discussion ou une issue :

  1. Créez une nouvelle issue avec le label enhancement.
  2. Décrivez la fonctionnalité proposée, son utilité et son impact potentiel.
  3. Si possible, incluez un plan d'implémentation ou un exemple de code.

Exemple de titre : [FEATURE] Ajouter un mode passif pour les audits réseau.

Soumission de pull requests

Les pull requests (PR) sont le moyen principal de contribuer au code source. Voici les étapes à suivre :

  1. Fork le dépôt et clonez-le localement.
  2. Créez une branche pour vos modifications :
    git checkout -b feature/nom-de-la-fonctionnalite
    
  3. Effectuez vos modifications et testez-les localement.
  4. Soumettez une PR en suivant ces règles :
    • Titre clair et descriptif.
    • Description détaillée des modifications apportées.
    • Référencez les issues pertinentes (par exemple, Fixes #123).

Assurez-vous que votre code respecte les bonnes pratiques.


Bonnes pratiques

Pour garantir la qualité du projet, veuillez respecter les directives suivantes :

  1. Code propre et documenté :

    • Utilisez des noms de variables et de fonctions explicites.
    • Ajoutez des commentaires pour expliquer les parties complexes du code.
  2. Tests :

    • Ajoutez des tests unitaires pour toute nouvelle fonctionnalité.
    • Assurez-vous que tous les tests passent avant de soumettre une PR :
      cargo test
      
  3. Formatage :

    • Formatez votre code avec rustfmt :
      cargo fmt
      
  4. Linter :

    • Vérifiez votre code avec clippy pour détecter les problèmes courants :
      cargo clippy
      

Tests et validation

ZDefender utilise des tests unitaires et d'intégration pour garantir la fiabilité du code. Voici comment exécuter les tests :

  1. Tests unitaires :

    cargo test
    
  2. Tests d'intégration (si disponibles) :

    cargo test --features integration-tests
    

Assurez-vous que tous les tests passent avant de soumettre une PR. Si un test échoue, corrigez le problème ou signalez-le dans la description de votre PR.


Support et assistance

Si vous avez des questions ou besoin d'aide pour contribuer, voici quelques ressources utiles :


Merci pour votre contribution à ZDefender ! Ensemble, nous pouvons rendre ce projet encore meilleur. 🚀