Ankündigung

Einklappen
Keine Ankündigung bisher.

Aus dem Internet Werte auf den Bus senden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [WireGate-Plugin] Aus dem Internet Werte auf den Bus senden

    Hallo --

    Da oben steht Wiregate-Plugin, aber eigentlich hätte ich da gerne Shell stehen.

    Die Android-Telefone hier haben Tasker installiert - mit dieser Software kann man automatisiert Aktionen auslösen, z.B. anhand einer aufgebauten Bluetooth-Verbindung oder einer GPS Position.

    Die möglichen Aktionen sind vielfältig, so kann man auch HTTP-Requests absetzen. Mir schwebt nun vor, automatisiert GA's auf den Bus zu senden, um von aussen Aktionen vorzunehmen - das kann ganz banal ein Icon am Telefon zum Garagentoröffnen sein, oder aber auch eventuell Aktionen je nach Position. Die Heizung kann ja schon mal hochfahren, wenn ich unterwegs nach Hause bin.

    Ich habe einen (Linux-)Webserver, der über eibd mit dem Bus reden kann. Mein erster Ansatz wäre, eine URL aufzurufen, die ein groupswrite auslöst. Um die Sache einigermassen sicher zu halten, natürlich über HTTPS, und natürlich keinerlei lesbare URL's, sondern 'random strings' à la 'https://home.lu/do?vjrei9nu890z6ue890bhugoijh6548', das dann vom Server in ein 'groupswrite "ip:wiregate" "0/2/4" 1' gemappt wird.

    Hat da schon mal wer was gemacht, das ich anpassen könnte? Oder sollte ich das aus Gründen ganz anders machen? Ideen?

    Sonst setz' ich mich die Tage mal dran und kuck, was das wird.

    Ach ja - für komplexere Aktionen und Stati benutze ich die Visu. Aber für diese Basics ist es nervig, jedesmal durch die Visu zu navigieren...

    #2
    Einfach den Webserver mit eibread/write-cgi ins Internet durchschalten ?
    Das ist einfach und genauso sicher (=Null) wie direkt KNXnet/IP.
    So kann jeder (leider nicht nur du selbst) alles machen, wunderbar!

    Sorry für den Sarkasmus, aber ohne VPN oder andere, fundierte Sicherheits-Maßnahmen ist das purer Harakiri !
    Und da bleibe ich bei, auch wenn ich damit keine Freunde gewinne.
    Ich weiss das es "hipp" ist mit Tasker und so, aber das ist wie die Haustüre gleich offen zu lassen, weils halt viel bequemer ist, einzutreten - dummerweise für alle
    Denkt bitte, bitte ab und zu auch mal an security, nicht nur der Entwickler von Tasker sondern Google und jeder der sowas hacked, hat Vollzugriff darauf (selbst wenn er URL/Port nicht kennt..)

    Makki
    EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
    -> Bitte KEINE PNs!

    Kommentar


      #3
      makki, ich bin überzeugt, dass Du in Sachen IT-Sicherheit ein Crack bist - aber Du stellst es schon etwas anders da, wie mein Ansatz wäre (ich hab's natürlich auch nicht im Detail ausgeführt).

      Folgendes wäre der Prozess, den ich im Hinterkopf habe:

      • Tasker/werauchimmer sendet ein request an den Webserver mit einem 20-stelligen Random String

      • Der Server antwortet mit 200 ok und legt ein File in /var/tmp mit dem Random String als Filenamen

      • Ein Shell-Script hört auf /tmp und vergleicht neu angelegte Files mit einer Befehlsliste. Wenn der Filename in der Liste existiert, führt es den darauf gemappten Befehl aus (halt ein groupswrite auf eine bestimmte GA mit einem Wert). Danach löscht es das File


      Als Risiken sehe ich:

      • Mithören - wenn die Kommunikation per HTTP geht, kann man die validen URL's mitschneiden. Deswegen per HTTPS. Bei self-signed certs muss man die natürlich auf dem Telefon haben.

      • Der Webserver kann angegriffen werden - da kann man, ausser dass man bekannt stabile Software nutzt und sie aktuell hält, nicht viel machen.

      • Ein Angreifer kann Strings ausprobieren - wenn er immer die gleiche Antwort vom Server bekommt und keine Ahnung hat, was passiert, ist das aber kein Spass. Ausserdem kann man in mit fail2ban von Zeit zu Zeit abkühlen lassen.

      • Der Random String, der als File in /tmp angelegt wird, darf keinen Schaden anrichten. /tmp ist mit noexec gemountet, der Filename sollte sanitized sein, ehe das File angelegt wird.


      Natürlich - wenn ein Telefon geklaut wird, und der Dieb die zugehörige PIN errät, ist's Essig. Wenn jemand auf dem Server auf eine Shell kommt, auch. Dann ist mein Problem allerdings nicht, dass jemand von aussen die Heizung einschalten könnte

      Wo siehst Du bei einem Setup wie diesem spezifische Angriffspunkte, wo ich mir Sorgen machen müsste?

      Kommentar


        #4
        Eine eingehende Verbindung zulassen - das gefällt mir auch nicht. Meine Lösung zum Einschalten eines Rechners war über einen externen Webserver und minütliches Abholen der Infos (wenn Dir das reicht und der Traffic nicht nervt).

        Hier eine kurze Skizze des Aufbaus, falls es Dich interessiert:
        Du hast irgendwo eine Webseite https://meine-webseite.de, rufst von Tasker etc. per HTTPS (kann das auch eine simple authentication vom apache?) einen URL auf, der ein PHP-Skript ist, das diese temporäre Datei auf dem Webserver ablegt (oder in eine DB schreibt, oder was auch immer): https://meine-webseite.de/befehle.pl?heizung=an

        Von innen rufst Du jede Minute https://meine-webseite.de/befehlswarteschlange.pl auf, die Dir immer den aktuellen Befehl übergibt und diesen dann aus der Warteschlange löscht. Dabei ist es wichtig, dort nur Schlüsselwörter abzulegen, auf die Du prüfst, keinen Code, den Du ausführst!
        Und dann halt "if ($befehl =~ /heizung_an/) {groupswrite XYZ;}"

        Das ist umständlich und nicht ganz so schnell, aber
        1) Du legst fest, welche Befehle überhaupt von außen ausgeführt werden dürfen.
        2) Du öffnest kein Einfallstor in Dein Heimnetzwerk. Es wird immer von innen nach außen zugegriffen.

        Kommentar


          #5
          Anstatt dem Websever mit Befehlswarteschlange könnte er aber auch direkt Mails an ein definiertes Postfach schicken und regelmäßig überprüfen. Wäre unterm Strich doch das gleiche, nur dass er sich den zusätzlichen webserver spart.

          Kommentar


            #6
            Korrekt. Ich hatte den Webserver sowieso schon und kenne mich mit dieser Technik gut aus. Mails automatisiert abarbeiten hat mich bislang immer genervt, aber wenn die in einem definierten Format kommen, sollte das genauso gut gehen.
            (P.S.: Das ist jetzt alles ohne WG-Kenntnisse! Keine Ahnung, ob einem die Maschine da noch Einschränkungen macht. Das Abrufen der Warteschlange per http wird sie ja wohl können. Ob Mailverarbeitung geht, weiß ich nicht.)

            Kommentar


              #7
              Das Konzept, dass die Befehlsentgegennahme und die Ausführung getrennt sind, habt Ihr alle beide umgesetzt - mach ich ja auch. Der Unterschied ist halt, ob man von aussen rein darf.

              Meiner Meinung nach ist ein Webserver, der uptodate und sauber konfiguriert ist, ein begrenztes Risiko - vor allem, wenn man ihn mit fail2ban absichert. Ich hab' ja auch einen Port für SIP und einen für SSH offen - das sind theoretisch auch Einfallstore.

              Kommentar

              Lädt...
              X