亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

前言

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

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

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

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

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

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

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

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

其中第23列分別是主機(jī)字節(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號(hào) linux系統(tǒng)文件系統(tǒng)中的一個(gè)文件系統(tǒng)對(duì)象包括文件、目錄、設(shè)備文件、socket、管道等的元信息。


進(jìn)程文件描述符

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

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

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

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

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

實(shí)現(xiàn)流程

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

抓包

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

解析報(bào)文

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

緩存更新

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

hash查找

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

統(tǒng)計(jì)流量

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

總結(jié)

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

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

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

相關(guān)文章

  • linux如何通過(guò)防火墻iptables做隔離端口的腳本

    linux如何通過(guò)防火墻iptables做隔離端口的腳本

    這篇文章主要介紹了linux如何通過(guò)防火墻iptables做隔離端口的腳本問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • linux中誤刪除程序包恢復(fù)實(shí)例

    linux中誤刪除程序包恢復(fù)實(shí)例

    Linux 下的文件一旦被刪除,是難以恢復(fù)的。對(duì)于家庭單機(jī)使用的Linux ,或者誤刪文件后及時(shí)補(bǔ)救,還是可以恢復(fù)的。下面就來(lái)介紹一下。
    2016-10-10
  • Linux 7.4上安裝配置Oracle 11.2.0.4圖文教程

    Linux 7.4上安裝配置Oracle 11.2.0.4圖文教程

    本文通過(guò)圖文并茂的形式給大家介紹了Linux 7.4上安裝配置Oracle 11.2.0.4的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-12-12
  • 詳解bash中的腳本調(diào)試機(jī)制

    詳解bash中的腳本調(diào)試機(jī)制

    這篇文章主要介紹了bash中的腳本調(diào)試機(jī)制,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • CentOS 6.6服務(wù)器編譯安裝lnmp(Nginx1.6.2+MySQL5.6.21+PHP5.6.3)

    CentOS 6.6服務(wù)器編譯安裝lnmp(Nginx1.6.2+MySQL5.6.21+PHP5.6.3)

    這篇文章主要介紹了CentOS 6.6服務(wù)器編譯安裝lnmp(Nginx1.6.2+MySQL5.6.21+PHP5.6.3),需要的朋友可以參考下
    2016-10-10
  • Linux環(huán)境下Apache開(kāi)啟https服務(wù)的方法詳解

    Linux環(huán)境下Apache開(kāi)啟https服務(wù)的方法詳解

    這篇文章主要介紹了Linux環(huán)境下Apache開(kāi)啟https服務(wù)的方法,結(jié)合實(shí)例形式分析了阿里云環(huán)境下獲取SSL證書(shū)及Apache服務(wù)器安裝、開(kāi)啟SSL的相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • CentOS系統(tǒng)下安裝及配置JDK介紹

    CentOS系統(tǒng)下安裝及配置JDK介紹

    大家好,本篇文章主要講的是CentOS系統(tǒng)下安裝及配置JDK介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • CentOS Apache配置詳解 文字說(shuō)明

    CentOS Apache配置詳解 文字說(shuō)明

    要想在linux上實(shí)現(xiàn)網(wǎng)頁(yè)服務(wù)器(www)需要Apache這個(gè)服務(wù)器軟件,不過(guò)Apache僅能提供最基本的靜態(tài)網(wǎng)站數(shù)據(jù)而已,想要實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)站的話,最好還是要PHP與MySQL的支持,所以下面我們將會(huì)以LAMP(linux+Apache+MySQL+PHP)作為安裝與設(shè)置的介紹。
    2011-03-03
  • Linux如何配置本地yum源(光盤(pán)鏡像掛載)

    Linux如何配置本地yum源(光盤(pán)鏡像掛載)

    這篇文章主要介紹了Linux如何配置本地yum源(光盤(pán)鏡像掛載),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • CentOS7 mini的安裝和靜態(tài)ip設(shè)置教程

    CentOS7 mini的安裝和靜態(tài)ip設(shè)置教程

    本篇文章主要介紹了CentOS7 mini的安裝和靜態(tài)ip設(shè)置教程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02

最新評(píng)論