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<\/strong> und aggregiert in einem Browser zu managen. Das Tool ist zwar mit 9000 Zeilen Code<\/strong> recht klein, die technische Komplexit\u00e4t aber hoch. Das gesamte Projekt, von der Planun<\/strong>g, Durchf\u00fchrung\/Coden, Wartung inkl. Front- und Backend<\/strong>\u00a0wurde von mir alleine gestemmt.<\/p>\n
Der Router Manager wurde in C# mit .NET 4.7.2<\/strong> auf WPF<\/strong> Basis in Microsoft Visual Studio<\/strong> nach eingehendem Requirements Engineering<\/strong> konstruiert. Er orientiert sich im Kern an einem Singleton Pattern; <\/strong>also einer einmalig instanziierten Klasse die applikationsweit angesprochen wird um bspw. Konfigurations- oder Nutzerdaten zu verwalten. Zum managen der Subversionierungen nutze ich Tortoise<\/strong>SVN<\/strong>. F\u00fcr das Deployment den bekannten NuGet<\/strong> Standard.<\/p>\n
<\/p>\n
<\/p>\n
Die App basiert auf Clean Code<\/em> und hat einen guten Wartungswert<\/strong>. Mit einer gepackten Gr\u00f6\u00dfe von ca. 9MB kann sie kostenlos von einer WordPress<\/strong> basierten Website heruntergeladen werden. Diese Seite wird \u00fcber ein komfortables Backend verwaltet, zeigt bspw. Besucher und Downloadzahlen an. Ein Auto-Update<\/strong> des Router Manager findet beim Nutzer im Hintergrund statt sobald eine neue Version auf dem dedizierten FTP Ordner verf\u00fcgbar ist.<\/p>\n
Selbstverst\u00e4ndlich inkludiert sind ein Installer, Uninstaller, Tray Icon<\/strong> und eine vollst\u00e4ndige Setup Routine<\/strong> f\u00fcr den offenen Router Standard OpenWRT<\/strong> sowie Edgerouter & Unifi Security Gateways von Ubiquiti<\/strong>. Nutzer- und Anwendungsdaten werden serialisiert und auch teilweise mit einem Rjindael Algorithmus<\/strong> verschl\u00fcsselt gespeichert. Bei Problemen im Verbindungsaufbau analysiert das Tool die OpenVPN <\/strong>Logfiles auf dem Router und gibt R\u00fcckmeldung an den Nutzer.<\/p>\n
<\/p>\n
Entsprechend kommuniziert wird mit dem jeweiligen Router \u00fcber SSH und SFTP<\/strong>. Intern findet hier ein navigieren innerhalb einer Ubuntu\/Debian<\/strong> Umgebung statt. Eingebaut sind zudem Logging, Connection Monitoring<\/strong>,\u00a0 Koordinatenauswertung nach UTM<\/strong> sowie eine robuste Fehlerbehandlung mitsamt Fallback Routinen<\/strong>. Unit-, Integrations- und Systemtests<\/strong> wurden konsequent durchgef\u00fchrt.<\/p>\n