Verschlüsseltes Dateisystem und Snapshots

  • Hallo,


    ich habe einen KVM-Server und möchte unter Debian (7) die komplette Festplatte verschlüsseln. Alles kein Problem (nur das es eine gefühlte Ewigkeit dauert... :D). Was ich mich aber frage: Wenn ich die Festplattenverschlüsselung verwende, wird ja die Festplattendatei (für KVM) komplett belegt, d.h. z.B. bei einem Jupiter-vServer wird eine 240 GB-Datei auf dem Hostsystem angelegt. Der Inhalt ist aus Host-Sicht kryptisch.



    Wie funktioniert der Snapshot dann eigentlich? So wie ich das gelesen habe, soll ja der freie Speicherplatz dafür benutzt werden. Aber das Hostsystem sollte - dank der Verschlüsselung - keinen freien Speicher sehen, auch wenn dieser virtuell existiert.


  • Wie funktioniert der Snapshot dann eigentlich? So wie ich das gelesen habe, soll ja der freie Speicherplatz dafür benutzt werden. Aber das Hostsystem sollte - dank der Verschlüsselung - keinen freien Speicher sehen, auch wenn dieser virtuell existiert.


    Dann können keine Snapshots angelegt werden, da kein Platz dafür ist (der Snapshot würde ja auch wieder die vollen 240 GB belegen).

  • Das würde bedeuten, die Snapshotfunktion funktioniert nur, wenn dem Virtualisierungssyste bekannte Dateisysteme eingesetzt werden. Bei exotischen Dateisystemem wird vermutlich ebenfalls die Festplattendatei beim Partitionieren/Formatieren vollständig erstellt...

  • Ich glaube Dragon liegt falsch.


    Die Snapshots speichern nur Unterschiede. Also wenn du einen Snapshot anlegst, nimmt er erstmal fast gar keinen platz ein. Erst wenn du alle Dateien einmal geändert hast, braucht er eine menge platz.


    Wenn du deine Festplatte entsprechend partitionieren würdest, in verschlüsselte Partition und unpartitionierter (?) Bereich (sodass da KVM reinschreibt), sollte es gehen, wenn solang sich nicht jedes mal der gesamte cyphertext ändert (was im laufenden betrieb zu unfassbar vielen festplattenzugriffen führen würde).

  • Es werden immer nur die Änderungen gespeichert (Copy-on-Write). Für einen normalen Betrieb reicht es in der Regel aus, 20 GB unpartitioniert zu lassen. Der Bereich kann auch Partitioniert sein, allerdings müssen die Sektoren dann auch wirklich ungenutzt sein. Je nach Art der Verschlüsselung, belegt ein verschlüsseltes Dateisystem sämtliche Sektoren, damit keine Rückschlüsse durch freie Sektoren auf die enthaltenen Daten gezogen werden können.


  • Die virtuelle Platte wird nur komplett belegt, wenn Du sie so partitionierst, dass für das verschlüsselte Volume auch die ganze Platte benutzt wird. Wenn Du z.B. nur die halbe Platte dafür nimmst, wird die andere Hälfte auch nicht zu Beginn mit Zufall gefüllt und das Storagesystem da drunter kommt gar nicht erst auf die Idee, die Blöcke mit irgendwas zu belegen. Dadurch würde der Speicher noch für Snapshots verfügbar sein.


    Das würde bedeuten, die Snapshotfunktion funktioniert nur, wenn dem Virtualisierungssyste bekannte Dateisysteme eingesetzt werden. Bei exotischen Dateisystemem wird vermutlich ebenfalls die Festplattendatei beim Partitionieren/Formatieren vollständig erstellt...


    Die Snapshotfunktion wird (wie der zugrundeliegende Massenpeicher) blockbasiert sein, deswegen muss der Hypervisor (bzw was auch immer ihm den Storage zur Verfügung stellt, vermutlich libvirt) keine Ahnung vom Dateisystem usw. auf der virtuellen Platte haben. Blöcke, die nie genutzt wurden (oder, wenn das Backend schlau ist, komplett mit Nullen gefüllt waren, wenn das Image defragmentiert wurde) verweisen einfach nicht auf einem wirklich vorhandenen Block im Massenspeicher darunter und liefern beim Lesen nur Nullen zurück (so wie /dev/zero).


    Die Snapshots lassen dann natürlich theoretisch Rückschlüsse auf den Inhalt des verschlüsselten Volumes zu (von Felix angedeutet), auch wenn es meist nicht mehr sein düfte als "seit Zeitpunkt X wurden Y Blöcke verändert" (weil deren Inhalt ja auch verschlüsselt ist). Es sei denn, es ist bekannt, was sich geändert hat, also zB, dass eine bestimmte Datei hinzugefügt wurde, deren Inhalt bekannt ist: Damit hätte man einen Ansatzpunkt für einen "Known Plaintext"-Angriff auf die Verschlüsselung, wenn man gleichzeitig eine derartige Schwäche in der verwendeten Verschlüsselung kennt, die man ausnutzen kann.

  • Hallo zusammen,


    auch ich würde gerne meine gesamte Festplatte verschlüsseln.

    ich habe einen KVM-Server und möchte unter Debian (7) die komplette Festplatte verschlüsseln. Alles kein Problem (nur das es eine gefühlte Ewigkeit dauert... :D). .

    Leider kann ich aber das Zitat von querschlaeger nicht nachvollziehen und hätte ein paar grundlegende Verständnisfragen.


    Meine Bedenken:

    • (Offtopic) Ich habe meinen KVM-Server noch nicht partioniert. Wie kann ich rausfinden, ob ich LVM oder die klassiche Variante benutze?
    • Meine ganze root-partition ist ja auf /dev/vda2. Lösungen die ich gefunden habe, beziehen sich auf dm-crypt (z. Bsp. Festplattenverschlüsselung mit Debian GNU/Linux ). Falls ich es aber richtig verstanden habe, würden alle meine Daten auf meiner Root-Partition gelöscht. Richtig?
    • Einen Snapshot anlegen hilft Nichts, weil ich nach der Verschlüsselung und zurückspielen des Snapshots, die Verschlüsselung wieder rückgängig gemacht würde. Das Gleiche gilt für das dd-Kommando
    • Ein Backup von root (inclusive /etc, /sbin; /usr, etc.) mittels tar in eine Datei finde ich nicht wirklich effiezient.
    • Eine Alternative, /dev/vda2 nicht zu verschlüsseln, zusätzliche verschlüsselte Partion(en) für /home, /var anzulegen sind nicht meine Präferenz und ich müsste mich immer noch mit /etc beschäftigen.

    Es wäre super, wenn Ihr mir hier Anleitungen und Antworten geben könntet und vielleicht auch meine Bedenken zerstreuen könntet.
    Mein Level: ambionierter, erfahrener Linuxanwender, aber kein Crack in Sachen System-Administration
    Thanks
    scheini72

  • Hallo zusammen,
    [...]
    Meine Bedenken:

    • (Offtopic) Ich habe meinen KVM-Server noch nicht partioniert. Wie kann ich rausfinden, ob ich LVM oder die klassiche Variante benutze?
    • Meine ganze root-partition ist ja auf /dev/vda2. Lösungen die ich gefunden habe, beziehen sich auf dm-crypt (z. Bsp. Festplattenverschlüsselung mit Debian GNU/Linux ). Falls ich es aber richtig verstanden habe, würden alle meine Daten auf meiner Root-Partition gelöscht. Richtig?
    • Einen Snapshot anlegen hilft Nichts, weil ich nach der Verschlüsselung und zurückspielen des Snapshots, die Verschlüsselung wieder rückgängig gemacht würde. Das Gleiche gilt für das dd-Kommando
    • Ein Backup von root (inclusive /etc, /sbin; /usr, etc.) mittels tar in eine Datei finde ich nicht wirklich effiezient.
    • Eine Alternative, /dev/vda2 nicht zu verschlüsseln, zusätzliche verschlüsselte Partion(en) für /home, /var anzulegen sind nicht meine Präferenz und ich müsste mich immer noch mit /etc beschäftigen.

    [...]


    • "Meine ganze root-partition ist ja auf /dev/vda2" -> kein LVM drunter. Irgendwohin müssen die verschlüsselten Daten ja hin, mit ner richtigen Platte drunter sollten sie vorzugsweise auch die alten Klartextdaten überschrieben werden, deswegen wird erstmal die ganze Platte mit (Pseudo-) Zufall überschrieben, damit sich gar nicht mehr sagen lässt, was verschlüsselte Daten und was nur Rauschen ist. Wenn Du auf Deiner virtuellen Platte noch nicht alles benutzt, kannst Du auch eine neue, verschlüsselte Partition anlegen, Dein System in diese unziehen und danach die Partition mit dem verschlüsselten Volume auf die ganze Platte ausdehnen. Das mit dem Vergrößern des verschlüsselten Volumes auf die ganze Platte habe ich glaube ich unter Fedora mal gemacht, kann keine große Sache gewesen sein, aber insgesamt kann das doch schon recht kompliziert werden ;)
    • Da haste recht, der Snapshot würde ja noch den unverschlüsselten Zustand enthalten.
    • Was spricht dagegen, Dir einen großen Tarball vom System runterzuladen? Der langwierige Part wäre vermutlich der Upload der Daten, nachdem die ganze Platte verschlüsselt wurde, es sei denn Du kannst das von irgendwo mit ordentlich Bandbreite machen.
    • Da bin ich ähnlicher Meinung, wenn nicht das ganze System verschlüsselt ist, muss man zu sehr aufpassen, was auf den unverschlüsselten Teilen abgelegt wird.


    Gruß, jot -r 1

  • Vielen Dank jot-r1.


    ich habe mein Problem anders gelöst. Das funktioniert aber nur, wenn man gewillt ist, den Server neu aufzusetzen.


    Anstatt sich ein Image von Netcup auszusuchen, habe ich folgendes gemacht.


    Debian minimal Iso-Image runtergeladen und auf Netcup hochgeladen (VCP, einbinden einer virtuellen CD).


    In Vcp das Iso-image als CD eingebunden. Das System neu (VCP) gebootet und in der virtuellen Konsole in der geführten Installation verschlüsselt (mit LVM und dm-crypt), Minimalsetup, die Festplatte wird während der Installation je nach Wunsch partioniert.
    System neu starten, Passwort des Volumes per virtueller Konsole eingeben, per ssh einloggen, glücklich sein :-).


    Hinweis: Die virtuelle Konsole mag kein Fensterwechsel. Falls man nicht die virtuelle Tastatur benutzen möchte, sollte man das Passwort im Kopf oder vor einem auf dem Papier haben.
    Ich gehe davon aus, andere Distributionen haben auch ein Iso-Image.


    Gruß
    scheini72