Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: GentooForum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

11.05.2010, 02:30

init-script zum entschlüsseln der root-Partition via ssh

Ich habe genkernel um die Möglichkeit dropbear in die initrd aufzunehmen erweitert. dropbear ist ein kleiner ssh-Server, mit dem ich mich jetzt problemlos in die initrd einloggen kann. So hab ich die Möglichkeit meine verschlüsselte root-Partition auch per remote-Verbindung zu entschlüsseln. Nun zu meinem Problem:

Damit das System nachdem entschlüsseln der Festplatte per ssh den boot-Prozess wieder aufnimmt muss die Funktion openLUKS im init-script etwas angepasst werden und genau da steh ich im Moment auf dem Schlauch.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
crypt_filter "cryptsetup ${cryptsetup_options} luksOpen ${LUKS_DEVICE} ${LUKS_NAME}"
if [ $? -eq 0 ]
then
    good_msg "LUKS device ${LUKS_DEVICE} opened" ${CRYPT_SILENT}
    break
else
    bad_msg "Failed to open LUKS device ${LUKS_DEVICE}" ${CRYPT_SILENT}
    DEV_ERROR=1
    KEY_ERROR=1KEY
    DEV_ERROR=1
fi

An dieser Stelle stoppt das script, wenn kein Wechseldatenträger mit dem passendem Schlüssel gefunden wurde. Das soll auch so bleiben damit immer die Möglichkeit besteht das Password lokal einzugeben. Soweit so gut. Um zu erkennen, ob im Hintergrund per ssh die root-Partition entschlüsselt wurde finde ich eine until-Schleife sinnvoll. Diese überprüft dann regelmäßig, ob das entsprechende device unter /dev/mapper erstellt wurde.

Quellcode

1
2
3
4
5
6
until [ -f "/dev/mapper/${LUKS_NAME} ]
do
    sleep 30
done
good_msg "LUKS device ${LUKS_DEVICE} opened" ${CRYPT_SILENT}
break

Aber wie kombiniere ich beide Schleifen so das sie beide gemeinsam starten und sobald eine erfolgreich durchläuft die andere beendet? ?(
Wahrscheinlich ist die Lösung mal wieder ganz einfach. :P

Ich hoffe ich habe euch mein Problem gut geschildert und ihr könnt mir weiterhelfen für jede Hilfe bin ich sehr dankbar. :love:
MfG gnuf :cursing:

P.S.
Wenn alles zu meiner Zufriedenheit funktioniert werde ich meine gepatchte Version von genkernel natürlich in meinem overlay veröffentlichen. 8)

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »gnuf« (11.05.2010, 14:13)


2

11.05.2010, 07:54

Hab hier was ähnliches auf meiner Mediabox. Evtl hilft es Dir weiter

Quellcode

1
2
3
4
5
6
7
8
9
10
if  ! [ -b /dev/mapper/store ]; then
        /usr/lib/misc/xscreensaver/glmatrix -root &
        sleep 10
        while ! [ -b /dev/mapper/store ]; do
                x11-ssh-askpass "Bitte Passwort eingeben" | sudo /sbin/cryptsetup luksOpen /dev/sda3 store
        done
        mount /dev/mapper/store
 
        killall glmatrix
fi

Wenn ich per SSH entschlüssele, brauche ich nur "killall x11-ssh-askpass" einzugeben, und schon läuft das Skript weiter und die Partition wird gemounted.
Auch wenn Open-Source kostenlos ist, ist sie nicht umsonst. Dein Preis ist Dein Engagement und Mitarbeit an OS-Projekten.
Wenn Du keinen Preis bezahlen willst, bist Du die Ware. Und das ist nicht Open Source, geschweigedenn frei.

3

11.05.2010, 14:13

Danke Bell. :thumbsup:
Du hast mich auf die Lösung gebracht.
Wenn man das Orginal init-script so anpasst:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
crypt_filter "cryptsetup ${cryptsetup_options} luksOpen ${LUKS_DEVICE} ${LUKS_NAME}"
if [ $? -eq 0 -o -f /dev/mapper/${LUKS_NAME} ]
then
    good_msg "LUKS device ${LUKS_DEVICE} opened" ${CRYPT_SILENT}
    break
else
    bad_msg "Failed to open LUKS device ${LUKS_DEVICE}" ${CRYPT_SILENT}
    DEV_ERROR=1
    KEY_ERROR=1
    KEYDEV_ERROR=1
fi

Kann man via ssh die Festplatte entschlüsseln und anschließend den Prozess cryptsetup abschießen. Das script läuft dann ganz normal weiter, weil das entsprechende device ja dann existiert. Damit das entschlüsseln via ssh leichter von der Hand geht könnte man dies wieder in ein script packen. :D

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »gnuf« (12.05.2010, 00:46)


4

26.04.2014, 20:38

hallo gnuf und bell,

erstmal danke fuer euren beitrag. ich stehe gerade vor dem gleichen problem und wollte euch fragen, wie denn ueberhaupt der dropbear in den genkernel integriert wird? welche scripts muss ich da patchen, und wie? vll koennt ihr ja die diffs als patch-files hier anhaengen.


vielen dank und viele gruesse,

euer celphis

5

28.04.2014, 06:20

@celphis: Dieser Beitrag ist 4 Jahre alt. Ich denke, es ist angebracht hier einen neuen Thread zu starten zumal schon ganz, ganz, ganz viel Wasser den Rhein/Donau hinabgeflossen ist und sich viele Dinge geändert haben. Bitte mache dazu einen neuen Threds auf.
http://www.dyle.org
IM-Account (Jabber!) sind auf meiner HP ...
There is no place like /home

http://www.gentooforum.de
http://www.gentoofreunde.org

<div>how to annoy a web developer?</span>

6

28.04.2014, 15:54

In diesem Beitrag auf forums.gentoo.org wird es ziemlich ausführlich erklärt. Ich würde dir aber zur better-initramfs raten, die Umsetzung damit ist um einiges angenehmer.

edit: Es existiert aber auch ein Patch für genkernel: https://github.com/ebast/genkernel/commi…cc92563b6ce5b37

7

29.04.2014, 21:18

halllo zusammen,

wieder vielen dank fuer die loesungsvorschlaege.
@dyle: du hast recht, an einen neuen thread dachte ich auch schon, aber dann kam mir wieder diese alte forenregel in den kopf "macht nicht 20 threads zum gleichen thema auf!" ;)
@phreeek: super, das sieht ja echt gut aus. werd das alles mal ausprobieren.

in diesem sinne einen schoenen abend und viele gruesse,

celphis