ab5ba103fe0696ba58d62d646efc174ffff5f46e
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 dans la barre de notification, connexion en un clic |
| Mode User (défaut) | Connexion / déconnexion WireGuard, statut en temps réel |
| Mode Admin | Configuration complète (mot de passe protégé) |
| Génération de clés | Paire clé privée / publique Curve25519 (format WireGuard) |
| Configuration WireGuard | Serveur, port UDP, DNS, IP client, keepalive |
| MFA TOTP | Surcouche d'authentification compatible Google Authenticator / Aegis |
| Test de connexion | Vérification UDP du serveur avant connexion |
| 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 et le port du serveur, la clé publique du serveur
- Onglet Clés : générer une paire de clés client → copier la clé publique sur le serveur
- Onglet MFA : activer le MFA, générer un secret, scanner le QR Code avec Aegis/Google Authenticator
- 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 générées par QPainter
│ │ ├── main_window.py # Fenêtre principale (mode user)
│ │ ├── admin_window.py # Panneau admin (5 onglets)
│ │ ├── 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é
- Le mot de passe administrateur est stocké sous forme de hash SHA-256 salé (salt aléatoire 16 octets)
- La clé privée WireGuard est stockée localement dans
~/.wgsecure/config.json(Linux) ou%APPDATA%\WGSecure\config.json(Windows) - Le secret MFA TOTP est stocké dans le même fichier de configuration
- Le fichier de config WireGuard généré est protégé avec les permissions
0600
Recommandation : chiffrez votre disque pour protéger le fichier de configuration.
Auteur
Développé par Johnny — JT-Tools
Version : 0.1.0 — Juin 2026
Releases
1
WGSecure 0.13.0
Latest
Languages
Python
92.5%
Makefile
5.1%
Inno Setup
2.4%