Inleiding
In dit document wordt beschreven hoe fout 11 in de Secure Endpoint Linux-connector kan worden geïdentificeerd, opgelost en geverifieerd.
Achtergrondinformatie
De connector verhoogt fout 11 wanneer deze de eBPF-module niet kan laden die nodig is om de systeemactiviteit en -gebeurtenissen te bewaken.
Vanaf Linux-connector release 1.25 geeft de connector prioriteit aan eBPF CO-RE (Compile Once – Run Everywhere) om systeemgebeurtenissen op kernels te bewaken die BTF ondersteunen, zonder dat kernelheaders moeten worden geïnstalleerd. Deze methode van observeerbaarheid van het systeem is efficiënter en is de voorkeursoptie.
De connector valt terug naar de oude eBPF-laadmethode die vereist dat kernelheaders worden geïnstalleerd bij het gebruik van Linux-connector releases die ouder zijn dan 1,25 of die worden uitgevoerd op een kernel die geen BTF ondersteunt. Deze headers zijn meestal niet inbegrepen in standaard distributie-installaties en moeten afzonderlijk worden geïnstalleerd.
Fout 11 wordt opgeheven als de connector de eBPF-module niet laadt met behulp van een van de benaderingen, wat aangeeft dat het systeem zich in een onbeschermde toestand bevindt. In dit document worden de stappen beschreven die nodig zijn om dit probleem op te lossen.
BTF-ondersteuning bepalen
De connector vereist dat een van deze waarden juist is om de eBPF-module te laden die nodig is voor het bewaken van het bestandssysteem en de netwerkactiviteit:
1. De huidige kernel heeft CONFIG_DEBUG_INFO_BTF
ingeschakeld. (Dit is de voorkeursoptie.)
2. De kernelheaders voor de huidige versie van de actieve kernel zijn op het systeem geïnstalleerd.
Voer de volgende opdracht uit om te controleren of CONFIG_DEBUG_INFO_BTF is
ingeschakeld in de kernel die momenteel wordt uitgevoerd:
cat /boot/config-$(uname -r) | grep CONFIG_DEBUG_INFO_BTF
Als u CONFIG_DEBUG_INFO_BTF=y
ziet, ondersteunt uw kernel BTF en kan de connector bestandssysteem- en netwerkgebeurtenissen bewaken met eBPF.
BTF niet ondersteund
Als de connector versie 1.25 of nieuwer is, overweeg dan om de kernel te upgraden naar een versie die BTF ondersteunt. Een lijst met distributies waarvoor BTF standaard is ingeschakeld, vindt u verderop in dit document.
Als uw huidige kernel geen BTF ondersteunt, moeten de kernelheader-bestanden voor de connector worden geïnstalleerd. Fout 11 wordt verhoogd als de connector deze vereiste bestanden niet kan vinden. Gebruik de stappen beschreven in Installeer de ontbrekende kernelheader om dit probleem op te lossen.
Door BTF ondersteunde distributies
Deze distributies hebben CONFIG_DEBUG_INFO_BTF
standaard ingeschakeld in de nieuwste kernel versie:
- Centos/RHEL 8.2 en hoger
- Ubuntu 10 .04 en hoger
- Oracle Linux 8.5 en hoger
- Debian 11 en hoger
- Alma Linux 8.3 en hoger
- Rocky Linux 8.3 en hoger
- SUSE Enterprise 15 SP4 / openSUSE Leap 15.4 en hoger
Upgrade naar een door BTF ondersteunde kernel
Als u een distributie gebruikt die BTF ondersteunt in een latere kernelversie, heeft het de voorkeur dat u uw kernel bijwerkt om fout 11 op te lossen.
Voordat u doorgaat met het bijwerken van uw kernel, moet u eerst uw Linux-connector upgraden naar versie 1.25.0 of nieuwer om ervoor te zorgen dat uw connector BTF ondersteunt.
RPM-gebaseerde distributies
Deze sectie is van toepassing op:
- Alma Linux
- Amazon Linux
- CentOS Linux
- Oracle Linux Red Hat Compatible Kernel (RHCK)
- Red Hat Enterprise Linux
- Rocky Linux
Om te upgraden naar de nieuwste kernel versie:
- Controleer of er updates beschikbaar zijn voor de kernel:
yum check-update
Als u kernel.x86_64
in de uitvoer ziet, is er een kernel-upgrade beschikbaar.
- Update het kernel pakket:
sudo yum update kernel
- Start uw systeem opnieuw op:
sudo reboot
- Controleer of de nieuwe kernel BTF ondersteunt en of fout 11 door de connector is gewist.
Oracle Linux Unbreakable Enterprise Kernel (UEK)
Om te upgraden naar de nieuwste kernel versie:
- Controleer of er updates beschikbaar zijn voor de kernel:
yum check-update
Als u kernel-uek.x86_64
in de uitvoer ziet, is er een kernel-upgrade beschikbaar.
- Update het kernel pakket:
sudo yum update kernel-uek
- Start uw systeem opnieuw op:
sudo reboot
- Controleer of de nieuwe kernel BTF ondersteunt en of fout 11 door de connector is gewist.
SUSE Linux Enterprise en openSUSE Leap
Om te upgraden naar de nieuwste kernel versie:
- Controleer de huidige versie van de kernel:
uname -r
- De beschikbare
standaardkernel-
pakketten aanbieden:
zypper search -s --match-exact kernel-default
De uitvoer wordt weergegeven als:
| kernel-default | package | | |
Zoek een versie
die groter is dan de huidige kernelversie, zoals bepaald in stap 1.
- Installeer de nieuwe versies van
kernel-default
met de opdracht:
sudo zypper install kernel-default=
- Start uw systeem opnieuw op:
sudo reboot
- Controleer of de nieuwe kernel BTF ondersteunt en of fout 11 door de connector is gewist.
Debian-gebaseerde distributies
Om te upgraden naar de nieuwste kernel versie:
- De meest recente pakketlijsten ophalen:
sudo apt update
- Installeer de nieuwste pakketten:
sudo apt upgrade
- Start uw systeem opnieuw op:
sudo reboot
- Controleer of de nieuwe kernel BTF ondersteunt en of fout 11 door de connector is gewist.
Ontbrekende kernelkoptekst installeren
Voordat u een ontbrekende kernelheader installeert, probeert u uw systeem te upgraden naar een BTF-ondersteunde versie. Als dit fout 11 niet oplost of als uw distributie nog geen BTF in de nieuwste versie ondersteunt, installeert u de ontbrekende kernelheader.
RPM-gebaseerde distributies
Deze sectie is van toepassing op:
- Alma Linux
- Amazon Linux
- CentOS Linux
- Oracle Linux Red Hat Compatible Kernel (RHCK)
- Red Hat Enterprise Linux
- Rocky Linux
Verifiëren
RPM-gebaseerde distributies vereisen dat een kernel-ontwikkelpakket
is geïnstalleerd voor de kernel die momenteel wordt uitgevoerd. Om te controleren of een kernel-ontwikkelpakket
is geïnstalleerd voor de huidige actieve kernel, voert u het volgende uit:
rpm -qa | grep kernel-devel-$(uname -r)
Als er geen resultaten zijn, dan ontbreekt het vereiste kernel-development
pakket en moet het worden geïnstalleerd.
Als het juiste kernel-
ontwikkelpakket is geïnstalleerd en de connector nog steeds fout 11 verhoogt, kunnen sommige van de vereiste bestanden zijn geknoeid. Met deze opdracht wordt gecontroleerd of er bestanden zijn gewijzigd of ontbreken:
rpm --verify --nomtime --noghost kernel-default-devel
Als er bestanden ontbreken of gewijzigd zijn, moet het kernel-
develpackage worden verwijderd en opnieuw geïnstalleerd om ervoor te zorgen dat de vereiste bestanden beschikbaar zijn. Deze opdracht geeft geen uitvoer als alle pakketbestanden intact en ongewijzigd zijn.
resolutie
Voer de volgende opdracht uit om het vereiste kernel-
ontwikkelpakket te installeren:
sudo dnf install -y kernel-devel-$(uname -r)
Opnieuw controleren. Fout 11 wordt na ongeveer een minuut door de connector gewist.
Oracle Linux Unbreakable Enterprise Kernel (UEK)
Verifiëren
Oracle Linux UEK vereist dat een kernel-uek-development
pakket is geïnstalleerd voor de kernel die momenteel wordt uitgevoerd. Om te controleren of een kernel-uek-devel
pakket is geïnstalleerd voor de huidige actieve kernel, voert u het volgende uit:
rpm -qa | grep kernel-uek-devel-$(uname -r)
Als er geen resultaten zijn, ontbreekt het vereiste kernel-uek-
ontwikkelpakket en moet het worden geïnstalleerd.
resolutie
Om het vereiste kernel-uek-devel
pakket te installeren, voert u de opdracht:
sudo dnf install -y kernel-uek-devel-$(uname -r)
Opnieuw controleren. Fout 11 wordt na ongeveer een minuut door de connector gewist.
SUSE Linux Enterprise en openSUSE Leap
Verifiëren
SUSE en openSUSE vereisen dat het pakket kernel-default-devel
geïnstalleerd is voor de kernel die momenteel draait. Als u wilt controleren of het pakket kernel-default-devel
is geïnstalleerd voor de huidige actieve kernel, voert u het volgende uit:
zypper search -si kernel-default-devel | grep $(uname -r | sed "s/-default//")
Als er geen resultaten zijn, dan ontbreekt het vereiste kernel-default-development
pakket en moet het worden geïnstalleerd.
resolutie
Kernelheaders installeren
- Om te bepalen of het juiste
kernel-default-
ontwikkelpakket voor uw kernel-versie beschikbaar is voor installatie, voert u de opdracht uit:
zypper search -s kernel-default-devel | grep $(uname -r | sed "s/-default//")
De output bevat de syntaxis:
| kernel-default-devel | | | |
Als u een vergelijkbare uitvoer ziet, noteert u de versie
die is opgegeven in de uitvoer en gaat u verder met stap 2. Anders slaat u deze sectie over en gebruikt u in plaats daarvan de stappen om de kernel bij te werken en overeenkomende kernel headers te installeren.
- Installeer het pakket
kernel-default-devel
met deze opdracht en vervang <version>
door de beschikbare versie die in de vorige stap is geïdentificeerd:
sudo zypper install --oldpackage kernel-default-devel=
- Controleer of het pakket
kernel-default-devel
is geïnstalleerd. Fout 11 wordt na ongeveer een minuut door de connector gewist.
Kernel bijwerken en overeenkomende kernelkoppen installeren
Als het vereiste kernel-default-development
pakket niet beschikbaar is, werkt u uw kernel bij naar een ondersteunde versie en installeert u de overeenkomende kernel headers.
- Geef een lijst van de beschikbare
standaardpakketten voor kernel
en standaardpakketten voor kernel
met de opdracht:
zypper search -s --match-exact kernel-default kernel-default-devel
Zoek naar overeenkomende versies van de kernel-default
en de kernel-default-devel
pakketten. Voorbeeld:
| kernel-default | package | | |
| kernel-default-devel | package | | |
Let op de nieuwe versie
die in de uitvoer is opgegeven.
Opmerking: als u geen nieuwere kernel kunt vinden om naar te upgraden, moet u upgraden naar een nieuwere versie van de distributierelease.
- Installeer de nieuwe versies van
kernel-default
en kernel-default-devel
met de opdracht:
sudo zypper install kernel-default= kernel-default-devel=
- Start uw systeem opnieuw op:
sudo reboot
- Opnieuw controleren. Fout 11 wordt gewist door de connector.
Debian-gebaseerde distributies
Verifiëren
Debian-gebaseerde distributies vereisen dat een linux-headers
pakket is geïnstalleerd voor de momenteel actieve kernel. Om te controleren of een linux-headers
pakket is geïnstalleerd voor de huidige kernel, voert u:
apt list linux-headers-$(uname -r)
Als er geen resultaten zijn, ontbreekt het vereiste linux-headers-
pakket en moet het worden geïnstalleerd.
resolutie
Om het vereiste linux-headers
pakket te installeren, voert u de opdracht:
sudo apt install linux-headers-$(uname -r)
Opnieuw controleren. Fout 11 wordt na ongeveer een minuut door de connector gewist.