Actu Smile

Fiwu, un firewall interactif pour Linux

  • Date de l’événement 28 Oct. 2026
  • Temps de lecture min.

Une solution simple et légère pour protéger et contrôler vos connexions réseau.

Il n'est pas rare qu'un binaire ou un script fraîchement exécuté tente d'ouvrir une connexion sortante sans avertissement et/ou à l'insu de l’utilisateur. Cela peut compromettre son IP et ouvrir la porte à des scénarios de tracking et de hacking. Maintenir des règles réseau à la main est complexe et chronophage, et l'exercice devient obsolète dès qu'un nouveau service ou une dépendance s'active en arrière-plan.

L'idée de Fiwu, c'est de revenir à une approche interactive en interceptant les flux sortants en direct et de poser la question aux utilisateurs :

“Le processus X veut joindre l'IP Y:port, on laisse passer ou on coupe ?”

Mode Tkinter:                                                         Mode Zenity:

     

Le projet s'appuie sur une implémentation légère en Python, combinant les files NFQUEUE d'iptables et un démon compact. L'ensemble s'intègre directement à l'écosystème GNOME via une extension dédiée dans le menu système. 

Fiwu vu de l’intérieur

  1. Interception réseau : Fiwu insère des règles iptables dans la chaîne OUTPUT (TCP, UDP, ICMP) redirigeant vers une NFQUEUE.
  2. Capture et décodage : Le paquet remonte en userspace via NetfilterQueue.
  3. Attribution du processus : Un thread scrute la table des connexions toutes les 500 ms avec ss -tupna pour relier le port local au nom du processus.
  4. Dialogue utilisateur : Si le processus n'est pas encore connu dans /etc/fiwu/config.json, une pop-up s’affiche :
    - Mode Tkinter : filtrage global ou par IP, avec une option temporaire « One-Time » en mémoire qui expire à l'arrêt du processus (nettoyage périodique via psutil).
    - Mode Zenity : alternatif, minimaliste et sans dépendance graphique lourde.
    - Extension GNOME : bascule rapide du service et consultation des règles depuis la barre supérieure.
  5. Coupure immédiate : En cas de refus, Fiwu ne se contente pas de jeter les paquets : la socket active est immédiatement réinitialisée via ss -K.

Cas d’usages

La forte paramétrabilité permise par Fiwu ouvre un spectre assez large de cas d’usages : 

  • Simple protection personnelle : où l’utilisateur peut contrôler en temps-réel les requêtes impromptues et définir ses préférences d’accès.
  • Définitions de règles d'entreprise : à travers sa configuration fichier JSON, les DSI peuvent établir des règles par défaut, plus ou moins permissives pour les usagers.
  • Analyse de risques cyber : dans le contexte de la cybersécurité, Fiwu peut fournir une première couche d’analyse légère permettant d’identifier des comportements types, par exemple lorsque l’usage de service A, déclenche des requêtes depuis service B.

Un pipeline d'intégration continue valide à chaque étape la construction des paquets natifs ( .deb et .rpm), le bon comportement de l'extension GNOME sur Debian, Ubuntu et Fedora.

Code source et Installation

Le code est disponible sur GitHub : https://github.com/Smile-SA/fiwu

Pour les distributions basées sur Debian/Ubuntu :

sudo add-apt-repository ppa:rnd-smile/fiwu
sudo apt update && sudo apt install fiwu

Le dépôt fournit aussi les scripts pour empaqueter un .rpm ou un .deb depuis les sources.

Les retours sur le code, les suggestions d'architecture et les PR sont évidemment les bienvenus !