• 沒有找到結果。

系統架構圖

在文檔中 網路流量自動監控系統 (頁 30-0)

第三章 軟體整合及其應用

3.1 系統架構圖

資料流: 背景程式:

NetWork Packets

Ms

ProtoUsage.pl and nwUsage.pl

Mysql.pl

Embedded web in ntop Port 3000

Apache Web Server

PHP index 網頁

PHP Module

NTOP

RRD

圖3-1 系統架構圖

本系統是利用NTOP抓取網路資料,雖然NTOP本身可以將資料以Web 顯示畫面顯示但其顯示的資訊並非都是必需的,所以將其抓取到的資

料導入MySQL Database再利用PHP設計一個所需要的簡單Web管理介面。

此外又結合其他軟體(如RRD Tool)用來作為網路流量監控工具 3.2 NTOP的應用

3.2.1 NTOP和MySQL之結合

| <-- host boundary

|

|

+---+ TCP/IP +---+ +----+

| ntop | <---> | DB Client | <--> | DB |

+---+ | +--- + +----+

|

|

上圖是NTOP 和Mysql 的架構圖。

Ntop 是經由network的傳輸來store資訊。NTOP 程式抓取所需的資 料時會經過一支mysql.pl的程式來連結MySQL Database Clinet 端打 開UDP socket at the port 4000 然後等待Packet 進來,在此之前需 在Mysql 建立好table。

3.2.2 NTOP和RRD Tool的應用

RRD是一個很好用來儲存資料和畫圖的工具,因為它比MRTG可以依 需要做較彈性的設定來顯示所要的資料,故選擇RRD Tool。

3.3 LAMP

LAMP(Linux、Apache、MySQL、PHP),為一具穩定、高效能、及 完全免費的組合且具有豐富的網路資源可供查詢,所以本小組以LAMP 作為系統開發的環境。

3.3.1 MySQL在本系統中的應用

資料庫是由 NTOP 自動產生的,資料庫名稱為 NTOP,共有五個 Tables

+---+

| Tables_in_NTOP | +---+

2、mysql> describe IPtraffic:

+---+---+---+---+---+---+

| Field | Type | Null | Key | Default | Extra |

ICMP:(Internet Control Message Protocol)

* OSPF:(Open Shortest Path First) 開放最短路徑優先

* IGMP:(Internet Group Management Protocol) Internet 群組管 理協定

3、mysql> describe NameMapper:

+---+---+---+---+---+---+

Name:IPaddress 的 Domain Name(區域名稱),經由 DNS 取得

4、mysql> describe NonIPTraffic;

+---+---+---+---+---+---+

| Field | Type | Null | Key | Default | Extra |

+---+---+---+---+---+---+

IPX:(Internet Packet Exchange )

* DLC:( DLC: Data-Link Control):資料連結控制,

* ARP:(Address Resolution Protocol )

* DECNET:(Digital Equipment Corporation )

* ATALKAppleTalk

* NBIOS:( NetBIOS )

5、mysql> describe TCPsessions;

+---+---+---+---+---+---+

| LastSeen | datetime | YES | | NULL | |

| ID | int(11) | | PRI | NULL | auto_increment | +---+---+---+---+---+---+

3.3.2 PHP 及 MySQL 結合

瀏覽器 WWW 伺服器 (Apache) 網頁應用程

式(PHP)

資料庫 (MySQL)

圖 3-2 互動式網頁

利用圖 4-2 的架構結合 LAMP 產生互動式網頁,讓使用者可以查詢資料 本系統中較重要的 mysql 函數:

* mysql_connect([主機名稱][:port][,使用者名稱][,密碼])

//連結 MySQL

* mysql_close(連結指標)

//中斷 MySQL

* mysql_select_db(資料庫名稱,[,連結指標])

//開啟資料庫

* 查詢指令:

SELECT * from table_name;

$sql=”select * from aaa”;

//查詢結果傳回一個查詢指標($sql)

*送出查詢:

mysql_query(查詢指標,連結指標)

*取得查詢結果:

使用 SELECT 查詢資料庫後傳回的是一個結果指標,而不是 PHP 程 式可以直接應用的資料值。所以 PHP 程式要使用查詢結果的資料,還 要經過取得結果的步驟。

取得結果的函數有 mysql_fetch_row(結果指標)、

mysql_fetch_array(結果指標)、mysql_fetch_object(結果指標)。 系統中主要用到 mysql_fetch_array(結果指標[,索引狀態]): 索引 型態是選擇性參數,不加時預設傳回的「陣列」會以傳回的紀錄的欄 位名稱當索引。

◎ 簡單範例:

查詢 NTOP 資料庫中 IPtraffic 的所有資料並以 IPaddress 做遞增 排序,只寫出如何和 MySQL 連線並取得查詢資料

$link=mysql_connect("localhost","root");

//Apache、MySQL 放在同一主機,未設密碼,

//連結伺服器成功後傳回一個連結指標($link)

mysql_select_db("NTOP"); //開啟 NTOP 資料庫

$sql="select * from IPtraffic order by IPaddress";

//查詢結果傳回一個查詢指標($sql)

$result=mysql_query($sql,$link);

//送出查詢,並傳回一個查詢的結果指標($result)

$show=mysql_num_rows($result); //紀錄查詢結果筆數 for ($i=0;$i < $show;$i++)

{ $arr[$i]=mysql_fetch_array($result);

//每執行一次就將一筆 row 的值放入陣列$arr[]

//取得結果,放入陣列$arr[i],以 table 欄位名稱做索引 };

mysql_close($link); //關閉資料庫連接

第四章 系 統 功 能 簡 介

4.1 系統操作流程圖

系統中主要的流程圖有兩種(1)顯示全部資料:無條件查詢 資料庫中 table 的所有資料、(2)查詢指定資料:以輸入資料作條件 的查詢

4.1.1 顯示全部資料

顯示 NTOP 資料庫中的指定的 Table 的所有資料

圖 4-1 顯示全部資料系統流程圖 中斷與 MySQL 之

連結並關閉資料

結束程式

結束程式 顯示錯誤

失敗 訊息 開啟 NTOP

資料庫

顯示查詢結果於 網頁

送入 SQL 語法,

查詢所選擇的 Table

結束程式 顯示錯誤

訊息 連結 MySQL 失敗

開 始

4.1.2 查詢指定資料

在網頁上輸入查詢資料後送至資料庫做查詢

No

重新查詢 YES

SQL 語法檢 失敗

重整查詢關鍵字 成為 SQL 語法

結束程式 顯示錯誤

訊息 開啟 NTOP 失敗

資料庫

顯示查詢結果於 網頁

輸入查詢關鍵字

(IP、時間…)

結束程式 顯示錯誤

訊息 連結 MySQL 失敗

開 始

中斷與 MySQL 之 連結並關閉資料

結束程式

圖 4-2 查詢指定資料系統流程圖

4.2 基本功能簡介

系統功能主要分為:(1)NamwMapper、(2)Hosts、(3)IPtraffic、

(4)NonIPtraffic(5)TCPsessions、(6)TOP 10、(7)RRD Tools、

(8)病毒監控

圖 4-3 基本功能選單

其中 1~5 為 NTOP 自動產生的 DataBase 之 Table 名稱

(1) NameMapper:

本功能可查詢 a.顯示全部資料、b.依 IPaddress 查詢

a.顯示全部資料:顯示 DB 中 NameMapper 的所有資料,範例如圖 4.4

b.依 IPaddress 查詢:查詢特定的 IPaddress,查詢時利用模糊 查詢,範例如圖 4.5

圖 4.4 顯示 NameMapper 表格中所有資料

由圖 4.4 可知共有 9876 筆其 IPaddress 具有相對應的名稱

圖 4.5 輸入 140.134.25.22 查詢 NameMapper 表格的結果

圖 4.5 顯示欲查詢 140.1354.25.223 但卻只記得 140.134.25.22X,則 可輸入 140.134.25.22 作模糊查詢

(2)Hosts:

本功能可查詢 a.顯示全部資料、b.依 IPaddress 查詢

a.顯示全部資料:顯示 DB 中 Hosts 的所有資料,範例如圖 4.6 b.依 IPaddress 查詢:查詢特定的 IPaddress,查詢時利用模糊查 詢,範例如圖 4.7

圖 4.6 顯示 Hosts 表格中所有資料

圖 4.6 顯示共有 4848 筆資料

圖 4.7 輸入 140.134.25.22 查詢 Hosts 表格的結果,為模糊查詢

(3)IPtraffic

本功能可查詢 a.顯示全部資料、b.依 IPaddress 查詢

a.顯示全部資料:顯示 DB 中 IPtraffic 的所有資料,範例如圖 4.8 b.依 IPaddress 查詢:查詢特定 IPaddress 屬於 IP 協定的資料,

查詢時利用模糊查詢,範例如圖 4.9

圖 4.8 顯示 IPtraffic 表格中所有資料

圖 4.8 顯示屬於 IP 協定的共有 4896 筆

圖 4.9 輸入 140.134.25.22 查詢 IPtraffic 表格的結果,為模糊查詢

(4)NonIPtraffic:

本功能可查詢 a.顯示全部資料、b.依 IPaddress 查詢

a.顯示全部資料:顯示 DB 中 NonIPtraffic 的所有資料,範例如圖 4.10

b.依 IPaddress 查詢:查詢特定 IPaddress 不屬於 IP 協定的資料,

查詢時利用模糊查詢,範例如圖 4.11

圖 4.10 顯示 NonIPtraffic 表格中所有資料

圖 4.10 顯示不屬於 IP 協定的共有 4896 筆

圖 4.11 輸入 140.134.25.22 查詢 NonIPtraffic 表格的結果,為模糊查詢

(5)TCPsessions:

本功能可查詢 a.依輸入資料作查詢

a.依輸入資料作查詢:查詢特定 IPaddress 的資料,查詢時利用模 糊查詢,範例如圖 4.12

輸入選項:選查詢 Client 或 Server --> 輸入 IPaddress --> 選擇查 詢何種資料 --> 選擇查詢的時間 --> 按”查詢” --> 顯示結果(可 在查詢結果下方得知輸入的資料)

圖 4.12 查詢 Server 為 140.134.25.22 其 FTP 在 2002-10-01 的連線資料

(6)TOP 10:

本功能可查詢 FTP、HTTP、Telnet、POP3、SMTP、Proxy、Socket、

Others、以上協定所佔的連線資料量的比例。

可利用超連結來做更詳細的查詢:

以查詢 Server 為 140.134.25.22 在 2002-10-01 這一天的 FTP 連線 資料為例,由圖 4.14(各協定所佔的連線資料量的比例)來做進一步 的查詢。

STEP1:點選視窗左方”TOP 10”在圖 4.13 輸入查詢 2002-10-01 的資料,按查詢。

STEP2:出現圖 4.14,點選”通訊協定”欄位中的 FTP 跳至圖 4.15 顯示 FTP 的 TOP 10

STEP3:點選”Server”欄位中的 140.134.25.22 跳至圖 4.16,

顯示 Server 為 140.134.25.22 在 2002-10-01 這一天 的 FTP 連線資料

圖 4.13 輸入欲查詢資料

圖 4.14 各協定所佔的連線資料量的比例

圖 4.15 FTP 的 TOP 10

圖 4.16 利用超連結來做查詢 Server 為 140.134.25.22 其 FTP 在 2002-10-01 的連線資料

圖 4.17 HTTP 的 TOP 10

7)RRD Tools:

本功能為以圖形化顯示連線資料

1、橫軸以時間為單位:時間單位可自行設定,本系統中單位 為 a.時、b.天、c.月

2、縱軸因顯示資料不同,單位也有所不同

3、在圖形下方顯示個別資料的平均值、最大值、最小值 圖 4.18~4.20 為橫軸以小時當單位

圖 4.18 RRD1,下接圖 5-19(FTP、HTTP、X11、Email、NetBIOS、SNMP、NFS)

圖 4.18 縱軸以 1e(10 的冪次方)byte 為單位。ex: 1e+02 = 10^2,

圖 4.19 RRD2,延續圖 4.18,(Multicast、Broadcast、Unicast、TCP、UDP、ICMP)

圖 4.19 縱軸以 byte 當單位

圖 4.20 RRD3,延續圖 4.19(Attemped、Established、Reset、Rejected、Invalid Flags)

圖 4.20 縱軸以 Packet 當單位

(8)病毒監控:

本功能可偵測 Nimda、CodeRed 的攻擊時間

圖 4.21 CodeRed 攻擊時間

圖 4.22 Nimda 攻擊時間

4.3 本系統的優缺點 優點:

(1) 介面簡單易懂:

由於 NTOP 自動產生的網頁對於沒學過網路的人並不易 懂,且其顯示的資料在做流量監控時並非都有需要,所以在將 資料導入資料庫後可自行利用 PHP 等程式做一簡易的管理介 面。

(2) 彈性大:

因為管理介面不是用 NTOP 自動產生的網頁,隨時可以根 據需要自行用 PHP 等可存取 MySQL Database 網頁編輯程式,

產生所需要的 Web 管理介面。

缺點:

(1)無法知道封包內容:

NTOP 只能分析封包的大小及協定無法得知封包內容為何。

4.4 系統未來發展

由於 NTOP 只能分析某一筆連線的協定及大小但無法知道封包內 容,因此未來發展目標為

1. 進一步結合可分析封包內容的技術

2. 由於網管人員無法隨時守在電腦前,可發展當有異常現象時 自動發簡訊到網管人員的手機的技術,以減輕網管人員的負 擔

第 五 章 專 題 心 得 版本,起先發覺 RedHat7.1 不穩,所以改灌 RedHat7.0。由於 RedHat7.0 還沒支援一些的網路卡,所以只得用螃蟹卡。後來在大三下出來 RedHat7.2 支援 D-Link530TX,所以就把系統換成 RedHat7.2。

剛開始練習寫個程式抓系統的時間,用 c 寫要很長,後來發覺可

4.使用 indexmaker 產生流量圖。 本小組是在大二升大三暑假之時,是準備做有關VOIP( voice over IP(internet protocol) )後來聽了一個暑假的VOIP 的相關課程,在 暑假結束之時又因某種關係,決定不做VOIP的東西,後來經”趙啟時”

老師的介紹,認識了NTOP (network on top),”趙啟時老師”要我們 了解這一個網站,和去學Linux系統的,所以那時我才開始接觸Linux

聰”老師親自來指導,老師要我們去認識MRTG的東西,所以我們又去 以結合RRD tools 來使得NTOP 的功能更加的強大,因此小弟就是看了 有關RRD tools 的想關資料並且trace RRD的Code並且建立了NTOP 的 資料庫在Mysql 裡面。我覺得在做專題的過程裡雖然我們真的很坎

面。除了技術性的收穫外,在精神層面也受到了不少的歷練,我受到

好在都有共同的課,彼此都能碰到面,而原本是四個人,但是有一位 同學因課業趕不上而退出,還好是專題開始要分工所以比較沒影響,

但覺得很可惜。專題讓我們在課業和專題之間有一次訓練的機會─如 何妥善安排時間並且提前體驗研究生的生活,老師也給予我們協助,

指導我們如何訂進度並且告訴我們碩士和博士是如何訓練。

對於 Linux 我覺得有很大的發展空間,尤其再結合 embedded system,所以我會更加努力,以後朝著這方面邁進。

第 六 章 參 考 資 料

書籍:

[1]位元文化 編著,PHP4+MySQL4 動態網頁入門實務,文魁資訊股份

[1]位元文化 編著,PHP4+MySQL4 動態網頁入門實務,文魁資訊股份

在文檔中 網路流量自動監控系統 (頁 30-0)

相關文件