112 lines
3.7 KiB
Markdown
112 lines
3.7 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.
|
|||
|
|
|
|||
|
|
## 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
|