Édition macOS Linux Sensor

Dès qu'un danger est détecté, Linux s'isole automatiquement.

Du poste de bureau au VPS cloud, défense Linux autonome sans configuration complexe. Édition Client : détection Wi-Fi automatique et kill-switch VPN. Édition Serveur : protection contre le verrouillage SSH et détection d'intrusion en millisecondes. Les deux entièrement headless.

✦ Gratuit · toutes les fonctions incluses · aucune activation 🖥️ Compatible Client (bureau) & Serveur
RoamSwitch for Linux — autonomous network defense: Wi-Fi identification and nftables profile switching, ransomware behaviour detection and AIR-GAP isolation, USB / BadUSB guard, a 27-item security assessment, an MCP server, and Zero Telemetry

Installer depuis votre distribution

Après ajout du dépôt officiel, les mises à jour passent par votre commande de mise à jour habituelle et la vérification intégrée fonctionne. Les dépendances (nftables, polices CJK, etc.) sont installées automatiquement.

Ubuntu / Debian / Mint / Pop!_OS / Raspberry Pi OS (APT)

curl -fsSL https://lafine.net/apt/roamswitch-archive-keyring.asc \
  | sudo gpg --dearmor -o /usr/share/keyrings/roamswitch-archive-keyring.gpg
echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/roamswitch-archive-keyring.gpg] https://lafine.net/apt stable main" \
  | sudo tee /etc/apt/sources.list.d/roamswitch.list
sudo apt update && sudo apt install roamswitch

Fedora / RHEL / CentOS Stream (DNF)

sudo rpm --import https://lafine.net/rpm/RPM-GPG-KEY-roamswitch
sudo curl -fsSL -o /etc/yum.repos.d/roamswitch.repo https://lafine.net/rpm/fedora/roamswitch.repo
sudo dnf install roamswitch

openSUSE (zypper)

sudo rpm --import https://lafine.net/rpm/RPM-GPG-KEY-roamswitch
sudo zypper addrepo https://lafine.net/rpm/opensuse/roamswitch.repo
sudo zypper refresh && sudo zypper install roamswitch

Arch / Manjaro / EndeavourOS (AUR)

Not published on the AUR. Build from the bundled PKGBUILD (the release tarball is verified against the signing key).

gpg --recv-keys 9C12964366B8547511AAEAF5773A9A39ECBD1537
curl -fsSLO https://lafine.net/linux/dl/PKGBUILD
curl -fsSLO https://lafine.net/linux/dl/roamswitch.install
makepkg -si

Sans dépôt, téléchargez les tarballs signés (.tar.gz + .tar.gz.asc, amd64 / aarch64) directement depuis lafine.net/linux/dl (la vérification de mise à jour intégrée ne fonctionnera pas dans ce cas).

Après l'installation, roamswitch.service démarre automatiquement et l'icône de la zone de notification s'exécute à la connexion. Un assistant d'accueil (GTK) apparaît au premier lancement. La CLI (roamswitch status) affiche le diagnostic en japonais ou en anglais selon la locale du système.

Fonctionnalités clés

Défense autonome, nativement sous Linux

🛡️ Bascule autonome des profils nftablesÉdition Client uniquement

Sur les réseaux de confiance (domicile), il autorise un trafic local confortable ; au travail, il surveille les ports suspects ; sur le Wi-Fi public, il rejette tout le trafic entrant en mode furtif. Décidé par la MAC de passerelle, basculé en quelques millisecondes.

🚨 Isolement autonome des rançongicielsÉdition Client uniquement

fanotify + entropie de Shannon détectent une rafale d'écritures de chiffrement, gèlent le processus fautif par SIGSTOP et vous en informent (la notification contient la commande de reprise). Tout le trafic externe et les services de partage sont aussi coupés en urgence (Air-Gap), comme lors de l'altération d'un fichier canari (leurre). L'analyse YARA des fichiers écrits est effectuée séparément.

🧷 Détection des démarrages automatiques suspectsÉdition Client uniquement

Examine les entrées de démarrage automatique nouvelles ou réécrites (systemd, cron, démarrage de session) et ne notifie que celles qui ressemblent à la persistance d'un logiciel malveillant : reverse shell, décodage puis exécution directe, téléchargement puis exécution directe, ou programme lancé depuis un dossier temporaire ou caché. Notification uniquement ; rien n'est bloqué, et les entrées d'apparence ordinaire sont seulement journalisées. Activé par défaut.

📶 Alerte sur la force du chiffrement Wi-FiÉdition Client uniquement

Sur les réseaux Open / WEP / WPA, le niveau de protection est relevé automatiquement avec une notification bureau. Les services de partage (SSH/Samba/RDP) sont aussi arrêtés et restaurés automatiquement (activé par défaut, désactivable à tout moment).

🔌 Protection USB non autorisé / BadUSBÉdition Client uniquement

Un stockage USB non approuvé est mis en attente d'approbation ; un périphérique d'injection de frappes (un clavier BadUSB) voit sa saisie supprimée de façon logicielle via evdev — jamais de coupure de port au niveau du noyau. Intègre l'analyse automatique ClamAV et la mise en quarantaine du dossier Téléchargements.

📜 Audit de sécurité en 27/34 points

Note 27 points côté client — LUKS, Secure Boot, LSM, SSH/sudo, sysctl, épinglage ARP, ports exposés, Safe Browsing du navigateur, etc. — ou 34 points CIS Benchmark en Server Edition, dans les 10 langues. Accessible depuis l'interface graphique, la CLI et MCP. Chaque élément porte aussi une correspondance NIST CSF 2.0 / CIS Controls v8, utile pour les audits.

🤖 Serveur MCP intégré

roamswitch-mcp permet à des agents IA comme Claude de lire l'état de sécurité via JSON-RPC (stdio). Lecture seule et entièrement local. Voir Configuration MCP.

🔒 Tunnel VPN + kill-switchÉdition Client uniquement

Sur un Wi-Fi public, tout le trafic passe par un tunnel chiffré WireGuard ou Tailscale (nœud de sortie). Un kill-switch nftables bloque toute fuite en clair hors du tunnel et ne laisse rien passer si le tunnel tombe (fail-closed). La défense principale contre les attaques de l'homme du milieu.

🎣 Protection passive des liens (bloque les connexions d'hameçonnage)Édition Client uniquement

Lit le nom d'hôte de destination des connexions sortantes depuis la requête DNS, le SNI TLS et l'en-tête HTTP Host, et avertit ou bloque les connexions vers des sites d'hameçonnage / d'arnaque (blocage par défaut, y compris pour les navigateurs DoH). En mode avertissement, l'absence de réponse est fail-closed. Les verdicts n'utilisent qu'un flux local et des heuristiques hors ligne ; la destination n'est jamais envoyée nulle part.

🖧 Défense serveur autonome & protection contre le verrouillage SSHÉdition Serveur uniquement

Applique automatiquement le Default Drop entrant pour les nœuds VPS cloud et centres de données. Préserve activement les sessions SSH administratives existantes (état ESTABLISHED) pour éviter de verrouiller l'administrateur hors du système. Un fichier guard.yaml optionnel permet d'ajuster finement l'action de confinement par niveau de gravité, avec une minuterie de sécurité qui restaure automatiquement l'accès en l'absence de réponse. L'édition serveur jusqu'à la 1.10.4 présentait un défaut. Les règles d'isolement abandonnaient les réponses SSH, de sorte que le SSH de l'opérateur ne fonctionnait pas pendant l'isolement. Il est corrigé dans la 1.10.5.

⚡ Détection d'intrusion eBPF & isolement autonome (Falco / Tetragon)

Capture en temps réel les événements eBPF au niveau noyau (reverse shells, élévations de privilèges, exécution de binaires non autorisés) via un socket UNIX. Choisissez Falco (par défaut) ou Cilium Tetragon (gRPC) comme capteur. Isole en quelques millisecondes, de façon autonome, les processus compromis (SIGSTOP/SIGKILL) ou les hôtes (Air-Gap). La Server Edition mesure aussi le temps entre la détection et la réponse, vérifie le chemin d'alerte par un heartbeat et détecte elle-même les reverse shells.

📂 FIM critical-path (surveillance de l'intégrité des fichiers)

Surveillance événementielle par hachage SHA-256 des binaires système et configurations critiques, notamment /etc/shadow, /etc/pam.d et /usr/bin/ — toute altération est détectée à l'instant où elle survient (les analyses périodiques servent de filet de sécurité). Signale immédiatement les installations de portes dérobées et les altérations non autorisées. La notification indique le processus à l'origine du changement et la connexion SSH à laquelle il appartient (source, heure, méthode d'authentification).

🔐 Détection et blocage de la force brute SSH

Lit les échecs de connexion de sshd à l'instant où ils sont écrits, bloque les nouvelles connexions d'une source qui atteint le seuil et coupe les connexions SSH que cette source avait déjà ouvertes (une session authentifiée et une source exemptée ne sont jamais coupées). Activé par défaut dans la Server Edition. Dans l'édition Client, il ne travaille que tant que sshd tourne. Lorsque fail2ban ou CrowdSec protège déjà sshd, il se contente de détecter et de notifier.

🧠 Garde d'épuisement des ressources / anomalie de processusÉdition Serveur uniquement

Détecte les attaques DoS par fuite mémoire et les boucles de plantage (signe d'une tentative d'exploit use-after-free). Le cycle normal en dents de scie d'un runtime avec ramasse-miettes n'est jamais pris pour une fuite ; seule une croissance RSS soutenue, sans reprise, est signalée. Les boucles de plantage sont reconnues de façon structurelle à partir du vocabulaire fixe de systemd lui-même (aucun nouveau sondage). Corrèle par PID avec les événements eBPF/FIM pour attribuer un niveau de confiance (possible/correlated).

🧱 Blocage Egress / C2 & DNS sinkholeÉdition Serveur uniquement

Bloque automatiquement les connexions sortantes vers des IP malveillantes connues via un flux de menaces local. Activez en option un DNS sinkhole (Quad9 / Cloudflare / AdGuard / CleanBrowsing) pour bloquer également la résolution de domaines malveillants (désactivé par défaut afin de ne jamais perturber un environnement DNS interne).

📢 Alertes d'urgence multicanalesÉdition Serveur uniquement

Envoie instantanément des informations détaillées sur l'incident vers Slack, Discord, Microsoft Teams, Syslog ou des Webhooks dès qu'une menace est interceptée, qu'un processus est tué ou qu'un hôte est isolé en Air-Gap.

🐳 Détection des risques Docker & protection contre le contournement du pare-feu

Détecte instantanément, via docker events, le démarrage d'un conteneur privilégié (--privileged) ou un montage docker.sock (notification uniquement). La protection contre le contournement du pare-feu par la chaîne DOCKER-USER est toujours active, sur les éditions Client comme Serveur.

🧫 File Scan Guard (YARA + ClamAV)Édition Serveur uniquement

Analyse régulièrement les répertoires qui stockent des fichiers destinés à autrui — relais de messagerie, dossier partagé, point de dépôt (une couche supplémentaire pour des répertoires partagés quelconques, distincte de l'analyse automatique du dossier Téléchargements de l'édition cliente). Le moteur YARA intégré fonctionne en permanence sans dépendance externe ; ClamAV peut être ajouté en option. Les menaces confirmées sont automatiquement mises en quarantaine.

🔑 Scanner de fuites de secrets & clés API

Détecte les clés API (OpenAI, Anthropic, AWS, GitHub, Slack, Stripe, etc.) et les clés privées SSH, non seulement dans du texte collé mais aussi dans des répertoires entiers (.git et similaires sont exclus automatiquement). Disponible via la CLI, MCP et le SDK Python ; rien n'est jamais transmis hors de la machine.

📦 Vérification CVE des paquets (dpkg/pacman/dnf/zypper + dépendances)Édition Client uniquement

Compare les paquets OS installés et les dépendances de votre projet (npm, PyPI, crates.io et 4 autres écosystèmes) à une correspondance CVE connue stockée localement. Aucune activité réseau du tout.

🖥️ Protection ClickFix : détecte et efface les commandes malveillantes via le presse-papiersÉdition Client uniquement

Protège contre « ClickFix », une fausse publicité ou page CAPTCHA qui vous incite à copier-coller un « code de vérification » qui est en réalité une commande malveillante. Surveille le presse-papiers via gtk::Clipboard (fonctionne de façon transparente sous X11 et Wayland) et, dès qu'un modèle malveillant connu est copié, efface son contenu et vous avertit — quel que soit le terminal ou la boîte de dialogue d'exécution GNOME/KDE utilisé comme destination.

🔔 Historique des notifications (7 derniers jours)

Consultez les notifications envoyées par RoamSwitch même après leur affichage initial. Disponible via la CLI (roamswitch notifications), l'interface graphique, MCP (get_notification_history) et le SDK Python. Les entrées dépassant la période de conservation sont supprimées automatiquement.

🕵️ Détection de tunnel DNS / exfiltration

Détecte les formes de requêtes suspectes utilisées par les outils de tunnel DNS (iodine, dnscat2, …) — étiquettes longues à forte entropie, ou types de requête TXT/NULL. N'inspecte jamais le trafic non-DNS, et un détecteur arrêté ne peut jamais retarder la résolution de noms. Disponible sur les éditions Client et Serveur.

📊 Fraîcheur des analyses de vulnérabilités (pass_age)Édition Client uniquement

Pour chaque sonde de vérification active, consultez le dernier résultat enregistré et le nombre de jours écoulés depuis — depuis l'interface graphique, la CLI ou MCP. Rend visible en un coup d'œil la dernière vérification réelle.

↓ GTK natif. Voici à quoi ressemble l’application réelle
🖥️ Gestion réseau & profils de protection (GTK natif)
Fenêtre principale de RoamSwitch for Linux (capture réelle)

Identifie l’adresse MAC de la passerelle connectée et bascule le profil nftables de façon autonome. Le contrôle des services de partage et l’épinglage ARP se trouvent aussi ici.

📋 Menu de la zone de notification (AppIndicator / SNI)
Menu de la zone de notification de RoamSwitch for Linux (capture réelle)

Changer de niveau de protection instantanément, définir la durée du forçage manuel, activer la protection DNS et la langue — depuis la zone de notification.

Environnements pris en charge

Entièrement pris en chargeUbuntu 22.04 / 24.04, Debian 12+, Linux Mint, Pop!_OS, elementary, Zorin, Raspberry Pi OS 64 bits (Bookworm), Ubuntu pour Raspberry Pi
Architecturex86_64 / aarch64 (Raspberry Pi 4 / 5)
Requissystemd, nftables. L'interface de la zone de notification nécessite un bureau AppIndicator/StatusNotifierItem (KDE / Cinnamon / MATE / Budgie, ou GNOME avec l'extension). Les machines sans affichage peuvent utiliser daemon + CLI + MCP.
PaquetsAPT (famille Ubuntu/Debian), DNF (Fedora/RHEL), zypper (openSUSE), AUR (Arch). Les distributions sans systemd (Alpine / Void / Devuan) ne sont pas prises en charge.
Cas d'usageNous proposons deux packages : une édition Client (GUI + barre d'état système) pour postes de travail et portables, et une édition Serveur (headless, Default Drop, intégration eBPF/Falco) pour VPS cloud, hôtes de conteneurs et centres de données.

Applications fournies

Les paquets de l'édition Client (deb, rpm et tarball) contiennent trois applications distinctes de RoamSwitch (PersonalSOC, PathScope et AccessScope). Chacune a sa propre icône et s'ouvre depuis le menu des applications. Elles sont sous licence Apache License 2.0 et ne sont pas couvertes par le contrat de licence utilisateur (EULA) de RoamSwitch. L'édition Serveur (sans interface) ne contient que les trois commandes (personalsoc, pathscope et accessscope), sans les applications à fenêtre.

PersonalSOCRassemble les journaux et l'état des défenses de cet appareil en un seul rapport en un clic (un centre d'opérations de sécurité personnel). Son intégration LLM est facultative et désactivée par défaut.
PathScopeRecense les voies par lesquelles un utilisateur ordinaire peut atteindre root et indique par où corriger d'abord (un outil d'analyse des voies d'élévation de privilèges). Son intégration LLM est facultative et désactivée par défaut.
AccessScopeUn outil de diagnostic de sécurité des journaux d'accès : il repère les tentatives d'attaque dans les journaux d'accès des serveurs web et de SSH et montre les lignes de journal qui les prouvent. Son intégration LLM est facultative et désactivée par défaut. La commande (accessscope) est aussi fournie dans les paquets de l'édition Serveur.
Mises à jour et dépendancesLes applications fournies sont mises à jour avec le paquet RoamSwitch. Leurs fenêtres nécessitent WebKitGTK 4.1 (libwebkit2gtk-4.1), que les paquets deb et rpm installent automatiquement ; sous Arch (AUR), installez webkit2gtk-4.1 comme dépendance facultative.

Édition Client vs édition Serveur

L'« édition Client » pour postes de travail et portables, et l'« édition Serveur » pour VPS cloud, hôtes de conteneurs et centres de données — chacune optimisée pour une défense autonome adaptée à son environnement.

Domaine Édition client (actuelle) Édition Serveur (headless)
Détection réseau et bascule de profilBascule autonome selon le Wi-Fi / la MAC de passerelle (3 profils)Static policy (/etc/roamswitch/server.conf, fixed Default Drop)
Posture du pare-feuSélection auto entre Ouvert / Équilibré / VerrouilléTout refuser + liste blanche explicite des ports de service déclarés (entrée minimale)
Trafic sortant (egress)La protection passive des liens + la protection DNS bloquent l'hameçonnageBlocage en sortie des domaines de C2 / malveillants + restriction du trafic sortant
Tunnel VPN + kill-switch✅ WireGuard / Tailscale❌ Non disponible (l'accès d'administration se fait uniquement par SSH ; configurez vous-même WireGuard ou équivalent via l'OS si un VPN est nécessaire)
Détection et isolement des rançongiciels / analyse anti-malware fanotifyDétection autonome de rançongiciels par fanotify et gel du processusDétection d'intrusion eBPF (Falco / Tetragon) + FIM du chemin critique (événementiel, détection instantanée) + détection d'épuisement des ressources/boucles de plantage
Durcissement du noyau (sysctl / Yama / noexec)Appliqué sur un réseau non fiableAppliqué en permanence
Bilan de santé de sécurité✅ 27 points (GUI / CLI / MCP)✅ 34 points (CIS Benchmark, CLI / MCP)
Interface opérateurGUI GTK + zone de notification + CLI + MCPCLI + MCP + administration à distance (headless)
Notifications d'urgenceNotifications de bureau (GTK / libnotify)Alertes instantanées Slack / Discord / Teams / Syslog / Webhook
Gestion centralisée et audit[Prévu – pas encore disponible] Ajouté avec une licence Business[Prévu – pas encore disponible] Ajouté avec une licence Business (distribution de politiques signées, check-in périodique ; la version gratuite reste 100 % locale)
Documentation détaillée Livre blanc sécurité (Client) → Manuel d'exploitation Server Edition / Livre blanc sur la sécurité (Linux Serveur)

Manuel d'exploitation Server Edition Livre blanc sur la sécurité (Linux Serveur) Guide d'exploitation CLI / headless →

🏢 RoamSwitch Business (pour les organisations)

L'édition personnelle (Community Edition) est gratuite avec toutes les fonctions. Pour les organisations qui veulent piloter plusieurs appareils Linux, les couches de gestion suivantes sont prévues dans le niveau payant Business (aucune n'est encore disponible). La défense sur l'appareil (bascule nftables, isolation ransomware, protection USB, DNS, diagnostic, MCP) fait partie de Community ; Business n'est pas censé en retirer.

Fonctions prévuesRésumé
Gestion de flotte[Prévu – pas encore disponible] Enrôler les appareils avec un jeton d'organisation signé Ed25519 ; agréger le niveau de protection, le score de santé et l'état des politiques via un check-in périodique.
Distribution de politiques en masse signée[Prévu – pas encore disponible] Distribuer les réseaux de confiance, le niveau hors-site, le contrôle des services de partage et la valeur imposée de chaque garde en JSON signé Ed25519. Verrouillé sur le poste.
APT / RPM interne signéUn dépôt privé signé avec une clé GPG propre à l'organisation. Les vérifications de mise à jour dans l'application continuent de fonctionner.
Support SLAUn contact sous contrat pour la conception du déploiement, la conception des politiques et la réponse aux incidents (japonais, jours ouvrés JST).

Il n'existe aujourd'hui ni serveur de gestion ni gestion de flotte, et la Community Edition ne communique avec aucun serveur de gestion (Zero Telemetry). Les fonctions de gestion Business figurent sur la feuille de route ; si elles sont introduites, elles seront en opt-in et limitées aux appareils que l'organisation enregistre explicitement, avec publication préalable des champs transmis. La gratuité des fonctions Business pour les détenteurs de macOS Pro Lifetime est prévue au lancement. Tarifs et calendrier sur demande.

Nous contacter au sujet de Business

🔒 Zero Telemetry / Licence

Le contenu des communications, l'historique des connexions, les URL consultées et les journaux système ne sont jamais envoyés à l'extérieur. Par défaut, l'édition Client n'établit qu'un seul type de connexion sortante : une mise à jour quotidienne qui se contente de recevoir des données de détection signées et similaires (elle ne contient aucune information sur vous ou votre machine et peut être désactivée). Par défaut, l'édition Serveur n'établit elle aussi qu'un seul type de connexion sortante : la récupération anonyme de données signées (les données CVE du noyau, les règles web et, sur les serveurs Ubuntu, les données CVE des paquets Ubuntu utilisées par la vérification CVE des paquets du système ; le manifeste est vérifié chaque jour, les données CVE elles-mêmes environ tous les 30 jours ; elle ne contient aucune information sur l'hôte et l'opérateur peut la désactiver). En dehors de cela, elle ne se connecte à l'extérieur que si l'opérateur l'active. RoamSwitch for Linux est un logiciel gratuit propriétaire ; le paquet de distribution officiel (.deb) peut être redistribué sans modification avec tous les avis de droits d'auteur intacts. Le code source n'est pas publié. Texte intégral dans /usr/share/doc/roamswitch/copyright. Le SDK RoamSwitchKit est fourni séparément en open source. L'intégration LLM des applications distinctes fournies (PersonalSOC, PathScope et AccessScope, y compris l'« Aide du LLM » de PathScope ainsi que l'analyse par LLM et la recherche de journaux d'AccessScope) est désactivée par défaut dans chaque application ; si elle est activée, du contenu peut être envoyé à l'extérieur par la commande LLM choisie (voir la page de chaque application).