Einführung
Auf einem Notebook sind oft private Daten, welche nicht in andere Hände geraten sollen. Deshalb habe ich mein Notebook komplett verschlüsselt. Ich muss mir dann keine Gedanken machen, wenn ich mein Notebook verliere oder es gestohlen wird. Diese Installation legt Logical Volumes auf einer mit LUKS verschlüsselten Partition an.
Ist mein Notebook dafür geeignet?
Neuere Prozessoren verfügen über eine AES Befehlssatzerweiterung mit welcher AES Verschlüsselungen und Entschlüsselungen erheblich beschleunigt werden.
Folgendermassen kann man feststellen, ob eine CPU die AES Befehlssatzerweiterung kennt:
grep -q aes /proc/cpuinfo && echo Dein Prozessor kennt die AES Befehlssatzerweiterung!
Prüfen, ob das Modul dafür geladen ist:
$ lsmod | grep aes
aesni_intel 43154 18
aes_x86_64 7508 1 aesni_intel
aes_generic 26138 2 aesni_intel,aes_x86_64
cryptd 8741 6 ghash_clmulni_intel,aesni_intel
Informationen zu diesem Modul anzeigen:
$ modinfo aesni_intel
filename: /lib/modules/3.4.4-2-ARCH/kernel/arch/x86/crypto/aesni-intel.ko.gz
alias: aes
license: GPL
description: Rijndael (AES) Cipher Algorithm, Intel AES-NI instructions optimized
alias: x86cpu:vendor:*:family:*:model:*:feature:*0099*
depends: cryptd,aes-x86_64,aes_generic
intree: Y
vermagic: 3.4.4-2-ARCH SMP preempt mod_unload modversions
Eine Liste, welche Programme die AES Befehlssatzerweiterung nutzen können, gibt es bei Wikipedia.
Natürlich kann diese Installation auch bei allen anderen Geräten vorgenommen werden, welche die AES Befehlssatzerweiterung nicht kennen.
ArchLinux herunterladen und auf einen USB-Stick kopieren
Die aktuellste Verion von ArchLinux findet man hier: http://archlinux.puzzle.ch/iso/latest/ Ich bevorzuge das “netinstall-dual” Image, weil dort beide Architekturen (x64 und x86_64) vorhanden sind und alle Pakete direkt vom Internet bezogen werden können.
ISO-Image herunterladen:
$ wget http://archlinux.puzzle.ch/iso/latest/archlinux-2011.08.19-netinstall-dual.iso
Prüfsummen herunterladen:
$ wget http://archlinux.puzzle.ch/iso/latest/sha1sums.txt
ISO-Image mit den Prüfsummen überprüfen:
$ sha1sum --check sha1sums.txt 2> /dev/null | grep OK
Die Ausgabe soll so aussehen:
archlinux-2011.08.19-netinstall-dual.iso: OK
Jetzt kopiert man das Bootfähige ISO-Image auf einen USB-Stick (/dev/sdb enstpricht dem USB-Stick)
$ sudo dd if=archlinux-2011.08.19-netinstall-dual.iso of=/dev/sdb
Sendet man in einem anderen Fenster das Signal 10
( SIGUSR1
) an den dd
-Prozess, schreibt dd
den Zwischenstand auf die Standardausgabe.
$ sudo pkill -USR1 dd
ArchLinux starten
Man bootet vom USB-Stick. Der Username lautet root
und benötigt kein Passwort. Ich nutze gerne den vi
-Modus in der Shell um effizienter arbeiten zu können:
$ set -o vi
Dann muss noch das Tastaturlayout angepasst werden:
$ km
Als Keymap verwende ich (für die Schweiz) i386/quertz/de_CH-latin1.map.gz
und für die Console Font default8x16.psfu.gz
.
Festplatten vorbereiten
Wir benötigen zwei Partitionen: Eine Boot-Partition und eine Partition die verschlüsselt wird. Die verschlüsselte Partition wird mit dem Logical Volume Manager
( LVM
) in mehrere Logical Volumes
( LVs
) unterteilt.
Partitionierungstool cfdisk starten:
# cfdisk
Mit d
werden alle Partitionen gelöscht und dann mit n
eine neue angelegt. Die erste Partition ist die Boot-Partition und soll 100MB gross sein. Diese ist Bootbar und vom Type Linux
( 83
). Die zweite Partition ist vom Type Linux LVM
( 8E
) und ist so gross wie der Rest der Platte. Mit W
werden die Änderungen gespeichert und mit q
wird cfdisk
beendet. Am Schluss soll das etwa so aussehen ( /dev/sda
entspricht der Festplatte):
sda1 Boot Primary Linux 100MB
sda2 Primary Linux LVM 500GB
Festplatte verschlüsseln
Mit cryptsetup
kann man die Festplatte verschlüsseln.
# cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/sda2
Man wird aufgefordert ein Passwort zweimal einzugeben.
Jetzt kann man die Festplatte entschlüsseln:
# cryptsetup luksOpen /dev/sda2 luks
Im Verzeichnis /dev/mapper/
ist die Festplatte jetzt unter LUKS verfügbar.
Logical Volume Manager einrichten
Jetzt legt man ein neues Physical Volume
( PV
) an:
# pvcreate /dev/mapper/luks
Das kann mit pvs
und pvdisplay
kontrolliert werden.
Danach wird die Volume Group
( VG
) erstellt:
# vgcreate rootvg /dev/sda2
Das kann mit vgs
und vgdisplay
kontrolliert werden.
Nun werden mit lvcreate
neue Logical Volumes
( LVs
) angelegt:
# lvcreate -n swap -L 4G -C y rootvg
# lvcreate -n root -L 25G rootvg
# lvcreate -n var -L 5G rootvg
# lvcreate -n home -l 100%FREE rootvg
Mit -n
kann man dem Logical Volume einen Namen geben. Die Option -C
steht
für contiguous
und stellt sicher, dass die Datenblöcke direkt nacheinander
liegen (damit ist das swappen schneller). Mit -L
kann man eine fixe Grösse
angeben und mit -l
ist es möglich die verbleibenden LogicalExtents
zu
verwenden. Das kann mit lvs
und lvdisplay
kontrolliert werden.
Netzwerk herstellen
Hat man ein Netzwerkkabel, schliesst man das an und bezieht eine IP-Adresse per DHCP:
# dhclient eth0
# ping archlinux.puzzle.ch
Hat man kein Netzwerkkabel, kann man mit dem wpa\
supplicant` eine Verbindung
über das WLAN herstellen:
# wpa_passphrase deine_essid dein_passwort | tee wpa.cfg
# wpa_supplicant -i wlan0 -c wpa.cfg -B
# dhclient wlan0
# ping archlinux.puzzle.ch
Jetzt ist man parat für die eigentliche Installation.
ArchLinux installieren
- Setup starten**
# /arch/setup
Mit OK
bestätigen.
- Select Source*
Select: core-remote
Mirror: http://archlinux.puzzle.ch
Oder einen Mirror aus deiner Nähe auswählen.
- Set Editor
Select: vi (advanced)
- Set clock
1: Select region and timezone
- Europa / Zürich
2: Set time and date
- UTC = Weltzeit
- NTP # Gleicht die Zeit mit einem NTP-Server ab
3: Return
Natürlich an deine Umgebung anpassen. Wenn die Uhr per NTP
abgegleicht wird, stimmt sie genau.
- Prepare Hard Drive(s)
3: Manually Configure block devices, filesystems and mountpoints
- Partition Access Method: dev
- Filesysteme folgendermassen auswählen und konfigurieren:
- Device FS Type Mountpoint Label
/dev/sda1 ext2 /boot boot
/dev/mapper/rootvg-swap swap swap
/dev/mapper/rootvg-root ext4 / root
/dev/mapper/rootvg-var ext4 /var var
/dev/mapper/rootvg-home ext4 /home home
- Done
5: Return
Die Filesysteme wurden jetzt angelegt und können verwendet werden.
- Select Packages
- Bootloader: grub (GRUB bootloader)
- Packages: base
Weitere Pakete können nach der Installation installiert werden.
- Install Packages
- OK und warten...
- Continue
Die Pakete werden vom ausgewählten Spiegelserver heruntergeladen und installiert. Dies kan eine Weile dauern.
- Configure System
# vi /etc/rc.conf
[...]
LOCALE="de_CH.UTF-8"
USELVM="yes"
HOSTNAME="eris"
# vi /etc/fstab
[...]
/dev/sda1 /boot ext2 defaults 0 1
/dev/mapper/rootvg-root / ext4 defaults 0 1
/dev/mapper/rootvg-swap swap swap defaults 0 0
/dev/mapper/rootvg-home /home ext4 defaults 0 1
/dev/mapper/rootvg-var /var ext4 defaults 0 1
tmpfs /tmp tmpfs nodev,nosuid 0 0
Alle Logical Volumes sind bereits automatisch schön eigetragen.
# vi /etc/mkinitcpio.conf
[...]
HOOKS="base udev autodetect pata scsi sata usb usbinput keymap encrypt lvm2 filesystems fsck"
Die Hooks usb
und usbinput
werden für USB-Tastaturen verwendet. Der Hook keymap
wird verwendet, damit man das richtige Tastaturlayout hat. Der Hook encrypt
wird zum Entschlüsseln verwendet und lvm2
wird für den Logical Volume Manager benötigt. Wichtig ist, dass man encrypt
vor dem lvm2
Hook einfügt.
# vi /etc/hosts_
[...]
127.0.0.1 localhost.localdomain localhost eris
Der Hostname sollte bereits eingetragen sein.
Root-Passwort Das Root-Passwort muss man zweimal eingeben.
Mit Done
beendet man diesen Schritt der Installation.
- Install Bootloader
Bei der Kernel-Zeile muss man Änderungen vornehmen, damit ArchLinux booten kann:
kernel /vmlinuz-linux cryptdevice=/dev/sda2:rootvg root=/dev/mapper/rootvg-root ro lang=de locale=de_CH.UTF-8
Die Partition /dev/sda2
steht für die LUKS verschlüsselte Partition und rootvg
ist der Name der angelegten Volume Group.
Der Bootloader wird in /dev/sda
installiert:
Install in /dev/sda
- Exit Install
OK
ArchLinux wurde jetzt installiert und kann gebootet werden:
# reboot
Viel Spass mit dem komplett verschlüsselten ArchLinux!
Links und weitere Informationen
- WP: AES Befehlssatzerweiterung: http://de.wikipedia.org/wiki/AES_%28Befehlssatzerweiterung%29
- Manpage: cryptsetup(8): http://linux.die.net/man/8/cryptsetup
- ArchLinux Wiki: Festplatten verschlüsseln: https://wiki.archlinux.de/title/Festplatte_verschlüsseln