Files
wiki/Catalogue-Self-Hosted/apps/app-magicpack.md
T
2026-06-09 18:40:21 +02:00

103 lines
4.4 KiB
Markdown

---
title: MagicPack
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, networking, monitoring, packet-capture, python]
confidence: medium
contested: false
sources: [https://selfh.st/apps/?tag=networking, https://github.com/magicstack/magicpack]
---
# MagicPack 🪄
> Outil Python expérimental d'analyse de paquets réseau en continu, avec détection d'anomalies simple et dashboard léger.
| Métadonnée | Valeur |
| :--- | :--- |
| **Site web** | https://github.com/magicstack/magicpack |
| **GitHub** | https://github.com/magicstack/magicpack |
| **License** | MIT |
| **Langage** | Python (Scapy) |
| **Étoiles** | 1 ⭐ |
| **Dernière MAJ** | 2023 |
| **Catégorie** | [[cat-networking]] |
## Description
**MagicPack** est une expérience Python pour faire de la **capture et analyse de paquets en temps réel** sur une interface réseau locale. L'outil s'appuie sur **Scapy** (la bibliothèque de référence en Python pour le réseau bas-niveau) et offre un petit dashboard web (Flask) qui affiche, en direct, le trafic observé : distribution par protocole, top sources/destinations, flux dominants, et règles de détection d'anomalies basiques.
L'idée est de fournir un équivalent léger de **Wireshark + Zeek** sans la complexité d'indexation et de stockage longue durée. C'est un outil de **détection ponctuelle** (« qu'est-ce qui passe sur mon réseau en ce moment ? »), pas de l'observabilité long-terme. Il peut être utile pour :
- Diagnostiquer un réseau domestique qui «rame»
- Vérifier la présence d'appareils inattendus
- Comprendre la répartition du trafic IoT
- Apprendre le fonctionnement de TCP/IP de manière visuelle
Le projet est très jeune (1 étoile, peu de releases) et doit être considéré comme **expérimental** : l'API peut changer, les performances sont limitées par Scapy (pas adapté au 10 Gbps), et la doc est minimale. À réserver à du labo ou de la pédagogie, pas à de la production.
## Installation
### Docker Compose
```yaml
services:
magicpack:
image: ghcr.io/magicstack/magicpack:latest
container_name: magicpack
restart: unless-stopped
network_mode: host # nécessaire pour voir le trafic réel
cap_add:
- NET_RAW
environment:
- INTERFACE=eth0
- TZ=Europe/Paris
ports:
- "8090:5000"
```
> ⚠️ `network_mode: host` + `NET_RAW` est requis pour la capture de paquets : c'est **inévitable** pour ce type d'outil.
### Manuelle (Python)
```bash
git clone https://github.com/magicstack/magicpack.git
cd magicpack
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
sudo python app.py --interface eth0
# (sudo nécessaire pour raw socket)
```
## Configuration
- Choisir l'interface à écouter (`eth0`, `wlan0`, `br-lan` sur OpenWrt, etc.)
- Définir un filtre BPF optionnel : `--filter "port not 22 and not host 192.168.1.1"`
- Régler la fenêtre de rétention en mémoire (défaut : 5 minutes)
- Activer ou non le log PCAP rotatif pour analyse post-mortem
## Alternatives
- **Open Source** : [Wireshark](https://www.wireshark.org/) (le standard GUI), [Zeek](https://github.com/zeek/zeek) (analyse réseau profonde), [ntopng](https://github.com/ntop/ntopng) (flow-based, plus mature), [tcpdump](https://github.com/the-tcpdump-group/tcpdump) (CLI)
- **Web-based** : [Malcolm](https://github.com/cisagov/Malcolm) (suite complète Zeek+Arkime), [Arkime](https://github.com/arkime/arkime) (capture full-packet avec UI web)
- **Propriétaire** : SolarWinds NetFlow, ExtraHop, Darktrace (hors budget et hors philosophie self-host)
## Sécurité
- **Permissions élevées** : `NET_RAW` est l'équivalent d'un sniffer — n'importe qui peut capturer des mots de passe en clair. Limiter l'accès à l'hôte.
- **Données sensibles** : les paquets capturés contiennent des credentials HTTP, des cookies, des métadonnées personnelles. Chiffrer le volume de stockage, ne **jamais** exposer le dashboard publiquement.
- **Légalité** : la capture de paquets sur un réseau qui n'est pas le vôtre est **illégale** dans la plupart des juridictions.
- **Expérimental** : projet à 1 étoile, ne pas utiliser pour des diagnostics critiques.
## Ressources
- [selfh.st — Networking](https://selfh.st/apps/?tag=networking)
- [GitHub magicstack/magicpack](https://github.com/magicstack/magicpack)
- [Scapy documentation](https://scapy.net/)
## Pages Liées
- [[cat-networking]]
- [[recettes-docker-compose]]
- [[app-uptime-kuma]] — monitoring de services