Suche Vorschläge für API, proxy oder oder Lösung

  • Moin,


    ich bin auf der Suche nach Ideen / Vorschlägen um folgendes umzusetzen.


    Zu Hause steht ein RaspberryPi für die Home-Automation (iobroker), dessen API möchte ich gerne von extern ansprechen.

    Da ich viel Wert auf Sicherheit lege, habe ich das bisweilen immer über eine VPN Verbindung gemacht, was auch nicht das Problem war solange ich meine Befehle per Hand abgesetzt habe und vorher die VPN Verbindung erneuert habe.


    Nun teste ich gerade eine weitere Verbesserung der Automatisierung.

    Auf dem Handy läuft eine Geofencing - App die entsprechend beim Betreten bzw. Verlassen der Zone die API ansprechen soll.


    Leider leider .... ist es bei Android so das die VPN Verbindung nicht dauerhaft steht und dementsprechend jedes mal neu aufgebaut werden müsste..... :thumbdown:


    Stand jetzt :

    https://DynDns.Domain:WillkürlicherPort/get/...... -> Firewall -> https://iobroker:apiport/get/......

    Zugriffe beschränkt auf nur DE IP Blöcke (GeoIP) in der Firewall.

    API Zugriffe mit Authentifizierung


    Wunsch :

    Die App auf dem Handy spricht ein System auf einem Server / Webhosting an.

    Dieses leitet eigentlich nur weiter an DynDNS.Domain:WillhürlicherPort

    Idealerweise muss auch an dem "System" auf dem Server eine Authenfizierung erfolgen.

    So könnte ich meine Firewallregel, wie auch schon bei diversen anderen Dingen, entsprechend umsetzen, das nur Zugriffe von einer IP erlaubt sind.


    Da ich kein Entwickler bin und die gängigen "APIs" einfach zu mächtig (....Elefanten und Mücken...) sind, habe ich die Leise Hoffnung das hier noch jemand eine gute Idee hat :)


    Vielen Dank im Voraus.

  • Eine Lösung wäre (da ist die Frage ob du einen Root Server hast/willst):

    VPN Lösung auf dem Root, ReverseProxy per Auth und Weiterleitung zum RasPi.

    Ich hatte auch mal Tinc als VPN Lösung gesehen, kam aber noch nicht dazu, diese auszuprobieren.

  • Moin,

    an Wille und (bereits vorhandenen) Servern scheitert es definitiv nicht :)


    Aber, bei VPN ist eben das oben erwähnte Problem das die eingesetzten Handys (alle auf Android Basis) leider die VPN Verbindung nicht konstant aufrecht erhalten.

    Wäre das nicht der Fall, also der VPN Tunnel wäre stabil, dann würde sich mein "Problem" erübrigen.


    Der VPN Dienst läuft mehr als stabil auf einer Terra Securepoint V11 Firewall RC100 mit geflashtem IPfire.

    Das Problem sind diese super tollen Energiesparmaßnahmen bei Android - Handys die gerne einfach mal "ungenutzte" Dienste beenden.


    Trotzdem vielen Dank für deine Bemühungen!

  • Was kann dein Handy denn auslösen? Einen einfachen GET-HTTP Request? POST-Requests? Angabe eines Auth-Headers? Custom Header?

    Zielt auf die Authentifizierung ab. Bei nem einfachen GET-Request ohne Auth-Header bleiben da außer "kryptischen" URLs nicht viel.


    nc-Server <-> Raspberry könnte man ggf. (wenn das ne HTTP-API ist) über WSSE (ist extra für M2M) authentifizieren.

  • Was für ein VPN verwendet Du denn? Ich höre das zum ersten Mal, dass das unter Android nicht stabil aufgebaut bleibt. Ich kenne aber auch nicht jede VPN-Lösung, die es am Markt gibt.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Ob das am VPN geht hängt auch vom verwendeten Server ab. Bei OpenVPN müsstest du z.B. die float und remote Option nutzen, damit das VPN bei einem Netzwerkwechsel (neue IP) weiter funktioniert


    Zitat

    --float

    Allow remote peer to change its IP address and/or port number, such as due to DHCP (this is the default if --remote is not used).
    --float when specified with --remote allows an OpenVPN session to initially connect to a peer at a known address, however if packets arrive from a new address and pass all authentication tests, the new address will take control of the session. This is useful when you are connecting to a peer which holds a dynamic address such as a dial-in user or DHCP client.



    Wenn du nur einen Port brauchst, kannst du von deinem Server auch einen SSH-Tunnel nach Hause aufbauen. Aber da sehe ich nicht so wirklich den Vorteil darüber, einfach einen Port Zuhause freizugeben ;)

    Oder ich verstehe einfach nicht, was für ein Vorteil das haben soll, wenn man den Server als Zwischenschicht nimmt. Ob der die Befehle weiterleitet, oder man die direkt nach Hause schickt ist ja wumpe. Außer, dass die Komplexität und Fehleranfälligkeit erhöht ist.

  • Also auf einem meiner Server läuft OpenVPN, wenn ich daheim in Cina bin, ist das Handy 24/7 über den Mobilfunk per VPN verbunden. Hatte da noch nie irgendwelche Abbrüche oder timeouts.


    Lediglich beim "militärischen" Netzwerk kommt's zu Problemen, was aber eher weniger am VPN liegt ?

    Meine Produkte: definitiv zu viele, RS, VPS, Domains, Webhosting, ...

  • Moin,


    entschuldigt die "Funkstille"....

    Vielen Dank für die rege Beteiligung, das mal vorab.


    Ich setzte auf OpenVPN und habe, aufgrund eurer Hinweise, die letzten Tage das nochmal 24/7 angelassen.

    Ihr habt recht, es funktioniert.

    Die letzten Tests sind aber auch schon ein paar Jahre her und hatten sich bei mir festgesetzt mit dem Ergebnis : Geht nicht.

    Aber das stimmt tatsächlich nicht (mehr).


    Dadurch hat sich die Ursprungsproblematik erledigt.


    Steini es ging darum das ich nur einen weiteren "Absicherungspunkt" einfügen wollte, wenn auch das mehr Aufwand bedeuten würde.


    Aber wie gesagt, dank der doch stabil laufenden VPN Verbindung ist das jetzt hinfällig.


    Vielen Dank euch allen!