最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux進程網(wǎng)絡(luò)流量統(tǒng)計的實現(xiàn)過程

 更新時間:2018年09月17日 10:11:51   作者:zhouqiao  
這篇文章主要介紹了Linux進程網(wǎng)絡(luò)流量統(tǒng)計的實現(xiàn)過程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下

前言

linux都有相應(yīng)開源工具實時采集網(wǎng)絡(luò)連接、進程等信息其中網(wǎng)絡(luò)連接一般包括最基本的五元組信息(源地址、目標(biāo)地址、源端口、目標(biāo)端口、協(xié)議號)再加上所屬進程信息pid, exe, cmdline)等。其中這兩項數(shù)據(jù)大多可直接讀取linux /proc目錄下的網(wǎng)絡(luò)狀態(tài)連接文件/proc/net/tcp、/proc/net/udp), 進程狀態(tài)目錄(/proc/pid/xx) 。

在某些應(yīng)用安全場景需要結(jié)合進程網(wǎng)絡(luò)連接、流入流出流量等數(shù)據(jù)可分析出是否在內(nèi)網(wǎng)存在惡意外傳敏感數(shù)據(jù)現(xiàn)象在網(wǎng)絡(luò)監(jiān)控 時發(fā)現(xiàn) 服務(wù)器大量帶寬被占用但不清楚由系統(tǒng)具體哪個進程占用 。為此都需要獲取到更細(xì)粒度的進程級網(wǎng)絡(luò)流量數(shù)據(jù)綜合分析。

在linux proc目錄下可查到主機級網(wǎng)絡(luò)數(shù)據(jù),例如/proc/net/snmp提供了主機各層IP、ICMP、ICMPMsg、TCP、UDP詳細(xì)數(shù)據(jù),/proc/net/netstat 文件 InBcastPkts、 OutBcastPkts、InOctets、OutOctets字段表示主機的收發(fā)包數(shù)、收包字節(jié)數(shù)據(jù)。很可惜沒有 進程級流入流出網(wǎng)絡(luò)流量數(shù)據(jù)。

為此參考nethogs原理實現(xiàn)統(tǒng)計進程級網(wǎng)絡(luò)流量方式。

基本數(shù)據(jù)

涉及proc以下幾個目錄或文件網(wǎng)絡(luò)狀態(tài)文件/proc/net/tcp、/proc/net/udp, 進程文件描述符目錄/proc/pid/fd。

網(wǎng)絡(luò)狀態(tài)文件/proc/net/tcp

我們重點關(guān)注五元組+狀態(tài)+inode號分別在第2、3、4、11列

其中第23列分別是主機字節(jié)序ip:port ,例如”0500000A:0016″ -> “10.0.0.5″, 22

第4列是狀態(tài)信息狀態(tài)字段含義如下:

“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系統(tǒng)文件系統(tǒng)中的一個文件系統(tǒng)對象包括文件、目錄、設(shè)備文件、socket、管道等的元信息。


進程文件描述符

/proc/pid/fd目錄下列出當(dāng)前進程打開的文件信息其中0、1、2表示標(biāo)準(zhǔn)輸入、輸出、錯誤。

網(wǎng)絡(luò)連接是以socket:開頭的文件描述符,其中[]號內(nèi)的是inode號這樣與網(wǎng)絡(luò)狀態(tài)文件/proc/net/tcp下的inode號可對應(yīng)起來

以pid:25133進程為例, 文件描述符是10、12 對應(yīng)inode號分別是512505532、512473483的網(wǎng)絡(luò)連接,同時在下圖中的/proc/net/tcp都可以查找到對應(yīng)連接的詳細(xì)信息。

根據(jù)上述文件信息可以從/proc/net/tcp建立起網(wǎng)絡(luò)連接五元組->inode的映射, 而 /proc/pid/fd建立起連接inode ->進程的映射。

這樣 通過inode號作為橋梁關(guān)聯(lián)起系統(tǒng)內(nèi)的進程與網(wǎng)絡(luò)連接的信息。

實現(xiàn)流程

為了實時獲取網(wǎng)絡(luò)連接流量在linux主機上使用開源libpcap庫來抓取網(wǎng)絡(luò)報文。整個實現(xiàn)流程圖如下包含以下5個關(guān)鍵步驟。

抓包

使用抓包Libpcap庫獲取到網(wǎng)絡(luò)packet結(jié)構(gòu)。

解析報文

解析出packet的五元組(源地址、目標(biāo)地址、源端口、目標(biāo)端口、協(xié)議號)信息和當(dāng)前包的流量大小。

緩存更新

在ConnInodeHash查找五元組組成的key對應(yīng)的inode號如果不存在重新讀取/proc/net/tcp與udp刷新ConnInodeHash緩存建立起連接與inode的映射并重新讀取/proc/pid/fd目錄對所有文件描述符遍歷過濾出以socket:開頭的連接刷新InodeProcessHash緩存重新建立inode與進程的映射。

hash查找

根據(jù)查找到inode號在InodeProcessHash查找相應(yīng)進程pid。

統(tǒng)計流量

根據(jù)報文地址,判斷網(wǎng)絡(luò)連接方向,累加進程流入、流出數(shù)據(jù)。

總結(jié)

對linux主機抓包,結(jié)合網(wǎng)絡(luò)狀態(tài)文件、進程文件描述符實現(xiàn)一種細(xì)粒度的進程級網(wǎng)絡(luò)流量采集方式。

通過linux 文件inode號作為橋梁,關(guān)聯(lián)出進程、網(wǎng)絡(luò)連接的關(guān)系,可以統(tǒng)計進程接收/發(fā)送的總量/平均值等各維度數(shù)據(jù),也可以分析出進程各個網(wǎng)絡(luò)連接的流量數(shù)據(jù),這些在主機流量安全分析、網(wǎng)絡(luò)監(jiān)控排查等場景方面可作為重要依據(jù)。但同時也需要注意的是持續(xù)通過libpcap抓包對主機性能有損耗影響。

以上所述是小編給大家介紹的Linux進程網(wǎng)絡(luò)流量統(tǒng)計的實現(xiàn)過程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Ubuntu基礎(chǔ)設(shè)定:openssh-server的安裝和使用介紹

    Ubuntu基礎(chǔ)設(shè)定:openssh-server的安裝和使用介紹

    今天小編就為大家分享一篇關(guān)于Ubuntu基礎(chǔ)設(shè)定:openssh-server的安裝和使用介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • Linux內(nèi)存泄漏檢測shell腳本

    Linux內(nèi)存泄漏檢測shell腳本

    這篇文章主要為大家詳細(xì)介紹了Linux內(nèi)存泄漏檢測shell腳本,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 詳解Ubuntu16.04下Hadoop 2.7.3的安裝與配置

    詳解Ubuntu16.04下Hadoop 2.7.3的安裝與配置

    本篇文章主要介紹了詳解Ubuntu16.04下Hadoop 2.7.3的安裝與配置,具有一定的參考價值,有興趣的可以了解一下。
    2017-01-01
  • Linux中怎么通過PID號找到對應(yīng)的進程名及所在目錄方法

    Linux中怎么通過PID號找到對應(yīng)的進程名及所在目錄方法

    本篇文章主要介紹了Linux中怎么通過PID號找到對應(yīng)的進程名及所在目錄方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • 關(guān)于Linux vi命令使用詳解(vim編輯器)

    關(guān)于Linux vi命令使用詳解(vim編輯器)

    這篇文章主要介紹了關(guān)于Linux vi命令使用詳解(vim編輯器),文中詳細(xì)列舉了vi命令的用法,還不熟悉的朋友可以多看一下
    2023-03-03
  • 紅帽RHEL8和7的區(qū)別對比分享(Centos8與7參照redhat)

    紅帽RHEL8和7的區(qū)別對比分享(Centos8與7參照redhat)

    這篇文章主要介紹了紅帽RHEL8和7有什么區(qū)別(Centos8與7參照redhat),包括紅帽RHEL8和RHEL7功能區(qū)別對比和RHEL8額外新功能新特性,對紅帽RHEL8和7相關(guān)知識感興趣的朋友跟隨小編一起看看吧
    2023-01-01
  • Linux加載vmlinux調(diào)試

    Linux加載vmlinux調(diào)試

    今天小編就為大家分享一篇關(guān)于Linux加載vmlinux調(diào)試,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Shell中的單中括號和雙中括號的用法詳解

    Shell中的單中括號和雙中括號的用法詳解

    shell中的中括號在條件測試中是使用最頻繁的,無論是中括號還是雙中括號,可用于一些條件的測試:算術(shù)比較、文件屬性測試、字符串比較。這篇文章主要介紹了Shell中的單中括號和雙中括號的用法詳解,需要的朋友可以參考下
    2022-12-12
  • 詳解linux centos yum安裝LAMP環(huán)境

    詳解linux centos yum安裝LAMP環(huán)境

    本篇文章主要介紹了linux centos yum安裝LAMP環(huán)境 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧。
    2016-12-12
  • CentOS7環(huán)境下gcc(版本10.2.0)升級詳細(xì)過程

    CentOS7環(huán)境下gcc(版本10.2.0)升級詳細(xì)過程

    大家好,本篇文章主要講的是CentOS7環(huán)境下gcc(版本10.2.0)升級詳細(xì)過程,感興趣的同學(xué)快來看一看吧,希望對你有幫助
    2021-11-11

最新評論

通许县| 正镶白旗| 苍溪县| 江城| 德钦县| 靖宇县| 奇台县| 大安市| 香河县| 蓬莱市| 湖南省| 偃师市| 喀喇沁旗| 定兴县| 文水县| 定结县| 鲁甸县| 松潘县| 沙湾县| 泌阳县| 上饶市| 潍坊市| 昌吉市| 资阳市| 贵港市| 北宁市| 杂多县| 永川市| 瑞金市| 香河县| 泰安市| 龙井市| 高要市| 乌兰浩特市| 镇坪县| 宁陵县| 唐山市| 禹城市| 荣昌县| 清水县| 榆树市|