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.
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.
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.
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.
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 charge | Ubuntu 22.04 / 24.04, Debian 12+, Linux Mint, Pop!_OS, elementary, Zorin, Raspberry Pi OS 64 bits (Bookworm), Ubuntu pour Raspberry Pi |
|---|---|
| Architecture | x86_64 / aarch64 (Raspberry Pi 4 / 5) |
| Requis | systemd, 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. |
| Paquets | APT (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'usage | Nous 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.
| PersonalSOC | Rassemble 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. |
|---|---|
| PathScope | Recense 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. |
| AccessScope | Un 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épendances | Les 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 profil | Bascule autonome selon le Wi-Fi / la MAC de passerelle (3 profils) | Static policy (/etc/roamswitch/server.conf, fixed Default Drop) |
| Posture du pare-feu | Sé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çonnage | Blocage 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 fanotify | Détection autonome de rançongiciels par fanotify et gel du processus | Dé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 fiable | Appliqué en permanence |
| Bilan de santé de sécurité | ✅ 27 points (GUI / CLI / MCP) | ✅ 34 points (CIS Benchmark, CLI / MCP) |
| Interface opérateur | GUI GTK + zone de notification + CLI + MCP | CLI + MCP + administration à distance (headless) |
| Notifications d'urgence | Notifications 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évues | Ré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 SLA | Un 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).