Sicherheit: Wie schützt man Dateien in Linux gegen Fremdzugriff/physischen Diebstahl?

  • Hallo zusammen,

    nachdem BitTorrent Sync jetzt meine Dateien zwischen zwei Standorten synchron hält, würde ich mich gerne einem essentiellen Problem widmen. Ich weiß, dass das sehr hypothetisch ist, aber ich möchte mich einfach damit beschäftigen:

    Was passiert, wenn jemand einbricht und meinen Pi klaut?

    Erstmal würde ich sagen, dass nichts passiert - aus folgenden Gründen:
    - Auf den Pi kommt man im Netzwerk nur mit Account und Passwort, der im Pi in Samba halt eingetragen ist.
    - Wenn man die SD-Karte rausnimmt und in 'nen Linux-PC reinsteckt, kommt man auch nicht an die Daten, weil das Dateisystem(?) die Daten immer noch vor unbefugtem Zugriff mit user/password schützt.
    - Die WebGUI von BTSync hab ich mit einem 'sicheren' Passwort geschützt, das 12 Zeichen hat, Groß-/Kleinschreibung, Zahlen, Sonderzeichen. Wenn ich die 'Sicherheitsanalysen' für Passwörter richtige deute, dauert es etwa ein Jahr, bis das mit schnellen und vielen PCs durchgerechnet ist.

    Probleme, die ich grade so sehe:
    - Im Moment habe ich da aber noch Pi / raspberry als User/Passwort für die Freigabe. Ich nehme an, ich kann einfach so einen neuen User erstellen, ihn in Samba eintragen und dann ist das gelöst. Best Practise für das Anlegen eines Netzwerk-Users kenne ich leider nicht. Könnt ihr mir da kurz einen Tipp geben, wie man das mit den Rechten richtig macht?
    - Wie einfach ist es, die SD-Karte in einen PC einzulegen und die Daten doch auszulesen, obwohl das Dateisystem(?) sie absichert?
    - Gibt es zufällig, fällt mir grade ein, eine Möglichkeit, die Daten 'remote' zu löschen? Ich vermute ja nicht, da das Feature bei Android/iOS auch ziemlich lange gebraucht hat. Aber vielleicht wäre es nicht schlecht, wenn ich eine Nachricht bekommen würde, wenn der Pi sich neu mit dem Internet verbindet? Dann wüsste ich, ob der Pi geklaut wurde und dann wieder am Internet hängt, sodass man in BTSync z.B. die Daten remote löschen könnte.

    Ich hab keine Industriegeheimnisse gespeichert oder so, deshalb würde ich die Daten mal nicht unbedingt verschlüsseln, u.a. weil ich Angst hätte, dass ich im Worst Case selbst nicht mehr dran komme. Darum würde ich auch gerne nochmal ein extra Backup machen, aber ich denke, das wird nochmal ein extra Thread. Erstmal möchte ich gerne wissen, was ihr zu meinen Sicherheitsbedenken sagt :danke_ATDE:

  • Sicherheit: Wie schützt man Dateien in Linux gegen Fremdzugriff/physischen Diebstahl?? Schau mal ob du hier fündig wirst!

  • Deine Daten sind nicht verschlüsselt, aber wenn jemand deine SD-Karte in ein anderen Rechner steckt, dann kommt trotzdem eine Abfrage von User/Passwort? Wie geht das? Versteh ich das grad falsch oder ist das irgendein Feature von BSync? Normalerweise hat man leichten Zugang zu den Daten, sobald physikalischer Zugriff möglich ist, in dem man - wie gesagt - die SD-Karte einfach von einem anderen Rechner ausliest, außer diese ist verschlüsselt.

    Zudem würde ich dir empfehlen, das Passwort von Pi zu ändern und einen neuen User anzulegen. Root und Pi würde ich vom SSH-Zugang ausschließen und nur deinen selbst erstellten User erlauben, sich per SSH zu verbinden. Genauso für Samba.

    Sobald aber physikalischer Zugriff möglich ist, hilft nur noch eine Verschlüsselung von deinen Dateien.

  • Hallo Tronn,

    meiner Meinung nach ist das Dateisystem keine Möglichkeit, Dateien abzusichern. Du kannst - vorausgesetzt, die passenden gängigen Programme sind installiert - unter Windiows die RPi-SD-Karte genauso auslesen, als wenn Du es unter einem Linux-Betriebssystem machen würdest.

    Wenn Du einen Datenträger aus der Hardware löst, unter der dieser Datenträger normalerweise softwaregestützt passwort-geschützt etc. läuft, dann ist dieser Schutz weg, wenn auf diesen Datenträger in einer anderen Hardware lesend zugegriffen wird.

    Passwortschutz sehe ich generell kritisch, wenn Systeme beteiligt sind, die außerhalb Deiner 4 Wände stehen. Denn auf deren Nutzung hast Du keinen Einfluss - denn ein externer Betreiber irgendwelcher Dienste hat immer Zugriff auf Deine Zugangsdaten und kann diese ändern, Zugänge ändern, einschränken sperren.

    Und dass es soooolange dauert, Passworte herauszufinden, wie in der Öfentlichkeit vorgegaukelt wird, bezweifle ich auch.

    Ich hatte mal einen Kunden betreut und musste dessen innerbetriebliche Schulungen durchlaufen. Eine davon ging um das Thema IT-Sicherheit, Passwortschutz und meine Aufgabe bestand darin, das Passwort einer Person zu knacken. Die einzige Information, die ich hatte, war ein Photo des Arbeitsplatzes. Nach 7 Sekunden - dem ersten Versuch - war ich drin.

    :s Ich habe nie verstanden, warum ich für diesen Kunden unmittelbar danach keine einzige sicherheitstechnische Aufgabe mehr habe wahrnehmen dürfen.


    Sicherlich ist ein Passwortschutz besser als keiner - aber zu glauben, dass dies einen Zugang von außen verhindert oder großartig verzögert, ist sehr blauäugig.


    Wenn Du auf dem Raspberry Pi irgendwelche schützenswerten Daten gespeichert haben solltest, dann solltest Du diese Praktik überdenken, denn wie Du es sagst, das ist keine Best Practise.


    Zur Verschlüsselung von Daten schreibe ich nichts mehr, da hier im Forum das Verständnis bzgl. Kryptographie zu weit auseinandergeht.

    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.

    Einmal editiert, zuletzt von Andreas (24. Mai 2015 um 14:13)


  • ... die Daten doch auszulesen, obwohl das Dateisystem(?) sie absichert?

    Wie hast Du die Daten, mit dem Dateisystem abgesichert?


    Aber vielleicht wäre es nicht schlecht, wenn ich eine Nachricht bekommen würde, wenn der Pi sich neu mit dem Internet verbindet? Dann wüsste ich, ob der Pi geklaut wurde und dann wieder am Internet hängt, ...

    Das geht z. B. mit @reboot in der crontab oder aus dem Verzeichnis if-up.d und:

    Code
    dig +short myip.opendns.com @208.67.222.222 | mail -s "IP and reboot at: `date`" email-Adresse


    (oder gleichwertig).
    Ich denke nicht, dass der Dieb den geklauten PI, ohne Änderungen (an dessen Konfiguration) mit dem Internet verbinden wird.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Erstmal würde ich sagen, dass nichts passiert - aus folgenden Gründen:
    - Wenn man die SD-Karte rausnimmt und in 'nen Linux-PC reinsteckt, kommt man auch nicht an die Daten, weil das Dateisystem(?) die Daten immer noch vor unbefugtem Zugriff mit user/password schützt.

    Sobald jemand physischen Zugriff zu Speichermedien hat, helfen gesetzte Dateisystemrechte überhaupt nicht mehr - die einzige Ausnahme ist, wenn die Daten verschlüsselt auf der SD-Karte liegen. Alle anderen "Sicherheitseinstellungen" sind dann absolut irrelevant, weil sie nur die Zugriffe zu ebenjenen Diensten einschränken. Ob Samba dann ein starkes Passwort gesetzt hat, ist dem Dieb, der direkt übers Dateisystem wuselt, dann völlig egal.

    SD-Karte in Linux-PC rein, mit Benutzer "root" (vom Linux-PC) auf die Daten zugreifen, voila: Vollen Datenzugriff.

    Zitat

    - Gibt es zufällig, fällt mir grade ein, eine Möglichkeit, die Daten 'remote' zu löschen?

    Auch das hilft bei einem physischem Klau nichts; bevor das System (egal mit welchen Methoden) merkt, dass es gestohlen wurde, läuft es schon nichtmehr. Selbes Spiel wie oben: SD-Karte in Linux-PC rein...

    Sorry, aber wenn du deinen Raspi nicht in einen tonnenschweren Safe (ver)stecken willst, kommst du um eine (ggf. Teil-)Verschlüsselung nicht herum... Außerdem darfst du die Entschlüsselungsdatei bzw. das Passwort zum Entschlüsseln nicht gespeichert haben, sonst ists wieder Essig mit dem Schutz (was nützt die Verschlüsselung, wenn der einzige unverschlüsselte Abschnitt der SD-Karte das Passwort enthält?). Das kann z.B. so aussehen, dass du zum Entschlüsseln der Dateien zwingend einen USB-Stick mit 'nem Keyfile brauchst, und den USB-Stick immer mitnimmst. Oder, dass du bei jedem Reboot ein Passwort händisch über eine angeschlossene Tastatur eingeben musst...

    Mit dem Pi ist das nicht so einfach mit einem Fingerzeig durchzusetzen, weil der Bootloader zwingend unverschlüsselt auf der SD-Karte liegen muss...

    Einmal editiert, zuletzt von Astorek86 (24. Mai 2015 um 15:29)

  • Oh, so viele Antworten. Das ist ja lieb von euch :)

    Zitat von patlux

    Deine Daten sind nicht verschlüsselt, aber wenn jemand deine SD-Karte in ein anderen Rechner steckt, dann kommt trotzdem eine Abfrage von User/Passwort?

    Zitat von Andreas

    Wenn Du einen Datenträger aus der Hardware löst, unter der dieser Datenträger normalerweise softwaregestützt passwort-geschützt etc. läuft, dann ist dieser Schutz weg, wenn auf diesen Datenträger in einer anderen Hardware lesend zugegriffen wird.


    Ach so, hm, ich dachte, wenn die Dateien von user Pi angelegt wurden, dann darf auch nur der die Daten lesen. Ich hab's jetzt nicht heute explizit ausprobiert, aber ich erinnere mich, dass ich Daten von der SD nicht so einfach lesen konnte - vielleicht irre ich mich aber auch und es ich konnte sie nur nicht schreiben. Dann wäre das aber nur eine Frage der richtigen Benutzerrechte (also other -rwx).

    Zitat von patlux

    Zudem würde ich dir empfehlen, dass Passwort von Pi zu ändern und einen neuen User anzulegen. Root und Pi würde ich vom SSH-Zugang ausschließen und nur deinen selbst erstellten User erlauben, sich per SSH zu verbinden. Genauso für Samba.

    Das klingt prima und das würde ich gerne machen. Ich kenne mich leider mit dem Erstellen und dem korrekten Verteilen von Benutzerrechten noch überhaupt nicht aus. Hast du mir vielleicht ein gutes Tutorial, in dem das erklärt wird?

    Zitat von Andreas

    Passwortschutz sehe ich generell kritisch, wenn Systeme beteiligt sind, die außerhalb Deiner 4 Wände stehen. Denn auf deren Nutzung hast Du keinen Einfluss - denn ein externer Betreiber irgendwelcher Dienste hat immer Zugriff auf Deine Zugangsdaten und kann diese ändern, Zugänge ändern, einschränken sperren.

    Na ja, ich hätte den Pi halt z.B. in meine Arbeit gestellt. Ich kann darauf vertrauen, dass da keiner was Krummes versucht ;)

    Zitat von Andreas

    Zur Verschlüsselung von Daten schreibe ich nichts mehr, da hier im Forum das Verständnis bzgl. Kryptographie zu weit auseinandergeht.

    Na ja, hab schon bisschen Ahnung von Krypto, aber ich fürchte, das in der Praxis anzuwenden würde, wie gesagt, nur dazu führen, dass ich meine Daten selbst vor mir geheimhalte ;)

    Zitat von rpi444

    Ich denke nicht, dass der Dieb den geklauten PI, ohne Änderungen (an dessen Konfiguration) mit dem Internet verbinden wird.

    Ich gehe nicht vom intelligentesten Dieb aus, sondern von einem, der erstmal keine Ahnung hat :lol: Danke für den Reboot-E-Mail-Tipp. Muss mir wohl doch mal anschauen, wie man Mails so verschickt.

    *** ***
    *** ***

    Das klingt ja alles ziemlich ... hm ... entmutigend. Habt ihr noch eine andere Idee, was man tun könnte? Gibt es fertige Verschlüsselungstools, die zumindest auf einfacher Basis funktionieren? Wenn der Dieb mehr als 48 Stunden rumrechnet, kann er meinetwegen die Daten haben, wenn er so scharf drauf ist :P

  • Was willst du denn verschlüsseln? Das komplette System, oder nur deine "BitTorrent Sync"-Dateien?

    Ersteres würde bedeutet das bei jedem Systemstart erst der richtige Passphrase eingegeben werden muss bevor das System weiter bootet.
    Zweiteres wäre ziemlich einfach indem man nur einen Container anzulegen braucht, der dann gemountet wird.

    Aber in jedem Fall sollte - wie Astorek86 schon erwähnt hat - der Key nicht auf dem PI gespeichert werden, auch nicht auf einem USB-Stick der im PI steckt oder daneben liegt, oder der als solcher beschriftet im Regal liegt.... :D

  • Das klingt ja alles ziemlich ... hm ... entmutigend. Habt ihr noch eine andere Idee, was man tun könnte? Gibt es fertige Verschlüsselungstools, die zumindest auf einfacher Basis funktionieren? Wenn der Dieb mehr als 48 Stunden rumrechnet, kann er meinetwegen die Daten haben, wenn er so scharf drauf ist :P

    Nabend Tronn,

    wenn du die BTSync Inhalte extern (also z.B. außerhalb deines Einflussbereiches abspeichern möchtest, geht dies mit BTSync von selbst. So hast du bei dir die Daten unverschlüsselt liegen und auf dem anderem BTSync-Client sind die Daten verschlüsselt.

    Zitat

    EncFS is definitely the simplest software if you want to try disk encryption on Linux.

    Quelle: ArchWiki

    Für eine transparente Verschlüsselung empfehle ich dir encfs. ( Google ) [2] [3][3,de] [4]

    Das Funktioniert wie folgt: Du hast einen Ordner, wo die Daten verschlüsselt gespeichert werden (z.B. encrypted) und einen Ornder, wo die Daten nicht verschlüsselt zugänglich sind (z.B. decrypted). Alle Dateien die du in decrypted speicherst, werden automatisch im Verzeichnis encrypted gespeichert (dabei existiert die Datei nur im encrypted Verzeichnes)

    Super easy, einfach mal reinlesen. Bei Fragen einfach fragen :)

    Einmal editiert, zuletzt von GrafKoks (24. Mai 2015 um 19:42)

  • EncFS mag einfach einzurichten sein und wenn es erst mal installiert ist keine root Rechte benötigen - allerdings ist es auch nicht so sicher wie andere Verschlüsselungsarten und die Datei-Namen und/oder Datei-Größen sowie wann diese Erstellt wurden usw sind dadurch weiterhin durch den 'encrypted' Ordner erkennbar.

    Also der 'decrypted' Ordner ist im Prinzip nur eine Verknüpfung zum 'encrypted' Ordner. Die Dateien die man in 'decrypted' ablegt werden Inhalts-Verschlüsselt in 'encrypted' abgelegt. Nachdem man den 'decrypted' Ordner aushängt ist dieser leer, aber im 'encrypted' Ordner sieht man noch jede Menge Dateien, dessen Inhalt zwar verschlüsselt ist (und sofern man das eingestellt hat auch der Dateiname Obfuscated wurde), aber size und mtime sind weiterhin ersichtlich, was auch bedeutet das man eben wirklich Sieht dass da gewisse Dateien oder eben sogar Verzeichnisse sind.

    Auch ist EncFS nicht so mächtig wie Beispielsweise dm-crypt, denn EncFS unterstützt zB nur 128, 192 und 256 bit Passwörter sowie nur AES und Blowfish. Zum einbinden kann man also nur eine Eingabe machen, es wird aber keine Key-Datei unterstützt.
    Auch hat man keinen Einfluss darauf mit welcher Verschlüsselung die Konfigurationsdatei .encfs6.xml gesichert wird, die in dem 'encrypted' Ordner liegt.


    Also das hat schon einige Nachteile - wenn dann würde ich schon dm-crypt bevorzugen. Aber wie gesagt, ob er nur einen Container/Ordner verschlüsseln möchte oder das ganze Dateisystem bzw evtl. sogar das komplette System - dazu hat er sich bisher nicht geäußert.

  • Zitat von meigrafd

    Was willst du denn verschlüsseln? Das komplette System, oder nur deine "BitTorrent Sync"-Dateien?

    Ersteres würde bedeutet das bei jedem Systemstart erst der richtige Passphrase eingegeben werden muss bevor das System weiter bootet.
    Zweiteres wäre ziemlich einfach indem man nur einen Container anzulegen braucht, der dann gemountet wird.

    Die BTSync-Dateien würden mir reichen. Was mit dem restlichen System passiert, ist eigentlich egal :) Was ist denn dieser Container?

    Zitat von GrafKoks

    Für eine transparente Verschlüsselung empfehle ich dir encfs.

    Das Funktioniert wie folgt: Du hast einen Ordner, wo die Daten verschlüsselt gespeichert werden (z.B. encrypted) und einen Ornder, wo die Daten nicht verschlüsselt zugänglich sind (z.B. decrypted). Alle Dateien die du in decrypted speicherst, werden automatisch im Verzeichnis encrypted gespeichert (dabei existiert die Datei nur im encrypted Verzeichnes)

    Das klingt ja ganz gut! Wie bekommt man die verschlüsselten Daten bei Verlust denn wieder zurück? - aber ... eigentlich sollte ich mich ja reinlesen. Ein Glück dass heute Feiertag ist :D

    Zitat von meigrafd

    im 'encrypted' Ordner sieht man noch jede Menge Dateien, dessen Inhalt zwar verschlüsselt ist, aber size und mtime sind weiterhin ersichtlich, was auch bedeutet das man eben wirklich Sieht dass da gewisse Dateien oder eben sogar Verzeichnisse sind.

    Das klingt jetzt weniger gut. Zuerst hatte ich daran nicht gedacht, aber tendenziell wäre das natürlich hübsch, wenn die Dateinamen auch unkenntlich wären!

    Zitat von meigrafd

    Also das hat schon einige Nachteile - wenn dann würde ich schon dm-crypt bevorzugen. Aber wie gesagt, ob er nur einen Container/Ordner verschlüsseln möchte oder das ganze Dateisystem bzw evtl. sogar das komplette System - dazu hat er sich bisher nicht geäußert.

    Ich kann mir ja encFS und dm-crypt anschauen. Wie gesagt, würde ich nicht unbedingt das ganze Dateisystem verschlüsseln wollen. Das klingt mir zu aufwändig. Ich will nur einfache Angreifer abschrecken und nicht die Hardcore-Jungs ;)

    Vielen Dank nochmal für eure Antworten. Keep it up! :bravo2:

  • Das klingt jetzt weniger gut. Zuerst hatte ich daran nicht gedacht, aber tendenziell wäre das natürlich hübsch, wenn die Dateinamen auch unkenntlich wären!

    Ja das kann man einstellen bzw ist die Voreinstellung wenn man die "paranoid" Option wählt.

    Aber trotzdem sieht man dann noch das da gewisse Dateien liegen und welche Größe diese haben. Wenn man stattdessen einen dm-crypt Container verwendet und dieser umounted wird, sieht man nichts mehr nur noch den Container - so wie man es zB von Truecrypt kennt.

    Also in jedem Fall erstellt man einen Ordner worauf gemountet wird.
    Mountet man einen Container /mnt/usb/container auf den leeren Ordner /mnt/crypt sieht man darin dann alle Dateien/Verzeichnisse. Hängt man den Container dann aber wieder aus (umount) ist der Ordner /mnt/crypt wieder leer und man kann nicht auf den Inhalt des Containers gucken, sieht also auch nicht das da eine Datei mit einer Größe von 1GB drin liegt - was aber bei EncFS der Fall wäre.

    Desweiteren musst du dir im klaren sein dass eine Datei-Verschlüsselung nur etwas bringt wenn der Rechner aus ist bzw der Container oder was auch immer nicht gemountet ist.
    Hackt sich jemand auf dein System, kann dieser ungehindert alle Dateien sehen und darauf zugreifen. Erst wenn man rebooten oder den Datenträger entfernen würde, oder eben den Container aushängt (umount) brauch man den Key um diese zu entschlüsseln..

  • Das klingt ja ganz gut! Wie bekommt man die verschlüsselten Daten bei Verlust denn wieder zurück? - aber ... eigentlich sollte ich mich ja reinlesen. Ein Glück dass heute Feiertag ist :D


    :)

    Das reinlesen ist halt nur dazu gedacht, dass es unsinnig ist, das Internet kopieren zu wollen *lach*.

    Ich denke, die Dateiverschlüsselung ist ausreichend. Klar gibt es etwas besseres, wenn keiner die Größe einer Datei sehen soll, aber ich bin der Auffassung für das Vorhaben ist das schon nahezu optimal. Auch muss der rPi nicht monatelang für eine Verschlüsselung rechnen und ich finde encFS für den rPi sehr effizient (selber im Einsatz).

    IM FALLE eines Datenverlustes ist es meiner Auffassung nach mit encfs sogar am einfachsten die Daten wiederherzustellen, da nur die Dateien, und nicht das ganze Dateisystem verschlüsselt ist. Du kannst, vorausgesetzt du kennst das Passwort und hast encfs installiert, die Dateien überall* wieder einhängen. Dateiverschlüsselung und im Ernstfall wieder herstellen ist immer eine riskante Sache. Denn wenn das Programm nur nach typischen Merkmalen von Dateien sucht (jpeg, pdf usw.) wird es wohl nahezu unmöglich. Dafür gibt es aber Backups :)

    :* teilweise auch Windows (7) mit dokan.

    Ansonsten könnte auch eine Versionsverwaltung (git) interessant sein ;)

Jetzt mitmachen!

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