Habe eine TP-Link ER605 Hardware Firewall und würde gerne aus Symcon dynamisch Einstellungen auf dem Gerät verändern. Im Speziellen geht es darum, dass die IPSec-VPN-Verbindung zu meinem Werkstatt-LAN regelmäßig nach Übertragung größerer Datenmengen aufhört zu funktionieren. Durch Deaktivieren und Aktivieren der VPN-Verbindung in der Konfigurationsoberfläche der Firewall kann dem abgeholfen werden.
Leider habe ich große Schwierigkeiten, einen Zugriff auf die Firewall aus Symcon heraus hinzubekommen.
Zunächst wollte ich es per SSH machen, was allerdings daran scheitert dass einerseits die SSH-Funktionalität von PHP einfach nicht mit dem Gerät kommunizieren mag (es kommt sowohl bei meinem eigenen Code als auch wenn ich das SSH Client Modul verwende nur eine Reihe seltsamer nicht schlüssiger Fehlermeldungen:
Match mac success
continue IP type
Match mac success
continue IP type
Match mac success
…egal was man sendet, es kommt offenbar irgendwas bei dem Gerät an was dieses nicht versteht und völlig falsch interpretiert).
Andererseits habe ich auch, soweit ich das überhaupt verstehe, aus dem CLI gar keinen Zugriff auf die Checkbox „Aktiviert“ bei den VPN-Verbindungen sondern kann per Befehl nur entweder Verbindungen hinzufügen oder löschen. Die Herangehensweise per CLI ist ohnehin für jemanden der damit keine Erfahrung hat alles andere als intuitiv.
Telnet gibt es bei der Gerätegeneration nicht mehr. Allenfalls per ssh-Command des Betriebssystems könnte ich es ggf per Skript machen, aber wie gesagt, ich habe keine Ahnung ob ich das zerstörungsfreie kurzzeitige Aus–und wieder Einschalten einer VPN-Verbindug überhaupt per CLI auslösen kann.
Also wollte ich versuchen, mit curl über das Webinterface darauf zuzugreifen, aber auch das Reverse Engieering der HTTP-Schnittstelle fällt mir angesichts Framework-Bloat sehr schwer. Ich bekomme mit den Devtools von Chrome nichtmal heraus, was eigentlich an konkretem Code ausgeführt wird, wenn ich auf einen Button klicke. Früher waren das ja einfach HTML-Formulare, die einen Post-Request erzeugt haben, aber so etwas scheint es heutzutage gar nicht mehr zu geben, stattdessen werden hunderte Javascripts geladen und darin die Stelle zu suchen, an der wirklich etwas entscheidendes wie das Login passiert, erscheint mir mit meinem Erfahrungshorizont aussichtslos.
Hat irgendwer sowas in der Art schonmal gemacht? Gibt es noch andere Ideen? Finde es wirklich frustrierend, wie unnötig kompliziert es wieder mal ist, automatisiert eine Checkbox zu ändern :-/