Linux Kernel Module für VMWare signieren

SecureBoot hört man immer wieder aber leider wissen die meisten gar nicht was der SecureBoot so macht. SecureBoot ist eine Erfindung von Microsoft die es dem UEFI BIOS vorschreibt nur signierten Code zu laden. Unter Windows ist das erstmals kein Problem. Jedoch kann es mit Linux Installationen kompliziert werden. Vor allem wenn die entsprechende LinuxDistro SecureBoot nicht unterstützt. Natürlich könnte man den Kernel und die betreffenden Module einfach selber signieren. Jedoch ist das verdammt aufwendig. Deshalb greife ich in dem Fall zu Distros die SecureBoot von Haus aus schon unterstützen. Auf meinem Laptop läuft derweil zum Beispiel Debian 11 und Windows 11. Windows 11 mag es leider gar nicht wenn man SecureBoot abschaltet, deshalb bin ich auf ihn angewiesen.

Leider werden nicht alle Kernel Module automatisch signiert, das ist mir zum ersten mal aufgefallen als ich VmWare und installieren wollte. Aber jetzt erstmals genug des gelabert und ab zum Kernel Module signieren.

Alle Befehle sollten als Root ausgeführt werden sowie im Root Heimverzeichnis deshalb:

sudo su
cd /root

Als erstes muss man einen sogenannten MOK key erstellen. Ich nenne ihn einfach MeinMOK Solltest du dich entschließen hier ein Passwort zu vergeben. Schreibe es dir auf du wirst es eine lange Zeit benötigen.

openssl req -new -x509 -newkey rsa:2048 -keyout MeinMOK.priv -outform DER -out MeinMOK.der -days 36500 -subj "/CN=MeinMOK/" -nodes

Du kannst natürlich MeinMOK key durch etwas beliebig anderes austauschen.;)

Als nächstes müssen wir den öffentlichen schlüssel ins Bios eintragen. Sollte das Programm nciht isntalliert sein. Installiere es nach.

mokutil --import MeinMOK.der

Das tool wird dich nach einem Passwort fragen. Denk dir einfach schnell eins aus und merke es dir.

Starte nun den Rechner neu. Dein BIOS wird dich nun nach dem eben ausgedachten Passwort fragen, um das Zertifikat zu importieren.

Als nächstes Signieren wir die VMWare kernel module. Denke dran die Befehle als Root unter /root auszuführen.

sudo su
cd /root

der Befehl um die zwei benötigten Module zu Signieren lautet:

sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 /root/MeinMOK.priv /root/MeinMOK.der $(modinfo -n vmmon) 

sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 /root/MeinMOK.priv /root/MeinMOK.der $(modinfo -n vmnet)

Bitte Beachte das du nach dem Signieren das System Neustarten musst um die Module zu laden.

Bitte Beachte außerdem dass du die Module nach jedem VMWare update oder Kernel Update neu signieren musst. Sowie den Rechner Neustarten musst.

Aus diesem Grund Lösche bitte unter keinen Umständen die Zertifikate aus dem /root Ordner.

Ich hoffe meine kleine Zusammenfassung war hilfreich. Sollte etwas bei dir nicht funktionieren oder sich etwas an dem Prozess ändern schreib mit doch bitte ne eMail.

Probleme beim importieren von OpenVPN Zertifikaten in KDE

Beim importieren von OpenVPN Zertifikaten in KDE kann es passieren das dort etwas schief läuft. Das führt zu den Verschiedensten Fehlermeldungen. Jedoch haben alle gemein das keine Verbindung hergestellt werden kann. Dies kann durch das Importieren des Zertifikats über die Konsole behoben werden.

Als erstes solltest du testen ob VPN überhaupt funktioniert. Dabei kannst du die Verbindung über die Konsole starten und testen.

sudo openvpn --config MyVPN.ovpn

Sollte der obige Befehl zu einer Verbindung geführt haben kannst du das Zertifikat fehlerfrei mit dem folgendem Befehl importieren.

sudo nmcli connection import type openvpn file MyVPN.ovpn

Sollte die Anleitung nicht geholfen/funktioniert haben? Schreib mir ne eMail.

Cannot sync due to invalid modification time

Im Client erscheint dann als Fehlermeldung “Cannot sync due to invalid Modifikation time”. Leider ist dieser Fehler auch bei mir aufgetreten und es hat mich wahnsinnig gemacht eine Lösung zu suchen. Glücklicher weise bin ich in einem doch recht längerem Forum Thread. Den Original Thread hier und hier den Link falls ihr das Problem im Docker habt:

Ab und an kann es vorkommen, das Nextcloud ein Problem mit den Meta daten von Dateien bekommt. Im Client erscheint dann als Fehlermeldung “Cannot sync due to invalid Modifikation time”. Leider ist dieser Fehler auch bei mir aufgetreten und es hat mich wahnsinnig gemacht eine Lösung zu suchen. Glücklicher weise bin ich in einem doch recht längerem Forum Thread. Den Original Thread hier und hier den Link falls ihr das Problem im Docker habt:

Screenshot aus meinem Client

Lösung:

Begebe dich mit folgendem Befehl in das Verzeichnis wo die UserDaten gespeichert werden.

 cd <Daten Verzeichnis>

und erstelle eine neue Datei

nano dates

in die Datei kopiere nun folgendes script

#!/bin/sh

IFS=$'\n'

FILES=$( find . -type f ! -newermt "1971-01-01" )

for FILE in $FILES; do

  NEWTIME=$( stat -c %z "$FILE" )
  echo "Setting '$FILE' to '$NEWTIME'"
  touch -m --date="$NEWTIME" "$FILE"

done

Speicher und führe das Script anschließend mit folgendem Befehl aus.

sudo -u www-data sh dates.sh

Das Script findet die fehlerhaften Dateien und gibt ihnen ein neues korrektes datum. Anschließend müsst ihr über occ die Files neu in die Datenbank einlesen.

Das geht mit dem Befehl:

sudo -u www-data php /var/www/<path_to_nc>/occ files:scan --all

Natürlich könnte ich auch einfach auf den Thread verlinken. Jedoch bin ich der Meinung, dass es so schneller und schöner zu finden ist als in einem längeren Thread.

CronJob funktioniert nach php-acpu installation nicht mehr

Problem:

Nach der Instalation von php-apcu kann es vorkommen das der Cronjob nicht mehr funktioniert.

Lösung:

Anpassung des cronjob so das die php-apcu einstellungen berücksichtig werden.
1. mit sudo -u www-data crontab -e die Crontab des Webservers aufrufen.
2. Ändere folgende Zeile um PHP-APCu im Cronjob zu aktivieren.
*/5 * * * * php -f /var/www/<path-to-nextcloud>/cron.php --define apc.enable_cli=1

Nextcloud ExternalFiles Dateien werden nicht angezeigt

Problem:

Ein über ExternalFiles eingebundener Speicher enthält Dateien welche die Nextcloud nicht anzeigt. Dies liegt daran das Nextcloud nicht ordentlich/regelmäßig die externen Speicher einliest und indiziert.

Lösung:

Durch anlegen eines cronjobs kann man das Einlesen der Dateien erzwingen.
1. mit sudo -u www-data crontab -e die Crontab des Webservers aufrufen.
2. folgende Zeile hinzufügen um das einscannen alle 30min zu erzwingen.
*/30 * * * * php /var/www/path_to_nc/occ files:scan --all
anstelle von –all kann auch nur ein einzelner User angegeben werden.

Quellen: DokuExternalStorage

Probleme beim einbinden von Nextcloud über WebDav

Problem:

Wenn man eine zwei Faktor Authentifizierung(2Fa) in der Nextcloud eingerichtet hat funktioniert das einbinden über Webdav nicht.

Lösung:

Um dennoch eine Webdav verbindung ohne 2Fa einzurichten Navigiere in die Einstellungen und erstelle einen neuen Token unter dem Reiter sicherheit. Mit den dort gennerierte Zugangsdaten ist der Login über WebDav trotz aktivierter 2Fa möglich.

Wie man eine WebDav verbindung aufbaut ist hier beschrieben. Linux Windows