🔒 Protection réseau automatique pour développeurs en déplacement
Securitor est une application système tray qui bascule automatiquement votre machine Linux en mode sécurisé lorsque vous vous connectez à un réseau WiFi public.
- 🛡️ Mode Voyage automatique : Détection des réseaux WiFi publics et activation automatique des protections
- 🔥 Firewall intelligent : Bascule automatique entre zones firewalld (home/public)
- 🐳 Docker sécurisé : Isole les containers Docker en localhost uniquement
- 🔐 Intégration VPN : Support ProtonVPN et WireGuard via NetworkManager
- 🚫 Protection DNS/IPv6 : Prévention des fuites DNS et IPv6
- 👻 Invisibilité LAN : Désactive Avahi pour rendre votre machine invisible
- 🔔 Alertes persistantes : Notifications visuelles si VPN non actif en Mode Voyage
- 🛠️ Récupération automatique : Watchdog intégré en cas de crash
- Ubuntu 22.04+ ou 24.04 LTS (ou dérivés : Pop!_OS, Linux Mint)
- Architecture : amd64
- Go 1.21+ (pour compiler depuis les sources)
Un script est fourni pour installer automatiquement tous les prérequis :
cd securitor
chmod +x install_prerequisites.sh
./install_prerequisites.shCe script installe :
- Go 1.21+
- firewalld
- NetworkManager
- policykit-1, libnotify-bin, zenity
# Télécharger le package
wget https://github.com/Root-SKB/Securitor/releases/latest/download/securitor_1.0.0_amd64.deb
# Installer
sudo dpkg -i securitor_1.0.0_amd64.deb
# Installer les dépendances manquantes (si nécessaire)
sudo apt-get install -f# Cloner le dépôt
git clone https://github.com/Root-SKB/Securitor.git
cd securitor
# Installer les dépendances Go
make deps
# Compiler
make build
# Créer le package .deb
make package
# Installer
sudo dpkg -i build/securitor_1.0.0_amd64.debL'application se lance automatiquement au démarrage (optionnel).
Pour lancer manuellement :
securitorOu depuis le menu Applications → Securitor
Une icône apparaît dans la barre système avec 3 états visuels :
- 🔓 Vert : Mode Normal (réseau de confiance)
- 🔒 Vert : Mode Voyage + VPN actif (protégé)
⚠️ Orange/Rouge : Mode Voyage SANS VPN (alerte)
┌─────────────────────────────────────┐
│ Securitor │
├─────────────────────────────────────┤
│ État: Mode Voyage ACTIF │
│ VPN: ⚠️ NON ACTIF │
│ Réseau: Starbucks_WiFi │
├─────────────────────────────────────┤
│ ▶ Activer VPN (ProtonVPN) │
│ ◀ Retour Mode Normal │
├─────────────────────────────────────┤
│ ⚙️ Paramètres │
│ ℹ️ À propos │
│ 🚨 Récupération d'urgence │
│ ❌ Quitter │
└─────────────────────────────────────┘
- Vous vous connectez au WiFi "Cafe_Public"
- Popup : "
⚠️ Réseau non fiable détecté" - Vous cliquez "Activer Mode Voyage"
- Popup : "🔒 Voulez-vous activer votre VPN ?"
- Vous cliquez "Oui, activer"
- ✅ Vous êtes protégé !
- Vous êtes en Mode Voyage
- Le réseau est très lent
- Vous cliquez "Désactiver VPN" dans le menu
⚠️ Icône devient orange + notification persistante- Vous êtes conscient du risque mais le firewall reste actif
- Vous vous connectez à votre WiFi maison
- L'app détecte un réseau de confiance
- Reste automatiquement en Mode Normal
- Pas de popup
/etc/securitor/securitor.conf: Configuration générale/etc/securitor/trusted_networks.conf: Liste des réseaux de confiance
# Via l'interface (recommandé)
# Menu → "Marquer comme réseau de confiance"
# Manuellement - réseaux système (tous les utilisateurs)
echo "MonWiFi_Bureau" | sudo tee -a /etc/securitor/trusted_networks.conf
# Manuellement - réseaux utilisateur (courant uniquement)
echo "MonWiFi_Bureau" >> ~/.config/securitor/trusted_networks.confPar défaut, Securitor cherche :
- ProtonVPN CLI (
protonvpn) - Connexion NetworkManager nommée "ProtonVPN"
Pour configurer ProtonVPN :
# Installer ProtonVPN CLI
# https://protonvpn.com/support/linux-vpn-setup
# Ou configurer WireGuard via NetworkManager
nmcli connection import type wireguard file protonvpn.conf
nmcli connection modify protonvpn-config connection.id ProtonVPN# Script de test intégré
sudo /usr/lib/securitor/test.shTest 1 : Invisibilité sur LAN
# Depuis une autre machine sur le même réseau :
nmap -sn 192.168.1.0/24
# Votre machine NE DOIT PAS apparaître en Mode VoyageTest 2 : Docker localhost only
# Lancer un container exposé
docker run -d -p 8080:80 nginx
# Depuis autre machine :
curl http://[VOTRE_IP]:8080 # DOIT échouer
# Depuis localhost :
curl http://localhost:8080 # DOIT fonctionnerTest 3 : VPN leak
# Sans VPN
curl ifconfig.me # Noter l'IP
# Avec VPN
curl ifconfig.me # IP doit être différente (serveur VPN)Si l'application crash ou que vous êtes bloqué :
# Commande rapide
sudo securitor-reset# Logs application
journalctl -t securitor -f
# Logs watchdog
journalctl -u securitor-watchdog -f
# Logs système
journalctl -xeL'icône systray n'apparaît pas
# Vérifier que l'app tourne
pgrep securitor
# Relancer
killall securitor
securitor &Firewalld n'est pas actif
sudo systemctl start firewalld
sudo systemctl enable firewalldVPN ne se connecte pas
# Vérifier les connexions disponibles
nmcli connection show
# Tester manuellement
nmcli connection up ProtonVPN- EMERGENCY.md - Procédures d'urgence
- QUICKSTART.md - Guide de démarrage rapide
- Language : Go 1.21+
- GUI : getlantern/systray
- Firewall : firewalld (zones automatiques)
- Network : NetworkManager (D-Bus)
- VPN : ProtonVPN CLI / WireGuard
- Notifications : libnotify
securitor/
├── cmd/securitor/ # Application principale
├── internal/
│ ├── firewall/ # Gestion firewalld + Docker
│ ├── network/ # Détection WiFi (D-Bus)
│ ├── vpn/ # Monitoring VPN
│ ├── ui/ # Systray + notifications
│ └── state/ # Gestion état global
├── scripts/ # Scripts Bash privilégiés
├── systemd/ # Services systemd
└── polkit/ # Actions PolicyKit
Les contributions sont les bienvenues !
- Fork le projet
- Créer une branche (
git checkout -b feature/AmazingFeature) - Commit (
git commit -m 'Add some AmazingFeature') - Push (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
MIT License - voir LICENSE
- getlantern/systray - Systray library
- godbus/dbus - D-Bus bindings
- Communauté firewalld
- ProtonVPN
- Issues : https://github.com/Root-SKB/Securitor/issues
- Documentation : https://github.com/Root-SKB/Securitor/wiki
Développé avec ❤️ pour les développeurs nomades