Deepfence PacketStreamer 是一款高性能远程数据包捕获与收集工具。它被 Deepfence 的 ThreatStryker 安全可观测性平台用于按需从云工作负载中采集网络流量,以供取证分析。
主要设计目标:
PacketStreamer 传感器 部署在目标服务器上。传感器捕获流量、应用过滤器,然后将流量传输到中央接收器。流量流可选择通过 TLS 进行压缩和/或加密。
PacketStreamer 接收器 接受来自多个远程传感器的流,并将数据包写入本地 pcap 捕获文件。

PacketStreamer 传感器在远程主机上采集原始网络数据包。它使用 BPF 过滤器选择要捕获的数据包,并将它们转发到中央接收器进程,在该进程中以 pcap 格式写入。传感器非常轻量,对远程主机的性能影响极小。PacketStreamer 传感器可在裸机服务器、Docker 主机和 Kubernetes 节点上运行。
PacketStreamer 接收器接受来自多个传感器的网络流量,并将其汇集到一个单一的中央 pcap 文件中。然后您可以处理该 pcap 文件,或将流量实时馈送到您选择的工具中,例如 Zeek、Wireshark、Suricata,或作为机器学习模型的实时数据流。
PacketStreamer 比现有替代方案满足更通用的使用场景。例如,如果您需要一种轻量、高效的方法从多台机器采集原始网络数据以进行集中日志记录和分析,请使用 PacketStreamer。
完整说明请参阅 PacketStreamer 文档。
在构建 PacketStreamer 之前,您需要安装 golang 工具链和 libpcap-dev。
# 前置条件(Ubuntu):sudo apt install golang-go libpcap-dev
git clone https://github.com/deepfence/PacketStreamer.git
cd PacketStreamer/
make
运行一个 PacketStreamer 接收器,监听 8081 端口并将 pcap 输出写入 /tmp/dump_file(参见 receiver.yaml):
./packetstreamer receiver --config ./contrib/config/receiver.yaml
在本地和远程主机上运行一个或多个 PacketStreamer 传感器。编辑 sensor.yaml 中的 服务器地址:
# 在目标主机上运行以捕获和转发流量
# 复制并编辑示例 sensor-local.yaml 文件,添加接收器主机的地址
cp ./contrib/config/sensor-local.yaml ./contrib/config/sensor.yaml
./packetstreamer sensor --config ./contrib/config/sensor.yaml
感谢您使用 PacketStreamer。
如涉及 PacketStreamer 项目的安全问题,请联系 productsecurity at deepfence dot io。
请根据需要提交 GitHub Issue,并加入 Deepfence 社区 Slack 频道。
Deepfence PacketStreamer 项目(此仓库)采用 Apache2 许可证。
对 Deepfence PacketStreamer 项目的贡献同样根据 Apache2 许可证接受,依据 GitHub 的 inbound=outbound 政策。