Files
2026-06-09 18:40:21 +02:00

4.4 KiB


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

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)

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 (le standard GUI), Zeek (analyse réseau profonde), ntopng (flow-based, plus mature), tcpdump (CLI)
  • Web-based : Malcolm (suite complète Zeek+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

Pages Liées