5.6 KiB
5.6 KiB
Changelog — WGSecure (WGS)
Toutes les modifications notables de ce projet sont documentées ici.
Format basé sur Keep a Changelog.
Ce projet suit le Versionnage Sémantique.
[0.4.1] — 2026-08-31
Corrigé
- Plus d'accès internet après déconnexion du VPN :
wg-quick downrefusait de s'exécuter quand l'interface avait disparu sans passage par lui (crash, arrêt brutal, veille) et ne retirait donc jamais l'entrée DNS posée parwg-quick up— la résolution de noms restait pointée vers un serveur devenu injoignable. Nettoyage DNS désormais garanti à la connexion, la déconnexion, la fermeture de l'application et au démarrage suivant. - Détection de connexion fiabilisée :
wg showretourne un code de succès même en cas de refus de permission pour un utilisateur non administrateur — l'application se croyait déconnectée en permanence et ne démontait donc jamais le tunnel à la fermeture. Détection réécrite sans nécessiter de privilèges. - Interface figée pendant la connexion/déconnexion : les commandes réseau (souvent accompagnées d'une demande de mot de passe) tournaient sur le thread graphique et gelaient la fenêtre. Déportées en tâche de fond.
- Dialogues d'authentification répétés à chaque connexion : la détection « sudo demande un mot de passe » ne fonctionnait pas en session non anglophone ni pour les comptes disposant de tous les droits sudo, et l'écriture de la configuration WireGuard n'était couverte par aucune règle sudo autorisée. Chaîne de privilèges revue de bout en bout.
- Restauration garantie de l'état réseau à la fermeture de l'application, sous Linux comme sous Windows (fermeture normale, icône système, signal d'arrêt, plantage).
Ajouté
- Diagnostic des droits d'exécution (
make check-privilegeset bouton dans le panneau Admin) pour identifier précisément quelle commande déclenche un dialogue d'authentification. - Avertissement lorsqu'un tunnel WireGuard tourne en dehors de WGSecure (autre nom d'interface), cause fréquente de coupure DNS non détectée jusqu'ici.
[0.2.0] — 2026-06-01
Ajouté
- Onglet "À propos" dans le panneau admin : logo bouclier, version, branding JT-Tools by Johnny
- Icône bouclier vectorielle générée par QPainter (7 résolutions : 16→256 px)
- Vert connecté / Rouge déconnecté / Orange connexion en cours / Bleu app / Violet admin
- Icône barre des tâches : installation automatique de
~/.local/share/icons/wgsecure.pnget~/.local/share/applications/wgsecure.desktopau premier démarrage - Thème sombre uniforme sur les 6 onglets du panneau admin (CSS partagé
_TAB_CSS)- Fond
#1c2833, texte blanc, champs semi-transparents - Bandeau coloré par onglet (bleu/navy/teal/bleu/rouge)
- TabBar cohérente avec onglet actif mis en évidence
- Fond
- Makefile : compilation binaire Linux (
make linux) et Windows (make windowsvia Wine) - README enrichi avec badges shields.io (version, Python, PyQt6, plateformes) et emojis
Corrigé
- Bug MDP vide :
set_admin_password("")effaçait incorrectement — hashait la chaîne vide, forçant une demande de mot de passe vide après suppression - Menu systray incomplet :
QActionen variables locales GC'd par Python avant affichage → toutes les actions passent désormaisselfcomme parent Qt - Section infos invisible :
QWidgetsansautoFillBackgroundne peignait pas son fond ; remplacé parQFrameavecsetAutoFillBackground(True)et couleurs explicites - Bouton agrandir persistant :
setWindowFlagseul ignoré par Mutter/XWayland →setWindowFlags()complet sansWindowMaximizeButtonHint
Amélioré
- Fenêtre principale agrandie 380×460 → 400×520 pour afficher les 6 lignes d'infos
- Police des labels infos : 11 → 12 px, couleurs explicites
#2c3e50 - Panneau admin : largeur 620 → 700 px pour éviter le débordement des onglets
app.setWindowIcon()posé surQApplication(multi-tailles) +setDesktopFileName()- Page About : icône 96 → 86 px (−10 %), texte en blanc sur fond sombre
#1c2833
[0.1.0] — 2026-06-01
Ajouté
- Interface graphique PyQt6 avec icône systray (Linux & Windows)
- Mode User (défaut) : connexion / déconnexion WireGuard en un clic, statut en temps réel
- Mode Admin (
--adminou via le menu) protégé par mot de passe - Panneau Admin avec 5 onglets :
- WireGuard : configuration serveur (adresse, port UDP, clé publique, DNS, IP client)
- Clés : génération de paires Curve25519 (clé privée / publique), aperçu config exportable
- MFA : génération de secret TOTP, QR Code compatible Google Authenticator / Aegis
- Test connexion : vérification UDP du serveur avant tunnel
- Sécurité : gestion du mot de passe administrateur (SHA-256 + salt)
- Surcouche MFA : dialogue TOTP avec minuterie de validité (fenêtre glissante ±1)
- Génération de clés WireGuard via
cryptography(X25519, sanswgbinaire) - Écriture automatique du fichier
.confWireGuard avec permissions0600 - Connexion via
wg-quick(Linux) ouwireguard /installtunnel(Windows) - Statut temps réel : trafic RX/TX, dernier handshake
- Réduction dans le systray à la fermeture de la fenêtre principale
- Configuration persistante JSON (
~/.wgsecure/config.json)
Versions planifiées :
0.3.0— Import/export de profils WireGuard (.conf), support multi-profils0.4.0— MFA par clé matérielle (FIDO2/YubiKey)0.5.0— Paquet installable (Windows .exe / Linux .deb)