SensorAndSwitch WebGUI mit Schaltfunktion und Automation als PHP-Script

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • SensorAndSwitch WebGUI mit Schaltfunktion und Automation als PHP-Script? Schau mal ob du hier fündig wirst!

  • ...ich hatte gerade eine ziemlich lange Nachricht an dich geschrieben, als mir Firefox gecrasht ist.... :wallbash: :@


    Jedenfalls gäbe es in deinem Code, aber auch in der Anleitung noch einiges zu verbessern

    Das wichtigste wären aber die Sicherheitslücken die du künstlich einbaust indem du zB den pi Benutzer zum root machst obwohl das für dein SAS nicht verwendet wird. Ebenso wie dem www-data via sudo volle Rechte zu geben ist auch ein grober Sicherheitsmangel.
    (Forumsuche nach: sudo webscript)

    Auch wiederholst du im Code mehrere Sachen wie z.B. Conf[] Sachen die mehrmals drin stehen oder auch noch mal über 'define' festgelegt werden usw. Oder CSS Sachen die sich ständig wiederholen... Oder Funktionen die nicht in der functions.php stehen usw
    Einige Dateien sind auch doppelt mit identischem Inhalt was ich auch nicht so recht verstehe... Oder die ganzen Scripts in psgbeispiele

    In deiner Anleitung werden auch einige Sachen wiederholt beschrieben, die aber ein paar Schritte zuvor schon beschrieben wurden... Auch verwendest du zu oft 'reboot' oder die in /var/cron/ abgelegten Scripts sind auch etwas seltsam und mangelhaft...

    Auch versteh ich nicht wieso die Installation eines FTP-Servers oder Samba Bestandteil für SAS sein sollte... Oder wieso man mind. einen B+ haben sollte :s Wobei wenn man sich deinen Code ansieht und die ganzen doppelt gesetzten Zeilen sowie conf.php und nochmal config.php und dann noch mal define.php , ist quasi klar das SAS jede Menge RAM verballert....


    ...wie gesagt - die Liste war lang und detaillierter, hab aber kein Nerv das jetzt noch mal zu alles genauer aufzuschreiben. Am wichtigsten wären wirklich die Sicherheitsprobleme in deiner Anleitung und Umsetzung....

  • Schade, so kann ich mit deinen Angaben wenig anfangen und sie zeigen mir auch, dass du das Konzept von psgs nicht verstanden hast.

    Wer sicherheitsfanatisch ist und jeden in sein Heimnetzwerk lässt, kann seine Installation doch problemlos nachbessern. Auch die Scripte sind frei abänderbar. Nur zu. :)

    Außerdem: Einen 39 Euro Pi würde ich niemals für sicherheitsrelevante Dinge verwenden.

    Bedenke dass sas in kurzer Zeit jetzt bis zur Version 4 angewachsen ist und durch diesen Umstand redundante Routinen aufweist, da pseudos und psgs auch früherer Versionen so leichter zu integrieren sind.

    Wie gesagt, schade, dass du dich nicht eingehender damit beschäftigt hast, denn dann würden dir einige deiner Vorschläge auch nicht thematisch sinnvoll erscheinen.

    Ein bisschen vorschnell und übereilt gewertet, wie ich finde. Trotzdem Danke, dass sich überhaupt jemand hier im Forum damit befasst hat. :)

  • Wer sicherheitsfanatisch ist und jeden in sein Heimnetzwerk lässt, kann seine Installation doch problemlos nachbessern. Auch die Scripte sind frei abänderbar. Nur zu. :)

    Naja dein WebInterface impliziert doch von sich aus schon das es für Anfänger gedacht ist, eben für jemanden der es selber nicht umsetzen kann - und so jemand soll wissen was er von deiner Installationsanleitung oder den /var/cron/ Scripts anders machen soll :s

    Außerdem: Einen 39 Euro Pi würde ich niemals für sicherheitsrelevante Dinge verwenden.

    Also entschuldige mal, aber jetzt wirds etwas lächerlich und veranlasst mich das ganze jetzt doch noch mal genauer zu beschreiben.
    Was hat der Preis der Hardware mit der Software zu tun?
    Sicherheitsrelevante Dinge sind auch bei günstigen Produkten wichtig.


    In deiner Schritt für Schritt Installation's Anleitung beschreibst du Sachen die jemand Erfahreneres so niemals machen würde.

    • "Fortsetzen der Installation per PuTTY"

      • Anstatt sudo su root würde es bereits reichen nur sudo su eingeben zu müssen um zum SuperUser (root) zu wechseln.
      • Anschließend passwd root auszuführen ist auch zu viel, der aktuelle Benutzer brauch nur passwd eingeben um sein eigenes Password zu ändern. Nur wenn man das Password eines anderen Benutzers ändern möchte muss man das hier angeben, was nachfolgend für pi dann auch Sinn macht.
      • /etc/passwd zu bearbeiten und den pi Benutzer händisch zum weiteren root machen ist nicht nur leichtsinnig, ein Anfänger könnte da leicht etwas kaputt machen oder gar die gesamte Datei schrotten, sondern ist für die spätere Nutzung von SAS völlig überflüssig! Schließlich wird SAS über den Webserver Benutzer www-data ausgeführt und kriegt später sogar auch eigene sudo Rechte - also wozu dieser Schritt?? pcdau.gif
    • "Update und Upgrade des Betriebssystems"

      • Über rpi-update werden immer unstable Firmware/Kernel's installiert, an denen aktuell entwickelt wird und kann letztlich überhaupt erst Probleme verursachen. Sobald diese Stable werden sind sie auch wie regulär über apt-get verfügbar - mal davon abgesehen dass das nicht wirklich für den Betrieb von SAS erforderlich ist oder sein sollte...
      • dist-upgrade ist nicht notwendig und installiert meist mehr als man eigentlich brauch. Wer sich ein aktuelles Image geflasht hat besitzt bereits die aktuelle distri.
    • "Raspberry Pi Software Configuration Tool"

      • "Advanced Options" -> "Update" ... beschreibst du ein mal ganz am Anfang aber auch noch mal am Ende :s
      • Mehrere de_DE Charsets einzufügen macht nur in den aller wenigsten Fällen Sinn. de_DE.UTF-8 sollte reichen.
    • "Weitere Software auf den RaspberryPI installieren"

      • FTP-Installation ... Wofür brauch SAS einen FTP-Server :s Das verballert doch nur unnötig CPU-Last und RAM, wird aber von SAS nicht verwendet/benötigt :-/

        • Am Anfang beschreibst du "mkdir /home/pi/FTP/" aber im vorletzten Punkt setzt du für den FTP-Benutzer "--home /var/www/" ..Also hat man jetzt ein Verzeichnis erstellt was gar nicht gebraucht wird...
    • "apache2-Installation"

      • /etc/apache2/sites-available/000-default ist die Original Datei, die beim enablen nach /etc/apache2/sites-enabled/ verlinkt wird. Es ist also eigentlich Quatsch im 2.Punkt "sites-enabled/000-default" zu bearbeiten aber weiter unten noch mals "sites-available/default" zu bearbeiten um noch eine Zeile, die aber bereits beschrieben wurde (CustomLog), erneut zu ändern...
      • max_execution_time in der php.ini zu ändern ist ein wie ich finde überflüssiger Schritt, denn das kannst du auch in deinen PHP Scripts entsprechend ändern (ini_set).
      • " cd /var/ " danach " chown www-data www " und " chgrp www-data www " ist wie ich finde auch zu lang... Wieso nicht einfach " chown www-data:www-data /var/www " :s Ist doch viel einfacher und kürzer... Aber mal davon abgesehen wird dies mit der Installation von apache2 bereits automatisch gemacht.
    • "Cron-Dienst-Konfiguration"

      • /var/cron/shstart.sh

        • tmpPfad="${sasPfad}/tmp" Warum nicht /tmp/ verwenden und dafür tmpfs aktivieren :s
        • cronPfad=$(cd $(dirname $0);pwd) Erst "cd" und danach "pwd" ist hier auch Quatsch-mit-Sauce.. Wieso nicht einfach nur cronPfad=$(dirname $0) oder am besten Hardcoden da du ja eh beschreibst die Scripts in /var/cron/ abzulegen :-/
      • /var/cron/sascache.sh

        • ...Hier eigentlich das selbe wie beim shstart.sh , aber zusätzlich auch noch: Wieso erst "cd $sasPfad" und anschließend "php -f $sasPfad/sasag.php" :s Das vorherige "cd" kann man sich sparen.
          Und auch hier eine Frage: Wieso startet sich das Script am Ende selbst? Das versteh ich nicht.. Wofür dann der Eintrag fürs sascache.sh im shstart.sh? Und wieso $cronPfad/$(basename $0) anstatt einfach nur $0 :s
      • /var/cron/sasswitch.sh

        • ... Hier das selbe wie beim /var/cron/sascache.sh ....
    • "SAMBA-Installation und Konfiguration"

      • ... Samba? Wofür wird das für SAS benötigt :s
    • "Befehlsrechte für www-data"

      • Einfach so stumpf dem www-data Benutzer uneingeschränkte sudo Rechte zu geben ist ebenso wie den pi Benutzer zum root zu machen, ein sehr grober Sicherheitsmangel. Die Kombination von beidem macht SAS in dieser Art und Weise zu einer Gefahr!
        Forumsuche nach: sudo webscript
    • "SD-Kartenzugriffe verringern"

      • ...Erst hier beschreibst du das man /var/www/sas/ erzeugen soll...etwas spät wie ich finde. Auch hier wieder das selbe bezüglich "chown" was ich oben bereits erwähnte.
        Man könnte aber auch einfach nur mkdir -p /var/www/sys/tmp eingeben und wenn die Verzeichnisse nicht existieren werden alle inkl. Unterverzeichnisse auf einmal erstellt, und falls schon vorhanden kommt keine Fehlermeldung.
        Mit chown ginge dann auch ein Einzeiler: chown -R www-data:www-data /var/www
      • Den SWAP zu deaktivieren ist eine sehr schlechte Idee. Lies dir dazu bitte aufmerksam >> diesen Beitrag << mal durch. Also deine Begründung ist die SD weniger zu belasten, aber erreichst hiermit gegenteiliges dau2.gif
      • Du benutzt viel zu oft reboot , gerade hier ist kein Reboot nötig! Linux ist kein Windoof - selbst wegen des Netzwerks ist kein Reboot nötig... Ein einfaches mount -a führt die Zeilen in /etc/fstab aus und hängt wie gewünscht dein tmpfs ein...
    • "Watchdog aktivieren"

      • So wie Du den Hardware-Watchdog aktivierst macht das kein Sinn. Wieso darf der Pi Deiner Meinung nach innerhalb einer (1) Minute keine Last haben? Darf der PI Deiner Meinung nach nichts zu tun haben?
        Diese "max-load" Einstellung gibts zwar, macht aber wie gesagt kein Sinn und verfehlt eigentlich den Zweck des SoC-Watchdogs. Der Watchdog macht eigentlich nur Sinn einen Hard-Reset durchzuführen falls sich die Software aufgehangen hat.
    • "SensorAndSwitch-Installation"

      • wwwdata/ Da hast du glaub ich was anderes schreiben wollen/sollen, nämlich /var/www/ :huh:
    • "Zusätzliche Software auf den RaspberryPI installieren"

      • Keins der hier aufgeführten Sachen sind für SAS erforderlich - es findet sich aber nirgends ein Hinweis darauf!

    ... Danach wiederholt sich einiges, lass ich jetzt aber mal weg ... Sollte aber auch erstmal reichen :fies:


    Bedenke dass sas in kurzer Zeit jetzt bis zur Version 4 angewachsen ist und durch diesen Umstand redundante Routinen aufweist, da pseudos und psgs auch früherer Versionen so leichter zu integrieren sind.

    "redundante Routinen" ? Die Einstellungen wie sie in conf.php drin stehen noch mals in define.php stehen zu haben betrachtest du als redundant ?

    Und was ist mit sasupdate.php ? Wieso stehen die Zeilen 36 bis 39 noch mal genauso in Zeile 53 bis 56 :s Entschuldige aber das hat imho nichts mit " redundant " zu tun.... In dem eigentlich SAS Code hatte ich dazu auch noch einige Zeilen gefunden die sich widerholten, hab aber jetzt keine Lust mehr das noch mal raus zu suchen..

    Was glaubst du ist der Unterschied zwischen dem setzen einer Variablen und define ?

  • Siest du, damit lässt sich doch jetzt etwas anfangen. :)

    Es wäre dumm, deine Kritikpunkte nicht Schritt für Schritt durchzugehen und ggf. Scripte oder Beschreibung zu verbessern oder zu korrigieren.

    Das mit dem 39 Euro-Pi war selbstverständlich etwas provokativ von mir geschrieben. Natürlich ist der Preis der Hardware egal. Es besagt nur, dass das Gerät mehr zum Experimentieren und "Spielen" (nicht falsch verstehen) konzipiert ist und ich es auch in diesem Sinne nutze.

    Den rpi-update musste ich bei meinem PI2B noch einem PI B+ ausführen, dass die SD-Karte überhaupt auf dem PI2B lief. Daher wundert es mich, warum dies auch geraten wurde.

    Mit dist-upgrade ist es natürlich nicht nötig. Es gibt hier nur die Möglichkeit.

    Die User, die sas am laufen haben, wollten unbedingt samba und ftp, um Daten in den Webbereich transferieren zu können. Am liebsten noch mit Windows. Daher die "Verbiegungen".

    Bei der apache2-Installation hast du recht, da ist was in der Beschreibung durcheinander geraten.

    max_execution_time wird in der php.ini gesetzt, weil psg-Scripte vom Benutzer bei zu langem Arbeiten sonst unverhofft abgebrochen werden, wenn der Benutzer es nicht in seinem psg verhindert.

    tmp statt sastmp klappt intern im Scriptpaket nicht. Auch hier greifen psgs zu.

    php -f $sasPfad/sasag.php setzt nicht den aktuellen Pfad und dieser muss das sas-Hauptverzeichnis sein.

    Zum sudo von www-data sehe ich auch /var/sudowebscript.sh nicht als sinnvolle Alternative. Es handelt sich hier um eine nicht definierbare Anzahl an beliebigen Befehlen aus den psgs.

    Das Kapitel swap und watchdog ist sehr interessante Lektüre. swap schrieb mir anfangs zu viel unnötig auf die SD-Karte, daher zunächst die Stilllegung. Mit Watchdog habe ich keine Erfahrung. Eigentlich sollte er nur verhindern, dass wenn der Pi sich einmal aufhängt, dass er selbständig neu startet.

    Alles was unterhalb der SAS-Installation kommt ist nice to have, aber nicht notwendig. Das werde ich noch einmal explizit vermerken.

    Und

    Zitat

    "sasupdate.php ? Wieso stehen die Zeilen 36 bis 39 noch mal genauso in Zeile 53 bis 56"

    - Ja das macht Sinn, denn dazwischen wird eine Konfiguration geladen und deren Werte können für diese Variablen veraltet sein oder sollen auf neue Ziele weisen. Das passt und muss so sein. Glaube es mir. ;)

    Zitat

    "Was glaubst du ist der Unterschied zwischen dem setzen einer Variablen und define ?"

    Keine Sorge, den Unterschied kenne ich. Alte psg und includes verwenden noch definierte Konstanten, neue verwenden die global gemachten Variablen. Macht also auch Sinn um beides zu bedienen.

    Vielen Dank erst einmal für die detailierten Hinweise. Ich werde sie auf jeden Fall durcharbeiten. :thumbs1:

  • Root enablen, www-data sudo all, pi als root

    Mir rollen sich die Zehnägel auf.......

    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.

  • Der_Imperator: Irgendwie nett, wenn der eine nachplappert, was der andere vorplappert und noch weniger weiß, warum so und nicht anders. Und meigrafd gleich mit "finde ich gut".

    meigrafd: Ich habe mir deine Posts/PNs aufmerksam durchgelesen und auch die Links.
    Irgendwo bleibt bei mir nur Kopfschütteln übrig.
    sudo su root anzumeckern obwohl es nicht falsch ist noch etwas anderes als sudo su bewirkt finde ich irgendwo besserwisserisch. Viele Wege führen zum Ziel.

    Dass du nicht weißt, was die Scripte im Verzeichnis psgbeispiele sollen, zeigt mir überdeutlich, dass du das Konzept dahinter überhaupt nicht verstanden hast. Nachfragen, warum dies so oder anders gelöst wurde, wäre sicher sinnvoller gewesen, als dein Gemecker mit dem ständigen Sicherheitsrisikowink. Rate doch davon ab. Es ist ja wirklich niemand gezwungen, es zu installieren. Es sollte als Anregung dienen. Zum Ausprobieren etc.

    Dein Verweis auf Watchdog... naja... Mit dem Script will ich mir nicht gleich die HDMI-Einstellungen mit verstellen und richtig so reagieren wie es soll, tuts auch nicht.

    Ich frage mich nur, wie man nach Überfliegen der Seiten, ohne es auszuprobieren, gleich ein nur aus Kritik bestehendes Urteil hier posten kann. Dies war schon eine nette Begrüßung hier nach vorher 4 Monaten ignorierens, denn so lange ist es schon hier im Forum.

    Du als "alteingesessenes" Forenmitglied solltest dir ernsthaft Gedanken darüber machen, warum ich meinen Account hier jetzt löschen lassen werde.

Jetzt mitmachen!

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