This document describes the kernel requirements and compatibility matrix for AegisBPF.
See docs/SUPPORT_POLICY.md for versioning and support windows.
| Component | Requirement | Notes |
|---|---|---|
| Kernel | 5.8+ | For ring buffer support |
| cgroup | v2 | Required for cgroup isolation |
| BTF | Required | /sys/kernel/btf/vmlinux must exist |
| bpffs | Mounted | /sys/fs/bpf must be mounted |
| Component | Requirement | Notes |
|---|---|---|
| BPF LSM | Kernel 5.7+ | Required for full enforcement mode |
AegisBPF operates in one of three capability levels based on kernel support:
Requirements:
bpf in /sys/kernel/security/lsm)Capabilities:
EPERM)SIGTERM by default, configurable to SIGKILL, SIGINT, or none)Requirements:
Capabilities:
Limitations:
AegisBPF cannot run if:
| Distribution | Version | Kernel | LSM Enforce | Audit-Only | Notes |
|---|---|---|---|---|---|
| Ubuntu | 22.04 LTS | 5.15+ | Yes* | Yes | Add lsm=bpf to boot params |
| Ubuntu | 24.04 LTS | 6.5+ | Yes* | Yes | Add lsm=bpf to boot params |
| Debian | 12 (Bookworm) | 6.1+ | Yes* | Yes | Add lsm=bpf to boot params |
| RHEL | 9.x | 5.14+ | Yes* | Yes | Add lsm=bpf to boot params |
| Fedora | 38+ | 6.2+ | Yes | Yes | BPF LSM often enabled by default |
| Arch Linux | Rolling | Latest | Yes* | Yes | Depends on kernel config |
| Amazon Linux | 2023 | 6.1+ | Yes* | Yes | Add lsm=bpf to boot params |
* Requires adding lsm=bpf or lsm=landlock,lockdown,yama,bpf to kernel boot parameters.
Edit /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash lsm=landlock,lockdown,yama,bpf"
Then run:
sudo update-grub
sudo reboot
Edit boot entry in /boot/loader/entries/*.conf:
options root=... lsm=landlock,lockdown,yama,bpf
Check if BPF LSM is enabled:
cat /sys/kernel/security/lsm
# Should include "bpf"
Or use AegisBPF:
aegisbpf health
These kernel options are required or recommended:
| Option | Status | Purpose |
|---|---|---|
CONFIG_BPF |
Required | Basic BPF support |
CONFIG_BPF_SYSCALL |
Required | BPF syscall |
CONFIG_BPF_JIT |
Recommended | JIT compilation for performance |
CONFIG_BPF_LSM |
Required for enforcement | BPF LSM support |
CONFIG_CGROUPS |
Required | cgroup support |
CONFIG_CGROUP_BPF |
Required | BPF cgroup support |
CONFIG_DEBUG_INFO_BTF |
Required | BTF generation |
Check kernel config:
# From /proc/config.gz (if available)
zcat /proc/config.gz | grep CONFIG_BPF
# From boot config
cat /boot/config-$(uname -r) | grep CONFIG_BPF
cat /sys/kernel/security/lsm
Add lsm=bpf to boot parameters (see above)
BTF is required for CO-RE (Compile Once, Run Everywhere) support.
ls -la /sys/kernel/btf/vmlinux
CONFIG_DEBUG_INFO_BTF=ymount | grep cgroup
# Should show cgroup2 on /sys/fs/cgroup
# Add to kernel boot params
systemd.unified_cgroup_hierarchy=1
Mount bpffs:
sudo mount -t bpf bpf /sys/fs/bpf
Or add to /etc/fstab:
bpf /sys/fs/bpf bpf defaults 0 0
AegisBPF automatically detects available features at startup. Use the health command to see detected capabilities:
aegisbpf health
Example output:
euid: 0
kernel_version: 6.5.0-44-generic
cgroup_v2: ok
bpffs: ok
btf: ok
bpf_obj_path: /home/user/aegisbpf/build/aegis.bpf.o
bpf_lsm_enabled: yes
ringbuf_support: yes
tracepoints: yes
enforcement_capability: Full
capability_explanation: Full enforcement available. BPF LSM is enabled, allowing file access to be blocked and processes to be killed.
break_glass_active: no
lsm_list: landlock,lockdown,yama,bpf,integrity
AegisBPF implements graceful degradation:
This ensures AegisBPF can provide value (at least audit logging) on systems without full BPF LSM support.