103 lines
4.4 KiB
Markdown
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
|