Linux进程网络流量统计

linux都有响应开源对象实时采集收集连接、进程等信息此中收集连接一样平常包括最基础的五元组信息(源地址、目标地址、源端口、目标端口、协议号)再加上所属进程信息pid, exe, cmdline)等。此中这两项数据大年夜多可直接读取linux /proc目录下的收集状态连接文件/proc/net/tcp、/proc/net/udp), 进程状态目录(/proc/pid/xx) 。

在某些利用安然场景必要结合进程收集连接、流入流出流量等数据可阐发出是否在内网存在恶意外传敏感数据征象在收集监控 时发明 办事器大年夜量带宽被占用但不清楚由系统详细哪个进程占用 。为此都必要获取到更细粒度的进程级收集流量数据综合阐发。

在linux proc目录下可查到主机级收集数据,例如/proc/net/snmp供给了主机各层IP、ICMP、ICMPMsg、TCP、UDP具体数据,/proc/net/netstat 文件 InBcastPkts、 OutBcastPkts、InOctets、OutOctets字段表示主机的收发包数、收包字节数据。很可惜没有 进程级流入流出收集流量数据。

为此参考nethogs道理实现统计进程级收集流量要领。

基础数据

涉及proc以下几个目录或文件收集状态文件/proc/net/tcp、/proc/net/udp, 进程文件描述符目录/proc/pid/fd。

收集状态文件/proc/net/tcp

我们重点关注五元组+状态+inode号分手在第2、3、4、11列

此中第23列分手是主机字节序ip:port ,例如”0500000A:0016″ -> “10.0.0.5″, 22

第4列是状态信息状态字段含义如下:

“01″: “ESTABLISHED”,

“02″: “SYN_SENT”,

“03″: “SYN_RECV”,

“04″: “FIN_WAIT1″,

“05″: “FIN_WAIT2″,

“06″: “TIME_WAIT”,

“07″: “CLOSE”,

“08″: “CLOSE_WAIT”,

“09″: “LAST_ACK”,

“0A”: “LISTEN”,

“0B”: “CLOSING”

第11列是inode号 linux系统文件系统中的一个文件系统工具包括文件、目录、设备文件、socket、管道等的元信息。

进程文件描述符

/proc/pid/fd目录下列出当提高程打开的文件信息此中0、1、2表示标准输入、输出、差错。

收集连接因此socket:开首的文件描述符,此中[]号内的是inode号这样与收集状态文件/proc/net/tcp下的inode号可对应起来

以pid:25133进程为例, 文件描述符是10、12 对应inode号分手是512505532、512473483的收集连接,同时鄙人图中的/proc/net/tcp都可以查找到对应连接的具体信息。

根据上述文件信息可以从/proc/net/tcp建立起收集连接五元组->inode的映射, 而 /proc/pid/fd建立起连接inode ->进程的映射。

这样 经由过程inode号作为桥梁关联起系统内的进程与收集连接的信息。

实现流程

为了实时获取收集连接流量在linux主机上应用开源libpcap库来抓取收集报文。全部实现流程图如下包孕以下5个关键步骤。

抓包

应用抓包Libpcap库获取到收集packet布局。

解析报文

解析出packet的五元组(源地址、目标地址、源端口、目标端口、协议号)信息和当前包的流量大年夜小。

缓存更新

在ConnInodeHash查找五元组组成的key对应的inode号假如不存在从新读取/proc/net/tcp与udp刷新ConnInodeHash缓存建立起连接与inode的映射并从新读取/proc/pid/fd目录对所有文件描述符遍历过滤出以socket:开首的连接刷新InodeProcessHash缓存从新建立inode与进程的映射。

hash查找

根据查找到inode号在InodeProcessHash查找响应进程pid。

统计流量

根据报文地址,判断收集连接偏向,累加进程流入、流出数据。

总结

对linux主机抓包,结合收集状态文件、进程文件描述符实现一种细粒度的进程级收集流量采集要领。

经由过程linux 文件inode号作为桥梁,关联出进程、收集连接的关系,可以统计进程接管/发送的总量/匀称值等各维度数据,也可以阐发出进程各个收集连接的流量数据,这些在主机流量安然阐发、收集监控排查等场景方面可作为紧张依据。但同时也必要留意的是持续经由过程libpcap抓包对主机机能有损耗影响。

赞(0) 打赏
分享到: 更多 (0)
免责申明:本站所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,不保证真实性,并不承担任何法律责任

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

阿里云优惠网 更专业 更优惠

阿里云优惠券阿里云大礼包