first sync
This commit is contained in:
352
README.md
352
README.md
@@ -1,3 +1,351 @@
|
||||
# SIEM---Wazuh
|
||||
# Plugin GLPI SIEM-Wazuh
|
||||
|
||||
Plugin GLPI pour intéger Wazuh dans GLPI
|
||||
[](https://github.com/siem-wazuh/glpi-plugin)
|
||||
[](https://glpi-project.org/)
|
||||
[](LICENSE)
|
||||
|
||||
## Description
|
||||
|
||||
Le plugin SIEM-Wazuh permet l'intégration complète entre Wazuh (solution SIEM open source) et GLPI (système de gestion des services IT). Il permet de :
|
||||
|
||||
- **Surveiller** automatiquement les serveurs Wazuh configurés
|
||||
- **Récupérer** les alertes de sécurité en temps réel
|
||||
- **Associer** automatiquement les alertes aux assets de l'inventaire GLPI
|
||||
- **Créer** automatiquement des tickets pour les incidents critiques
|
||||
- **Gérer** centralement la configuration depuis l'interface GLPI
|
||||
|
||||
## Fonctionnalités
|
||||
|
||||
### 🛡️ Surveillance Proactive
|
||||
- Synchronisation automatique des alertes Wazuh
|
||||
- Configuration de multiples serveurs Wazuh
|
||||
- Filtrage par niveau de règle et sévérité
|
||||
- Intervalle de synchronisation configurable
|
||||
|
||||
### 🔗 Intégration Assets
|
||||
- Association automatique alertes ↔ ordinateurs
|
||||
- Association automatique alertes ↔ équipements réseau
|
||||
- Correspondance par nom d'hôte et adresse IP
|
||||
- Onglets dédiés sur chaque asset
|
||||
|
||||
### 🎫 Gestion des Tickets
|
||||
- Création automatique de tickets GLPI
|
||||
- Configuration des types et catégories
|
||||
- Priorité automatique basée sur la sévérité
|
||||
- Assignation automatique configurables
|
||||
|
||||
### 🌍 Interface Multilingue
|
||||
Support complet pour :
|
||||
- 🇫🇷 Français
|
||||
- 🇬🇧 Anglais
|
||||
- 🇩🇪 Allemand
|
||||
- 🇪🇸 Espagnol
|
||||
- 🇮🇹 Italien
|
||||
- 🇵🇹 Portugais
|
||||
- 🇵🇱 Polonais
|
||||
|
||||
### ⚙️ Configuration Avancée
|
||||
- Interface de configuration intuitive
|
||||
- Gestion granulaire des droits utilisateur
|
||||
- Logs de débogage détaillés
|
||||
- Statistiques et tableaux de bord
|
||||
|
||||
## Prérequis
|
||||
|
||||
### Système
|
||||
- **GLPI** : Version 10.0.0 minimum
|
||||
- **PHP** : Version 7.4 minimum
|
||||
- **Extensions PHP** : curl, json, mbstring, openssl
|
||||
- **Base de données** : MySQL 5.7+ ou MariaDB 10.2+
|
||||
|
||||
### Wazuh
|
||||
- **Wazuh Manager** : Version 4.0+ recommandée
|
||||
- **API Wazuh** : Accès avec authentification
|
||||
- **Wazuh Indexer** : Optionnel (pour requêtes avancées)
|
||||
|
||||
## Installation
|
||||
|
||||
### 1. Téléchargement
|
||||
|
||||
```bash
|
||||
cd /path/to/glpi/plugins/
|
||||
wget https://github.com/siem-wazuh/glpi-plugin/releases/download/1.0.0/siem-wazuh-1.0.0.tar.gz
|
||||
tar -xzf siem-wazuh-1.0.0.tar.gz
|
||||
```
|
||||
|
||||
### 2. Installation via Interface GLPI
|
||||
|
||||
1. Se connecter en tant qu'administrateur GLPI
|
||||
2. Aller dans **Configuration > Plugins**
|
||||
3. Localiser le plugin "SIEM - Wazuh"
|
||||
4. Cliquer sur **Installer**
|
||||
5. Cliquer sur **Activer**
|
||||
|
||||
### 3. Configuration Initiale
|
||||
|
||||
#### Configuration des Droits
|
||||
1. **Administration > Profils**
|
||||
2. Sélectionner le profil à configurer
|
||||
3. Onglet **SIEM Wazuh Rights**
|
||||
4. Attribuer les droits appropriés :
|
||||
- **Configuration** : Accès à la configuration
|
||||
- **Servers** : Gestion des serveurs Wazuh
|
||||
- **Alerts** : Consultation des alertes
|
||||
|
||||
#### Ajout d'un Serveur Wazuh
|
||||
1. **Administration > Serveurs Wazuh**
|
||||
2. Cliquer sur **+** (Ajouter)
|
||||
3. Remplir les informations :
|
||||
```
|
||||
Nom connexion: Serveur Wazuh Production
|
||||
URL Serveur Wazuh: https://wazuh-manager.domain.com
|
||||
Port API: 55000
|
||||
Login API: wazuh
|
||||
Mot de passe API: [mot_de_passe_sécurisé]
|
||||
Intervalle de synchronisation: 300 (secondes)
|
||||
```
|
||||
4. **Tester la connexion**
|
||||
5. **Enregistrer**
|
||||
|
||||
#### Configuration Générale
|
||||
1. **Outils > Configuration SIEM Wazuh**
|
||||
2. Configurer les paramètres selon vos besoins :
|
||||
- **Synchronisation automatique** : Activé
|
||||
- **Création automatique de tickets** : Activé
|
||||
- **Niveau de règle minimum** : 5
|
||||
- **Rétention des alertes** : 90 jours
|
||||
|
||||
## Configuration
|
||||
|
||||
### Paramètres de Synchronisation
|
||||
|
||||
| Paramètre | Description | Valeur par défaut |
|
||||
|-----------|-------------|-------------------|
|
||||
| `sync_enabled` | Active la synchronisation | `1` (Oui) |
|
||||
| `max_alerts_per_sync` | Maximum d'alertes par sync | `100` |
|
||||
| `min_rule_level` | Niveau minimum des règles | `5` |
|
||||
| `sync_interval` | Intervalle en secondes | `300` |
|
||||
|
||||
### Mapping des Assets
|
||||
|
||||
Le plugin associe automatiquement les alertes aux assets GLPI :
|
||||
|
||||
1. **Par nom d'hôte** : `agent.name` → `computers.name`
|
||||
2. **Par adresse IP** : `agent.ip` → `networkports.ip`
|
||||
3. **Sensible à la casse** : Configurable
|
||||
4. **Patterns à ignorer** : `localhost`, `127.0.0.1`, etc.
|
||||
|
||||
### Création de Tickets
|
||||
|
||||
Les tickets sont créés automatiquement selon ces règles :
|
||||
|
||||
| Niveau Règle | Sévérité | Priorité Ticket |
|
||||
|--------------|----------|-----------------|
|
||||
| 1-4 | Low | Très faible |
|
||||
| 5-6 | Low | Faible |
|
||||
| 7-9 | Medium | Moyenne |
|
||||
| 10-11 | High | Élevée |
|
||||
| 12+ | Critical | Très élevée |
|
||||
|
||||
## Utilisation
|
||||
|
||||
### Consultation des Alertes
|
||||
|
||||
#### Sur les Assets
|
||||
- Aller sur un ordinateur ou équipement réseau
|
||||
- Cliquer sur l'onglet **"Alertes Wazuh"**
|
||||
- Consulter le résumé et la liste des alertes
|
||||
|
||||
#### Vue Globale
|
||||
- **Outils > Configuration SIEM Wazuh**
|
||||
- Consulter les **statistiques générales**
|
||||
- Filtrer par serveur, sévérité, statut
|
||||
|
||||
### Actions Disponibles
|
||||
|
||||
#### Sur les Alertes
|
||||
- ✅ **Marquer comme traitée**
|
||||
- ❌ **Ignorer l'alerte**
|
||||
- 🎫 **Créer un ticket manuellement**
|
||||
- 📊 **Exporter en CSV**
|
||||
|
||||
#### Sur les Serveurs
|
||||
- 🔧 **Tester la connexion**
|
||||
- 🔄 **Synchroniser manuellement**
|
||||
- ⏯️ **Activer/Désactiver**
|
||||
- 📈 **Consulter les statistiques**
|
||||
|
||||
## Tâches Automatisées
|
||||
|
||||
### Cron Jobs
|
||||
|
||||
Le plugin configure automatiquement deux tâches :
|
||||
|
||||
```bash
|
||||
# Synchronisation des alertes (toutes les 5 minutes)
|
||||
*/5 * * * * php /path/to/glpi/front/cron.php --force=PluginSiemWazuhAlert-sync_alerts
|
||||
|
||||
# Nettoyage des anciennes alertes (quotidien)
|
||||
0 2 * * * php /path/to/glpi/front/cron.php --force=PluginSiemWazuhAlert-cleanup_old_alerts
|
||||
```
|
||||
|
||||
### Activation des Tâches
|
||||
|
||||
1. **Administration > Tâches automatiques**
|
||||
2. Rechercher "Wazuh"
|
||||
3. Activer les tâches
|
||||
4. Configurer la fréquence si nécessaire
|
||||
|
||||
## Dépannage
|
||||
|
||||
### Problèmes Courants
|
||||
|
||||
#### Connexion Échouée
|
||||
```
|
||||
Erreur: Connection failed: cURL error 7: Failed to connect
|
||||
```
|
||||
**Solutions :**
|
||||
- Vérifier l'URL et le port du serveur
|
||||
- Contrôler les règles de firewall
|
||||
- Tester depuis le serveur GLPI : `curl -k https://wazuh-server:55000`
|
||||
|
||||
#### Authentification Échouée
|
||||
```
|
||||
Erreur: Authentication failed: 401 Unauthorized
|
||||
```
|
||||
**Solutions :**
|
||||
- Vérifier les identifiants API
|
||||
- Contrôler les permissions utilisateur Wazuh
|
||||
- Vérifier que l'utilisateur existe : `GET /security/users`
|
||||
|
||||
#### Pas d'Alertes Synchronisées
|
||||
**Vérifications :**
|
||||
1. Niveau de règle minimum trop élevé
|
||||
2. Serveur inactif
|
||||
3. Pas d'alertes récentes dans Wazuh
|
||||
4. Erreurs dans les logs : **Debug & Logs**
|
||||
|
||||
### Logs de Débogage
|
||||
|
||||
Activer le mode debug :
|
||||
1. **Outils > Configuration SIEM Wazuh**
|
||||
2. Onglet **Debug & Logs**
|
||||
3. **Mode debug** : Activé
|
||||
4. **Niveau de log** : Debug
|
||||
5. Consulter la section **Logs récents**
|
||||
|
||||
### Support et Logs Système
|
||||
|
||||
```bash
|
||||
# Logs Apache/Nginx
|
||||
tail -f /var/log/apache2/error.log | grep -i wazuh
|
||||
|
||||
# Logs PHP
|
||||
tail -f /var/log/php/error.log | grep -i wazuh
|
||||
|
||||
# Logs GLPI
|
||||
tail -f /var/log/glpi/glpi.log | grep -i wazuh
|
||||
```
|
||||
|
||||
## API et Intégration
|
||||
|
||||
### Endpoints Disponibles
|
||||
|
||||
Le plugin expose quelques endpoints pour intégration :
|
||||
|
||||
```
|
||||
GET /plugins/siem-wazuh/ajax/sync_alerts.php?action=status
|
||||
POST /plugins/siem-wazuh/ajax/sync_alerts.php (sync)
|
||||
POST /plugins/siem-wazuh/ajax/test_connection.php
|
||||
```
|
||||
|
||||
### Webhooks Wazuh
|
||||
|
||||
Pour recevoir les alertes en temps réel, configurez un webhook :
|
||||
|
||||
```xml
|
||||
<!-- /var/ossec/etc/ossec.conf -->
|
||||
<integration>
|
||||
<name>webhook</name>
|
||||
<hook_url>https://glpi.domain.com/plugins/siem-wazuh/webhook.php</hook_url>
|
||||
<level>7</level>
|
||||
<rule_id>100001,100002</rule_id>
|
||||
<alert_format>json</alert_format>
|
||||
</integration>
|
||||
```
|
||||
|
||||
## Développement
|
||||
|
||||
### Structure du Plugin
|
||||
|
||||
```
|
||||
plugins/siem-wazuh/
|
||||
├── README.md # Documentation
|
||||
├── CHANGELOG.md # Historique des versions
|
||||
├── LICENSE # Licence GPL v2+
|
||||
├── SIEM-Wazuh.xml # Descripteur plugin
|
||||
├── setup.php # Configuration principale
|
||||
├── hook.php # Installation/désinstallation
|
||||
├── inc/ # Classes PHP
|
||||
│ ├── wazuhserver.class.php
|
||||
│ ├── wazuhalert.class.php
|
||||
│ ├── wazuhconfig.class.php
|
||||
│ ├── wazuhtab.class.php
|
||||
│ └── wazuhapi.class.php
|
||||
├── front/ # Interface web
|
||||
│ ├── wazuhserver.php
|
||||
│ ├── wazuhserver.form.php
|
||||
│ └── wazuhconfig.php
|
||||
├── ajax/ # Requêtes AJAX
|
||||
│ ├── test_connection.php
|
||||
│ └── sync_alerts.php
|
||||
├── locales/ # Traductions
|
||||
│ ├── fr_FR.po
|
||||
│ ├── en_GB.po
|
||||
│ └── ...
|
||||
├── css/ # Feuilles de style
|
||||
│ └── style.css
|
||||
├── js/ # JavaScript
|
||||
│ └── wazuh.js
|
||||
├── pics/ # Images
|
||||
│ └── wazuh-logo.png
|
||||
└── sql/ # Scripts SQL
|
||||
├── install.sql
|
||||
└── uninstall.sql
|
||||
```
|
||||
|
||||
### Contribution
|
||||
|
||||
1. Fork le projet
|
||||
2. Créer une branche feature (`git checkout -b feature/nouvelle-fonctionnalite`)
|
||||
3. Commiter les modifications (`git commit -m 'Ajout nouvelle fonctionnalité'`)
|
||||
4. Pousser sur la branche (`git push origin feature/nouvelle-fonctionnalite`)
|
||||
5. Créer une Pull Request
|
||||
|
||||
## Licence
|
||||
|
||||
Ce plugin est distribué sous licence **GPL v2+**. Voir le fichier [LICENSE](LICENSE) pour plus de détails.
|
||||
|
||||
## Support
|
||||
|
||||
- 🐛 **Issues** : [GitHub Issues](https://github.com/siem-wazuh/glpi-plugin/issues)
|
||||
- 💬 **Discussions** : [GitHub Discussions](https://github.com/siem-wazuh/glpi-plugin/discussions)
|
||||
- 📧 **Email** : support@siem-wazuh.org
|
||||
- 📖 **Documentation** : [Wiki](https://github.com/siem-wazuh/glpi-plugin/wiki)
|
||||
|
||||
## Changelog
|
||||
|
||||
### Version 1.0.0 (2024-01-01)
|
||||
- 🎉 Version initiale
|
||||
- ✅ Support multiples serveurs Wazuh
|
||||
- ✅ Synchronisation automatique des alertes
|
||||
- ✅ Association avec assets GLPI
|
||||
- ✅ Création automatique de tickets
|
||||
- ✅ Interface multilingue (7 langues)
|
||||
- ✅ Gestion des droits utilisateur
|
||||
- ✅ API REST pour intégration
|
||||
- ✅ Logs de débogage complets
|
||||
|
||||
---
|
||||
|
||||
**Made with ❤️ by the SIEM-Wazuh Team**
|
Reference in New Issue
Block a user