2026-06-01 23:24:38 +02:00
2026-06-01 23:24:38 +02:00
2026-06-01 22:31:22 +02:00
2026-06-01 23:22:18 +02:00
2026-06-01 23:22:18 +02:00
2026-06-01 23:22:18 +02:00
2026-06-01 23:22:18 +02:00
2026-06-01 22:31:22 +02:00

🛡️ WGSecure (WGS)

Version Python PyQt6 Linux Windows MFA WireGuard

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

🐍 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, le port et la clé publique du serveur
  3. 🔑 Onglet Clés : générer une paire de clés → copier la clé publique sur le serveur
  4. 🔐 Onglet MFA : activer le MFA, générer un secret, scanner le QR Code
  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 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 JohnnyJT-Tools Version : v0.4.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%