New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sudo Standardverhalten wiederherstellen #188
Comments
Ich hatte das mal drin, weil ich im Hinterkopf hatte, dass der LoxBerry auch mal von extern erreichbar sein könnte (z. B. als VPN-Server). Da wollte ich ein sauberes Sicherheitskonzept. Außerdem war der Grundgedanke, das niemand außerhalb von Plugins am LoxBerry "herumfummelt" :-) Aber generell sollten wir die Beschränkungen wieder aufheben. Viele scheinen doch auch eigene Dinge auf dem LoxBerry installieren zu wollen. Ich schlage folgendes vor:
Meinungen? |
👍 |
zwei Anmerkungen dazu:
ganz neben bei: die lokale Installation zwingt derzeit Plugin lokal zu schreiben und ermöglicht damit eine Trennung bzw. einen gleichen Versionsstand des Basissystems. Erfolgt die Plugin-Installation mit root-Rechten, besitzt jedes Plugin sehr große Freiheiten und die Gefahr von Inkompatibilitäten zwischen den Plugin steigt. |
sudo Standardverhalten habe ich im Image für 0.3.0 wieder hergestellt (loxberry ist jetzt in der Gruppe "sudo"). DDer Rest (siehe oben) ist noch offen. |
Zu 3. lg, Christian |
Meinung:
Möglich, ich finde es aber zu kompliziert.
Finde ich NICHT gut - der Root sollte mit einem generierten PW bleiben. Wem das nicht gefällt, kann das root-PW leicht ändern.
Finde ich NICHT gut - wie schon gesagt ist das auch für die Fehleranalyse praktisch.
Eh schon umgesetzt, und gut, um selbst was installieren zu können.
Das wiederum finde ich NICHT gut. Die Plugin-Installation kann als root laufen, aber jede Plugin-Installation soll das root-Passwort abfragen. Das ist über Port 80 die einzig (bekannte) Sicherheitslücke, dass der loxberry-User sich übers Web seinen root-Zugang per Plugin installieren kann. Die Abfrage dort schließt aus, dass das jemand anderer als der LB-Betreiber macht. |
HIer mal meine "Hintergedanken" zu dem Vorschlag:
|
Du kennst dich bei Linux-Sicherheit besser aus als ich. Im Developertools-Plugin kann ich dann immer noch Sachen hineinnehmen, die für Entwicklungs-LBs praktisch sind, und damit ist das Produktivsystem sicher, und jeder, der das Entwickler-Plugin installiert, macht alles auf eigenes Risiko. |
Je länger ich darüber nachdenke und je mehr ich mich damit beschäftige, komme ich immer mehr zu dem Schluss, dass das Standard-sudo-Verhalten wieder herzustellen eine GANZ schlechte Idee ist... Der Unterschied zwischen LoxBerry und einem "normalen" Rasbian ist, dass auf einem Rasbian der Webserver als User "www-data" läuft. Auf dem LoxBerry läuft er aber als User "loxberry". Mit sudo hat er damit quasi root-Rechte - als Webserver! Ich halte das für eine sehr, sehr schlechte Idee. Es stimmt schon: Alle Standardanleitungen für den Raspi verwenden sudo. Aber: so what? Der LoxBerry ist gemacht, um die Kommandozeile unnötig zu machen. Und wer auf seinem System "herumfummeln" will und noch nicht einmal weiß was sudo ist und wie es benutzt wird - sorry, aber der sollte die Finger davon lassen. Geht man den Weg, wie ihn @christianTF in einem anderen Thread beschrieben hat, über ein sudoers file, so hat man wenigstens die Hürde der Plugininstallation. Und man kann trotzdem Dinge über das Plugin als root ausführen. |
Ich finde auch so einige andere Dinge noch zu gefährlich. Ich selbst habe mir schon mein root PW über eine Plugin Installation zurückgesetzt - und das ging problemlos. Das müssen wir zwingend unterbinden. Zumal alles HTTP und Klartext ist. |
Tja, wenn wir wollen, dass Plugins auch Dinge als root ausführen können sollen, wirst Du das glaube ich nicht verhindern können. Aber für mich gilt: Das System muss möglichst sicher sein. Dem Plugin-Autor muss ich vertrauen. Ein "böses" Plugin kann mein System kompromittieren (schon heute über das Daemonscript, in Zukunft gleich während der Installation). Aber da ist immer noch die Hürde dazwischen, dass ich das Plugin installieren muss. Und da finde ich @christianTF Vorschlag nicht schlecht, die Installation über ein zusätzliches Passwort (nicht root!) abzusichern. Ist unbequem, aber bringt Sicherheit. Eine andere Sache ist es, wenn das System prinzipiell (also ohne die Installationshürde) schon unsicher und offen ist. Da grummelts bei mir. |
Wenn nicht das root-PW, dann vielleicht sowas wie eine PIN. |
Irgendwie bin ich mit mir da noch nicht "im Reinen". Wir haben auch an anderer Stelle gravierende Lücken:
Alle 3 Dateien gehören dem user "loxberry". In allen 3 Dateien kann ich zur Laufzeit Dinge ergänzen und somit ganz einfach neue Befehle/Scripte (die der Pluginentwickler gar nicht implementiert hat) per Root ausführen. Sobald ich es schaffe als user loxberry auf das System zu kommen bin ich damit quasi wieder root. Das gefällt mir alles nicht. Ich muss da noch ein bisschen drüber nachdenken... Ich sehe ein, dass Plugins auch einige Dinge als Root durchführen müssen, aber ich möchte das System nicht derart unsicher machen. |
Vielleicht ist das ein Weg:
|
Ach so, das gleiche wie mit dem sudoers auch mit dem Daemon-Skript: Läuft als root, ist aber nach der Installation vom user loxberry nicht mehr änderbar. |
Hört sich vernünftig an. Kompatibilität: |
Ich baue das erstmal so in die Pluginschnittstelle ein. Um ssh kümmern wir uns später.
|
Ich habe da nochmal drüber nachgedacht: SSH und Zertifikate ist wirklich zu kompliziert, glaube ich. Eine einigermaßen gleichwertige Sicherheit würde man bekommen, wenn man einfach das LoxBerry-Passwort für Terminal und Samba ungleich dem Webzugang macht. Man könnte es z. B. einfach zusammensetzen aus Webpasswort+PIN. Wer will kann es dann ja auf der Console ändern. |
Erledigt mit Pluginschnittstelle V2 und Image 0.3.2 |
Da die meisten Anleitungen für den Pi im Internet mit sudo arbeiten, sollte das sudo-Standardverhalten von Raspbian wiederhergestellt werden.
Die LoxBerry-spezifischen Erweiterungen braucht man, aber nicht LoxBerry-spezifische Einschränkungen.
The text was updated successfully, but these errors were encountered: