Inleiding
In dit artikel wordt uitgelegd hoe u kunt bepalen wanneer vooraf samengestelde kernel modules die vereist zijn voor het bestandssysteem en netwerk bewaking van de Cisco Secure Endpoint Linux-connector niet beschikbaar zijn voor de momenteel actieve systeemkernel, en hoe u handmatig kernel-modules kunt compileren zodat bestandssysteem en netwerk bewaking operationeel zullen zijn.
Voor de toepassing van dit artikel is een "niet-ondersteunde kernel" een kernel-versie die wordt ondersteund door de Linux-connector, maar de specifieke voorgecompileerde kernel-modules die vereist zijn voor de kernel-versie zijn niet opgenomen in het connector-installatiepakket en moeten daarom handmatig worden gecompileerd. Dit kan het geval zijn voor een gegeven Linux-connector-release die draait op een besturingssysteem dat een rolling release-update gebruikt, zoals Amazon Linux 2.
Niet alle Linux distributies en kernel versie ondersteunen het uitvoeren van gecompileerde kernel modules. Dit artikel zal helpen bij het identificeren wanneer handmatig compileren van kernelmodules kan worden gebruikt.
Voorwaarden
Vereisten
- voor op RHEL gebaseerde systemen, met distributie verstrekte gcc geïnstalleerd; kernel-devel geïnstalleerd voor het uitvoeren van kernel.
- Voor systemen die gebruikmaken van een Unbreakable Enterprise Kernel (UEK), is door de distributie geleverde gcc geïnstalleerd; kernel-uek-devel geïnstalleerd voor het uitvoeren van kernel.
Toepasbaarheid
Besturingssysteem
- RHEL/CentOS 7
- Oracle Linux 7 Red Hat Compatible Kernel (RHCK)
- Oracle Linux 7 UEK 5 en hoger
- Amazon Linux 2
Kernel Versies
- De netwerkmodule voor het monitoren van kernelmodules kan worden samengesteld voor kernel versies 2.6 tot en met 4.14.
- De bestandssysteem monitoring kernel module kan worden samengesteld voor kernel versies 3.10 tot en met 4.14.
OPMERKINGEN:
- Op kernel versies 2.6 tot 3.10, gebruikt de connector herrfs (een out-of-tree kernel module) voor bestandssysteem monitoring, wat niet toepasbaar is voor aangepaste compilatie.
- Kernelversies tussen 4.14 en 4.19 zijn niet compatibel met de connector en zijn ook niet van toepassing voor aangepaste compilatie.
- Voor kernel versies 4.19 en nieuwer, de connector gebruikt eBPF modules voor bestandssysteem en netwerk monitoring. Raadpleeg het artikel Linux Kernel-Devel Fault voor meer informatie over het oplossen van deze fout in die kernel versies.
Connectorversies
- 1.16.0 en nieuwer
- 1.18.0 en nieuwer voor het maken van aangepaste UEK kernel modules
Een niet-ondersteunde kern diagnosticeren
Wanneer de connector wordt uitgevoerd op een computer met een niet-ondersteunde kern, worden fout 8 (Real time filesystem monitor is niet gestart) en fout 9 (Real time netwerk monitor is niet gestart) verhoogd en wordt de connector in een gedegenereerde toestand uitgevoerd zonder bestandssysteem of netwerkbewaking.
De volgende stappen kunnen vanuit een terminalvenster worden uitgevoerd om vast te stellen of de connector op een niet-ondersteunde kernel loopt:
- Controleer of fout 8 en/of fout 9 is opgetreden in de connector:
$ /opt/cisco/amp/bin/ampcli status
[logger] Set minimum reported log level to notice
Trying to connect...
Connected.
Status: Connected
Mode: Degraded
Scan: Ready for scan
Last Scan: none
Policy: unsupported kernel example (#7607)
Command-line: Enabled
Faults: 2 Critical
Fault IDs: 8, 9
ID 8 - Critical: Realtime filesystem monitor failed to start.
ID 9 - Critical: Realtime network monitor failed to start.
- Controleer of de huidige lopende kernel tussen 2.6 en 4.14 ligt, inclusief, en of deze niet overeenkomt met een van de voorgecompileerde kernel module versies.
De volgende opdracht toont de huidige actieve kernel-versie:
$ uname -r
4.14.97-90.72.amzn2.x86_64
De beschikbare voorgecompileerde versies van de kernelmodule die met de connector zijn verpakt, worden vermeld met de volgende opdracht:
$ ls /opt/cisco/amp/bin/modules/
4.14.186-146.268.amzn2.x86_64 4.14.198-152.320.amzn2.x86_64 4.14.209-160.335.amzn2.x86_64 4.14.219-161.340.amzn2.x86_64 4.14.225-169.362.amzn2.x86_64
4.14.192-147.314.amzn2.x86_64 4.14.200-155.322.amzn2.x86_64 4.14.209-160.339.amzn2.x86_64 4.14.219-164.354.amzn2.x86_64 4.14.231-173.360.amzn2.x86_64
4.14.193-149.317.amzn2.x86_64 4.14.203-156.332.amzn2.x86_64 4.14.214-160.339.amzn2.x86_64 4.14.225-168.357.amzn2.x86_64 4.14.231-173.361.amzn2.x86_64
In het bovenstaande voorbeeld is kernel versie 4.14.97-90.72.amzn2.x86_64 niet opgenomen in de lijst van beschikbare kernel modules.
De Linux-connector is geschikt voor het compileren van aangepaste kernel-modules als alle volgende eigenschappen waar zijn:
- De fout(en) 8 en/of 9 zijn verhoogd.
- De huidige kernelversie is inclusief tussen 2.6 en 4.14.
- De huidige kernelversie is niet opgenomen in de lijst van voorgecompileerde kernelmodules
/opt/cisco/amp/bin/modules
Resolutie
Als een Linux-connector op een niet-ondersteunde kernel draait, kan de volgende procedure worden gebruikt om aangepaste kernel-modules voor het systeem te compileren:
- Installeer de vereiste systeemafhankelijkheden:
$ yum install gcc
gcc
is nodig om de kernelmodules met specifieke opties samen te stellen.
- Op systemen die een op RHEL gebaseerde kernel gebruiken, gebruikt u de volgende opdracht om het vereiste kernel-pakket te installeren:
$ yum install kernel-devel-$(uname -r)
-
Op systemen die UEK gebruiken, gebruik de volgende opdracht om het vereiste kernel pakket te installeren:
$ yum install kernel-uek-devel-$(uname -r)
Afhankelijk van uw systeem, is kernel-devel-$(uname -r) orkernel-uek-devel-$(uname -r)
nodig om de kernel modules voor de huidige lopende kernel samen te stellen.
-
Draai het script compile_kmods.sh met root priviledges:
$ sudo /opt/cisco/amp/bin/compile_kmods.sh
Het compile_kmods.sh script zal proberen om filesystem en netwerk monitoring kernel modules te compileren voor de huidige lopende kernel versie. De aangepaste kernelmodules worden gecreëerd onder de directory /opt/cisco/amp/extras/modules
. Aan het eind van de uitvoering zal het script de connector automatisch opnieuw opstarten zodat de nieuw samengestelde kernel modules op het systeem kunnen worden geladen.
- Bevestig dat de fouten 8 en 9 zijn gezuiverd:
$ /opt/cisco/amp/bin/ampcli status
[logger] Set minimum reported log level to notice
Trying to connect...
Connected.
Status: Connected
Mode: Normal
Scan: Ready for scan
Last Scan: 2021-06-14 05:53 PM
Policy: unsupported kernel example (#7607)
Command-line: Enabled
Faults: None
Meer opdrachten
Compile_kmods.sh executable is beschikbaar in Secure Endpoint Linux connector versies 1.16.0 en nieuwer, en het is automatisch geïnstalleerd op compatibele OS distributies. De uitvoerbare compilatie_kmods.sh werd verbeterd in Secure Endpoint Linux-connector versie 1.18.0 en nieuwer om de aangepaste compilatie van UEK's te ondersteunen.
Aangepaste compileren kernel modules voor netwerkbewaking worden ondersteund op kernel versies 2.6 tot en met 4.14, terwijl aangepaste compileren kernel modules voor bestandssysteembewaking worden ondersteund op kernel versies 3.10 tot en met 4.14.
Beschikbare opdrachten
OPMERKING: compileren_kmods.sh uitvoerbaar moet met wortelvoorrechten worden in werking gesteld.
Probleemoplossing
Als de fouten 8 en/of 9 nog steeds worden gesignaleerd nadat de stappen voor de oplossing zijn gevolgd, kunnen de volgende stappen worden uitgevoerd om het probleem nader te onderzoeken: