Dracut- unlock hard-disk at boot with ssh

Installation der benötigten Pakete

yum install epel-release

yum install wget putty


wget -O /etc/yum.repos.d/rbu-dracut-crypt-ssh-epel-7.repo https://copr.fedorainfracloud.org/coprs/rbu/dracut-crypt-ssh/repo/epel-7/rbu-dracut-crypt-ssh-epel-7.repo

yum install dracut-crypt-ssh

Dracut-Crypt konfigurieren

Im ersten Schritt erstellen wir uns dein Verzeichnis für die Schlüsselzertifikate.

mkdir -p /keys/dropbear

In der Konfigurationsdatei crypt-ssh.conf können wir den SSH-Port anpassen und den Pfad zu unserer authorized_keys Datei einfügen.

vi /etc/dracut.conf.d/crypt-ssh.conf
...
dropbear_port 445
...

...
dropbear_acl="/keys/dropbear/authorized_keys"
...

Den privaten und den öffentlichen Schlüssel erzeugen

Mit Putty generieren wir uns nun unsere beiden Schlüssel:

puttygen -t rsa -b 2048 -o serverkey.ppk

Den generierten Schlüssel können wir auf einem Windows-PC ablegen und verwenden ihn zusammen mit Putty für die Authentifizierung am Server beim Systemstart.

Für Mac- oder Linux-Systemen müssen wir uns eine OpenSSH-Key mit Putty generieren.

puttygen serverkey.ppk -O private-openssh -o serverkey.pem

Den öffentlichen Schlüssel können wir gleich direkt am Server in die authorized_keys Datei speichern.

puttygen -L serverkey.ppk > /keys/dropbear/authorized_keys

GRUB network access

Im nächsten Schritt müssen wir GRUB so konfigurieren, dass Netzwerkverbindungen beim Systemstart angenommen werden können.

vi /etc/default/grub

Wir suchen nach GRUB_CMDLINE_LINUX und fügen folgende Zeile ein:

"...rd.neednet=1 ip=192.168.0.100::192.168.0.1:255.255.255.0:centos:eth0:off:8.8.8.8:8.8.4.4"

IP, Subnet und Gateway müssen angepasst werden.

 

Zum Schluss generieren wir GRUB neu und bauen die initramfs Dateien.

grub2-mkconfig --output /etc/grub2.cfg

dracut --force

Neustart und testen

Nachdem wir das System neu gestartet haben, können wir uns mit dem privaten Schlüssel an unserem System anmelden.

Mit Putty verwenden wir die serverkey.ppk. Über SSH könne wir nachstehenden Befehl verwenden.

ssh -i serverkey.pem root@server.your-domain.com -p 445

Festplatte entsperren

Nachdem wir uns erfolgreich im System angemeldet haben, können wir mit Befehl console_auth die Festplatte entsperren. Nachdem wir den Festplattenschlüssel eingegeben haben, sollte das System booten.

console_auth

If DNS is not working

Edit the file:

root$

vi /etc/sysconfig/network-scripts/ifcfg-eth0

And add this lines at the end of the file:

DNS1=8.8.8.8
DNS2=8.8.4.4

Quellen

Forum description.

http://unix.stackexchange.com/questions/271755/how-to-use-openssh-for-disc-encryption-at-boot-time-openssh-vs-dropbear

Original description at github.

https://github.com/dracut-crypt-ssh/dracut-crypt-ssh

Putty-Schlüssel erzeugen.

https://www.ssh.com/ssh/putty/linux/

Putty OpenSSH-Schlüssel erzeugen

https://www.ssh.com/ssh/putty/mac/#sec-How-to-use-PuTTY-SSH-keys-with-the-built-in-OpenSSH

 

Kommentare

Was ist die Summe aus 5 und 9?