PowerShell-Skript um verschlüsselte Volumes zu entsperren

  • Hallo,


    ich habe mir ein PowerShell-Skript geschrieben, das verschlüsselte Volumes sozusagen "von aussen" entsperrt. Hintergrund: ich wollte die Schlüssel nicht auf dem NAS speichern. Aber so ist es doch sehr umständlich, weil man nun die verschlüsselten Volumes manuell per Web-Oberfläche entsperren muss.


    Lösung: dieses Skript entsperrt die Volumes per SSH-Zugriff auf das NAS. So sind Volumes und Schlüssel getrennt und das Ganze ist doch ohne großen Aufwand handhabbar.


    Viel Spaß damit.

    Reinhold

  • Hallo, das Script ist sehr interessant - keine Ahnung obs in meinem Fall helfen würde oder nicht - ich "arbeite" ausschießlich mit MAC und linux ( debian ).


    somit funktioniert


    df -h | head -1; df -h | grep cachedev


    schon mal nicht - hingegen ;


    df -h | head -1; df -h | grep -A 1 cachedev


    dann gibts nur die


    /share/CACHEDEV1_DATA


    Mountpoints


    Code
    [String] $MountPoint = '/share/CE_{0}_DATA' -f $Volume.ToUpper()   #  Mount point for this volume

    würde nicht funktionieren


    Dann war ich seinerzeit noch so "schlau" , kein ganzes Volume zu verschlüsseln , sondern nur eine Netzwerkfreigabe .


    Immerhin sehe ich nach dem Entsperren der beiden Netzwerkfreigaben zwei entsprechende Mounts :


    Code
    /share/CACHEDEV2_DATA/.__eN__mp_backup on /share/CACHEDEV2_DATA/mp_backup type ecryptfs (rw,ecryptfs_sig=...,ecryptfs_unlink_sigs,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_fnek_sig=...)

    wobei die signaturen immer dieselben sind ( bei identischem Passwort ) und nicht mit dem Ergebnis von

    storage_util --encrypt_pwd pwd=... übereinstimmen


    vermutlich bin ich aber komplett auf dem falschen Dampfer weils um ecryptfs geht und das mount dort, selbst mit den korrekten Optionen ( wie oben ) fehlschlägt.


    Derzeit scheitere ich an den Logs in denen ich keinen entsprechenden Eintrag finde:


    Code
    Error mounting eCryptfs: [-22] Invalid argument

    ;-((


    naja seis wies sei ...

  • Hallo, ich habe ein ähnliches Skript für meine TS-431P3 erstellt und es hat lange Zeit zuverlässig funktioniert. Nun stelle ich nach dem Update von QTS 5.0.1 auf QTS 5.1 fest, dass sich der Aufruf


    Code
    /etc/init.d/init_lvm.sh


    anders verhält (das vorherige Entschlüsseln der Volumes und das Mounten funktionieren weiterhin). Er führt bei mir dazu, dass in der "Speicher & Snapshots"-Ansicht der NAS-Webseite die Volumes als fehlerhaft markiert sind. Ist dies nur ein lokales Problem auf meinem NAS oder tritt dieses Verhalten auch auf anderen NAS-Typen auf? Funktioniert das Skript "unlock-qnap.ps1 auch auf QTS 5.1?


    Grüße

    Mathias

  • Da es vor 2 bzw. 3 Jahren noch kein v5.1 gab, darfst Du gerne testen und berichten. ;)


    Gruss

  • Hallo,


    das Skript funktioniert mit meiner TS-131P und QTS 5.1.0.2445 nach wie vor einwandfrei.

  • Hallo,


    vielen Danke für die Rückmeldung. Mit einem der letzten QNAP FW-Updates funktioniert das Skript auch wieder bei mir.

    Eine Anmerkung zu der Skriptzeile 99:

    Code
    [String] $NAS_Unlock = '/sbin/storage_util --encrypt_pwd pwd="{0}" | /bin/sed ''s/^Encr.*is://'' | /sbin/cryptsetup -v luksOpen /dev/mapper/{1} ce_{1} >{2} 2>&1; /bin/echo $?' -f $EncKey, $Volume, $NasStdX

    Ich habe "{0}" mit 2 Anführungszeichen versehen: ""{0}"". Ansonsten scheitert bei mir der obige Aufruf, wenn das Passwort Sonderzeichen enthält, die in der Linux Shell als Steuerzeichen interpretiert werden.