Linux内核auditd是记录网络连接轨迹最轻量可靠的方案,通过监控socket、connect、bind、accept四类系统调用,精准捕获进程连接行为,支持双架构并需结合路径级监控与上下文日志分析。

Host 网络的安全审计中,记录网络连接轨迹的核心不是抓包或记录流量内容,而是捕获进程发起连接动作的系统调用源头。Linux 内核层的 auditd 是最轻量、最可靠、最合规的实现方式——它不依赖应用日志,也不修改业务逻辑,直接在 socket 创建和连接建立的关键节点打点。
重点在于:谁、什么时间、用哪个程序、连到了哪个地址和端口
监控四类关键系统调用
必须同时覆盖 socket、connect、bind、accept,它们分别对应:
-
socket():所有网络通信的起点,创建套接字(含协议族 AF_INET/AF_INET6、类型 SOCK_STREAM) -
connect():主动外连行为(如木马回连、curl 访问 API、ssh 连远程主机) -
bind():绑定本地端口(识别可疑监听,如后门开启 5555 端口) -
accept():服务端真正接收连接(确认监听进程已响应,而非仅 bind)
规则需双架构支持(x86_64 + i386 兼容):
MiniMax 图片理解 + 网络搜索 MCP 工具。适配 Docker 环境(极空间等),支持图片 OCR 识别、图像内容理解、网络搜索。API Key 安全存储在本地 credentials 文件,不暴露在代码中。
-a always,exit -F arch=b64 -S socket,connect,bind,accept -k net_conn -a always,exit -F arch=b32 -S socket,connect,bind,accept -k net_conn
写入 /etc/audit/rules.d/net-conn.rules 后执行:
sudo augenrules --load && sudo systemctl restart auditd
区分主动连接与被动监听
- 查“谁连了外网”:聚焦
connect事件,用ausearch -k net_conn -m connect -i | grep -E "192\.0\.2|203\.0\.113"提取目标 IP 和端口 - 查“哪个服务在监听”:过滤
bind事件,结合aureport -f -i --key net_conn | grep bind,再关联进程名和 UID - 排查异常外连:重点关注非标准路径(如
/tmp/.X11-unix/下执行的connect)、低权限用户调用高危工具(curl/nc/wget)
补充高风险程序执行监控
单靠系统调用会产生大量日志,建议叠加路径级监控缩小范围:
- 监控临时目录可执行行为:
-w /tmp/ -p x -k tmp_net_exec - 监控敏感工具调用:
-w /usr/bin/curl -p x -k curl_call、-w /usr/bin/nc -p x -k nc_call - 拦截非常规位置的 shell 脚本联网:
-w /dev/shm/ -p x -k shm_script
日志分析要带上下文还原
ausearch 默认只输出摘要,需加 -sv 显示系统调用参数(如 connect 的 sockaddr 结构体),才能看到目标 IP 和端口号;再用 aureport -f -i --key net_conn 关联进程名、命令行参数、用户 ID 和时间戳,形成完整连接轨迹。
不复杂但容易忽略

















