Der NordVPN Router Manager ist ein Tool das ich in Kooperation mit dem VPN Provider NordVPN erstellt habe.
Es handelt sich um ein kleines Windows Werkzeug das es erlaubt VPN Verbindungen auf einem Router fernzusteuern, Informationen zu VPN Servern aus verschiedenen API’s auszulesen und aggregiert in einem Browser zu managen. Das Tool ist zwar mit 9000 Zeilen Code recht klein, die technische Komplexität aber hoch. Das gesamte Projekt, von der Planung, Durchführung/Coden, Wartung inkl. Front- und Backend wurde von mir alleine gestemmt.
Der Router Manager wurde in C# mit .NET 4.7.2 auf WPF Basis in Microsoft Visual Studio nach eingehendem Requirements Engineering konstruiert. Er orientiert sich im Kern an einem Singleton Pattern; also einer einmalig instanziierten Klasse die applikationsweit angesprochen wird um bspw. Konfigurations- oder Nutzerdaten zu verwalten. Zum managen der Subversionierungen nutze ich TortoiseSVN. Für das Deployment den bekannten NuGet Standard.
Die App basiert auf Clean Code und hat einen guten Wartungswert. Mit einer gepackten Größe von ca. 9MB kann sie kostenlos von einer WordPress basierten Website heruntergeladen werden. Diese Seite wird über ein komfortables Backend verwaltet, zeigt bspw. Besucher und Downloadzahlen an. Ein Auto-Update des Router Manager findet beim Nutzer im Hintergrund statt sobald eine neue Version auf dem dedizierten FTP Ordner verfügbar ist.
Selbstverständlich inkludiert sind ein Installer, Uninstaller, Tray Icon und eine vollständige Setup Routine für den offenen Router Standard OpenWRT sowie Edgerouter & Unifi Security Gateways von Ubiquiti. Nutzer- und Anwendungsdaten werden serialisiert und auch teilweise mit einem Rjindael Algorithmus verschlüsselt gespeichert. Bei Problemen im Verbindungsaufbau analysiert das Tool die OpenVPN Logfiles auf dem Router und gibt Rückmeldung an den Nutzer.
Entsprechend kommuniziert wird mit dem jeweiligen Router über SSH und SFTP. Intern findet hier ein navigieren innerhalb einer Ubuntu/Debian Umgebung statt. Eingebaut sind zudem Logging, Connection Monitoring, Koordinatenauswertung nach UTM sowie eine robuste Fehlerbehandlung mitsamt Fallback Routinen. Unit-, Integrations- und Systemtests wurden konsequent durchgeführt.
Sie können sich das finale Projekt gerne unter www.router-manager.com anschauen und auch herunterladen.