Einleitung
In diesem Dokument wird beschrieben, wie Fehler 11 im Secure Endpoint Linux-Connector identifiziert, behoben und überprüft wird.
Hintergrundinformationen
Der Connector löst Fehler 11 aus, wenn das eBPF-Modul zur Überwachung der Systemaktivität und -ereignisse nicht geladen werden kann.
Ab Linux Connector Release 1.25 priorisiert der Connector eBPF CO-RE (Compile Once - Run Everywhere), um Systemereignisse auf Kernel zu überwachen, die BTF unterstützen, ohne dass Kernel-Header installiert werden müssen. Diese Methode der Systembeobachtbarkeit ist effizienter und die bevorzugte Option.
Der Connector greift auf die ältere eBPF-Lademethode zurück, die die Installation von Kernel-Headern erfordert, wenn Linux-Connector-Releases älter als 1.25 verwendet werden oder auf einem Kernel ausgeführt wird, der BTF nicht unterstützt. Diese Header sind in der Regel nicht in Standardverteilungsinstallationen enthalten und müssen separat installiert werden.
Der Fehler 11 wird ausgelöst, wenn der Steckverbinder das eBPF-Modul bei einem der beiden Ansätze nicht lädt. Dies weist darauf hin, dass sich das System in einem ungeschützten Zustand befindet. In diesem Dokument sind die erforderlichen Schritte zur Behebung des Problems aufgeführt.
Bestimmen der BTF-Unterstützung
Für den Connector muss einer dieser Werte zutreffen, um das eBPF-Modul zu laden, das zur Überwachung des Dateisystems und der Netzwerkaktivität erforderlich ist:
1. Im aktuellen Kernel ist CONFIG_DEBUG_INFO_BTF
aktiviert. (Dies ist die bevorzugte Option.)
2. Die Kernel-Header für die aktuelle Kernel-Version sind auf dem System installiert.
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob CONFIG_DEBUG_INFO_BTF
auf Ihrem aktuellen Kernel aktiviert ist:
cat /boot/config-$(uname -r) | grep CONFIG_DEBUG_INFO_BTF
Wenn Sie CONFIG_DEBUG_INFO_BTF=y
sehen, dann unterstützt Ihr Kernel BTF und der Connector kann Dateisystem- und Netzwerkereignisse mit eBPF überwachen.
BTF wird nicht unterstützt
Wenn der Connector Version 1.25 oder neuer läuft, sollten Sie den Kernel auf eine Version aktualisieren, die BTF unterstützt. Eine Liste der Distributionen, bei denen BTF standardmäßig aktiviert ist, finden Sie weiter unten in diesem Dokument.
Wenn Ihr aktueller Kernel BTF nicht unterstützt, muss der Connector die Kernel-Header-Dateien installieren. Der Fehler 11 wird ausgelöst, wenn der Connector die erforderlichen Dateien nicht finden kann. Verwenden Sie die unter Fehlenden Kernel-Header installieren beschriebenen Schritte, um dieses Problem zu beheben.
BTF-unterstützte Distributionen
Bei diesen Distributionen ist CONFIG_DEBUG_INFO_BTF
standardmäßig in der neuesten Kernelversion aktiviert:
- Centos/RHEL 8.2 und höher
- Ubuntu 20.04 und höher
- Oracle Linux 8.5 und höher
- Debian 11 und höher
- Alma Linux 8.3 und höher
- Rocky Linux 8.3 und höher
- SUSE Enterprise 15 SP4 / openSUSE Leap 15.4 und höher
Upgrade auf einen BTF-unterstützten Kernel
Wenn Sie sich in einer Distribution befinden, die BTF in einer späteren Kernel-Version unterstützt, ist es besser, dass Sie Ihren Kernel aktualisieren, um Fehler 11 zu beheben.
Bevor Sie mit der Aktualisierung Ihres Kernels fortfahren, aktualisieren Sie zuerst Ihren Linux-Connector auf Version 1.25.0 oder neuer, um sicherzustellen, dass Ihr Connector BTF unterstützt.
RPM-basierte Distributionen
Dieser Abschnitt gilt für:
- Alma Linux
- Amazon Linux
- CentOS Linux
- Oracle Linux Red Hat Compatible Kernel (RHCK)
- Red Hat Enterprise Linux
- Rocky Linux
So aktualisieren Sie auf die neueste Kernel-Version:
- Überprüfen Sie, ob Updates für den Kernel verfügbar sind:
yum check-update
Wenn Sie kernel.x86_64
in der Ausgabe sehen, ist ein Kernel-Upgrade verfügbar.
- Aktualisieren Sie das Kernelpaket:
sudo yum update kernel
- Starten Sie das System neu:
sudo reboot
- Stellen Sie sicher, dass der neue Kernel BTF unterstützt und dass Fehler 11 durch den Connector gelöscht wird.
Oracle Linux Unbreakable Enterprise Kernel (UEK)
So aktualisieren Sie auf die neueste Kernel-Version:
- Überprüfen Sie, ob Updates für den Kernel verfügbar sind:
yum check-update
Wenn Sie kernel-uek.x86_64
in der Ausgabe sehen, dann ist ein Kernel-Upgrade verfügbar.
- Aktualisieren Sie das Kernelpaket:
sudo yum update kernel-uek
- Starten Sie das System neu:
sudo reboot
- Stellen Sie sicher, dass der neue Kernel BTF unterstützt und dass Fehler 11 durch den Connector gelöscht wird.
SUSE Linux Enterprise und openSUSE Leap
So aktualisieren Sie auf die neueste Kernel-Version:
- Überprüfen Sie Ihre aktuelle Kernel-Version:
uname -r
- Listen Sie die verfügbaren
kernel-default-
Pakete auf: zypper search -s --match-exact kernel-default
Die Ausgabe wird wie folgt angezeigt:
| kernel-default | package |
|
|
Suchen Sie eine Version
, die größer ist als Ihre aktuelle Kernelversion, die in Schritt 1 ermittelt wurde.
- Installieren Sie die neuen Versionen von
kernel-default
mit dem Befehl: sudo zypper install kernel-default=
- Starten Sie das System neu:
sudo reboot
- Stellen Sie sicher, dass der neue Kernel BTF unterstützt und dass Fehler 11 durch den Connector gelöscht wird.
Debian-basierte Distributionen
So aktualisieren Sie auf die neueste Kernel-Version:
- Aktuelle Paketlisten abrufen:
sudo apt update
- Installieren Sie die neuesten Pakete:
sudo apt upgrade
- Starten Sie das System neu:
sudo reboot
- Stellen Sie sicher, dass der neue Kernel BTF unterstützt und dass Fehler 11 durch den Connector gelöscht wird.
Fehlenden Kernel-Header installieren
Bevor Sie einen fehlenden Kernel-Header installieren, versuchen Sie, Ihr System auf eine BTF-unterstützte Version zu aktualisieren. Wenn Fehler 11 dadurch nicht behoben wird oder Ihre Distribution BTF in der neuesten Version noch nicht unterstützt, dann setzen Sie die Installation des fehlenden Kernel-Headers fort.
RPM-basierte Distributionen
Dieser Abschnitt gilt für:
- Alma Linux
- Amazon Linux
- CentOS Linux
- Oracle Linux Red Hat Compatible Kernel (RHCK)
- Red Hat Enterprise Linux
- Rocky Linux
Überprüfung
RPM-basierte Distributionen erfordern, dass für den aktuell laufenden Kernel ein kernel-devel
Paket installiert ist. Um zu überprüfen, ob ein kernel-devel
Paket für den aktuell laufenden Kernel installiert ist, führen Sie Folgendes aus:
rpm -qa | grep kernel-devel-$(uname -r)
Wenn keine Ergebnisse vorliegen, fehlt das erforderliche kernel-devel
Paket und muss installiert werden.
Wenn das richtige kernel-
develpackage installiert ist und der Connector immer noch Fehler 11 auslöst, könnten einige der benötigten Dateien manipuliert worden sein. Mit diesem Befehl wird geprüft, ob Dateien geändert wurden oder fehlen:
rpm --verify --nomtime --noghost kernel-default-devel
Wenn Dateien fehlen oder geändert werden, muss das
Kernel-Entwicklungspaket deinstalliert und neu installiert werden, um sicherzustellen, dass die erforderlichen Dateien verfügbar sind. Dieser Befehl gibt keine Ausgabe aus, wenn alle Paketdateien intakt und unverändert sind.
Auflösung
Um das erforderliche kernel-devel-
Paket zu installieren, führen Sie den folgenden Befehl aus:
sudo dnf install -y kernel-devel-$(uname -r)
Überprüfen. Fehler 11 wird nach ca. einer Minute durch den Steckverbinder behoben.
Oracle Linux Unbreakable Enterprise Kernel (UEK)
Überprüfung
Oracle Linux UEK setzt voraus, dass für den aktuell laufenden Kernel ein kernel-uek-devel
Paket installiert ist. Um zu überprüfen, ob ein kernel-uek-devel
-Paket für den aktuell laufenden Kernel installiert ist, führen Sie Folgendes aus:
rpm -qa | grep kernel-uek-devel-$(uname -r)
Wenn keine Ergebnisse vorliegen, fehlt das erforderliche kernel-uek-devel
-Paket und muss installiert werden.
Auflösung
Um das erforderliche kernel-uek-devel-
Paket zu installieren, führen Sie den folgenden Befehl aus:
sudo dnf install -y kernel-uek-devel-$(uname -r)
Überprüfen. Der Fehler 11 wird nach ca. einer Minute durch den Steckverbinder behoben.
SUSE Linux Enterprise und openSUSE Leap
Überprüfung
SUSE und openSUSE erfordern, dass das kernel-default-devel
Paket für den aktuell laufenden Kernel installiert ist. Um zu überprüfen, ob das kernel-default-devel
-Paket für den aktuell laufenden Kernel installiert ist, führen Sie Folgendes aus:
zypper search -si kernel-default-devel | grep $(uname -r | sed "s/-default//")
Wenn keine Ergebnisse vorliegen, fehlt das erforderliche kernel-default-devel
-Paket und muss installiert werden.
Auflösung
Kernel-Header installieren
- Um festzustellen, ob das richtige
kernel-default-devel
-Paket für Ihre Kernel-Version für die Installation verfügbar ist, führen Sie den folgenden Befehl aus: zypper search -s kernel-default-devel | grep $(uname -r | sed "s/-default//")
Die Ausgabe enthält die Syntax:
| kernel-default-devel |
|
|
|
Wenn Sie eine ähnliche Ausgabe sehen, notieren Sie sich die in der Ausgabe angegebene Version
und fahren Sie mit Schritt 2 fort. Andernfalls überspringen Sie diesen Abschnitt und verwenden stattdessen die Schritte, um den Kernel zu aktualisieren und passende Kernel-Header zu installieren.
- Installieren Sie das
kernel-default-devel
-Paket mit diesem Befehl, und ersetzen Sie <version>
durch die verfügbare Version, die im vorherigen Schritt angegeben wurde: sudo zypper install --oldpackage kernel-default-devel=
- Überprüfen Sie, ob das Paket
kernel-default-devel
installiert wurde. Fehler 11 wird nach ca. einer Minute durch den Steckverbinder behoben.
Kernel aktualisieren und passende Kernel-Header installieren
Wenn das erforderliche kernel-default-devel
Paket nicht verfügbar ist, aktualisieren Sie Ihren Kernel auf eine unterstützte Version und installieren Sie die passenden Kernel-Header.
- Listen Sie die verfügbaren Pakete
kernel-default
und kernel-default-devel
mit dem Befehl: zypper search -s --match-exact kernel-default kernel-default-devel
Suchen Sie nach passenden Versionen der Pakete kernel-default
und kernel-default-devel
. Beispiele:
| kernel-default | package |
|
|
| kernel-default-devel | package |
|
|
Notieren Sie sich die in der Ausgabe angegebene neue Version
.
Hinweis: Wenn Sie keinen neueren Kernel finden, auf den Sie aktualisieren können, müssen Sie ein Upgrade auf eine neuere Distribution Release-Version durchführen.
- Installieren Sie die neuen Versionen von
kernel-default
und kernel-default-devel
mit dem Befehl: sudo zypper install kernel-default=
kernel-default-devel=
- Starten Sie das System neu:
sudo reboot
- Überprüfen. Fehler 11 wird durch den Anschluss behoben.
Debian-basierte Distributionen
Überprüfung
Debian-basierte Distributionen erfordern, dass für den aktuell laufenden Kernel ein linux-headers
Paket installiert ist. Um zu überprüfen, ob ein Linux-Headers
-Paket für den aktuell laufenden Kernel installiert ist, führen Sie Folgendes aus:
apt list linux-headers-$(uname -r)
Wenn keine Ergebnisse vorliegen, fehlt das erforderliche linux-headers
Paket und muss installiert werden.
Auflösung
Führen Sie den folgenden Befehl aus, um das erforderliche linux-headers
-Paket zu installieren:
sudo apt install linux-headers-$(uname -r)
Überprüfen. Fehler 11 wird nach ca. einer Minute durch den Steckverbinder behoben.