Arch Linux: Installation mit LVM, LUKS, AppArmor, systemd-boot und UEFI Secure Boot mit eigenen Keys

Vor Kurzem habe ich mein Notebook erfolgreich von Xubuntu auf Arch Linux umgestellt. Wie bei meiner bisherigen Xubuntu-Installation sollte Arch Linux natürlich mit Festplatten-Vollverschlüsselung (mittels LVM on LUKS) sowie aktiviertem AppArmor installiert werden. Außerdem wollte ich als zusätzliche Sicherheitsebene, Arch Linux mit aktiviertem UEFI Secure Boot in Verbindung mit eigenen Secure Boot Keys einrichten. In diesem Zusammenhang sollte zudem systemd-boot anstatt GRUB als Bootloader zum Einsatz kommen. Wie ich das Ganze umgesetzt habe, könnt ihr in diesem Beitrag lesen.

Weiterlesen

Arch Linux: Screenlocker XSecureLock einrichten

Auch wenn Xorg (X11) und Screenlocker in Sachen Sicherheit bekannterweise nicht wirklich zu überzeugen wissen, verwende ich natürlich trotzdem einen Screenlocker. Unter Arch Linux setze ich hier in Verbindung mit Xfce den Screenlocker XSecureLock ein.

Prinzipiell muss man nichts weiter machen, als das entsprechende Paket zu installieren und in seiner verwendeten Desktop-Umgebung ein entsprechendes Tastenkürzel zum Aufruf von XSecureLock einzurichten. Bei Bedarf lässt sich XSecureLock in Verbindung mit xss-lock auch so konfigurieren, dass der Bildschirm automatisch nach einer bestimmten Zeit abgedunkelt und gesperrt wird. Was ihr dazu machen müsst, erfahrt ihr in diesem Beitrag.

Weiterlesen

Arch Linux: libvirt mit AppArmor-Unterstützung installieren

Unter Xubuntu bin ich es gewöhnt, dass das libvirt-Paket direkt mit AppArmor-Unterstützung ausgeliefert und installiert wird. Leider ist das bei Arch Linux nicht der Fall. Da ich auf dieses zusätzliche "Sicherheitsnetz" bei der Ausführung meiner QEMU/ KVM-VMs nicht verzichten möchte, verwende ich nicht das von Arch Linux ausgelieferte libvirt-Paket, sondern kompiliere es mit AppArmor-Unterstützung selbst und installiere es dann manuell mit pacman.

Wie das Ganze genau funktioniert, beschreibe ich in diesem Beitrag.

Weiterlesen

GitHub-Actions: Coverage-Badge ohne 3rd-Party-Service mittels Gist erstellen

Für mein aktuelles GitHub-Projekt secbootctl wollte ich den Code-Coverage-Status mittels Badge von Shields.io in der README.md anzeigen lassen. Leider bietet GitHub-Actions so eine Funktion nicht "out-of-the-box" an. Anscheinend hat es sich etabliert dafür Third-Party-Services, wie z.B. Codecov, zu verwenden, um Coverage-Badges zu erstellen und diese dann im eigenen GitHub-Repository einbinden zu können.

Da ich es bevorzuge auf unnötige bzw. zusätzliche Services zu verzichten, habe ich etwas recherchiert und bin auf eine vielversprechende Lösung gestoßen: Mithilfe der GitHub-Action Dynamic Badges Action können die benötigten Coverage-Daten im Rahmen eines GitHub-Actions-Workflow im JSON-Format in einem GitHub-Gist gespeichert werden. Mit diesen JSON-Daten kann dann wiederum die Shields.io-API angesprochen werden und die so generierte Badge in der eigenen README.md eingebunden werden.

Weiterlesen

Virtual Machine Manager & QEMU/KVM: VMs ohne Root-Rechte ausführen

Standardmäßig verbindet sich Virtual Machine Manager (VMM) über die URI qemu:///system mit dem lokalen libvirt-Dienst, der wiederum zur Kommunikation mit QEMU/ KVM dient. Der libvirt-Dienst wird bereits beim Systemstart gestartet und läuft mit Root-Rechten. Alle virtuellen Maschinen (VMs) die unter dieser VMM-Verbindung ausgeführt werden, laufen somit mit Root-Rechten.

Aus Sicherheitsgründen ist es empfehlenswert, VMs bevorzugt ohne Root-Rechte und nur mit Benutzerechten auszuführen. Im folgenden Beitrag erfahrt ihr, wie ihr eure VMs mit VMM über qemu:///session und somit ohne Root-Rechte ausführt.

Weiterlesen