
Hintergrund
Ich füge einem eingebetteten Gerät Unterstützung für WireGuard VPN hinzu. Der Benutzer kann die AllowedIPs
Konfiguration selbst festlegen. WireGuard verwendet die zulässigen IPs, um Routen auf dem Host festzulegen, sodass ein Benutzer das Gerät isolieren kann (eine Verbindung über TCP unmöglich machen). Ich habe über Möglichkeiten nachgedacht, dies zu verhindern.
Mögliche Lösung
Eine mögliche Lösung besteht darin, IP-Regeln für die Host-Schnittstellen hinzuzufügen, sodass jeglicher Datenverkehr mit der Quell-IP einer Schnittstelle immer über diese Schnittstelle geleitet wird. Wenn wir eine Host-Schnittstelle eth0 mit IP 172.17.0.2 und eine Wireguard-Schnittstelle wg0 mit IP 172.22.0.4 hätten, würde die Konfiguration ungefähr so aussehen:
ip route add default via 172.17.0.1 dev eth0 table 1
ip rule add from 172.17.0.2 table 1
Dies bedeutet, dass vom Gerät ausgehende Verbindungen weiterhin normal weitergeleitet werden sollten, aber wenn sich jemand über TCP (für HTTP oder SSH) mit dem Gerät verbindet, sollten die Antworten zurückgeleitet werden.
Fragen
Oberflächlich betrachtet sieht das nach einer wirklich eleganten Lösung aus, aber ich kann nicht umhin zu glauben, dass das aus gutem Grund nicht die Standardlösung ist. Ich habe nur nicht darüber nachgedacht, was dieser Grund sein könnte. Ist das eine schlechte Idee? Wird dadurch eine potenzielle Schwachstelle für das Gerät geschaffen oder etwas Ähnliches? Gibt es einen besseren Weg, um mein gewünschtes Ziel zu erreichen, nämlich die Geräteisolierung zu vermeiden?