# 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