Anfängerfragen, SD-Karten schutz; Rechtevergabe; bischen python

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Community,

    dann möchte ich als neuer hier im Forum gleich mal meinen einstand geben.

    Leider bin ich auf dem Bereich Linux noch nicht so fit (aber ich arbeite dran), daher würde es mich freuen wenn einem auch manche fragen blöd oder viel zu einfach vorkommen vielleicht doch mal zwei hilfreiche worte dazu zu schreiben :D

    Also derzeit habe ich mit 2 Sachen größere Probleme die mir auch Google irgendwie nicht so beantworten konnte das auch ich sie verstehe.

    1. Ist es möglich das System in so weit zu schützen das wenn man die SD-Karte in ein anderes Lesegerät steckt zumindest nicht an die gespeicherten Daten kommt?
    Hintergrund, an dem raspi laufen am tag einige Leute vorbei, auf der SD-Karte sind teilweise Zugangsdaten und Personenbezogene Daten gespeichert, diese gilt es natürlich zu schützen.

    2. wenn ich über den User "pi" ein "/etc/init.d/xxx start" ausführe macht er das wie er es soll, nur leider kann ich den "www-data" nicht dazu bringen. Welche rechte sind da ausschlaggebend?
    Der versuch ist das alle Funktionen über einen Browser gesteuert werden können, ohne das sich jemand direkt an raspi anmelden muss, also Strom dran, warten und los.

    und als letzten aber nicht so wichtigen Punkt (den auch da scheint sich Google nicht so sicher): Kann man ein python Script so schützen das man darin Zugangsdaten verwenden kann? dort werden derzeit Netzwerkverbindungen aufgebaut die auch Zugangsdaten enthalten und nicht in die falschen Hände geraten sollten.

    So, genug Fragen für den Anfang, wer bis hier hin kommt ... schon mal besten Dank fürs lesen, und noch mehr für Antworten :bravo2:

  • Anfängerfragen, SD-Karten schutz; Rechtevergabe; bischen python? Schau mal ob du hier fündig wirst!

  • 2. wenn ich über den User "pi" ein "/etc/init.d/xxx start" ausführe macht er das wie er es soll, nur leider kann ich den "www-data" nicht dazu bringen. Welche rechte sind da ausschlaggebend?
    Der versuch ist das alle Funktionen über einen Browser gesteuert werden können, ohne das sich jemand direkt an raspi anmelden muss, also Strom dran, warten und los.

    Hallo Kain,

    zu deiner 2. Frage habe ich glaube ich eine Antwort:

    Das liegt daran, dass der Benutzer www-data keine sudo-Rechte bekommt. Dies sollte eigentlich auch so blieben, denn jeder Benutzer sollte nur für bestimmt Sachen zuständig sein, sonst könnte es eventuell die eine oder andere Sicherheitslücke geben.

    Falls du dennoch deinem User www-data erlauben willst Scripte als Root auszuführen dann musst du folgendes tun:

    logge dich als pi ein und gebe den Befehl

    Code
    sudo visudo

    ein
    am unteren Ende der Datei kannst du dann folgendes eintragen: (<user> ist dein Benutzer)

    Code
    <user> ALL=(ALL) NOPASSWD: ALL

    Ich hoffe ich konnte dir helfen

    Einmal editiert, zuletzt von xerion21 (18. Juli 2014 um 11:35)

  • besten Danke xerion21, das ging schon mal wunderbar, nun ist an sich alles über den Browser steuerbar, mal sehen ob mir noch wer beim rest helfen kann


  • ...
    und als letzten aber nicht so wichtigen Punkt (den auch da scheint sich Google nicht so sicher): Kann man ein python Script so schützen das man darin Zugangsdaten verwenden kann? dort werden derzeit Netzwerkverbindungen aufgebaut die auch Zugangsdaten enthalten und nicht in die falschen Hände geraten sollten.

    Hallo Kain,

    herzlich Willkommen in unserem Forum.

    Zu der letzten Frage solltest Du mal nach dem Stichwort Rijndal-Verschlüsselung suchen.

    Es basiert darauf, dass das Passwort verschlüsselt im Quellcode vorhanden ist und die Decodierung über eine externe Bibliothek erfolgt.

    Du brauchst lediglich eine ein-eindeutig umkehrbare Codierung inkl. Decodierung zu schreiben. Je komplexer der Algorithmus, der sich dahinter versteckt, um so unwahrscheinlicher ist es, dass das Passwort oder andere Zugangsdaten geknackt werden können - insbesondere dann, wenn der Algorithmus mehrfach durchlaufen wird.

    Für meine Programme benutze ich dazu mehrere Primzahlen als Eintrittspunkte. Dazu wird das zu (de)codierende Zeichen übergeben und das letzte (de)codierte Zeichen. Meine Algorithmen verändern nach einer simplen Formel die Primzahlen, so dass Du beim (De)Codieren des nächsten Zeichens vollkommen andere Bedingungen hast.

    Da die Primzahlen nicht bekannt sind, der Algorithmus nicht bekannt ist und ggf. die Anzahl der Iterationen unbekannt ist, möchte ich den sehen, der da durchsteigt und an im Quellcode hinterlegte verschlüsselte persönliche Daten herankommt.

    Selbst wenn Du das Ganze in einem compilierten Programm umsetzen würdest, sollte das Ganze nicht so trivial zu knacken sein.

    Übrigens: Beim Ausspähen der Zugangsdaten der großen Online-Anbieter kam heraus, dass die Passwörter entweder unverschlüsselt abgelegt oder primitivst-verschlüsselt vorgelegen haben. Wären beide Informationen (Username, Passwort() nach unterschiedlichen Algorithmen verschlüsselt gewesen, wären die "Kundenlisten" wahrscheinmlich für Hacker unbrauchbar gewesen.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Moin,

    zu deinem ersten Punkt, würde mir jenach dem was du tun will entwerder für einzelne Dateinen crypt oder für komplette PArtitionen cryptfs einfallen.
    Kenne mich aber da nicht so aus aber google hilft bestimmt...

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

  • @Anderas, mag sein das ich das jetzt auf anhieb nicht gleich richtig verstehe, aber wenn jemand an das System kommt (zb durch einfaches auslesen der Karte oder das Passwort mit einer boot-cd ändert) dann sollte das doch wieder nachvollziehbar sein, oder? Gibt es vielleicht eine Möglichkeit python anständig zu kompilieren oder so was? Habe ehrlich gesagt wenig lust mich wieder in C rein zu arbeiten und das alles da drin nach zu bilden


    Lunepi, ich hab das mal überflogen, doch bleibt da das Problem das man ein Passwort eingeben muss, das steht mir leider nicht zu Verfügung, ich weis das es in der Microsoft ecke Verschlüsselungen gibt die mit Rechnerdaten arbeitet, also Speicher in ein anderes Gerät und schon ist nix mehr mit lesen. Denn eine Anmeldung oder Bedienung an der Shell wird wenn es mal fertig ist nicht mehr erfolgen, die Programme und Scripte müssen beim Booten starten und auch verfügbar sein.

  • Kain, was du vorhast ist extrem widersprüchlich!
    Du willst die Daten vor Einsicht schützen, machst dann aber ALLES INKLUSIVE *ALLER* DATEN FÜR ALLE EINSICHTIG indem du www-data sudorechte und dann auch noch auf ALLES gibst.

    xerion: Ja dein Tipp funktioniert technisch, ist aber eine Todsünde!

    www-data bekommt niemals zustätzliche Rechte, das ist eine Einladung. Alles über Webinterface steuern ist selten eine gute Idee, aber WAS willst du genau steuern, vielleicht gibt es dafür eine bessere Methode?

    Was den Rest angeht: "Verschlässeltes Dateisystem" ist der Begriff den du suchst.

  • also an sich starte ich mit "/etc/init.d/xxx start" die cam, bzw ein Script für Bewegungserkennung und noch so ein paar Sachen, motioin macht ehrlich gesagt nicht so ganz das was ich will.
    an sich brauch ich nur ne Möglichkeit solche Sachen von dem Browser zu starten oder stoppen kann, auch werden da noch ein paar Funktionen rein kommen wie Dateien verschieben und so, also an sich nicht mal was wildes

    Verschlüsseltes Dateisystem, hab mich da auch schon mal umgesehen, aber irgendwie nicht wirklich was gefunden was mir weiterhilft, hat da vielleicht jemand ohne das es arbeit macht nen link oder so was um mal zu sehen wie man das macht?

    Einmal editiert, zuletzt von Kain (18. Juli 2014 um 13:45)

  • Als erstes verwendet man nicht mehr /etc/init.d/xxx start sondern service xxx start
    Du kannst www-data über die sudoers erlauben nur einen speziellen befehl (oder eine Liste) mit sudo auszuführen.

    Aber du solltest soetwas einfach standartmäßig starten und nicht per Website.
    Per Website kannst du dann die Programme etc starten, nicht die Dienste.

    Für Dateien verschieben brauchst du auch kein sudo.

  • ich dachte die Geschichte den Start auch über die Website zu machen bietet sich an da der pi nie eine direkte Internetverbindung bekommt bzw darüber erreichbar ist. Sollte eine Verbindung über das Internet gebraucht werden, dann wird eine vpn in das Netzwerk bereit gestellt. Mein python Script bezieht einige Daten und Werte auf einer mysql Datenbank, darüber liese sich die Funktion auch stoppen (also Script läuft weiter, Funktion bekommt ein if) aber wenn sich das Script mal aus welchen gründen auch immer beendet, dann hätte man keine Möglichkeit mehr es zu starten. Was mir grade noch einfällt, an ende müsste es auch noch möglich sein ein shutdown aus zu lösen ... aber ich habe grade noch eine andere Idee, kann man ein Script nicht mit den rechten eines anderen Benutzers (bz dem pi) ausführen lassen? und werden dann die Programme die aus dem Script aufgerufen werden auch als "pi" ausgeführt? dann könnte ich das alles über das Script und flags in der Datenbank lösen. Bei der Methode fehlt mir dann nur noch die Verschlüsselung des Dateisystems und eine Kontrolle ob das Script noch läuft

    EDIT: Sorry, ich rede Unsinn, wenn ich bei booten das Script starte, dann ist das dem WWW-data ja völlig egal, also müsste ich es nur schaffen es anständig mit den passenden rechten zu starten bevor sich ein user einloggt, dann sollten sich die meisten Probleme gelöst haben, wenn ich es schaffe zu überwachen das es auch läuft

    EDIT2: Ok, ich war auf dem Holzweg, Danke schon mal an alle für diese Denkanstöße, wie ist nun der stand ... ich werde das alles über Scripte lösen die verschiedene Aktionen starten wenn der passende flag in der DB gesetzt ist, das ist glaube die schönste lösung. Und zwischen Website und Script mach ich nen watchdog, damit sollte ich sicherstellen können das das Script auch läuft. Ein zweites Script wäre vielleicht noch gut, das wenn das Script beendet wird einen fehler speichert und vorsorglich in den reboot geht. Damit sollten fast alle Probleme gelöst sein. Nun an die Verschlüsselung, befürchte das wird nicht so leicht zu lösen :(

    Einmal editiert, zuletzt von Kain (18. Juli 2014 um 15:30)


  • @Anderas, mag sein das ich das jetzt auf anhieb nicht gleich richtig verstehe, aber wenn jemand an das System kommt (zb durch einfaches auslesen der Karte oder das Passwort mit einer boot-cd ändert) dann sollte das doch wieder nachvollziehbar sein, oder? Gibt es vielleicht eine Möglichkeit python anständig zu kompilieren oder so was? Habe ehrlich gesagt wenig lust mich wieder in C rein zu arbeiten und das alles da drin nach zu bilden

    Hallo Kain,

    nö, wenn Du die Zugangsdaten nach der von mir skizzierten Weise in Quellcodes einbaust, hat keiner, der den Quellcode einsieht oder sich die entsprechende Datei "kopiert", eine Möglichkeit, auf Dein System zuzugreifen. Es fehlt die Information "Codiertes Passwort" ==> Passwort.

    Ansonsten schlie'e ich mich Horroreyes an. Wenn Du genau sagen würdest, was Du vorhast, dann könnte wir Dir treffend genaue Lösungen geben.

    Beste Grüsse

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Ok, ich fange mal ganz vorne an ...

    das ganze wird ein kleines Spielzeug zur Objektüberwachung (Lagerhalle, Außengelände, ...) in der zeit wo dort nicht gearbeitet wird.
    Man muss davon ausgehen das die Benutzer nahezu keine Ahnung haben von der Technik (es gibt bestimmt ausnahmen, aber man muss immer vom schlimmsten ausgehen).
    Der/die Raspi werden also nur aufgestellt und mit Strom versorgt, es wird keine Anmeldung am Gerät geben, daher müssen alle Scripte beim Booten mit gestartet werden und überwacht werden das sie noch laufen.
    Für den fall das mal ein Raspi verschwindet (so was ist eingeplant, lässt sich wahrscheinlich nicht vermeiden), darf die SD-Karte nicht lesbar sein, weder Zugangsdaten, noch Einstellungen, noch die Scripte (Das ist die anforderung).
    Am ende wird es so sein das es einen Master Raspi gibt auf den sich eine beliebe Anzahl von Überwachungs Raspi verbindet und ihre Daten übermitteln, für den fall eines ausfall oder Störung des wlan halten sie die Daten selber vor, bis wieder Verbindung besteht.

    Das der große Plan, was davon schon geht ...
    Die gesamte Website (Steuerung habe ich komplett überarbeitet, keine direkten aufrufe mehr, alles über eine Datenbank).
    Überwachungsscripte stehen auch und laufen wenn sie manuell gestartet werden.
    Verbindung unter den einzelnen Geräten kommt wenn der rest geht.

    Was mir nun noch fehlt ...
    Start der Scripte beim Booten (bekomme es irgendwie nur mit der Anmeldung hin, Start sollte aber vorher sein).
    Sicherung der SD-Karte (Verschlüsslung ohne manuell ein Passwort ein zu geben oder es auf einem lesbaren Bereich ab zu legen).


    Später werden sich bestimmt noch kleine Probleme finden, aber die meisten sollte ich damit bedacht haben. Also diese beiden Punkte (und ich sehe das als Microsoft Mensch [gleich mal outen :D ]) nicht als so große Aufgabe wenn man ein wenig Hintergrundwissen hat, das mir leider noch fehlt. Ich hoffe die Absichten sind nun verständlicher, und DANKE schon mal an alle für die Arbeit die sie sich bisher hiermit gemacht haben

    Einmal editiert, zuletzt von Kain (18. Juli 2014 um 19:48)

  • Warum sind auf "Objektüberwachungs-Außenposten-Raspberrys" personenbezogene Daten oder auch nur Zugangsdaten?
    Vermutlich würdest du dir die Sache wesentlich einfacher machen, wenn du nur den Master-Raspberry mit diesen Daten betraust.
    Damit wäre das Problem des "Mitgenommenen Pi's" wesentlich geringer und Verschlüsselung nur noch auf dem Master-Pi nötig (Oder der wird anständig gesichert indem er im verschlossenen (starken) Schrank steht oder sowas.
    Gemanaged werden muss dann auch nur noch der Master-Pi. Alle anderen Pis starten automatisch alles was sie brauchen.
    Die nächste Frage ist dann: Was muss tatsächlich am Pi gemanaged werden und was ist wirklich nur "Adminaufgabe". Die Adminrolle kannst du niemals komplett als Weboberfläche zur Verfügung stellen. Das geht nicht, dann wäre die genauso komplex wie die Konsole (Vermutlich wesentlich komplexer, den die Konsole ist sehr gut strukturiert).
    Damit ist die Weboberfläche wesentlich einfacher geworden und du brauchst nur noch Dinge wie "Aufnahme starten" und "Aufnahme beenden" das sollte auch wunderbar ohne Adminrechte gehen. Dateien herunterladen kann der Webserver automatisch. Dateien vershcieben... warum? Baue anfangs eine sinnvolle Verzeichnisstruktur und lasse dir auf keinen Fall von nichtwissenden diese Struktur durcheinanderbringen...

  • unter personenbezogene Daten fallen da alleiner auch schon die Videos an sich und Zugangsdaten zb für WLAN, Datenbank, etc
    Die Administration über die Website steht nun und läuft sehr gut, auch wird von der Website kein Programm mehr gestartet, und unter Administration ist die der cam und des überwachungsprogramm gemeint, alles andere sollte ja nach der ersteinrichtung nicht mehr nötig sein
    zur Sicherheit, wenn ein pi ohne Master aufgestellt wird, dann arbeitet er automatisch als standalone gerät, das erspart viel arbeit wenn nicht immer alles eingestellt werden muss, somit muss ich alle sichern

    also bleiben bei mir genau diese beiden fragen von oben, den irgendwie startet er mein script nicht richtig beim booten, aber da auf dieses script kein menschlicher zugang besteht, sollte ich es doch an sich auch als root ausführen können, oder? und nach wie vor, wie verhindere ich das jemand die karte auslesen kann wenn er sie in die finger bekommt

    EDIT: Das Problem mit dem Start beim Booten ist gelöst, jetzt fehlt wirklich nur noch die Verschlüsselung, hat da den echt keiner ne kleine Anleitung zur Hand?

    Einmal editiert, zuletzt von Kain (19. Juli 2014 um 22:52)

Jetzt mitmachen!

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