fix
This commit is contained in:
@@ -1,43 +1,51 @@
|
|||||||
# WGSecure (WGS)
|
# 🛡️ WGSecure (WGS)
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
**WGSecure** est une interface graphique multiplateforme (Windows & Linux) pour gérer une connexion WireGuard avec une surcouche MFA (authentification à deux facteurs TOTP).
|
**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és
|
||||||
|
|
||||||
| Fonctionnalité | Détail |
|
| # | Fonctionnalité | Détail |
|
||||||
|---|---|
|
|---|---|---|
|
||||||
| **Interface systray** | Icône dans la barre de notification, connexion en un clic |
|
| 🖥️ | **Interface systray** | Icône bouclier dans la barre de notification, connexion en un clic |
|
||||||
| **Mode User** (défaut) | Connexion / déconnexion WireGuard, statut en temps réel |
|
| 👤 | **Mode User** (défaut) | Connexion / déconnexion WireGuard, statut RX/TX en temps réel |
|
||||||
| **Mode Admin** | Configuration complète (mot de passe protégé) |
|
| ⚙️ | **Mode Admin** | Configuration complète, protégé par mot de passe |
|
||||||
| **Génération de clés** | Paire clé privée / publique Curve25519 (format WireGuard) |
|
| 🔑 | **Génération de clés** | Paire Curve25519 native (sans dépendance au binaire `wg`) |
|
||||||
| **Configuration WireGuard** | Serveur, port UDP, DNS, IP client, keepalive |
|
| 🛡️ | **Configuration WireGuard** | Serveur, port UDP, DNS, IP client, keepalive |
|
||||||
| **MFA TOTP** | Surcouche d'authentification compatible Google Authenticator / Aegis |
|
| 🔐 | **MFA TOTP** | Compatible Google Authenticator / Aegis + QR Code |
|
||||||
| **Test de connexion** | Vérification UDP du serveur avant connexion |
|
| 📡 | **Test de connexion** | Vérification UDP du serveur avant établissement du tunnel |
|
||||||
| **Cross-platform** | Windows 10+ et Linux (wg-quick) |
|
| 🪟🐧 | **Cross-platform** | Windows 10+ et Linux (wg-quick) |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Prérequis
|
## 📋 Prérequis
|
||||||
|
|
||||||
### Linux
|
### 🐧 Linux
|
||||||
```bash
|
```bash
|
||||||
sudo apt install wireguard-tools # Debian/Ubuntu
|
sudo apt install wireguard-tools # Debian/Ubuntu
|
||||||
sudo dnf install wireguard-tools # Fedora
|
sudo dnf install wireguard-tools # Fedora
|
||||||
```
|
```
|
||||||
|
|
||||||
### Windows
|
### 🪟 Windows
|
||||||
- [WireGuard for Windows](https://www.wireguard.com/install/) installé
|
- [WireGuard for Windows](https://www.wireguard.com/install/) installé
|
||||||
|
|
||||||
### Python
|
### 🐍 Python
|
||||||
```
|
```
|
||||||
Python >= 3.11
|
Python >= 3.11
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Installation
|
## 📦 Installation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone <repo>
|
git clone <repo>
|
||||||
@@ -47,14 +55,14 @@ pip install -r requirements.txt
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Utilisation
|
## 🚀 Utilisation
|
||||||
|
|
||||||
### Mode User (par défaut)
|
### Mode User (par défaut)
|
||||||
```bash
|
```bash
|
||||||
python main.py
|
python main.py
|
||||||
```
|
```
|
||||||
|
|
||||||
### Mode Administrateur (configuration)
|
### ⚙️ Mode Administrateur (configuration)
|
||||||
```bash
|
```bash
|
||||||
python main.py --admin
|
python main.py --admin
|
||||||
```
|
```
|
||||||
@@ -66,53 +74,65 @@ python main.py --no-tray
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Workflow recommandé
|
## 🗺️ Workflow recommandé
|
||||||
|
|
||||||
1. Lancer `python main.py --admin`
|
1. 🚀 Lancer `python main.py --admin`
|
||||||
2. Onglet **WireGuard** : renseigner l'adresse et le port du serveur, la clé publique du serveur
|
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 client → copier la clé publique sur le 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 avec Aegis/Google Authenticator
|
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
|
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
|
6. ✅ **Enregistrer** → quitter → lancer `python main.py` en mode user
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Architecture
|
## 🏗️ Architecture
|
||||||
|
|
||||||
```
|
```
|
||||||
WGSecure/
|
WGSecure/
|
||||||
├── main.py # Point d'entrée
|
├── main.py # 🚀 Point d'entrée
|
||||||
├── requirements.txt
|
├── requirements.txt
|
||||||
├── app/
|
├── app/
|
||||||
│ ├── __init__.py # Version
|
│ ├── __init__.py # Version
|
||||||
│ ├── core/
|
│ ├── core/
|
||||||
│ │ ├── config.py # Configuration JSON persistante
|
│ │ ├── config.py # 💾 Configuration JSON persistante
|
||||||
│ │ ├── wireguard.py # Clés, tunnel, statut
|
│ │ ├── wireguard.py # 🛡️ Clés, tunnel, statut
|
||||||
│ │ └── mfa.py # TOTP / QR Code
|
│ │ └── mfa.py # 🔐 TOTP / QR Code
|
||||||
│ ├── ui/
|
│ ├── ui/
|
||||||
│ │ ├── icons.py # Icônes générées par QPainter
|
│ │ ├── icons.py # 🎨 Icônes bouclier générées par QPainter
|
||||||
│ │ ├── main_window.py # Fenêtre principale (mode user)
|
│ │ ├── main_window.py # 👤 Fenêtre principale (mode user)
|
||||||
│ │ ├── admin_window.py # Panneau admin (5 onglets)
|
│ │ ├── admin_window.py # ⚙️ Panneau admin (6 onglets, thème sombre)
|
||||||
│ │ ├── mfa_dialog.py # Dialog de vérification MFA
|
│ │ ├── mfa_dialog.py # 🔐 Dialog de vérification MFA
|
||||||
│ │ └── systray.py # Icône systray + menu contextuel
|
│ │ └── systray.py # 🖥️ Icône systray + menu contextuel
|
||||||
│ └── utils/
|
│ └── utils/
|
||||||
│ └── platform_utils.py # Détection OS, élévation de privilèges
|
│ └── platform_utils.py # 🔧 Détection OS, élévation de privilèges
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Sécurité
|
## 🔒 Sécurité
|
||||||
|
|
||||||
- Le mot de passe administrateur est stocké sous forme de hash SHA-256 salé (salt aléatoire 16 octets)
|
| Élément | Protection |
|
||||||
- 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
|
| 🔑 Mot de passe admin | Hash SHA-256 + salt aléatoire 16 octets |
|
||||||
- Le fichier de config WireGuard généré est protégé avec les permissions `0600`
|
| 🗝️ 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.
|
> ⚠️ **Recommandation** : chiffrez votre disque pour protéger le fichier de configuration.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Auteur
|
## 🖼️ Interface
|
||||||
|
|
||||||
Développé par **Johnny** — JT-Tools
|
| Fenêtre principale | Panneau Admin |
|
||||||
Version : **0.1.0** — Juin 2026
|
|---|---|
|
||||||
|
| 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](https://github.com/JT-Tools)
|
||||||
|
Version :  — Juin 2026
|
||||||
|
|||||||
Reference in New Issue
Block a user