云安全中心 Linux 客户端使用 eBPF,在内核中采集主机网络行为。采集在内核态完成,不修改业务进程。本文说明这组采集的前提,以及已经验证可以完整采集的内核版本。
采集内容
客户端通过 eBPF 的 kprobe 与 tracepoint 采集以下五项网络行为。下文内核版本,均指这五项都可以采集。
网络行为 | 识别目标 |
发起网络连接 | 主动外联 |
TCP 连接状态变化 | 连接建立与断开 |
端口绑定 | 主机监听的端口 |
UDP 发送(含 DNS 查询) | DNS 访问 |
Unix 域套接字连接 | 本机进程之间的连接 |
已验证内核版本
操作系统 | 内核版本 |
CentOS 8 | 4.18.0-305.3.1.el8.x86_64 4.18.0-348.7.1.el8_5.x86_64 |
al8 内核 | 5.10.134-16.3.al8.x86_64 |
TencentOS Server 3.1 (TK4) | 5.4.119-19.0009.65 5.4.119-19.0009.67.3 |
TencentOS Server 4 | 6.6.92-34.1.oc9.x86_64 6.6.92-34.1.tl4.x86_64 6.6.119-47.8.oc9.x86_64 |
OpenCloudOS Server 9 | 6.6.34-9.oc9.x86_64 6.6.47-12.oc9.x86_64 6.6.117-45.1.oc9.x86_64 6.6.119-49.23.oc9.x86_64 |
Ubuntu | 6.8.12-060812-generic 6.14.11-061411-generic |
说明:
结论只适用于表中的完整内核版本,不能按5.4、6.6 这类主版本号类推到其他构建。
只能采集部分网络行为的内核,不列入上表。
内核版本补充验证后,以更新后的本文和主机实际结果为准。
采集前提
确认内核有提供 BTF,BTF 是内核自带的类型信息,客户端靠它加载 eBPF 程序(如 CentOS 7 默认的 3.10 内核没有 BTF,可安装客户端,但不会启用上述网络行为采集),确认步骤如下:
1. 在 Linux 主机上执行:
ls /sys/kernel/btf/vmlinux
2. 若该文件存在,表示内核提供 BTF。
说明:
有 BTF 只说明具备加载条件,请按下文核对内核版本是否已验证五项网络行为采集。
核对内核
核对当前主机的内核版本,是否已验证可以完整采集上述五项网络行为,核对步骤如下:
1. 在 Linux 主机上执行:
uname -r
2. 将输出的完整内核版本与上文已验证内核版本对照,查找完全相同的内核版本。
可查到:说明上述五项网络行为内容均可采集。
查不到:说明该版本仍在验证中,尚未收录至本文,五项网络行为的采集情况,以该主机实际结果为准。