Inleiding
Dit document beschrijft hoe u fout 11 kunt identificeren, oplossen en verifiëren in de Secure Endpoint Linux-connector.
Achtergrondinformatie
De connector brengt fout 11 op wanneer hij niet in staat is de eBPF-module te 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 te monitoren op kernen die BTF ondersteunen, zonder dat kernel headers moeten worden geïnstalleerd. Deze methode van waarneembaarheid van het systeem is efficiënter en de voorkeursoptie.
De connector valt terug op de legacy eBPF-laadmethode die vereist dat kernel-headers worden geïnstalleerd bij gebruik van Linux-connector-releases ouder dan 1.25 of draaien op een kernel die geen BTF ondersteunt. Deze headers worden gewoonlijk niet meegenomen in standaarddistributie-installaties en moeten afzonderlijk worden geïnstalleerd.
Fout 11 wordt opgeheven als de connector de eBPF-module niet kan laden met een van de benaderingen, wat aangeeft dat het systeem zich in 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 eigenschappen waar is om de eBPF-module te laden die nodig is voor het bewaken van bestandssysteem en netwerkactiviteit:
1. De huidige kernel heeft CONFIG_DEBUG_INFO_BTF
ingeschakeld. (Dit is de voorkeursoptie.)
2. De kernel headers voor de huidige actieve kernel versie zijn op het systeem geïnstalleerd.
Om te controleren of uw momenteel actieve kernel CONFIG_DEBUG_INFO_BTF
ingeschakeld heeft, voert u de opdracht uit:
cat /boot/config-$(uname -r) | grep CONFIG_DEBUG_INFO_BTF
Als u CONFIG_DEBUG_INFO_BTF=
ziet dan ondersteunt uw kernel BTF en de connector kan filesystem en netwerkgebeurtenissen controleren met eBPF.
BTF niet ondersteund
Als u connector versie 1.25 of nieuwer gebruikt, overweeg dan om de kernel te upgraden naar een versie die BTF ondersteunt. Een lijst van distributies die standaard BTF hebben ingeschakeld, vindt u later in dit document.
Als uw huidige kernel geen BTF ondersteunt dan vereist de connector dat de kernel header bestanden worden geïnstalleerd. Fout 11 wordt opgeheven als de connector niet in staat is deze vereiste bestanden te vinden. Gebruik de stappen beschreven in Install the missing kernel header om dit probleem op te lossen.
BTF-ondersteunde distributies
Deze distributies hebben CONFIG_DEBUG_INFO_BTF
standaard ingeschakeld in de nieuwste kernel versie:
- Centos/RHEL 8.2 en hoger
- Ubuntu 20.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 kernen
Als u op een distributie bent die BTF in een latere kernel versie ondersteunt, is het aan te raden dat u uw kernel bijwerkt om fout 11 op te lossen.
Voordat u doorgaat met het updaten van uw kernel, moet u eerst uw Linux-connector upgraden naar versie 1.25.0 of nieuwer om er zeker van te zijn dat uw connector BTF ondersteunt.
Op RPM gebaseerde distributies
Dit deel is van toepassing op:
- Alma Linux
- Amazon Linux
- CentOS Linux
- Oracle Linux Red Hat Compatible Kernel (RHCK)
- Red Hat Enterprise Linux
- Rocky Linux
U kunt als volgt upgraden naar de nieuwste kernel-versie:
- Controleer of er updates beschikbaar zijn voor de kernel:
yum check-update
Als u kernel.x86_64
ziet in de uitvoer dan is er een kernel upgrade beschikbaar.
- Werk het kernel pakket bij:
sudo yum update kernel
- Start uw systeem opnieuw op:
sudo reboot
- Controleer of de nieuwe kernel BTF ondersteunt en dat fout 11 door de connector wordt gewist.
Oracle Linux Unbreakable Enterprise Kernel (UEK)
U kunt als volgt upgraden naar de nieuwste kernel-versie:
- Controleer of er updates beschikbaar zijn voor de kernel:
yum check-update
Als u kernel-uek.x86_64
ziet in de uitvoer dan is er een kernel upgrade beschikbaar.
- Werk het kernel pakket bij:
sudo yum update kernel-uek
- Start uw systeem opnieuw op:
sudo reboot
- Controleer of de nieuwe kernel BTF ondersteunt en dat fout 11 door de connector wordt gewist.
SUSE Linux Enterprise en openSUSE Leap
U kunt als volgt upgraden naar de nieuwste kernel-versie:
- Controleer uw huidige kernelversie:
uname -r
- Geef een lijst van de beschikbare
standaard kernel-
pakketten: zypper search -s --match-exact kernel-default
Het uitvoersignaal wordt weergegeven als:
| kernel-default | package |
|
|
Vind een versie
die groter is dan uw huidige kernelversie, 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 dat fout 11 door de connector wordt gewist.
Debian-gebaseerde distributies
U kunt als volgt upgraden naar de nieuwste kernel-versie:
- Ontvang de nieuwste pakketlijsten:
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 dat fout 11 door de connector wordt gewist.
Ontbrekende kernelheader installeren
Alvorens een ontbrekende kernel header te installeren, probeer je systeem te upgraden naar een BTF ondersteunde versie. Als dit geen oplossing biedt voor fout 11, of als uw distributie nog geen BTF ondersteunt in de laatste versie, dan moet u doorgaan met het installeren van de ontbrekende kernel header.
Op RPM gebaseerde distributies
Dit deel 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
Voor op RPM gebaseerde distributies moet een kernel-ontwikkelpakket
geïnstalleerd worden voor de momenteel actieve kernel. Om te controleren of een kernel-devel
pakket is geïnstalleerd voor de huidige lopende kernel, voert u:
rpm -qa | grep kernel-devel-$(uname -r)
Als er geen resultaten zijn, dan ontbreekt het vereiste kernel-design
pakket en moet worden geïnstalleerd.
Als het juiste kernel-
development pakket is geïnstalleerd en de connector nog steeds fout 11 opheft, zouden enkele van de vereiste bestanden kunnen zijn geknoeid met. Deze opdracht controleert of er bestanden zijn gewijzigd of ontbreken:
rpm --verify --nomtime --noghost kernel-default-devel
Als er bestanden ontbreken of aangepast zijn dan moet het kernel-
development pakket verwijderd en opnieuw geïnstalleerd worden om er zeker van te zijn dat de benodigde bestanden beschikbaar zijn. Deze opdracht geeft geen uitvoer als alle pakketbestanden intact en ongewijzigd zijn.
Resolutie
Om het vereiste kernel-devel
pakket te installeren, voer de opdracht uit:
sudo dnf install -y kernel-devel-$(uname -r)
Verifiëren opnieuw. Fout 11 wordt na ongeveer een minuut gewist door de connector.
Oracle Linux Unbreakable Enterprise Kernel (UEK)
Verifiëren
Oracle Linux UEK vereist dat een kernel-uek-devel
pakket geïnstalleerd is voor de momenteel actieve kernel. Om te controleren of een kernel-uek-devel
pakket is geïnstalleerd voor de huidige lopende kernel, voert u:
rpm -qa | grep kernel-uek-devel-$(uname -r)
Als er geen resultaten zijn, dan ontbreekt het vereiste kernel-uek-devel
pakket en moet worden geïnstalleerd.
Resolutie
Om het vereiste kernel-uek-devel
pakket te installeren, voer de opdracht uit:
sudo dnf install -y kernel-uek-devel-$(uname -r)
Verifiëren opnieuw. 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 kernel-default-devel
pakket geïnstalleerd is voor de momenteel actieve kernel. Om te controleren of het standaard kernel-devel
pakket is geïnstalleerd voor de huidige lopende kernel, voert u:
zypper search -si kernel-default-devel | grep $(uname -r | sed "s/-default//")
Als er geen resultaten zijn, ontbreekt het vereiste kernel-standaard-design
pakket en moet worden geïnstalleerd.
Resolutie
Kernelkoppen installeren
- Om te bepalen of het juiste
kernel-standaard-ontwikkelpakket
voor uw kernel versie beschikbaar is voor installatie, voer 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, neem dan nota van de versie
die in de uitvoer gespecificeerd is en ga 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 bijpassende kernel headers te installeren.
- Installeer het
kernel-default-devel
pakket met deze opdracht en vervang <version>
door de beschikbare versie die in de vorige stap geïdentificeerd is: sudo zypper install --oldpackage kernel-default-devel=
- Controleer of het
kernel-standaard-devel
pakket is geïnstalleerd. Fout 11 wordt na ongeveer een minuut gewist door de connector.
Kernel bijwerken en overeenkomende kernelkoppen installeren
Als het vereiste kernel-standaard-design
pakket niet beschikbaar is, update uw kernel naar een ondersteunde versie en installeer de bijbehorende kernel headers.
- Maak een lijst van de beschikbare
kernel-default
en kernel-default-devel
pakketten 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 |
|
|
Houd rekening met de nieuwe versie die
in het uitvoerdocument is gespecificeerd.
Opmerking: als u geen nieuwere kernel kunt vinden om te upgraden naar, moet u upgraden naar een nieuwere versie voor distributie.
- 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
- Verifiëren opnieuw. 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 lopende kernel, voert u de volgende handelingen uit:
apt list linux-headers-$(uname -r)
Als er geen resultaten zijn, dan ontbreekt het vereiste pakket linux-headers
en moet worden geïnstalleerd.
Resolutie
Om het vereiste pakket van linux-headers
te installeren, voert u de opdracht uit:
sudo apt install linux-headers-$(uname -r)
Verifiëren opnieuw. Fout 11 wordt na ongeveer een minuut gewist door de connector.