116 lines
4.0 KiB
Markdown
116 lines
4.0 KiB
Markdown
# 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.
|
||
Il founit également la possibilité de générer une **matrice de routage au format Excel** pour visualiser les routes statiques 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.
|
||
|
||
6. **Génération de matrices de routage**
|
||
- Script Python qui utilise le JSON normalisé pour générer automatiquement une matrice Excel détaillant :
|
||
- les routes statiques
|
||
|
||
## Utilisation
|
||
|
||
### Pré-requis
|
||
```bash
|
||
python -m venv .venv
|
||
.\.venv\Scripts\activate
|
||
|
||
pip install -r .\src\requirements.txt
|
||
```
|
||
|
||
#### Commandes principales
|
||
```bash
|
||
python3 .\src\main.py stormshield .\src\input\backup\ -f -r
|
||
python3 .\src\main.py paloalto .\src\input\nomfichier -f -r
|
||
python3 .\src\main.py forcepoint .\src\input\nomfichier -f -r
|
||
```
|
||
#### Options
|
||
|
||
| Option | Description |
|
||
|--------|-------------|
|
||
| -o [nom_fichier] | Spécifie le nom du fichier JSON de sortie (optionnel)
|
||
| -f | Génère un rapport Excel de type matrice de flux (optionnel)
|
||
| -r | Génère un rapport Excel de type matrice de routage (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 |