Sicheres steuern des PIs übers Web

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Vorweg:
    Das ganze was ich hier beschreibe ist erst einmal eine Idee und diese allein umzusetzen ist zu viel Aufwand.
    Außerdem lässt sich die Idee auch auf nicht PIs übertragen, mir kam die nur wegen dem PI.

    Idee:
    Vielen wollen ja immer Systembefehle übers Webabsetzen um irgendetwas zu tun und das über shell_exec oder ähnliches zu machen ist ja eher suboptimal und gemeingefährlich.
    Die Idee besteht darin mittels Python einen Webservice zu bauen der über die Webanwendung angesprochen werden kann.
    Beides soll so modular aufgebaut sein, dass man sich auch selber Erweiterungen schreiben kann um etwas zu tun/auszuführen. Als Beispiel ein Neustart des Systems: Auf dem Webinterface wird über das Modul "neustart" (oder wie auch immer es heißt) der Befehl abgesetzt (Nur ein Button wird gedrückt). Mittels Anfrage an den Webservice wird nun dieser Befehl ausgeführt. Dadurch stelle ich sicher, dass nur der Befehl ausgeführt wird, der ausgeführt werden soll.

    Die Frage ist nun, was haltet ihr davon?

    Einmal editiert, zuletzt von curi0s (15. November 2013 um 12:55)


  • und das über shell_exec oder ähnliches zu machen ist ja eher suboptimal und gemeingefährlich.

    Was ist daran gemeingefährlich ?

    Gemeingefährlich sind Codeschmierer die so was bauen :

    HTML
    <?PHP
    shell_exec($_REQUEST["machwas"]);
    ?>
    <html>
    <body>
    <form .....
    
    
    etc etc...

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Eben genau das ist das Problem. Btw.: Bei einem sinnvoll konfigurierten System hat man gar nicht die Möglichkeit Systembefehle abzusetzen

    Wie auch immer, ich will nicht darüber diskutieren ob gemeingefährlich oder nicht, sondern was ihr davon haltet.

    Einmal editiert, zuletzt von curi0s (15. November 2013 um 14:00)

  • Naja ich denke nicht das deine Idee sonderlich etwas daran ändern wird dass manche Anwender nachlässig damit umgehen - die Befehle wie "reboot" müssen ja weiterhin mit root-Rechten ausgeführt werden, also spielt es eigentlich keine Rolle ob man das nativ oder über so ein python wrapper machen würde

    Ich rate eigentlich jedem das so zu machen wie im Spoiler hier zu sehen -> GPIO Ports Konfigurieren
    (über ein sudowebscript.sh Script)
    Dann können die Befehle, die im PHP WebScript ausgeführt werden nämlich auch einfach xyz lauten, die kennt ein Angreifer nicht und kann somit auch keine injection ausführen

    Trotzdem stosse ich hier immer wieder auf Beiträge wo sowas nicht gemacht wird sondern teilweise sogar so wovor Der_Imperator vor gewarnt hat :(


    Solange der Raspberry tatsächlich nur im LAN ansprechbar ist, iss das ja auch noch OKE - aber viele unwissende vergessen das nach einiger Zeit und im nächsten Moment richten sie dann doch ne Portweiterleitung für den Webserver ein und schwups ist es unsicher...

  • Das ist ja im Prinzip die kleine Lösung. Mir gings darum, gerade für User dies nicht besser wissen, sag ich mal, sowas bereitzustellen. So müssten man sich um die Sicherheit zumindest mal weniger Gedanken machen.

  • Wenn ich ein Device ins Internet hänge MUSS ich mir Gedanken wegen der Sicherheit machen.
    Das fängt damit an den User PI zu disablen oder zumindest das Passwort zu ändern und hört bei der Config des Netfilter auf.

    Das mit dem Sudowebscript von meigrafd ist ein erstklassiger Weg.
    Dort kannst du via verschachtelten Case alles anstellen was du möchtest.
    Ist das was du vor hast nur per BASH realisiert.

    Aber du hast ja gefragt was wir darüber denken : Überflüssig

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?

    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Ich hatte das btw auch schon mal > hier < genauer erklärt und in folgendem Thread gab es dazu auch schon mal eine ähnliche Diskusion: pi mit raspberry-remote und schalten per PHP

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!