Beveiligde toegang op afstand tot Node-RED in LAN

Victron Energy levert software aan de Node-RED gemeenschap om gebruikers hun off-grid energietoepassingen visueel te kunnen laten programmeren. Veilige toegang op afstand was de volgende stap.

Over het project

Victron Energy is een fabrikant van off-grid stroomvoorziening. Daarbij leveren ze ook hun krachtige 'Venus' apparaten met Venus OS, wat gebruikers in staat stelt hun installaties te monitoren, zowel lokaal als op afstand. Al wordt het niet officieel ondersteund, ze leveren ook een set Node-RED nodes for hun gebruikers. Dit draait lokaal op Venus apparaten en vereist dus lokale toegang. Hoe mooi zou het zijn, gezien deze off-grid installaties soms in onherbergzame gebieden, als dit ook op afstand benaderd kan worden, zonder de noodzaak VPN's of dergelijke oplossingen op te zetten.

Venus OS kan gebruikmaken van SSH tunnels voor de 'remote console' functie, wat een VNC viewer is om de lokale GUI mee te bedienen. Met dat systeem al aanwezig, zagen we een gelegenheid om daar gebruik van te maken om de Node-RED applicatie op afstand te benaderen. Dit moet uiteraard veilig zijn en goed schalen.

C++/Qt zagen we als geschikte kandidaat voor dit project. Het is snel en biedt de juiste handvatten voor bronbeheer van een serverapplicatie. We hebben een applicatie geschreven welke zorgt voor authenticatie, autorisatie en het opzetten van de proxies voor de verbindingen. Vanwege het belang van een goede beveiliging, hebben we een extern beveiligingsbedrijf ingeschakeld voor code audit en penetratietests.

Deze applicatie draait nu op een verzameling van over de wereld verspreide servers om gebruikers overal ter wereld te voorzien van snelle toegang tot hun Node-RED flows.