PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie verschlüsselte Festplatte beim Booten einbinden?



Fremder
20.02.07, 10:46
Hallo,

ich habe nach
http://www.linuxforen.de/forums/showthread.php?t=207968
eine verschlüsselte Wechselfestplatte eingerichtet.

Ich kann die Partition auch ohne Probleme manuell entschlüsseln und mounten:

# cryptsetup luksOpen /dev/hdc1 geheim
Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.
# mount /dev/mapper/geheim /mnt/crypt/
#

Leider klappt es aber nicht beim Bootvorgang. Ich bekomme nur eine Fehlermeldung, dass hdc1 nicht lesbar ist, ich werde nicht nach der Passphrase gefragt.

meine /etc/crypttab sieht so aus:


# <target device> <source device> <key file> <options>
geheim /dev/hdc1 none cipher=aes-cbc-essiv:sha256

------------------------
edit:
die /etc/crypttab ist hier falsch.
bei den Optionen fehlt "luks" - siehe unten
----------------------


meine /etc/fstab sieht so aus:


# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
usbfs /proc/bus/usb usbfs devmode=0666 0 0
/dev/hda1 / reiserfs defaults 0 1
/dev/hda2 none swap sw 0 0
/dev/cdrom /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
#
# fuer verschluesselte HD:
/dev/mapper/geheim /mnt/crypt reiserfs defaults,user 0 0



Was mache ich noch falsch?

Vermutlich muss beim Booten ein spezielles Script aufgerufen werden.

aber welches?

- boot.cryptmap
- cryptdisks
- cryptdisks-early
(es läuft nämlich keines dieser Skripte)

oder doch ein anderes?
und in welchem Runlevel?
und an welcher Stelle im Runlevel?
(mit welchem Komando füge ich das ein?)

Habe cryptdisks in Runlevel 1 und 2 in den Rängen vor und nach 20 schon erfolglos probiert (KSysV (Runleveleditior))

Bin ich da auf dem Holzweg???

Danke für weitere Tips.

Fremder

--------------------------------------------
Kanotix mit Kernel 2.6.14-Kano-4

marce
20.02.07, 13:01
in welchen Runlevel bootest Du denn per default? Da sollte der Link zum Script hin...

Fremder
20.02.07, 13:36
in welchen Runlevel bootest Du denn per default?
hm, ich muss zugeben, dass ich mich mit den Runlevels noch nicht so gut auskenne.


Das Booten "endet" mit dem grafischen Login (Multiuser, kdm), danach logge ich mich mit Ben-Name und PW ein. Runlevel 5?


Da sollte der Link zum Script hin...
welches von den Scripts muss ich verwenden?

Ist die Rangnummer auch wichtig?

Fremder
20.02.07, 15:30
bin inzwischen ein Stück weiter gekommen:

habe cryptdisks in Runlevel 5 eingefügt (Rang 20) und bekomme jetzt beim Booten die PW-Abfrage.


Leider wird die Festplatte aber nicht automatisch gemountet obwohl anscheinend /dev/mapper/geheim angelegt ist.

Die Zeile in /etc/fstab sieht so aus:


# fuer verschluesselte HD:
/dev/mapper/geheim /mnt/crypt reiserfs noauto,noatime 0 0


Ich kann die Festplatte nach dem Booten auch nicht einmal manuell mounten:


# mount -t reiserfs /dev/mapper/geheim /mnt/crypt/
mount: wrong fs type, bad option, bad superblock on /dev/mapper/geheim,
missing codepage or other error

Das Filesystem ist aber ReiserFS.
Um die Festplatte zu mounten muss ich folgendes ausführen:

# cryptsetup luksClose geheim
# cryptsetup luksOpen /dev/hdc1 geheim
Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.
# mount -t reiserfs /dev/mapper/geheim /mnt/crypt/
#

Was muss ich machen, damit die Festplatte gleich beim Booten gemountet wird?

marce
20.02.07, 15:47
# fuer verschluesselte HD:
/dev/mapper/geheim /mnt/crypt reiserfs noauto,noatime 0 0

wofür könnte dieses kleine Wörtchen denn wohl stehen?

Fremder
20.02.07, 21:03
wofür könnte dieses kleine Wörtchen denn wohl stehen?
Ja, ich gebe zu, da ist was dran....

Habe daher in der /etc/fstab die Zeile so gändert:

/dev/mapper/geheim /mnt/crypt reiserfs defaults 0 1, damit ist die Zeile analog zur nicht-verschlüsselten Partition /dev/hda1 ausgeführt.

Beim Booten werde ich nach dem Passwort gefragt - egal was ich eingebe, ich habe nur eine Chance, die mir "done" quitttiert wird.

Egal, ob richtiges oder falsches Passwort, ich bekomme danach diese Fehlermeldungen



[.....]

reiserfs_open: the reiserfs superblock cannot be found on
/dev/mapper/geheim
failed to open the filesystem

[.... ein paar Zeilen später...]

Mounting local filesystem... ReiserFS: dm-0: warning:
sh-2021: reiserfs_fill_super: cannot finder reiserfs on dm-0
(mount: wrong fs type, bad option, bad superblock,
on /dev/mapper/geheim).... failed

[....]


Kann es sein, dass das script cryptdisks die Partition (auch mit dem korrekten PW) gar nicht entschlüsselt??

Apoll
21.02.07, 12:16
Kanns sein, dass du beim Boot noch ein amerikanisches Tastaturlayout hast?
Könnte der Grund sein, warum das Passwort nicht funktioniert.

Bitte poste noch die Skripte, die in deinem Verzeichnis für runlevel 5 drin sind. Vielleicht war Rang 20 suboptimal... ;)

Fremder
21.02.07, 16:53
Kanns sein, dass du beim Boot noch ein amerikanisches Tastaturlayout hast?
Das kann ich nicht sagen. Mein Passwort besteht aber nur aus Buchstaben (ohne Z und Y) und Zahlen (ohne Sonderzeichen).


Bitte poste noch die Skripte, die in deinem Verzeichnis für runlevel 5 drin sind. Vielleicht war Rang 20 suboptimal..

hier:


:/etc/rc5.d$ ls -l
insgesamt 0
lrwxrwxrwx 1 root root 18 2006-11-06 13:35 S10sysklogd -> ../init.d/sysklogd
lrwxrwxrwx 1 root root 15 2006-11-06 13:35 S11klogd -> ../init.d/klogd
lrwxrwxrwx 1 root root 13 2006-11-06 13:35 S14ppp -> ../init.d/ppp
lrwxrwxrwx 1 root root 15 2006-11-06 13:35 S20acpid -> ../init.d/acpid
lrwxrwxrwx 1 root root 20 2006-11-06 13:34 S20alsa-utils -> ../init.d/alsa-utils
lrwxrwxrwx 1 root root 25 2007-02-20 22:17 S20cryptdisks-luks -> ../init.d/cryptdisks-luks
lrwxrwxrwx 1 root root 16 2006-11-06 13:34 S20cupsys -> ../init.d/cupsys
lrwxrwxrwx 1 root root 16 2006-11-06 13:35 S20dbus-1 -> ../init.d/dbus-1
lrwxrwxrwx 1 root root 17 2006-11-06 13:35 S20makedev -> ../init.d/makedev
lrwxrwxrwx 1 root root 13 2006-11-06 13:35 S89atd -> ../init.d/atd
lrwxrwxrwx 1 root root 14 2006-11-06 13:35 S89cron -> ../init.d/cron
lrwxrwxrwx 1 root root 17 2006-11-26 13:06 S94anacron -> ../init.d/anacron
lrwxrwxrwx 1 root root 13 2006-11-26 13:06 S96ssh -> ../init.d/ssh
lrwxrwxrwx 1 root root 22 2006-12-01 15:57 S97xserver-xorg -> ../init.d/xserver-xorg
lrwxrwxrwx 1 root root 13 2006-11-06 13:35 S99kdm -> ../init.d/kdm
lrwxrwxrwx 1 root root 19 2006-11-06 13:35 S99rmnologin -> ../init.d/rmnologin
lrwxrwxrwx 1 root root 23 2007-02-20 11:13 S99stop-bootlogd -> ../init.d/stop-bootlogd
lrwxrwxrwx 1 root root 13 2006-11-06 13:35 S99xdm -> ../init.d/xdm


hier habe ich zwei unterschiedliche Scrips versucht:

lrwxrwxrwx 1 root root 25 2007-02-20 22:17 S20cryptdisks-luks -> ../init.d/cryptdisks-luks
bzw.
lrwxrwxrwx 1 root root 25 2007-02-20 22:17 S20cryptdisks-luks -> ../init.d/cryptdisks

cryptdisks-luks habe ich von hier: http://www.think-future.de/wiki/index.php?title=Encrypted_Partition
(unten bei "Boot Script")

Ich probiere gleich auch noch andere Ränge aus....

-------------------------------------------
Edit:

Habe nun auch die Ränge 17 und 40 ohne Erfolg versucht (mit beiden Scripten)

Apoll
21.02.07, 18:31
Also mein cryptsetup Skript hab ich in /etc/rcS.d/ drin. Das wird (zumindest bei mir) noch vor /etc/rc2.d/ ausgeführt (Debian startet defaultmäßig in rc2 statt rc5).
Das Skript hat bei mir den Namen S26cryptdisks-early und wird direkt nach S25libdevmapper1.02 gestartet. Vielleicht konnte das etwas helfen...

Fremder
21.02.07, 19:21
Hat leider nicht funktioniert :-(


Das Skript hat bei mir den Namen S26cryptdisks-early und wird direkt nach S25libdevmapper1.02 gestartet.
Hatte beide Scripte nicht drin und habe nun beide Scripte in /etc/rcS.d/ eingetragen (und alle übrigen *crypt*-Scripte aus allen rc.-Verzeichnissen entfernt)
Das Verzeichnis sieht nun so aus:

:~$ ls -l /etc/rcS.d/
insgesamt 4
-rw-r--r-- 1 root root 734 2005-11-20 02:14 README
lrwxrwxrwx 1 root root 21 2006-11-06 13:35 S02mountvirtfs -> ../init.d/mountvirtfs
lrwxrwxrwx 1 root root 14 2006-11-06 13:35 S04udev -> ../init.d/udev
lrwxrwxrwx 1 root root 18 2007-02-20 11:05 S05bootlogd -> ../init.d/bootlogd
lrwxrwxrwx 1 root root 25 2006-11-06 13:35 S05initrd-tools.sh -> ../init.d/initrd-tools.sh
lrwxrwxrwx 1 root root 19 2006-11-06 13:35 S05keymap.sh -> ../init.d/keymap.sh
lrwxrwxrwx 1 root root 22 2006-11-06 13:35 S10checkroot.sh -> ../init.d/checkroot.sh
lrwxrwxrwx 1 root root 16 2006-11-06 13:35 S15isapnp -> ../init.d/isapnp
lrwxrwxrwx 1 root root 24 2006-11-06 13:35 S18ifupdown-clean -> ../init.d/ifupdown-clean
lrwxrwxrwx 1 root root 27 2006-11-06 13:35 S20module-init-tools -> ../init.d/module-init-tools
lrwxrwxrwx 1 root root 18 2006-11-06 13:35 S20modutils -> ../init.d/modutils
lrwxrwxrwx 1 root root 25 2006-11-06 13:35 S22hwclockfirst.sh -> ../init.d/hwclockfirst.sh
lrwxrwxrwx 1 root root 26 2007-02-21 20:07 S25libdevmapper1.02 -> ../init.d/libdevmapper1.02
lrwxrwxrwx 1 root root 26 2007-02-21 20:08 S26cryptdisk-early -> ../init.d/cryptdisks-early
lrwxrwxrwx 1 root root 20 2006-11-06 13:35 S30checkfs.sh -> ../init.d/checkfs.sh
lrwxrwxrwx 1 root root 23 2006-11-06 13:35 S30etc-setserial -> ../init.d/etc-setserial
lrwxrwxrwx 1 root root 19 2006-11-06 13:35 S30procps.sh -> ../init.d/procps.sh
lrwxrwxrwx 1 root root 21 2006-11-06 13:34 S35mountall.sh -> ../init.d/mountall.sh
lrwxrwxrwx 1 root root 21 2006-11-06 13:35 S36mountvirtfs -> ../init.d/mountvirtfs
lrwxrwxrwx 1 root root 19 2006-11-06 13:35 S36udev-mtab -> ../init.d/udev-mtab
lrwxrwxrwx 1 root root 18 2006-11-06 13:35 S38pppd-dns -> ../init.d/pppd-dns
lrwxrwxrwx 1 root root 19 2006-11-06 13:35 S39dns-clean -> ../init.d/dns-clean
lrwxrwxrwx 1 root root 18 2006-11-06 13:35 S39ifupdown -> ../init.d/ifupdown
lrwxrwxrwx 1 root root 21 2006-11-06 13:35 S40hostname.sh -> ../init.d/hostname.sh
lrwxrwxrwx 1 root root 18 2006-11-06 13:35 S40ifrename -> ../init.d/ifrename
lrwxrwxrwx 1 root root 20 2006-11-06 13:35 S40networking -> ../init.d/networking
lrwxrwxrwx 1 root root 21 2006-11-06 13:35 S45mountnfs.sh -> ../init.d/mountnfs.sh
lrwxrwxrwx 1 root root 19 2006-11-06 13:35 S46setserial -> ../init.d/setserial
lrwxrwxrwx 1 root root 27 2006-11-06 13:35 S48console-screen.sh -> ../init.d/console-screen.sh
lrwxrwxrwx 1 root root 20 2006-11-06 13:35 S50hwclock.sh -> ../init.d/hwclock.sh
lrwxrwxrwx 1 root root 21 2006-11-06 13:35 S55bootmisc.sh -> ../init.d/bootmisc.sh
lrwxrwxrwx 1 root root 17 2006-11-06 13:35 S55urandom -> ../init.d/urandom
lrwxrwxrwx 1 root root 20 2006-11-06 13:34 S70x11-common -> ../init.d/x11-common


Beim Booten bekomme ich zuerst die Meldung, dass der Devicemapper gestartet ist, in der nächsten Zeile werde ich nach dem Passwort gefragt.

Danach geht es mit der bekannten Fehlermeldung weiter

[.....]

reiserfs_open: the reiserfs superblock cannot be found on
/dev/mapper/geheim
failed to open the filesystem

[.... ein paar Zeilen später...]

Mounting local filesystem... ReiserFS: dm-0: warning:
sh-2021: reiserfs_fill_super: cannot finder reiserfs on dm-0
(mount: wrong fs type, bad option, bad superblock,
on /dev/mapper/geheim).... failed

[....]

Kann ich denn sicher sein, dass die Entschlüsselung mit diesem Script auch wirklich zur Verschlüsselung passt??
Hatte die Festplatte so verschlüsselt:

cryptsetup -c aes-cbc-essiv:sha256 -y luksFormat /dev/hdc1

Apoll
21.02.07, 21:33
Kann ich denn sicher sein, dass die Entschlüsselung mit diesem Script auch wirklich zur Verschlüsselung passt??
Hatte die Festplatte so verschlüsselt:

cryptsetup -c aes-cbc-essiv:sha256 -y luksFormat /dev/hdc1

Das müsste eigentlich so stimmen...

Fremder
22.02.07, 10:41
Gelöst!!

Es war ein Fehler in /etc/crypttab

es muss nämlich so heißen:


# <target device> <source device> <key file> <options>
geheim /dev/hdc1 none luks,retry=2,cipher=aes-cbc-essiv:sha256