d23d0c15be109caafb118a0bdb4886df8d6ec27f
🛡️ WGSecure (WGS)
WGSecure est une interface graphique multiplateforme (Windows & Linux) pour gérer une connexion WireGuard avec une surcouche MFA (authentification à deux facteurs TOTP).
✨ Fonctionnalités
| # | Fonctionnalité | Détail |
|---|---|---|
| 🖥️ | Interface systray | Icône bouclier dans la barre de notification, connexion en un clic |
| 👤 | Mode User (défaut) | Connexion / déconnexion WireGuard, statut RX/TX en temps réel |
| ⚙️ | Mode Admin | Configuration complète, protégé par mot de passe |
| 🔑 | Génération de clés | Paire Curve25519 native (sans dépendance au binaire wg) |
| 🛡️ | Configuration WireGuard | Serveur, port UDP, DNS, IP client, keepalive |
| 🔐 | MFA TOTP | Compatible Google Authenticator / Aegis + QR Code |
| 📡 | Test de connexion | Vérification UDP du serveur avant établissement du tunnel |
| 🪟🐧 | Cross-platform | Windows 10+ et Linux (wg-quick) |
📋 Prérequis
🐧 Linux
sudo apt install wireguard-tools # Debian/Ubuntu
sudo dnf install wireguard-tools # Fedora
🪟 Windows
- WireGuard for Windows installé
🐍 Python
Python >= 3.11
📦 Installation
git clone <repo>
cd WGSecure
pip install -r requirements.txt
🚀 Utilisation
Mode User (par défaut)
python main.py
⚙️ Mode Administrateur (configuration)
python main.py --admin
Sans systray
python main.py --no-tray
🗺️ Workflow recommandé
- 🚀 Lancer
python main.py --admin - 🛡️ Onglet WireGuard : renseigner l'adresse, le port et la clé publique du serveur
- 🔑 Onglet Clés : générer une paire de clés → copier la clé publique sur le serveur
- 🔐 Onglet MFA : activer le MFA, générer un secret, scanner le QR Code
- 🔒 Onglet Sécurité : définir un mot de passe pour l'accès admin
- ✅ Enregistrer → quitter → lancer
python main.pyen mode user
🏗️ Architecture
WGSecure/
├── main.py # 🚀 Point d'entrée
├── requirements.txt
├── app/
│ ├── __init__.py # Version
│ ├── core/
│ │ ├── config.py # 💾 Configuration JSON persistante
│ │ ├── wireguard.py # 🛡️ Clés, tunnel, statut
│ │ └── mfa.py # 🔐 TOTP / QR Code
│ ├── ui/
│ │ ├── icons.py # 🎨 Icônes bouclier générées par QPainter
│ │ ├── main_window.py # 👤 Fenêtre principale (mode user)
│ │ ├── admin_window.py # ⚙️ Panneau admin (6 onglets, thème sombre)
│ │ ├── mfa_dialog.py # 🔐 Dialog de vérification MFA
│ │ └── systray.py # 🖥️ Icône systray + menu contextuel
│ └── utils/
│ └── platform_utils.py # 🔧 Détection OS, élévation de privilèges
🔒 Sécurité
| Élément | Protection |
|---|---|
| 🔑 Mot de passe admin | Hash SHA-256 + salt aléatoire 16 octets |
| 🗝️ Clé privée WireGuard | ~/.wgsecure/config.json (Linux) / %APPDATA%\WGSecure\ (Windows) |
| 🔐 Secret MFA TOTP | Stocké dans le fichier de configuration local |
📄 Fichier .conf WireGuard |
Permissions 0600 (lecture propriétaire uniquement) |
⚠️ Recommandation : chiffrez votre disque pour protéger le fichier de configuration.
🖼️ Interface
| Fenêtre principale | Panneau Admin |
|---|---|
| Statut connexion en temps réel | 6 onglets thème sombre |
| Bouton connexion / déconnexion | WireGuard · Clés · MFA · Test · Sécurité · À propos |
| Icône systray bouclier colorée | Bandeau coloré par onglet |
👤 Auteur
Développé par Johnny — JT-Tools
Version : — Juin 2026
Releases
1
WGSecure 0.13.0
Latest
Languages
Python
92.5%
Makefile
5.1%
Inno Setup
2.4%