Environnement du TP 17 : SOAR avec OPNsense
Ce TP réutilise exactement la même VM OPNsense que le TP 7 (voir tp7-environnement.md) : aucune nouvelle VM à créer. Le « collecteur SOAR » est un simple script Python exécuté sur le poste hôte.
1. Prérequis
- la VM OPNsense du TP 7 démarrée et accessible en API,
- Python 3 avec
pip install fastapi uvicorn requests pydantic python-dotenvsur le poste hôte.
2. Préparation côté OPNsense
- Firewall → Aliases → + : créez un alias vide de type Host(s), nommé
soar_blocklist. - Firewall → Rules → LAN (ou WAN selon le scénario) : créez une règle Block en première position, source = alias
soar_blocklist, appliquez. - Vérifiez que la clé/secret API du TP 7 sont toujours valides (
.env).
3. Vérification de l’accès à l’alias via l’API
curl -k -u "$OPNSENSE_KEY:$OPNSENSE_SECRET" https://192.168.1.1/api/firewall/alias/getAliasUUID/soar_blocklist4. Lancement du serveur d’écoute
Aucune VM supplémentaire n’est nécessaire : soar_listener.py tourne directement sur le poste hôte, sur le même réseau que celui utilisé pour joindre OPNsense (adaptateur host-only du TP 7).
python3 soar_listener.pyLe webhook est alors accessible en local sur http://localhost:5000/webhook/alert, et la documentation interactive générée par FastAPI sur http://localhost:5000/docs.
Vérification finale
- L’alias
soar_blocklistexiste et est référencé par une règle de blocage active sur OPNsense. - Le script
soar_listener.pydémarre sans erreur et écoute sur le port 5000. - Un appel
curlde test vers/webhook/alertrenvoie une réponse JSON.