add project
This commit is contained in:
112
README.md
Normal file
112
README.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# Firewall Config Parser & Excel Flow Matrix Generator
|
||||
|
||||
## Description
|
||||
|
||||
Cet outil permet de **parser les configurations de différents types de firewalls** (Palo Alto, Stormshield, Forcepoint) et de **convertir ces informations en un format JSON normalisé basé sur des modèles OpenConfig en YANG**.
|
||||
|
||||
Il fournit également la possibilité de générer une **matrice de flux au format Excel** pour visualiser les communications et règles de trafic dans l’infrastructure.
|
||||
|
||||
## Fonctionnalités principales
|
||||
|
||||
1. **Analyse multi-firewalls**
|
||||
- Développement de scripts Python dédiés à chaque type de firewall :
|
||||
- Palo Alto
|
||||
- Stormshield
|
||||
- Forcepoint
|
||||
- Extraction automatique des informations pertinentes à partir des fichiers de configuration respectifs.
|
||||
- address
|
||||
- address-group
|
||||
- service
|
||||
- service-group
|
||||
- interface
|
||||
- rules
|
||||
- routes
|
||||
|
||||
2. **Modèle YANG personnalisé**
|
||||
- Conception d’un modèle YANG personnalisé pour stocker les informations spécifiques non couvertes par OpenConfig :
|
||||
- `address`
|
||||
- `address-group`
|
||||
- `service`
|
||||
- `service-group`
|
||||
|
||||
3. **Conversion en JSON normalisé**
|
||||
- Export des configurations dans un format JSON structuré selon les modèles OpenConfig :
|
||||
- `openconfig-acl`
|
||||
- `openconfig-interfaces`
|
||||
- `openconfig-network-instance`
|
||||
- Intégration des objets personnalisés via le modèle YANG développé.
|
||||
|
||||
5. **Génération de matrices de flux**
|
||||
- Script Python qui utilise le JSON normalisé pour générer automatiquement une matrice Excel détaillant :
|
||||
- les règles de sécurité
|
||||
- les communications entre objets et groupes d’adresses/services.
|
||||
|
||||
## Utilisation
|
||||
|
||||
### Pré-requis
|
||||
```bash
|
||||
python -m venv .venv
|
||||
.\.venv\Scripts\activate
|
||||
|
||||
pip install -r .\src\requierements.txt
|
||||
```
|
||||
- Mettre le/les fichier(s) de configurations dans le dossier `/src/input/`
|
||||
- Modifier le fichier `site.json` de données dans `/src/data/`
|
||||
|
||||
#### Commandes principales
|
||||
```bash
|
||||
python3 .\src\main.py stormshield .\src\input\backup\ -m
|
||||
python3 .\src\main.py paloalto .\src\input\nomfichier -m
|
||||
python3 .\src\main.py forcepoint .\src\input\nomfichier -m
|
||||
```
|
||||
#### Options
|
||||
|
||||
| Option | Description |
|
||||
|--------|-------------|
|
||||
| -o [nom_fichier] | Spécifie le nom du fichier JSON de sortie (optionnel)
|
||||
| -m | Génère un rapport Excel de type matrice de flux (optionnel)
|
||||
---
|
||||
|
||||
## Arborescence du projet
|
||||
|
||||
```bash
|
||||
C:.
|
||||
├───src
|
||||
│ ├───data # Données static
|
||||
│ ├───input # Fichiers/Dossiers de configuration
|
||||
│ ├───modèles # Modèles YANG
|
||||
│ ├───output # Fichiers JSON normalisés/Excel matrice de flux
|
||||
│ └───scripts # Fichiers python
|
||||
│ ├───objets
|
||||
│ └───style_excel
|
||||
```
|
||||
|
||||
## Structure du JSON généré
|
||||
|
||||
```bash
|
||||
.json
|
||||
├── firewall-device # type de firewall (palo-alto|stormshield|forcepoint)
|
||||
├── openconfig-interfaces
|
||||
├── openconfig-network-instances
|
||||
├── openconfig-acl
|
||||
└── custom-firewall-objects
|
||||
├── address
|
||||
├── address-group
|
||||
├── service
|
||||
└── service-group
|
||||
```
|
||||
|
||||
## Fichiers YANG utilisés
|
||||
|
||||
| Fichier YANG | Description |
|
||||
|--------------|-------------|
|
||||
| `.\src\modèles\openconfig-acl.yang` | Décrit les ACL et règles de firewall standard OpenConfig |
|
||||
| `.\src\modèles\openconfig-interfaces.yang` | Modèle pour les interfaces réseau standard OpenConfig |
|
||||
| `.\src\modèles\openconfig-network-instance.yang` | Modèle pour les VRF / instances réseau OpenConfig |
|
||||
| `.\src\modèles\custom-firewall-objects.yang` | Modèle personnalisé pour les objets spécifiques (address, address-group, service, service-group) |
|
||||
---
|
||||
|
||||
## Auteurs
|
||||
|
||||
Projet développé par :
|
||||
- Julie Chevallier | Computacenter
|
||||
Reference in New Issue
Block a user