2026-06-01 22:30:40 +02:00
2026-06-01 22:30:40 +02:00

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

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é

  1. Lancer python main.py --admin
  2. Onglet WireGuard : renseigner l'adresse et le port du serveur, la clé publique du serveur
  3. Onglet Clés : générer une paire de clés client → copier la clé publique sur le serveur
  4. Onglet MFA : activer le MFA, générer un secret, scanner le QR Code avec Aegis/Google Authenticator
  5. Onglet Sécurité : définir un mot de passe pour l'accès admin
  6. Enregistrer → quitter → lancer python main.py en 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

S
Description
No description provided
Readme
148 MiB
2026-09-08 18:03:06 +00:00
Languages
Python 92.5%
Makefile 5.1%
Inno Setup 2.4%