Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

91
TRѬӠNG ĈҤI HӐC KHOA HӐC TӴ NHIÊN KHOA CÔNG NGHӊ THÔNG TIN MÔN CÔNG NGHӊ PHҪN MӄM GIANG QUӔC MINH – HӖ PHҤM THÁI VINH XÂY DͰNG NG 'NG BɫT GÓI TIN CHO VIʃC PHÂN TÍCH THÔNG TIN NG PHC 9 QUɟN LÝ KHOÁ LUҰN CӰ NHÂN TIN HӐC TP. HCM, M 2005

Transcript of Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Page 1: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

TR NG I H C KHOA H C T NHIÊNKHOA CÔNG NGH THÔNG TIN

MÔN CÔNG NGH PH N M M

GIANG QU C MINH – H PH M THÁI VINH

XÂY D NG NG NG B T GÓI TIN CHOVI C PHÂN TÍCH THÔNG TIN NG PH C

QU N LÝ

KHOÁ LU N C NHÂN TIN H C

TP. HCM, M 2005

Page 2: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

TR NG I H C KHOA H C T NHIÊNKHOA CÔNG NGH THÔNG TIN

MÔN CÔNG NGH PH N M M

GIANG QU C MINH - 0112016 H PH M THÁI VINH - 0112081

XÂY D NG NG NG B T GÓI TIN CHOVI C PHÂN TÍCH THÔNG TIN NG PH C

QU N LÝ

KHÓA LU N C NHÂN TIN H C

GIÁO VIÊN H NG D N

GVC CAO NG TÂN

NIÊN KHÓA 2001 – 2005

Page 3: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

NH N XÉT A GIÁO VIÊN H NG D N

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

Tp.HCM, ngày…..tháng….n m 2005

Page 4: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

NH N XÉT A GIÁO VIÊN PH N BI N

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

...........................................................................................................................

Tp.HCM, ngày…..tháng….n m 2005

Page 5: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

L I CÁM N

Chúng em xin chân thành cám n Ban giám hi u, quý Th y cô a

tr ng i H c Khoa H c T Nhiên TP. H Chí Minh, c bi t là các Th y

cô trong Khoa Công ngh Thông tin ã t n tình gi ng y, trang cho chúng

em nh ng ki n th c c n thi t, b ích trong su t nh ng n m c t p i tr ng.

Chúng em xin chân thành m n Th y Cao ng Tân, ng i Th y ã

t n tình quan tâm h ng d n, giúp chúng em trong su t th i gian làm lu n

n này.

Chúng con xin g i lòng bi t n sâu s c và s kính tr ng n ông bà, cha

, cùng toàn th gia ình, nh ng ng i ã nuôi y chúng con tr ng thành

nh ngày hôm nay.

Chúng tôi xin chân thành cám n s giúp , ng viên, nh n xét, óng

góp ý ki n c a các anh ch , n bè trong quá trình th c hi n lu n v n này.

TP. H Chí Minh, 7/2005

Nhóm sinh viên th c hi n

Giang Qu c Minh – H Ph m Thái Vinh

Page 6: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

B C C A LU N V N

Lu n v n g m có 3 ph n và 7 ch ng

PH N 1: T NG QUAN

Ch ng 1 Gi i thi u v tài

PH N 2: TÌM HI U CÁC V N L P TRÌNH. Ph n này gi i thi u

các v n l p trình c n nh t xây d ng 1 ng ng có kh ng b t

các gói tin và cho phép ng i dùng có th i u khi n t xa qua môi

tr ng ng.

Ch ng 2. Tìm hi u th vi n l p trình m ng c p th p libpcap, ây là

“trái tim” a h u h t các ng ng b t gói tin mã ngu n m hi n nay.

Ch ngg 3. Gi i thi u MySQL, m t h qu n tr s d li u t m trung

c s d ng ph bi n nh t hi n nay.

Ch ng 4. Tìm hi u thu t l p trình socket vi t các ng ng trên

môi tr ng ng

Ph n 3 Xây ng ng ng PacketCap. Ph n này s d ng các ki n

th c ã tìm hi u ch ng 2, 3, 4 xây d ng m t ng ng b t gói tin,

u các k t qu b t c vào c s d li u phân tích các thông tin

ng.

Ch ng 5. Phân tích, thi t k ng ng PacketCap

Ch ng 6. Cài t và th nghi m PacketCap

Ch ng 7. T ng k t. Ch ng này trình bày nh ng k t qu t c,

nh ng n ch và h ng phát tri n PacketCap trong t ng lai.

Page 7: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Các danh c

11

M C C

DANH SÁCH HÌNH.................................................................................... 14DANH SÁCH NG .................................................................................. 15PH N 1: T NG QUAN .............................................................................. 16Ch ng 1: Gi i thi u tài .......................................................................... 17

1.1. t v n .......................................................................................... 171.2. Gi i thi u tài.................................................................................. 181.3. Yêu c u a tài .............................................................................. 19

PH N 2: TÌM HI U CÁC V N L P TRÌNH ...................................... 20Ch ng 2 : Th vi n l p trình ng libpcap ................................................ 21

2.1. Gi i thi u libpcap............................................................................... 212.2. Cài t th vi n libpcap ..................................................................... 213.3. Các b c xây d ng ch ng trình s d ng libpcap.............................. 223.4. Chi ti t các b c ................................................................................ 23

3.4.1. Ch n Interface( card ng) ......................................................... 233.4.2. M device l ng nghe( sniff) d li u......................................... 243.4.3. c traffic .................................................................................... 25

Ch ng 3: H qu n tr s d li u MySQL ............................................... 343.1. Gi i thi u v MySQL......................................................................... 343.2. Cài t MySQL.................................................................................. 34

3.2.1. Cài t MySQL t các gói nh phân ............................................ 343.2.2. Cài t t mã ngu n..................................................................... 35

3.3. S d ng MySQL ................................................................................ 363.3.1. L nh mysql .................................................................................. 363.3.2. L nh mysqladmin ........................................................................ 363.3.3. L nh mysqlshow.......................................................................... 363.3.4. L nh grant.................................................................................... 373.3.5. L nh Revoke................................................................................ 383.3.6. Ví d v t o m t c s d li u ..................................................... 38

3.4. L p trình MySQL trên ngôn ng C .................................................... 384.4.1 mysql_init..................................................................................... 383.4.2 mysql_real_connection ................................................................. 393.4.3 mysql_query ................................................................................. 403.4.4. mysql_affected_rows ................................................................... 403.4.5. mysql_store_result ....................................................................... 403.4.6. mysql_fetch_row ......................................................................... 403.4.7. mysql_row_seek .......................................................................... 413.4.8. mysql_free_result ........................................................................ 41

Page 8: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Các danh c

12

Ch ng 4: L p trình socket .......................................................................... 424.1. Gi i thi u v l p trình socket ............................................................. 424.2. Nguyên lý ho t ng a socket......................................................... 424.3. L p trình v i socket ........................................................................... 44

4.3.1. Các thu c tính a socket............................................................. 444.3.1.1. Vùng( domain) ...................................................................... 445.3.1.2. Ki u socket(type)................................................................... 464.3.1.3. Giao th c a socket( protocol) ............................................. 47

4.3.2. o socket.................................................................................... 484.3.3. nh a ch cho socket................................................................ 494.3.4. t tên cho socket........................................................................ 514.3.5. o hàng i cho socket .............................................................. 524.3.6. Ch và ch p nh n k t n i............................................................. 534.3.7. Yêu c u k t n i ............................................................................ 544.3.8. óng k t n i ................................................................................ 554.3.9. Giao ti p b ng socket................................................................... 564.4. S d ng socket trong ng ng minh a ....................................... 58

PH N 3: XÂY D NG NG NG TH NGHI M PACKETCAP ......... 59Ch ng 5: Phân tích và thi t k PacketCap .................................................. 60

5.1. Kh o sát hi n tr ng ............................................................................ 605.2. Phân tích và xác nh yêu c u ............................................................ 61

5.2.1. Phân tích ...................................................................................... 615.2.2. Xác nh yêu c u ......................................................................... 61

5.3. Các h ng xây d ng ng ng PacketCap......................................... 635.3.1. Phân tích h ng phát tri n d a trên Ethereal................................ 635.3.2. Phân tích h ng phát tri n d a trên libcap ................................... 645.3.3. L a ch n h ng phát tri n PacketCap ......................................... 64

5.4. Các thành ph n PacketCap ................................................................. 655.5. Xây d ng mô hình use case................................................................ 66

5.5.1. Xác nh Actor và use case .......................................................... 665.5.2. Mô hình use case ......................................................................... 66

5.6. t use case.................................................................................... 675.6.1. Connect........................................................................................ 675.6.2. StartCapture................................................................................. 685.6.3. StopCapture ................................................................................. 695.6.4. GetFilter....................................................................................... 705.6.5. Terminate..................................................................................... 71

Page 9: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Các danh c

13

5.7.Thi t k d li u ................................................................................... 725.7.1. Phân tích các h ng l u tr ......................................................... 725.7.2. Thi t k s li u................................................................... 75

5.7.2.1. Danh sách các i t ng (table)............................................. 755.7.2.2 Table PACKET ...................................................................... 756.7.2.4. Table IP ................................................................................. 765.7.2.5. Table TCP ............................................................................. 765.7.2.6. Table UDP............................................................................. 775.7.2.7 Table ICMP ............................................................................ 775.7.2.8 Table IGMP............................................................................ 785.7.2.9. Table ARP............................................................................. 80

5.8. Xây d ng PCServer( server), PCManager(client)............................... 815.8.1. L u PCServer ......................................................................... 815.8.2. L u PCManager( Client)......................................................... 825.8.3. C u trúc d li u trao i gi a PCServer và PCManager............... 83

5.9.Thi t k giao di n PCManager( phiên n ch y trên Windows) .......... 85Ch ng 6: Cài t và th nghi m................................................................. 87

6.1. Cài t................................................................................................ 876.2. Th nghi m........................................................................................ 88

6.2.1. Mô hình th nghi m 1.................................................................. 886.2.2. Mô hình th nghi m 2.................................................................. 896.2.3. Mô hình th nghi m 3.................................................................. 90

Ch ng 7: T ng k t ..................................................................................... 917.1. K t lu n.............................................................................................. 91

7.1.1. K t qu t c.......................................................................... 917.1.2. n ch ........................................................................................ 91

7.2. H ng phát tri n ................................................................................ 92PH L C H ng d n s d ng PacketCap ................................................... 93

1.Ch ng trình PCServer.......................................................................... 932. Ch ng trình PCManager ..................................................................... 93

2.1. PCManager trên môi tr ng Linux ................................................. 932.2. PCManager trên môi tr ng Windows............................................ 94

TÀI LI U THAM KH O............................................................................ 95

Page 10: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Các danh c

14

DANH SÁCH HÌNH

Hình 5-1 Các thành ph n a PacketCap...................................................... 65Hình 5-2 Mô hình use case ........................................................................... 66Hình 5-3 Mô hình l u tr 1 .......................................................................... 72Hình 5-4 Mô hình l u tr 2 .......................................................................... 73Hình 5-5 Mô hình l u tr 3 .......................................................................... 74Hình 5-6 L u PCServer........................................................................... 81Hình 5-7 L u PCManager ....................................................................... 82Hình 6-1 Mô hình th nghi m 1 ................................................................... 88Hình 6-2 Mô hình th nghi m 2 ................................................................... 89Hình 6-3 Mô hình th nghi m 3 ................................................................... 90

Page 11: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Các danh c

15

DANH SÁCH NG

ng 4-1 Các giá tr c a domain .................................................................. 48ng 4-2 Các mã l i a hàm bind() ............................................................ 51ng 4-3 Các mã l i a domain AF_UNIX ................................................ 52ng 4-4 Mã l i a hàm connect().............................................................. 55ng 5-1 Xác nh yêu c u........................................................................... 62ng 5-2 Danh sách các i t ng ............................................................... 75ng 5-3 Table PACKET............................................................................. 75ng 5-4 Table IP ........................................................................................ 76ng 5-5 Table TCP..................................................................................... 76ng 5-6 Table UDP.................................................................................... 77ng 5-7 Table ICMP .................................................................................. 77ng 5-8 Table IGMP.................................................................................. 78ng 5-9 Table ARP .................................................................................... 80ng 5-10 Mô màn hình PCManager ....................................................... 86

Page 12: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ph n 1: T ng quan

16

PH N 1: T NG QUAN

Ch ng 1. Gi i thi u tài

Page 13: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 1: Gi i thi u tài

17

Ch ng 1: Gi i thi u tài

1.1. t v n

Ngày nay công ngh thông tin nói chung và Intenet nói riêng ngày càng

phát tri n nh và tr thành không th thi u trong cu c s ng chúng ta.

Xu t phát t nhu c u trao i thông tin ngày càng nhanh và nhi u gi a

các doanh nghi p, các t ch c và công ty trong n n kinh t th tr ng hôm

nay, s l ng các doanh nghi p thi t l p các h th ng m ng và k t n i Intenet

ngày càng nhi u.

Vi c Công ngh thông tin và m ng Intenet phát tri n và ngày càng nhi u

các thông tin quan tr ng c trao i trên m ng làm n y sinh m t s v n

quan tr ng là b o m t thông tin trên m ng tránh rò r hay ng n không cho

truy c p vào các d li u không cho phép gây thi t h i kinh t , qu n lý b ng

thông t ng kh n ng áp ng thông tin, giao d ch v i khách hàng ng th i

tránh c tình tr ng ngh n m ch l u thông trên m ng.

Vi c phân tích l u l ng m ng òi h i n ng l c tính toán r t l n, vì v y

mu n làm c vi c này c n ph i trang b các siêu máy tính th c hi n bài

toán này. Trong u ki n kinh t n c ta thì không th trang b nh ng h

th ng này c vì chúng quá t .

Page 14: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 1: Gi i thi u tài

18

y gi i pháp nào gi i quy t bài toán này ?

• Grid Computing là h th ng tính toán song song và phân tán

cho phép chúng ta th c hi n nh ng bài toán l n d a trên các

th ng nh g m nhi u máy tính c n i m ng v i nhau.

• Hi n nay chúng ta l i có r t nhi u h th ng máy tính n i

ng nh ng ch a s d ng c h t kh n ng tính toán c a

chúng.

• i s l ng các máy tính l n thì vi c tri n khai Grid

Computing s cho chúng ta m t h th ng tính toán c c kì

nh g p nhi u l n 1 siêu máy tính ( lúc ó các siêu máy tính

có th ch là m t node trong h th ng Grid Computing).

i nh ng u m trên chúng tôi ch n tài “ ng d ng th nghi m

Grid Computing trong vi c phân tích thông tin m ng ph c v qu n lý”.

1.2. Gi i thi u tài

tài “ ng ng th nghi m Grid Computing trong vi c phân tích

thông tin ng ph c qu n lý” là m t l n g m 2 nhóm th c hi n.

Nhóm th 1 xây d ng ng d ng phân tán trên m ng cho phép thi t l p t

xa ch l c và b t các gói tin, trích l c và l u vào các c s d li u trên

ng ph c cho vi c theo dõi và phân tích thông tin ng (Ph n I).

Nhóm th 2 tìm hi u Grid Computing và xây d ng ng ng phân

tích hi n tr ng c a m ng d a trên thông tin t s d li u do nhóm th 1

xây d ng (Ph n II).

Page 15: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 1: Gi i thi u tài

19

1.3. Yêu c u a tài

• Xây d ng ng d ng phân tán th nghi m cho phép b t các gói tin

dùng phân tích thông tin ng ph c qu n lý.

• Các gói tin sau khi b t, c trích thông tin và l u vào các c s d

li u phân tán trên m ng theo nhu c u c a ng i qu n tr .

• th ng cho phép c u hình ng d ng t xa.

• H tr u k t qu b t c theo nh ng a các ng ng b t

gói tin khác nh Ethereal, TCPDump...

Page 16: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ph n 2: Tìm hi u các v n l p trình

20

PH N 2: TÌM HI U CÁC V N L P TRÌNH

Ch ng 2. Th vi n l p trình ng libpcap

Ch ng 3. H qu n tr s d li u MySQL

Ch ng 4. L p trình socket

Page 17: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 2: Th vi n l p trình ng libpcap

21

Ch ng 2 : Th vi n l p trình ng libpcap

2.1. Gi i thi u libpcap

Libpcap là m t th vi n mã ngu n m tr l p trình ng c p th p,

cho phép b t các gói tin trên ng truy n theo nhi u h ng khác nhau, cho

phép phân tích các frame v a tìm c.

Th vi n libcap c s d ng r ng rãi trong các ph n m m sniffer

packet. Các ph n m m s d ng libcap ph bi n là TCPdump, TCPflow.

Hi n nay phiên n m i nh t a libpcap là 0.9.1.

2.2. Cài t th vi n libpcap

Ch ng trình ngu n c a libpcap có th download a ch

www.tcpdump.org , các phiên n m i nh t a libpcap u có a ch này.

Gi s b n i v gói libpcap-0.8.3.tar.tar, ti nhànhcài t:

• Gi i nén gói tar

tar –xzvf libpcap-0.8.3.tar.tar

• Chuy n vào th m c libpcap

cd libpcap-0.8.3

• gõ l nh ./configure

• Gõ l nh make

• Gõ l nh make install

N u không có l i gì x y ra thì quá trình cài t ã hoàn t t.

Page 18: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 2: Th vi n l p trình ng libpcap

22

3.3. Các b c xây d ng ch ng trình s d ng libpcap

Có 5 b c chính trong vi c s d ng th vi n libpcap

• c 1: Xác nh interface (card ng) mà ta mu n b t frame vào

(Trong Linux, interface th ng là eth0,eth1…..Ta có th dùng các

hàm pcap_lookupdev() c a th vi n libpcap l y t t c các

inteface.

• c 2: Kh i t o pcap. Cung c p cho pcap bi t interface nào trong

các interface ã l y v b c trên s c ch n sniff.

• c 3: L c frame .pcap cho chúng ta c ch ch n l a khi l c các

frame khi b t (ví d ch b t frame TCP/IP có source IP

192.168.8.8 và port 23 …). ta ph i t o ra filter r i biên ch filter

này báo cho pcap bi t b l c nó s dùng.

• c 4: Pcap th c thi vi c sniff frames.

• c 5: óng phiên làm vi c và k t thúc ng d ng

Trên ây là qui trình t ng quát cách libpcap b t gói tin trong ó b c 3

là tùy ch n có th có ho c không.

Page 19: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 2: Th vi n l p trình ng libpcap

23

3.4. Chi ti t các b c

3.4.1. Ch n Interface( card ng)

Có 3 cách thi t l p devices sniff các frames d li u

• Cách 1 : Cho ng i dùng nh p tên thi t b t dòng l nh

#include <stdio.h>

#include <pcap.h>

int main(int argc , char* argv[])

{

Char * dev = argv[1]

Printf( Devices : %s \n ,dev);

}

Trong ó argv[1] là tham s dòng l nh u tiên

• Cách 2 : S d ng hàm pcap_lookupdev() c a libpcap tìm

ki m các interface t n i trên máy tính.

#include <stdio.h>

#include <pcap.h>

int main(int argc , char* argv[])

{

Char* dev,errbuf[PCAP_ERRBUF_SIZE]

dev = pcap_lookupdev(errbuf);

if(dev == NULL)

{

printf("%s\n",errbuf);

exit(1);

}

printf("DEV: %s\n",dev);

}

Page 20: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 2: Th vi n l p trình ng libpcap

24

Trong tr ng h p này, pcap t tìm ra thi t b . errbuf là chu i ch a

thông báo l i n u có.

• Cách 3 : Dùng hàm pcap_findalldevs tìm t t c thi t b sau ó

a vào m t m ng

#include <stdio.h>

#include <pcap.h>

int main(int argc , char* argv[])

{

pcap_if_t *devlist;

char devname[10][100];

Char* dev,errbuf[PCAP_ERRBUF_SIZE]

int devcount=0;

retvalue=pcap_findalldevs(&devlist,err);

if(retvalue==-1 || devlist==NULL)

return 0;

for(d=devlist,i=0; d && i<10 ;d=d->next,i++)

sprintf(devname[i],"%s",d->name);

devcount=i;

}

3.4.2. M device l ng nghe( sniff) d li u

Kh i t o phiên làm vi c cho các thi t b s d ng hàm

pcap_open_live(). C u trúc hàm này nh sau :

pcap_t *pcap_open_lives(

char* device,int snaplen,int promisc,int yo_ms,char *ebuf)

Tham s :

• device là thi t b ã c nh ngh a trên

Page 21: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 2: Th vi n l p trình ng libpcap

25

• snaplen cho bi t s byte l n nh t mà pcap có th b t frames

• promisc n u t b ng 1 thì interface s ho t ng trong ch

promiscuos mode. ây là ch libpcap s sniff t t c các frame

trên dây d n. N u t b ng 0 thì interface s ho t ng ch

non promiscuos mode, trong ch này,pcap ch sniff nh ng

frame g i n máy.

Pcap_t *descr

descr = pcap_open_live(dev,BUFSIZ,0,-1,errbuf);

if(descr == NULL)

{

printf("pcap_open_live(): %s\n",errbuf);

exit(1);

}

Dev là nh danh thi t b .

3.4.3. c traffic

Trong tr ng h p không b t t t c các gói tin mà ch b t các gói tin

theo m t yêu c u nào ó ta thì s d ng pcap_compile() pcap_setfilter()

có c u trúc nh sau:

int pcap_compile(pcap_t *p, struct bpf_program *ft, char *str,

int optimize, bpf_u_int32 netmask )

Tham s u tiên là handle c a phiên làm vi c (pcap_t). Tham s

th hai là tham s ch n n i l u compile version c a filter. str là

chu i mô t cho filter bi t nh ng gói tin c n b t. K n là s nguyên

cho bi t str là opyimize hay không (1 là true, 0 là false). Cu i cùng là

netmask c a ng m ng.

Page 22: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 2: Th vi n l p trình ng libpcap

26

int pcap_setfilter(pcap_t *p,struct_bpf_program *fp)

Tham s th nh t là handle qu n lý phiên làm vi c. Tham s th hai

là tham chi u ch n compile version c a filter ( ã c nh ngh a

trong pcap_compile())

nh d ng str mô t cho filter:

• Filter theo source ip

Ví d ," src net 172.168.8.8 "

• Filter theo dest ip :

Ví d ," dst net 172.168.8.8 "

• Filter theo source và dest ip

Ví d ," src and dst net 172.168.8.8 "

• Filter theo source hay dest ip

Ví d ," src or dst net 172.168.8.8 "

• Filter theo source port :

Ví d ," src port 23 "

• Filter theo dest port :

Ví d ," dst port 23 "

• Filter theo source và dest port

Ví d ," src and dst port 23 "

• Filter theo source hay dest port

Ví d ," src or dst port 172.168.8.8 "

Page 23: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 2: Th vi n l p trình ng libpcap

27

• Filter theo protocal

Ví d ," tcp "

• Ngoài ra còn có th filter t ng h p :

Ví d ," dst net 172.168.8.8 and src port 23 tcp"

Ví d v filter n gi n

#include <pcap.h>

.

char *dev;

char errbuf[PCAP_ERRBUF_SIZE];

pcap_t* descr;

const u_char *packet;

struct pcap_pkthdr hdr; /* pcap.h */

struct bpf_program fp; /* hold compiled program */

bpf_u_int32 maskp; /* subnet mask */

bpf_u_int32 netp; /* ip */

dev = pcap_lookupdev(errbuf);

if(dev == NULL)

{

fprintf(stderr,"%s\n",errbuf);

exit(1);

}

descr = pcap_open_live(dev,BUFSIZ,1,-1,errbuf);

if(descr == NULL)

{

printf("pcap_open_live(): %s\n",errbuf);

exit(1);

}

Page 24: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 2: Th vi n l p trình ng libpcap

28

if(pcap_compile(descr,&fp, port 23 ,0,netp) == -1)

{

fprintf(stderr,"Error calling pcap_compile\n");

exit(1);

}

pcap_setfilter(descr,&fp)

Quá trình b t frame th t s :

ây ta nh ngh a m t thi t b m t thi t b chu n b sniff frame

(thi t l p filter n u c n). Có 2 k thu t chính c dùng trong vi c sniff

frame. Chúng ta có th b t frame và a vào vòng l p ch x lý. u

tiên ta xem cách b t frame s d ng hàm pcap_next c a libpcap.

Hàm này có c u trúc sau :

u_char *pcap_next(pcap_t *p,struct pcap_hkthdr *h )

Tham s u tiên là handle qu n lý phiên làm vi c. Tham s th

hai là pointer ch n c u trúc l u gi thông tin chung v frame ( th i

gian b t, chi u dài frame …). pcap_next tr v m t con tr có d ng

u_char tr n frame c mô t b i c u trúc này

struct pcap_pkthdr

{

struct timeval ts; time stamp

bpf_u_int32 caplen; length of portion present

bpf_u_int32; lebgth this packet (off wire)

}

Page 25: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 2: Th vi n l p trình ng libpcap

29

Ví d v sniff frame s d ng c u trúc này

#include <stdio.h>

#include <stdlib.h>

#include <pcap.h>

#include <errno.h>

#include <netinet/in.h>

#include <arpa/inet.h>

#include <netinet/if_ether.h>

int main(int argc, char **argv)

{

int i;

char *dev;

char errbuf[PCAP_ERRBUF_SIZE];

pcap_t* descr;

const u_char *packet;

struct pcap_pkthdr hdr; /* pcap.h */

struct ether_header *eptr; /* net/ethernet.h */

u_char *ptr; /* printing out hardware header info */

dev = pcap_lookupdev(errbuf);

if(dev == NULL)

{

printf("%s\n",errbuf);

exit(1);

}

printf("DEV: %s\n",dev);

descr = pcap_open_live(dev,BUFSIZ,0,-1,errbuf);

Page 26: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 2: Th vi n l p trình ng libpcap

30

if(descr == NULL)

{

printf("pcap_open_live(): %s\n",errbuf);

exit(1);

}

packet = pcap_next(descr,&hdr);

if(packet == NULL)

{

printf("Didn't grab packet\n");

exit(1);

}

printf("Grabbed packet of length %d\n",hdr.len);

printf("Recieved at ..... %s\n",ctime((const

time_t*)&hdr.ts.tv_sec));

pcap_close(descr);

}

Ch ng trình này in ra chi u dài và th i gian b t gói tin u tiên mà

nó b t c. Hàm pcap_close() dùng óng phiên làm vi c.

t k thu t khác ph c t p h n là dùng hàm pcap_loop() c a

libpcap. C u trúc hai hàm này nh sau :

int pcap_loop(pcap_t *p, int cnt, pcap_handler callback,

u_char *user)

Tham s u tiên là handle qu n lý phiên làm viêc, tham s th hai

là s frame s c sniff tr c khi thoát ra. N u tham s này là s âm

thì s sniff n khi nào có l i x y ra. Tham s th ba là tên c a hàm

callback. Tham s cu i cùng c s d nng trong m t s ng d ng,

n gi n hãy d t là NULL.

Page 27: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 2: Th vi n l p trình ng libpcap

31

C u trúc c a hàm callback :

void my_callback(u_char *useless,const struct pcap_pkthdr*

pkthdr,const u_char* packet)

Tham s u tiên là tham s cu i cùng c a hàm pcap_loop truy n

vào (th ng là NULL). Tham s th hai là c u trúc pcap_pkthdr.

Ví d v cách s d ng pcap_loop :

#include <pcap.h>

#include <stdio.h>

#include <stdlib.h>

#include <errno.h>

void my_callback(u_char *useless,const struct pcap_pkthdr*

pkthdr,const u_char*packet)

{

tatic int count = 1;

fprintf(stdout,"%d, ",count);

if(count == 4)

fprintf(stdout,"Come on baby sayyy you love me!!!

");

if(count == 7)

fprintf (stdout,"Tiiimmmeesss!! ");

fflush(stdout);

count++;

}

Page 28: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 2: Th vi n l p trình ng libpcap

32

int main(int argc,char **argv)

{

int i;

char *dev;

char errbuf[PCAP_ERRBUF_SIZE];

pcap_t* descr;

const u_char *packet;

struct pcap_pkthdr hdr; /* pcap.h */

struct ether_header *eptr; /* net/ethernet.h */

if(argc != 2)

{

fprintf(stdout,"Usage: %s numpackets\n",argv[0]);

return 0;

}

dev = pcap_lookupdev(errbuf);

if(dev == NULL)

{

printf("%s\n",errbuf);

exit(1);

}

descr = pcap_open_live(dev,BUFSIZ,0,-1,errbuf);

if(descr == NULL)

{

printf("pcap_open_live(): %s\n",errbuf);

exit(1);

}

Page 29: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 2: Th vi n l p trình ng libpcap

33

pcap_loop(descr,atoi(argv[1]),my_callback,NULL);

fprintf(stdout,"\nDone processing packets... wheew!\n");

return 0;

}

Page 30: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 3: H qu n tr c s d li u MySQL

34

Ch ng 3: H qu n tr s d li u MySQL

3.1. Gi i thi u v MySQL

Công ty Tcx mu n phát tri n m t ng d ng web và mu n s d ng c s

li u c a riêng mình. Tcx ã d a trên ti p c n l p trình API c a mSQL và

ngôn ng SQL phát tri n nên MySQL

MySQL ho t ng theo mô hình client-server, r t n gi n, không có các

tính n ng cao c p nh qu n lý giao tác, chia s k t n i. c s d ng r ng rãi

trong Linux i v i các ng d ng cgi hay Perl trong môi tr ng Web,

Internet.

a ch download MySQL : http://www.MySQL.com

3.2. Cài t MySQL

3.2.1. Cài t MySQL t các gói nh phân

Các gói c n thi t:

• Gói trình ch (server package):

MySQL-version-architecture.rpm

• Gói trình khách (client package):

MySQL-client-version-architecture.rpm

• tr th vi n cho trình khách:

MySQL-shared-version-architecture.rpm

• Gói phát tri n ng d ng trên MySQL:

MySQL-devel-version-architecture.rpm

Ta cài t ng gói b ng l nh

rpm –ivh <tên gói>

Page 31: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 3: H qu n tr c s d li u MySQL

35

Trình cài t script s t ng t o:

• t CSDL database m u

• Script init.d và mysql kh i ng và d ng d ch v

ki m soát database c a MySQL.

• Script mysql ch a các khai báo bi n môi tr ng cho CSDL

cho bi t v trí các file CSDL c a MySQL:

bindir=/usr/bin

datadir=/var/lib/mysql

pid_file=/var/lib/mysql/mysqld.pid

mysql_daemon_user=mysql # Run mysql as this

user

• User mang tên mysql dùng ng nh p và kh i ng d ch

daemon c a trình ch .

Kh i ng trình ch b ng tay:

• ng nh p quy n user mysql:

$ su mysql

• Kh i ng trình ch :

# /etc/rc.d/init.d/mysql start

3.2.2. Cài t t mã ngu n

• G i nén file ch a mã ngu n

• Th c hi n cài t b ng t h p l nh sau :

$ ./configure

$ make

$ su

$ make intall

$scripts/mysql_intal.db

Page 32: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 3: H qu n tr c s d li u MySQL

36

3.3. S d ng MySQL

3.3.1. L nh mysql

ây là l nh thâm nh p trình qu n lý c s d li u và a ra các

nh qu n tr khác .

Cú pháp

mysql u username p password databasename

Ví d

Truy xu t c s d li u packet voi username la “pac” va

password la “ket”.

$ mysql –I pac –p ket packet

3.3.2. L nh mysqladmin

Là công c chính c a ng i qu n tr c s d li u v i 2 tham s -u,-

p . V i mysqladmin có m t s l nh qu n tr sau

• create databasename : t o csdl

• drop database name :xóa c s d li u

• password newpassword : i m t kh u

• status: thông tin v tr ng thái hi n hành c a trình ch

• version cho bi t thông tin v phiên b n c a trình ch my sql

3.3.3. L nh mysqlshow

L nh này cho bi t thông tin v database. N u không có tham s s

hi n th toàn b database, ng c i n u có tham s là tên database thì

hi n th t t c các b ng trong database.

u tham s là tên database và tên b ng thì toàn b tên các c t

trong b ng s c hi n th

u tham s là tên database,tên b ng,tên c t thì thông tin c a c t s

c li t kê.

Page 33: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 3: H qu n tr c s d li u MySQL

37

3.3.4. L nh grant

p quy n cho ng i dùng database

Cú pháp :

grant privilege on object to user[user-password] [opt]

• privilege là quy n c p cho tài kho n ng i dùng bao g m:

§ Alter : quy n thay i b ng và file ch m c

§ Creat : quy n t o b ng vàdatabase

§ Delete : quy n xoá d li u trong database

§ Drop : quy n xoá database

§ Index : quy n qu n lý ch m c index

§ Insert : quy n chèn d li u m i vào

§ Select : quy n xem d li u

§ Update : quy n c p nh t d li u

§ All : t t c các quy n

• Object : databasename.table

Có th dùng databasename.* s tác ng n m i b ng

trên databasename.

u ý: mysql cho phép c p quy n trên database ch a có

cho m t ng i dùng sau này s t o

• User : username.host

Ví d rick@”%”

• Password : n u grant ta m i user ta t password b ng

cách thêm identyfied by password

• Ví d : t o m i user khtn v i password cntt toàn quy n trên

database tên packet(packet có th ch a có)

mysql>grant all on packet.* to khtn@”%” indentified by cntt

Page 34: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 3: H qu n tr c s d li u MySQL

38

3.3.5. L nh Revoke

L nh này dùng c quy n ng i dùng

Cú pháp:

revoke privilege on object from user

3.3.6. Ví d v t o m t c s d li u

o c s d li u packet v i username là khtn và password la cntt :

$mysql>grant all on packet.* to khtn@ identified by cntt;

nh trên c th c hi n v i t cách qu n tr root c a MySQL.

(Thoát v d u nh c l nh $mysql>quit )

R i gõ ti p các l nh sau:

$mysql u khtn p cntt

$ mysql>create database packet;

$mysql>use packet (s d ng database tên packet)

Bây gi m i truy v n sql u lác ng lên database packet.

3.4. L p trình MySQL trên ngôn ng C

M t s hàm th ng dùng khi l p trình v i MySQL

4.4.1 mysql_init

Kh i t o c u trúc x lý k t n i

Cú pháp :

MYSQL *mysql_init (MYSQL *old_connect)

Tham s :

• old_connect =NULL :t o k t n i m i

• old_connect khác NULL :tái k t n i v i con tr old_connect

Page 35: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 3: H qu n tr c s d li u MySQL

39

3.4.2 mysql_real_connection

Th c hi n k t n i v t lý n máy ch n i Mysql sever ang ch y

Cú pháp :

MYSQL *mysql_real_connect(MYSQL *connection ,

const char* server_host, const char * sql_username,

const char *sql_pass, const char* db_name,

unsigned port_num ,const char * unit_socket_name ,

unsigned int flag )

Tham s :

• Connection : tr n c u trúc MYSQL c kh i t o b i hàm

mysqlconnect.

• Server_host : a ch IP c a máy ch n i d ch vu mysql

server ang ch y.

• sql_username,sql_pass : là i s ch ng th c quy n ng

nh p h th ng

• db_name : tên c a database

• port_num : s hi u c ng mysql dùng (m c nh b ng 0)

• unit_socket_name ki u socket (m c nh NULL)

• flag: ki u giao th c s k t n i

Page 36: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 3: H qu n tr c s d li u MySQL

40

3.4.3 mysql_query

Th c thi câu l nh sql query.

Cú pháp:

int mysql_query(MYSQL *connect,const char* query)

Tham s :

• query : câu l nh sql c n th c hi n

K t qu tr v

• B ng 0 n u th c thi thành công

• B ng 1 n u th t b i

3.4.4. mysql_affected_rows

Cho bi t s dòng b nh h ng sau l nh query

Cú pháp :

my_ulonglong mysql_affected_rows(MYSQL *connection)

Khi s d ng hàm này ph i ép ki u giá tr tr v là unsigned long

3.4.5. mysql_store_result

y giá tr tr v sau khi g i hàm mysql_query a vào c u trúc

MYSQL_RES

Cú pháp :

MYSQL_RES *mysql_store_result(MYSQL -*connection)

3.4.6. mysql_fetch_row

y ra m t dònh d li u t MYSQL_RES . B n c ng có th di

chuy n n 1 dòng d li u b t kì nh hai hàm mysql_row_seek và

mysql_row_tell.

Cú pháp :

MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)

Page 37: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 3: H qu n tr c s d li u MySQL

41

3.4.7. mysql_row_seek

Di chuy n n v trí offset và tr v v trí con tr tr c ó

Cú pháp :

MYSQL_ROW_OFFSET myql_row_seek(

MYSQL_RES *result MYSQL_ROW_OFFSET offset)

3.4.8. mysql_free_result

Gi i phóng tài nguyên.

Cú pháp:

void mysql_free_result (MYSQL_RES *result)

Page 38: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

42

Ch ng 4: L p trình socket

4.1. Gi i thi u v l p trình socket

Khi vi t ng ng và có nhu c u t ng tác v i m t ng ng khác,

chúng ta th ng d a vào mô hình khách/ ch (client/server). Theo mô hình

này, ng ng có kh ng ph c ho c cung c p nh ng thông tin gì ó g i

là ng ng ch (trình ch hay server). ng ng g i yêu c u n trình ch

c i là ng ng khách (trình khách hay client). M r ng h n n a, server

có th là m t máy tính v i c u hình nh còn client là r t nhi u máy con khác

n i vào máy ch .

Nh v y, tr c khi yêu c u m t ch c a trình ch th c hi n i u gì

ó, trình khách (client) ph i có kh ng k t n i c v i trình ch . Quá trình

k t n i này c th c hi n thông qua m t c ch tr u t ng hóa i là socket

( m ch là “c ch c m”). K t n i gi a trình khách và trình ch ng t

nh vi c c m phích i n vào c m i n. Trình khách th ng c coi nh

phích c m i n, còn trình ch c coi nh c m i n, m t c m có th c m

vào ó nhi u phích i n khác nhau ng nh m t máy ch có th k t n i và

ph c cho r t nhi u máy khách.

N u k t n i thành công thì trình khách và trình ch có th trao i d

li u v i nhau, th c hi n các yêu c u v trao i d li u.

4.2. Nguyên lý ho t ng a socket

u tiên server m m t c m socket. ây ch là quá trình h i u hành

phân b tài nguyên chu n k t n i. Dùng hàm socket() t o “ c m”

cho trình ch server.

Ti p n, ng ng khách bi t n c m socket a trình ch , n

ph i t cho server ch m t cái tên. N u trên máy c b và d a vào h th ng

file a UNIX hay Linux, n có th t tên cho socket nh là m t tên file

Page 39: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

43

(v i y ng d n). n ch c n t tên còn ng d n th ng t trong

th c /tmp hay /usr/tmp. i v i giao ti p ng thông qua giao th c

TCP/IP tên a socket c thay th b ng khái ni m c ng (port). C ng là m t

s nguyên 2 bytes (kho ng 65000 c ng n có th ch n t cho socket) thay

th cho tên t p tin. N u trình khách và trình ch n m trên hai máy khách

nhau, giao th c TCP/IP còn yêu c u xác nh thêm a ch IP k t n i n

máy ch xa.

Sau khi ã ch nh tên ho c s hi u port cho socket, n i hàm bind()

ràng bu c hay t tên chính th c cho socket a trình ch . Ti p n là ch

k t n i t phía trình khách, trình ch s g i hàm listen() t o hàng i nh n

các k t n i do trình khách a n. N u có yêu c u k t n i t phía trình

khách, trình ch g i hàm accept() ti p nh n yêu c u a trình khách.

accept() t o m t socket vô danh khác (unnamed socket), c m k t n i a

trình khách vào socket vô danh này và th c hi n quá trình chuy n d li u trao

i gi a khách ch . Socket c t tên tr c ó v n ti p c ho t ng

ch nh n yêu c u t trình khách khác.

i giao ti p c ghi thông qua socket ng n gi n nh vi c dùng

l nh read/write c ghi trên file. N u file d a vào s mô (file descriptor)

xác nh socket c n c ghi cho hàm read/write.

Phía trình khách ch c m o m t socket vô danh, ch nh tên và v trí

socket a trình ch . Yêu c u k t n i b ng hàm connect() và c ghi, truy

xu t d li u a socket b ng l nh read/ write ho c l nh send/ recv.

Page 40: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

44

4.3. L p trình v i socket

4.3.1. Các thu c tính a socket

Socket c nh ngh a d a trên 3 thành ph n thu c tính( attribute)

ó là: vùng( domain), ki u( type) và giao th c( protocol). Socket còn c n

c vào m t a ch k t h p v i nó. a ch này ph thu c vào vùng a

socket và th ng c i là dòng giao th c (protocol family). Ví d

nh dòng giao th c theo h th ng file a Sun th ng l y tên file làm

ng d n a ch , trong khi giao th c TCP/IP i l y a ch IP (32 bits)

tham chi u và th c hi n k t n i v t lý.

4.3.1.1. Vùng( domain)

Vùng dùng xác nh t ng ng n i giao ti p a Socket

di n ra. Vùng giao ti p Socket thông ng nh t hi n nay là

AF_INET hay gia ti p socket theo chu n ng Internet. Chu n này

s d ng a ch IP xác nh nút k t n i v t lý trên ng. Ngoài

ra, n u n ch c n giao ti p c b , n có th dùng vùng giao ti p

theo chu n a Sun AF_UNIX, ó là dùng ng d n và h th ng

file t tên và xác nh k t n i gi a hai hay nhi u ng ng.

Ch ng n nh ví d trên, chúng ta ã th c hi n b ng cách t tên

cho socket là server_socket, và Linux ã t o ra file server_socket

ngay trên th c hi n hành (hay trong th c m /tmp tùy theo

phiên n a Linux và UNIX). Tuy nhiên vùng giao ti p

AF_UNIX l i ít c s d ng trong th c t . Ngày nay h u h t các

ng ng ng s d ng socket u theo vùng AF_INET là ch y u.

Chúng ta bàn sâu v phân vùng này ngay sau ây.

Vùng AF_INET nh ã nêu s d ng c ch IP (Internet

Protocol) là m t ch ngh a s 32 bits xác nh k t n i v t lý. S

này th ng c vi t d ng nhòm nh 192.168.1.1, 203.162.42.1

Page 41: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

45

hay 127.0.0.1 là các a ch IP h p l . a ch IP có th c ánh

thành m t tên d nh n nh www.yahoo.com hay

www.microsoft.com, chúng c i là tên vùng (domain name).

Vi c ánh a ch IP thành tên vùng th ng do máy ch DNS

(Domain Name Server) th c hi n. Tuy nhiên, n ng có th t

ánh tên vùng ngay trên mày c b b ng cách s d ng t p tin d

li u /etc/hosts.

Socket theo dòng giao th c IP s d ng port (s hi u c ng)

t tên cho m t socket. C ng dùng phân bi t d li u g i n

chuy n cho ng ng nào. n hình dung n u a ch IP dùng

xác nh c máy hay n i k t n i v t lý a d li u n thì

c ng là a ch ph dùng g i chính xác d li u n n i ng ng

c n. i u này do trên m t máy có th có nhi u ng ng cùng ch y

và cùng s d ng trùng s c ng. Do c ng là m t giá tr nguyên 2

bytes nân n có th s d ng kho ng 65000 c ng t do t cho

socket. Tr các s hi u c ng n ti ng nh FTP, Web ã nêu ph n

trên n không nên s d ng, còn thì b n có th ch n s c ng l n

n 1024 m cho socket a ung ng.

M socket theo AF_INET không khác m y so v i AF_UNIX

ngoài vi c t tên và ch nh s hi u c ng. Ví d :

/* M socket theo k t n i IP */

server_sockfd = socket (AF_INET, SOCK_STREAM, 0);

server_address.sin_family = AF_INET;

server_address.sin_addr.s_addr = inet_addr(“127.0.0.1”);

server_address.sin_port = 1234;

Page 42: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

46

Ngoài vùng giao ti p AF_UNIX và AF_INET, n còn có th

g p AF_ISO dành cho chu n giao th c ng theo ISO hay AF_NS

dành cho h th ng ng Xerox, tuy nhiên chúng không c s

ng th ng xuyên, cho nên ta không c p n chi ti t.

5.3.1.2. Ki u socket(type)

V i m i vùng domain a socket, n có th có nhi u cách

giao ti p. Có hai ki u giao ti p ki u giao ti p i n hình s là giao

ti p m t chi u (SOCK_DGRAM) và giao ti p o m hai chi u

(SOCK_STREAM). D li u khi chuy n i c óng thành t ng

gói (data package hay datagram). SOCK_STREAM và

SOCK_DGRAM qui nh cách chuy n gói d li u theo hai cách

nh sau:

SOCK_STREAM luôn gi k t n i và b o m gói thông tin

g i i c chuy n n ích và nh n y . Sau khi nh n xong d

li u, n i nh n g i thông tin ph n h i cho n i g i và quá trình g i

ch c xác nh n hoàn t t khi nh n c y th ng tin g i nh n

c hai phía khách ch . Ki u truy n d li socket này trong vùng

giao th c ng Internet AF_INET c là giao th c truy n

TCP. Khi k t h p v i c ch nh tuy n theo a ch IP chúng c

i t t là TCP/IP. K t n i và truy n d li u theo cách này tuy o

m nh ng t n nhi u tài nguyên a h th ng do k t n i ph i duy

trì và theo dõi th ng xuyên.

SOCK_DGRAM cách g i nh n d li u này ch di n ra m t

chi u. Trình khách, n i g i d li u i không c n bi t trình ch (n i

nh n) có nh n c gói d li u y hay không. Trình ch khi

nh n c d li u ng không c n thông báo hay xác nh n v i trình

khách là d li u ã nh n xong. Cách g i này có v không an toàn

Page 43: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

47

nh ng bù l i th c hi n nhanh và không tiêu t n nhi u tài nguyên

duy trì k t n i và ki m tra d li u nh n g i. Ki u truy n d li u

socket này trong vùng giao th c ng Internet AF_INET c i

là giao th c truy n UDP (User Datagram Protocol). Khi k t h p v i

ch nh tuy n theo c ch IP chúng c i t t là UDP/IP. Do

tính ch t không m o nên UDP c dùng nhi u trong ng v i

c ích thông báo hay g i tin tin n m t nhóm máy tính nào ó

trong ng. Nó ít khi c dùng trong các ch c n s chính xác

cao nh g i nh n file hay k t nói c s d li u.

4.3.1.3. Giao th c a socket( protocol)

Giao th c là cách qui c g i nh n d li u gii a hai hay nhi u

máy tính trong m ng. Tùy theo m i ki u g i nh n d li u mà ta có

các giao th c khác nhau. Hi n nay ki u g i nh n theo giao th c

TCP và UDP là s d ng nhi u nh t. Tuy nhiên i u này không b t

bu c, TCP và UDP ch là cách cài t cho vùng socket AF_INET

theo giao ti p Internet mà thôi. Ví d , ban có th cài t m t giao

th c khác thay cho UDP áp ng cho cách chuy n d li u không

o m. Mõi ki u socket u có giao th c m c nh áp ng cho

nó. Trong t t các hàm socket sau này, tùy ch n protocol n u có

yêu c u n có th t giá tr 0 yêu c u s d ng giao th c m c

nh.

Trong các ví d ph n sau ta ch t p trung nghiên c u v vùng

socket AF_INET và a ch IP thay cho vùng AF_UNIX. V i

AF_INET i ng ng ng a n u có th giao ti p c

v i nhau b t k chúng ang ch y trên Windows, Linux hay UNIX.

Page 44: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

48

4.3.2. T o socket

H th ng cung c p cho n hàm socket() t o m i m t socket.

Hàm socket() tr v s nguyên int cho bi t s mô hay nh danh dùng

truy c p socket sau này.

#include <sys/types.h>

#include <sys/socket.h>

int socket(int domain, int type, int protocol);

Tham s domain ch nh vùng hay a ch áp t cho socket.

domain có th nh n m t trong các giá tr sau:

AF_UNIX M socket k t n i theo giao th c file (xu t nh p socket d a

trên xu t nh p (file) a UNIX/Linux

AF_INET M socket theo giao th c Internet (s d ng a ch IP k t

n i)

AF_IPX Vùng giao th c IPX ( ng Novell)

AF_IS Chu n giao th c ISO

AF_NS Giao th c Xerox Network System

ng 4-1 Các giá tr c a domain

H u nh n ch s d ng AF_UNIX và AF_INET là chính. Các

vùng giao th c khác ã l i th i và hi n nay ít còn c s d ng.

Tham s type trong hàm socket() dùng ch nh ki u giao tiép hay

truy n d li u a socket. n có th ch nh b ng SOCK_STREAM

dùng cho truy n d li u o m ho c SOCK_GRAM dùng cho truy n

không o m.

Page 45: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

49

Tham s protocol dùng ch n giao th c áp ng cho ki u socket(

trong tr ng h p có nhi u giao th c áp ng cho m t ki u truy n). Tuy

nhiên n ch c n t giá tr 0 (l y giao th c m c nh). AF_INET ch cài

t m t giao th cduy nh t cho các ki u truy n SOCK_STREAM và

SOCK_DGRAM ó là TCP và UDP.

N u o socket thành công, hàm tr v s nh danh socket(

descriptor). n s d ng s nh danh này trong t t các l i i truy

xu t socket khác nh read/write. S này t ng t nh s nh danh file

mà b n th ng dùng c và ghi file. c/ ghi vào socket ng ng

ngh a v i g i và nh n d li u gi a trình khách và trình ch .

4.3.3. nh a ch cho socket

Khi socket ã c o ra, n ch c n ch nh a ch và tên cho

socket. M t socket c n ph i có a ch và tên các trình khách có th

tham chi u n. Tùy m i vùng giao th c mà cách ánh a ch có th

khác nhau.

Ví d khi n dùng vùng giao th c AF_UNIX d a trên h th ng t p

tin, a ch socket c nh ngh a trong c u trúc sockaddr_un a file

include sys/un.h nh sau:

struct sockaddr_un{

sa_family_t sun_family; /* AF_UNIX */

char sun_path []; /* ng d n */

};

Page 46: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

50

Trong Linux sa_family_t c nh ngh a là ki u short. sun_path là

ng d n t o t p tin socket.

Vùng AF_UNIX c s d ng nhi u trong các ng ng c b

trên t máy vì nó ph thu c vào ng d n t p tin tuy t i a h

i u hành.

Th c t b n dùng AF_INET v i c u trúc a ch c nh ngh a

trong sockadd_in a file include netinet/in.h nh sau:

struct sockadd_in{

short in sin_family; /* AF_INET */

unsigned short int sin_port; /* s c ng */

struct in_addr sin_addr; /* a ch IP */

};

C u trúc in_addr mô a ch IP c nh ngh a nh sau:

struct in_addr{

unsigned long int s_addr;

};

Nh n th y a ch IP là m t s long (4 bytes hay 32 bits). ây

ng chính là c u trúc a ch cho m t ch ng trình giao ti p v i nhau

qua ng Internet.

Trên quan i m a l p trình ng ng, cho dù socket có nh a

ch theo vùng nào i ch ng n a m t khi ã m c socket, n ch c n

xem socket nh m t t p tin và th c hi n thao tác read/write trên ó(

ng ng v i send và receive trên Winsock a Microsoft).

Page 47: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

51

4.3.4. t tên cho socket

Sau khi ã nh a ch , n ch c n t tên cho socket. i v i

AF_UNIX c ch chính là ng d n, còn tên chính là tên t p tin t o

socket. i v i vùng giao th c AF_INET a ch chính là s IP còn tên

chính là s hi u c ng (sin_port) trong c u trúc sockaddr_in. Khi ã gán

thông tin y cho socket n c n i hàm bind() rabgd bu c nh ng

thông tin này cho socket ã m ra tr c ó.

#include <sys/socket.h>

int byte (int socket, const struct sockaddr *address, size_t address_len);

Hàm h th ng bind() s d ng các thông tin trong c u trúc address

gán cho socket s nh danh socketd tr v b i hàm socket() tr c ó.

Tham s address_len cho bi t chièu dài a c u trúc (struct sockaddr*)

truy n vào hàm. n l u ý sockaddr là c u trúc t ng quát cho

sockaddr_un và sockaddr_in

Khi ràng bu c thành công bind() tr v tr 0. N u không hàm tr v

-1 và errno ch a m t trong các l i sau:

Mã l i Mô

EBADF S mô file không h p l

ENOTSOCK S mô file không dành cho socket

EINVAL S mô file tham chi u n m t socket ã có.

EADDRNOTAVAIL a ch không xác nh

EADDRINUSE a ch và c ng ràng bu c ã b m t socket khác

chi m ng

ng 4-2 Các mã l i a hàm bind()

Page 48: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

52

N u n m socket thu c vùng AF_UNIX errno có th nh n thêm

các l i sau:

Mã l i Mô

EACCESS Không th t o file cho socket do không có

quy n o file

ENOTDIR,

ENAMETOOLONG

Tên file không h p l

ng 4-3 Các mã l i a domain AF_UNIX

Ràng bu c tên socket là b c quan tr ng nh t socket a n có

kh ng nhìn th y và truy xu t c t các ng ng bên ngoài.

M t socket n u ch a c t tên i là socket vô danh ( unnamed

socket).

4.3.5. o hàng i cho socket

ón nh n các k t n i chuy n n, socket trình ch ph i o ra

m t hàng i (queue). c ích a hành i là u i các k t n i ch a

c trình ch x lý k p. Hàm h th ng listen() th c hi n công vi c

này.

#include <sys/socket.h>

int listen(int socketd, int backlog);

Tham s socketd cho bi t s mô socket c n o hàng i. backlog

là s k t n i t i a c phép a vào hàng i. N u m t k t n i n

trình ch trong khi ã có backlog k t n i tr c ó ch a x lý thì k t n i

này b th t i. Lý do hàng i ã y, trình ch server không mu n

nh n thêm k t n i n a. Thông th ng backlog mang giá tr 5 là s trung

bình kh thi nh t.

Page 49: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

53

Hàm listen() tr v 0 n u o hàng i thành công, n u th t i tr

tr v s là -1 và bi n errno ch a tr EBADF, EINVAL, ho c

ENOTSOCK.

4.3.6. Ch và ch p nh n k t n i

M t khi ã t o c socket, t tên cho nó và chu n xong hàng

i ti p nh n k t n i, công vi c sau cùng là ch k t n i a trình

khách g i n. n i hàm accept() th c hi n công vi c này.

#include <sys/socket.h>

int accept(int socketd, struct sockaddr *address, size_t

*address_len);

Hàm h th ng accept() tr v khi có m t trình khách mu n k t

n i v i c m socket ch nh s mô socketd. K t n i a trình khách

tr c h t c t vào hàng i. Khi accept() phát hi n ra có socket

trong hàng i, nó s t ng l y a ch c a máy khách t vào c u trúc

address, chi u dài th t s c a c u trúc a ch tr v trong bi n

address_len. Ti p n accept() o ra m t socket vô danh. K t qu tr v

a accept() là s mô cho socket vô danh, n có th s d ng s này

liên c v i trình khách. Socket vô danh m i này có cùng ki u v i

socket t tên ang l ng nghe trên hàng i.

Do c u trúc struct sockaddr không có nh cho nên n c n thi t l p

kích th c v a ti p nh n a ch trình khách. N u a ch trình

khách dài h n không gian n dành cho c u trúc sockaddr, ph n d ra

c t .

Page 50: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

54

N u ch a có k t n i nào trong hàng i, accept() d ng i ch –

block( trình ch s không th c thi các l nh k ti p) cho n khi có k t

n i a client g i n. Bàn có th thay i c ch ch này b ng cách i

hàm fcntl() i u ch nh và thêm vào c O_NONBLOCK cho socket nh

sau:

int flags=fcntl(socketd, F_GETFL, 0);

fcntl(socketd, F_SETFL, O_NONBLOCK | flags);

Sau khi t c này cho socket, hàm accept() không d ng i ch

khi n i nó. accept() tr v ngay s mô cho socket n u có k t n i

trong hàng i, n u không nó s tr v -1 và th c thi dòng l nh k ti p.

4.3.7. Yêu c u k t n i

Trình ch c a n th ng th c hi n ch ac n ng o, t tên, ch k t

n i b nh các hàm socket(), bind(), và accept(). Tuy nhiên phía trình

khách n gi n h n, n ch c n i hàm connect() yêu c u k t n i

v i trình ch . connect() c khai báo nh sau:

#include <sys/socket.h>

int connnect(int socketd, const struct sockaddr *address,

size_t address_len);

Tham s socketd là s mô tr v b i hàm socket(). address là c u

trúc a ch tr n socket a trình ch . address_len là chi u dài a

bi n c u trúc address. K t qu tr v c a hàm là 0 n u thành công và

ng c i là -1. Trong tr ng h p -1, bi n errno ch a m t trong nh ng

tr sau:

Page 51: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

55

Mã l i Mô

EBADF S mô socket truy n cho hàm không h p l

EALREADY Kêt n i ã c thi t l p tr c ó

ETIMEOUT Quá th i gian ch k t n i

ECONNREFUSED Trình ch server t ch i k t n i

ng 4-4 Mã l i a hàm connect()

N u k t n i không thành công hàm connect() có g ng ch k t n i

i. N u sau m t s l n k t n i không thành công connect() tr v l i

ETIMEOUT.

ng t accept() n có th i ch ch c a hàm connect()

b ng cách i fcntl() t i c ENONBLOCK. B ng cách này, khi k t

n i không thành công l n u tiên, hàm connect() không ch l p

i k t n i. Hàm k t thúc và tr v mã l i ngay l p t c.

4.3.8. óng k t n i

ng t nh x lý trên file. n có trách nhi m óng các k t n i

ã t o ra b ng cách g hàm close(). óng k t nói gi i phóng tài

nguyên và b o m d li u ã chuy n i hoàn t t c hai u g i và

nh n.

#include <sys/socket.h>

int close(int sockd);

i v i hai phía trình khách và trình ch , n nên i close()

óng socket khi l nh read tr v tr 0 (không còn d li u c).

Page 52: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

56

Th ng thì close() tr v ngay t c kh c, tuy nhiên có th close() i

vào tr ng thái ch (block) n u scoket a n thi t l p ki u k t n i hai

chi u (SOCK_STREAM) cùng v i tùy ch n SOCK_LINGER và d li u

ang tr nh thái ch a chuy n h t. Tùy ch n SOCK_LINER c

c p sau.

4.3.9. Giao ti p b ng socket

Chúng ta v a xem qua các hàm h th ng dùng o và x lý socket,

gi ây ta có th tr l i nh ng ví d v s d ng socket th n.

Nh ã nêu, n nên s d ng socket theo vùng AF_INET thay cho

AF_UNIX. Socket d a trên h th ng file th ng g p ph i m t s v n

nh chúng ch c truy xu t trên h th ng file ch nh a

UNIX/Linux. Vi c phân quy n cho phép c ghi file ng là m t v n .

Th ng file socket o ra trong th c hi n hành ho c th c m

/tmp và b n ph i cho phép h u nh toàn quy n truy c p các th c này

socket ho t ng. V i AF_INET thì v n này không phát sinh,

AF_INET d a vào c ng và a ch IP k t n i. ng ng a n trên

Linux s d ng AF_INET d chuy n i sang Windows h n là

AF_UNIX.

Trong AF_INET, khi o m i m t socket trên trình ch , n ph i

ch n m t s hi u c ng t cho socket. Vi c ch n s hi u c ng ph i lo i

tr nh ng c ng ã c các ng ng khác s d ng. n có th tham

kh o t p tin /etc/services, ây là t p tin v n n li t kê danh sách các

ch và c ng ã c dành s d ng, s c ng a n không nên

trùng v i nh ng s ã có trong danh sách này. Ban ng không th s

ng các c ng nh n 1024, chúng dành cho các ch c a h th ng.

Giao ti p ng không òi i ph i k t n i v i m t h th ng ng

th t s . Ngay trên m t máy, n có th s d ng giao ti p ng liên

Page 53: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

57

c gi a các ti n trình ang ch y. N u c n s a ch IP, n có th s

ng s 127.0.0.1, ây là a ch IP “h i qui” (loop back) th ng dùng

cho các ng ng c b . V i a ch này, d li u g i i quay v úng

a ch ban u, có ngh a là máy g i và máy nh n c xem là m t. Do

tính ch t c bi t này, n u trình khách trên máy c b g i d li u n

trình ch theo IP 127.0.0.1 thì trình ch c ng trên máy này nh n c

d li u và h i âm i. N u máy n hòa ng, n nên i ng i qu n tr

ng xin m t a ch IP thích h p.

a ch m ng IP th ng khó nh , n có th yêu c u socket ti p

nh n m t tên g i nh khách thay cho s IP. Ch ng n localhost hay

my.computer.home thay cho 127.0.0.1. T p tin v n n /etc/hosts ch a

các danh sách chuy n i này. Ví d , n có th dùng trình so n th o vi

hay gnotepad s a n i dung t p tin này nh sau:

127.0.0.1 localhost

127.0.0.1 my.computer.home

207.46.131.91 www.microsoft.com

Nh n th y, m t a ch IP có th ánh b ng nhi u tên khác

nhau ( a ch IP và tên th ng cách nhau b ng kho ng tr ng hay tab).

Th ng a ch IP 127.0.0.1 c i là localhost và không có gì tr

ng i n u n d nh t cho nó m t cái tên khác ch ng n nh

my.computer.home. Các a ch Web mà b n th ng th y nh

www.yahoo.com hay www.microsoft.com là các a ch toàn c u c

qu n lý b i t ch c qu c t InterNIC. bi t m t tên i ng v i m t

a ch IP có t n i hay không, n có th g i l nh ping nh sau:

Page 54: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 4: L p trình socket

58

$ ping localhost

PING (127.0.0.1) from 127.0.0.1 : 56 (84) bytes of data.

64 bytes from (127.0.0.1) : icmp_seq=0 ttl=255 time=67 usec

64 bytes from (127.0.0.1) : icmp_seq=0 ttl=255 time=48 usec

64 bytes from (127.0.0.1) : icmp_seq=0 ttl=255 time=51 usec

4.4. S d ng socket trong ng ng minh a

Ph n l p trình socket này c s d ng th c hi n vi c trao i

thông tin gi a thành ph n client và server trong ph n ng ng minh

a.

th thành ph n client dùng socket k t n i n thành ph n

server. Sau khi k t n i thành công client g i các l nh nh Start

Capture, Stop Capture, Get Filter... n server, server nh n các l nh này,

th c hi n xong nó s tr l i k t qu th c hi n là thành công hay th t i

cho client.

Page 55: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ph n 3: Xây d ng ng d ng th nghi m PacketCap

59

PH N 3: XÂY D NG NG NG TH NGHI M PACKETCAP

Ch ng 5. Phân tích và thi t k PacketCap

Ch ng 6. Cài t và th nghi m

Ch ng 7. T ng k t

Page 56: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

60

Ch ng 5: Phân tích và thi t k PacketCap

5.1. Kh o sát hi n t ng

Hi n nay có r t nhi u ph m m m b t gói tin nh Tcpdump, Microsoft

Network Monitor, Ethereal...Trong ó ph n m m ngu n m Ethereal n i b t

v i nhi u u i m nh ch y trên nhi u h i u hành, h tr b t gói tin theo

nhi u giao th c khác nhau...

Các ph n m m này có h n ch chung là khi chúng ang b t các gói tin

thì chúng ta không th c, phân tích các thông tin b t c, hay nói cách

khác khi k t thúc quá trình b t các gói tin r i thì m i phân tích các thông tin

này c.

Nh ng ph n m m này không h tr vi c ghi k t qu vào c s d li u,

mà ch u vào các file có c u trúc theo nh ng riêng a chúng. N u file

này có kích th c l n thì vi c tìm ki m, x lý các thông tin phân tích r t

ch m.

Nh ng ph n m m này ch ch y trên môi tr ng desktop là ch y u do ó

không cho phép c u hình t xa (ví d : u ch nh b l c , thi t l p ng d n

u tr trên m ng ….t xa. Hi n nay các ph n m m này ang c phát tri n

sang mô hình client/server).

Trong khi ó thì nhu c u ng i qu n tr m ng r t a d ng:

• n có thông tin v l u l ng m ng u ch nh b ngthông theo yêu c u c a khách hàng c ng nh phát hi ntr c các s c n u c.

• Theo dõi hành ng truy c p và xâm nh p m ng b t h ppháp.

• t c hành ng trên nên là online (phân tích và ukhi n) n u c.

Page 57: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

61

5.2. Phân tích và xác nh yêu c u

5.2.1. Phân tích

Vi c trao i thông tin trên m ng ngày càng nhi u, nhu c u c a các

nhà qu n tr m ng òi h i ngày càng a d ng, c n thi t có m t ch ng

trình có th b t gói tin cho phép phân tích, trích l c thông tin ngay trong

khi b t (các ph n m m b t gói tin hi n nay không cho phép các nhà qu n

tr s d ng thông tin thu th p c khi quá trình b t gói tin ang th c

hi n). ng ng này l y tên là PacketCap.

Trên c s ó, m t h th ng phân tán b t gói tin, trích l c và luu tr

vào c s d li u trên m ng c xây d ng kh c ph c ph n nào

khuy t m trên. H th ng cho phép nhà qu n tr s d ng thông tin

ngay trong khi b t, tùy ch n v trí l u thông tin và cho phép c u hình t

xa vi c filter các gói tin.Các nhà qu n tr m ng c ng có th dùng h

thông này làm c s phát tri n ti p các ng d ng v qu n tr m ng.

5.2.2. Xác nh yêu c u

c tiêu a tài là m t xây d ng ng ng phân tán b t các gói

tin, ng này cung c p cho qu n tr m ng nh ng thông tin ph c cho

vi c theo dõi và phân tích thông tin ng, d a trên nh ng thông tin c

cung c p này cho phép qu n tr m ng có th xác nh c tình tr ng a

toàn b h th ng ng.

Page 58: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

62

ng ng PacketCap này bao g m các ch c n ng:

STT Ch c n ng

1B t và phân tích c các gói tin a nh ng protocol thông ng

nh TCP, UDP, ICMP, ARP...

2Cho phép l u tr thông tin b t c d i ng c s d li u và

ch n h qu n tr s d li u u tr .

3Cho phép l u tr thông tin b t theo c u trúc file a Ethereal ho c

các ph n m m b t gói tin khác.

4

i u khi n t xa vi c b t các gói tin, bao g m:

• Kh i ng b t gói tin

• D ng b t gói tin

• L y b l c hi n th i

• K t thúc ch ng trình b t gói tin

ng 5-1 Xác nh yêu c u

Page 59: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

63

5.3. Các h ng xây d ng ng ng PacketCap

Hi n nay có r t nhi u ph n m m b t gói tin có mã ngu n m nh

TCPTrace, TcpDump, WinDump, Ethereal,..trong s này thì Ethereal là ph n

m m t t nh t. Nó h tr r t nhi u protocol, h tr các nh d ng l tr c a

các ph n m m b t gói tin khác, tích h p thêm ph n phân tích thông tin b t

c.

Các ph n m m ngu n m này u s d ng th vi n l p trình libcap ho c

winpcap(tên a phiên n libpcap ch y trên h i u hành Windows).

Do có r t nhi u ph n m m ngu n m h tr b t gói tin nên có 2

h ng l a ch n phát tri n ng ng PacketCap:

Ø H ng 1: Tìm hi u c u trúc a ph n m m Ethereal, tích h p thêm

ch c n ng l u các gói tin vào c s d li u và c u hình t xa vào

ph n m m Ethereal.

Ø óng 2: S d ng th vi n l p trình ng libpcap vi t l i toàn b

ng d ng.

5.3.1. Phân tích h ng phát tri n d a trên Ethereal

• Thu n l i

o Source code c a Ethereal m có th d dàng download trên

nhi u trang web. (www.ethereal.com)

o Không c n xây d ng l i các module b t gói tin và filter cho

ng d ng.

• Khó kh n

o Mã ngu n Ethereal r t nhi u và khó hi u rõ c do ó vi c

tích h p thêm ch c n ng vào Ethereal là r t ph c t p.

o Ethereal ch cung c p free user guide không cung c p

developer guide do ó mu n tìm hi u v ethereal ph i c

t c source code.

Page 60: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

64

5.3.2. Phân tích h ng phát tri n d a trên libcap

• Thu n l i :

o Th vi n mã ngu n m libpcap download mi n phí, c

nhi u nhà phát tri n s d ng. Ph n m m b t gói tin

Tcpdump là m t i n hình.

o Có nhi u tài li u h ng d n l p trình

o Có th d dàng xây d ng ch ng trình theo ý mu n

• Khó kh n

o Ph i vi t l i t t c các module capture và filtering tr c khi

thêm vào các yêu c u c a lu n v n.

5.3.3. L a ch n h ng phát tri n PacketCap

T nh ng phân tích khó kh n và thu n l i a 2 h ng phát tri n

ng ng PacketCap, chúng em quy t nh l a phát tri n PacketCap theo

h ng th 2, ngh a là s xây d ng t u ng ng b t gói tin PacketCap

d a trên th vi n libpcap.

Page 61: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

65

5.4. Các thành ph n PacketCap

PacketCap có h ch c n ng i u khi n xa nên nó s c xây d ng theo

mô hình ng ng Client/ Server.

PacketCap g m 3 thành ph n:

• Thành ph n th c hi n vi c l ng nghe yêu c u t phía client và

b t gói tin: PCServer( PacketCap Server)

• Thành ph n i u khi n t xa: PCManager.

• Thành ph n l u tr : PCStore, thành ph n này ch là i l u tr

d li u b t c. PCStore th là m t máy tính b t kì có ch y h

qu n tr s d li u MySQL.

Trong mô hình client/ server thì PCServer là thành ph n server, còn

PCManager là client.

PCServer m c ng 8088 và ch k t n i, nh n yêu c u và th c hi n yêu

c u khi ã có client k t n i vào.

PCManager k t n i n PCServer và i u khi n i ho t ng a

PCServer.

Hình 5-1 Các thành ph n a PacketCap

Page 62: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

66

5.5. Xây d ng mô hình use case

5.5.1. Xác nh Actor và use case

• Actor là ng i dùng ch ng trình PCManager (client)

• Use case

o Connect: Dùng PCManager k t n i vào PCServer

o StartCapture: Yêu c u PCServer b t u th c hi n vi c b t

gói tin.

o StopCapture: Yêu c u PCServer d ng vi c b t gói tin

o GetFilter: l y b l c hi n i

o Terminate: yêu c u PCServer k t thúc.

5.5.2. Mô hình use case

Hình 5-2 Mô hình use case

Page 63: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

67

5.6. t use case

5.6.1. Connect

• Tên use case: Connect

• Mô

Use-case này mô t quá trình qu n tr viên yêu c u

PCManager(client) k t n i qu n tr vi c b t gói tin máy server.

• Dòng s ki n

o Dòng s ki n chínhUse-case b t u khi có yêu c u t máy client xin k t

i. Máy client g i yêu c u n máy server.

Sau khi máy server nh n c yêu c u, n u ch p

nh n yêu c u máy server s g i v s port giao

ti p, k t n i thanh công.

u máy sever không nh n yêu c u ho c có sai sót

thì client thông báo l i.

o Dòng s ki n ph

Không có

o Các dòng s ki n khác

• Các yêu c u c bi t.

o Không có.

• u ki n tiên quy t.

o Ph i ng nh p quy n qu n tr m i c th c hi n Use-

Case này.

o Máy sever c n k t n i ph i s n sàng.

• m m r ng

o Không có.

Page 64: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

68

5.6.2. StartCapture

• Tên use case: StartCapture

• Mô

Use-case này mô t quá trình qu n tr viên yêu c u máy client

g i l nh y u c u server b t u vi c b t gói tin.

• Dòng s ki n

o Dòng s ki n chính

Use-case b t u khi có yêu c u t máy client. Máy client

g i yêu c u n máy server.

Sau khi máy server nh n c yêu c u s ki m tra ti n

trình b t gói tin ã c th c thi ch a.

u ti n trình ch a th c thi thì th c thi vi c b t gói tin

u vào c s d li u, thông báo v máy client yêu c u

ã c áp ng.

u ti n trình ã c th c thi thì g i thông báo l i v .

o Dòng s ki n ph

Ki m tra CSDL ngày ó ã có ch a. N u có r i thì m

s d li u l u. N u ch a có thì t o c s d li u

i.

Qu n tr viên ch nh s a các thông tin liên quan n

phòng ban, r i c p nh t l u l i. Use-case k t thúc.

Máy client yêu c u qu n tr nh p c u trúc filter gói tin.

Ki m tra tính h p l c a c u trúc filter.

Page 65: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

69

o Các dòng s ki n khác

Không có

• Các yêu c u c bi t

o Không có.

• u ki n tiên quy t

o Ph i ng nh p quy n qu n tr m i c th c hi n Use-

Case này.

• m m r ng

o Không có.

5.6.3. StopCapture

• Tên use case: StopCapture

• Mô :

Use-case này mô t quá trình qu n tr viên yêu c u máy

client g i n server yêu c u k t thúc b t gói tin.

• Dòng s ki n

o Dòng s ki n chính

Use-case b t u khi có yêu c u t máy client. Máy

client g i yêu c u ng ng b t gói tin n máy

server.

Sau khi máy server nh n c yêu c u s ki m tra

ti n trình b t gói tin ã c th c thi ch a.

u ti n trình ch a th c thi thì th c thi thì ng ng

t gói tin, thông báo v máy client yêu c u ã

c áp ng.

u ti n trình ch a c th c thi thì g i thông báo

i v .

Page 66: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

70

o Dòng s ki n ph

óng c s d li u

• Các dòng s ki n khác

o Không có.

• Các yêu c u c bi t

o Không có.

• u ki n tiên quy t

Ph i ng nh p quy n qu n tr m i c th c hi n Use-Case

này.

• m m r ng

o Không có.

5.6.4. GetFilter

• Tên use case: GetFilter

• Mô

Use-case này mô t quá trình qu n tr viên yêu c u máy client

g i yêu c u cho server tr l i b l c hi n th i.

• Dòng s ki n

o Dòng s ki n chính

Use-case b t u khi có yêu c u t máy client yêu

u thay l y filter hi n i ang dùng b t gói tin.

Sau khi máy server nh n c yêu c u s ki m tra

ti n trình b t gói tin ã c th c thi ch a.

u ti n trình ã th c thi thì nó s g i tr l i cho

client

u ti n trình ch a c th c thi thì g i thông báo

i v cho client.

Page 67: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

71

o Dòng s ki n ph

óng c s d li u

o Các dòng s ki n khác

• Các yêu c u c bi t

o Không có.

• u ki n tiên quy t:

o Không có

• m m r ng:

o Không có.

5.6.5. Terminate

• Tên use case: Terminate

• Mô :

Use-case này mô t quá trình qu n tr viên yêu c u máy

client g i n server yêu c u server k t thúc( thoát).

• Dòng s ki n

o Dòng s ki n chính

Use-case b t u khi có yêu c u t máy client. Máy

client g i yêu c u k t thúc ch ng trình server.

Sau khi máy server nh n c yêu c u s ki m tra

n u quá trình b t gói tin ang ch y thì nó s ch m

d t.

Thoát ra kh i ch ng trình. (ch m d t)

o Dòng s ki n ph

óng c s d li u

• Các dòng s ki n khác

o Không có.

Page 68: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

72

• Các yêu c u c bi t

o Không có.

• u ki n tiên quy t

Ph i ng nh p quy n qu n tr m i c th c hi n Use-Case

này.

• m m r ng

o Không có.

5.7.Thi t k d li u

5.7.1. Phân tích các h ng l u tr

Có 3 h ng

• ng 1: Các máy client b t gói tin trên các m ng khác nhau và

li u c truy n v l u tr trên m t máy server.

Hình 5-3 Mô hình l u tr 1

Page 69: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

73

o u m :

li u c l u t p trung d dàng cho vi c x lý sau này.

o Khuy t m

Khi s l ng các gói tin b t c quá nhi u vi c truy n d

li u v máy server có th làm b n ng truy n c a m ng.

òi h i dung l ng l u tr r t l n máy server.

• ng 2 : Gi ng nh h ng 1 nh ng thi t l p thêm m t m ng

LAN gi a các máy client và sever truy n d li u.

Hình 5-4 Mô hình l u tr 2

o u m :

Kh c ph c c khuy t m c a h ng 1

o Khuy t m

T n kém trong vi c thi t l p m ng LAN.

Vi c thi t l p m ng LAN có th g p khó kh n trong tr ng

p các máy client quá xa nhau.

òi h i dung l ng l u tr r t l n máy server.

Page 70: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

74

• ng 3 : L u phân tán trên các máy client và ch truy n d li u

theo yêu c u c a client.

Hình 5-5 Mô hình l u tr 3

o u m:

Ch truy n nh ng d li u c client yêu c u nên ph n

nào kh c ph c c khuy t m c a h ng 1.

Vi c l u tr phân tán s không òi h i dung l ng l u tr

n m t máy.

Vi c xây d ng ch ng trình th c hi n l u tr phân tán s

dàng h n.

o Khuy t i m

ng ng PacketCap cho phép l u tr theo 3 h óng trên.

Page 71: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

75

5.7.2. Thi t k s li u

5.7.2.1. Danh sách các i t ng (table)

STT Tên i t ng Mô

1 PACKET Thông tin chung t t c các gói tin b t c

2 IP Thông tin v IP header c a gói tin

3 TCP Thông tin chi ti t v gói tin TCP

4 UDP Thông tin chi ti t v gói tin UDP

5 ICMP Thông tin chi ti t v gói tin ICMP

6 IGMP Thông tin chi ti t v gói tin IGMP

7 ARP Thông tin chi ti t v gói tin ARP

ng 5-2 Danh sách các i t ng

Sau ây là mô t chi ti t m t s l p i t ng quan tr ng c a h

th ng.

5.7.2.2 Table PACKET

ST

TTên thu c tính Ki u d li u Ý ngh a

Ràng

bu c

1 Ma Chu i (10) nh danh gói tin

2 Source Mac Chu i (10)a ch mac c a máy g i

gói tin

3Dest Mac

Chu i (10)a ch mac c a máy

nh n gói tin

4 Packetlength Chu i (10) chi u dài gói tin

5 Time Chu i (20) Th i gian nh n gói tin

6 Data Chu i (1000) D li u c gói tin

ng 5-3 Table PACKET

Page 72: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

76

6.7.2.4. Table IP

ST

TTên thu c tính Ki u d li u Ý ngh a

Ràng

bu c

1 Ma Chu i (10) a ch mac c a máy g i

2 Service Chu i (10) Service c a gói tin

3 ID Chu i (10) ID c a gói tin

4 TTL Chu i (20) Time to live

5 ChecksumIP Chu i (20) Checksum c a IP

6 SourceIP Chu i (20) a ch IP ngu n

7 Dest IP Chu i (20) a ch IP ích

ng 5-4 Table IP5.7.2.5. Table TCP

ST

TTên thu c tính Ki u d li u Ý ngh a

Ràng

bu c

1 Ma Chu i (10) nh danh gói tin

2 Source Port Chu i (10) Port ngu n

3 Dest Port Chu i (10) Port ích

4 Seg No Chu i (20) S segment

5 Ack No Chu i (20) Ack

6 Winsize Chu i (20) Winsize

7 checksumTCP Chu i (20) Checksum c a TCP

8 Type Chu i (20)

ng 5-5 Table TCP

Type : {"FIN ","SYN ","RST ","PUSH ","ACK ","URG ","ECE ","CWR "}

Page 73: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

77

5.7.2.6. Table UDP

ST

TTên thu c tính Ki u d li u Ý ngh a

Ràng

bu c

1 Ma Chu i (10) nh danh gói tin

2 Source Port Chu i (10) Port ngu n

3 Dest Port Chu i (10) Port ích

4 ChecksumUDP Chu i (20) Checksum c a UDP

ng 5-6 Table UDP

5.7.2.7 Table ICMP

ST

TTên thu c tính Ki u d li u Ý ngh a

Ràng

bu c

1 Ma Chu i (10) nh danh gói tin

2ICMP message

groupChu i (10)

3 Type Chu i (10)

4 Code Chu i (20)

5 Id Chu i (20)

6 Seg No Chu i (20)

ng 5-7 Table ICMP

Các h ng và ý ngh a c a ICMP message group

( 0, "Echo Reply"},

{ 3, "Destination Unreachable"},

{ 4, "Source Quench"},

{ 5, "Redirect Message"},

Page 74: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

78

{ 6, "Alternate Host Address"},

{ 8, "Echo Request"},

{ 9, "Router Advertisement"},

{ 10, "Router Selection"},

{ 11, "Time Exceeded"},

{ 12, "Parameter Problem"},

{ 13, "Timestamp Request"},

{ 14, "Timestamp Reply"},

{ 15, "Information Request"},

{ 16, "Information Reply"},

{ 17, "Address Mask Request"},

{ 18, "Address Mask Reply"},

5.7.2.8 Table IGMP

ST

TTên thu c tính Ki u d li u Ý ngh a

Ràng

bu c

1 Ma Chu i (10) nh danh gói tin

2IGMP message

groupChu i (10)

3 Type Chu i (10)

4 Response Time Chu i (20)

5 Checksum Chu i (20)

6 Group Addr Chu i (20)

ng 5-8 Table IGMP

Page 75: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

79

Các h ng và ý ngh a c a IGMP message group:

{ 0x11 ," Group Membership Query."},

{0x12 ,"IGMPv1 Membership Report." },

{0x13 ,"DVMRP. "},

{0x14 ,"PIMv1. "},

{0x15 ,"Cisco Trace Messages. "},

{0x16 ,"IGMPv2 Membership Report. "},

{0x17 ,"IGMPv2 Leave Group." },

{0x1E ,"Multicast Traceroute Response. "},

{0x1F ,"Multicast Traceroute. "},

{0x22 ,"IGMPv3 Membership Report. "},

{0x24 ,"Multicast Router Advertisement. "},

{0x25 ,"Multicast Router Solicitation. "},

{0x26 ,"Multicast Router Termination. "}

Page 76: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

80

5.7.2.9. Table ARP

ST

TTên thu c tính Ki u d li u Ý ngh a

Ràng

bu c

1 Ma Chu i (10) nh danh gói tin

2 ARP type Chu i (10)

3 ARP Source IP Chu i (10)

4 ARPDest IP Chu i (20)

5 Group Addr Chu i (20)

ng 5-9 Table ARPARP type:

ARP Request frame

ARP Reply frame

RARP Request frame

RARP Reply frame

Unknown ARP

Page 77: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

81

5.8. Xây d ng PCServer( server), PCManager(client)

5.8.1. L u PCServer

Hình 5-6 L u PCServer

Page 78: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

82

5.8.2. L u PCManager( Client)

Hình 5-7 L u PCManager

Page 79: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

83

5.8.3. C u trúc d li u trao i gi a PCServer và PCManager

Sau khi Client k t n i thành công v i PCServer, PCManager và

PCServer trao i các thông i p v i nhau. th là PCManger s

g i yêu c u lên cho PCServer và sau khi th c hi n yêu c u a

PCManager, Server g i tr l i k t qu th c hi n cho Client.

C u trúc a m i thông i p nh sau:

struct tagCMD

{

int CmdCode;

int IPFilterType;

int b1,b2,b3,b4;//4 parts of IP address(for filter)

int PortFilterType;

int Port;

int ProtocolFilter;//TCP, UDP, ICMP..

int mb1,mb2,mb3,mb4;//MySQL

int NumberPacket;

};

V i CmdCode là mã l nh c n g i, các mã l nh mày c nh

ngh a b ng các h ng d dàng cho vi c l p trình.

Page 80: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

84

IPFilterType xác nh ki u c theo a ch IP, giá tr c a nó c

nh ngh a nh sau:

#define NO_FILTER 0

#define SOURCE_FILTER 1

#define DEST_FILTER 2

#define SOURCE_OR_DEST_FILTER 3

#define SOURCE_AND_DEST_FILTER 4

N u IPFilterType=NO_FILTER ngh a là không th c hi n vi c

c các gói tin theo a ch IP, n u IPFilterType khác 0 thì lúc ó

b1,b2,b3,b4 s là a ch IP c n c. B n s nguyên này hình thành

a ch IP theo ng b1.b2.b3.b4

SOURCE_FILTER l c theo a ch IP ngu n, các gói tin có a

ch ngu n (n i g i) b ng b1.b2.b3.b4 c b t i.

DEST_FILTER l c theo a ch ích, các gói tin có a ch ích

(n i n) b ng b1.b2.b3.b4 s c b t i.

PortFilterType xác nh ki u c theo Port a ng ng, giá tr c a

nó c nh ngh a nh a IPFilterType.

SOURCE_OR_DEST nh ng gói tin có a ch ngu n ho c ích

b ng b1.b2.b3.b4 c b t.

SOURCE_AND_DEST nh ng gói tin có a ch ngu n b ng

b1.b2.b3.b4 c b t và nh ng gói tin có a ch ích b ng

b1.b2.b3.b4 c b t.

T ng t í IPFilterType là PortFilterType

Protocol là giao th c c n c, 0 có ngh a là không c, 1 là l c theo

TCP...

Page 81: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

85

Mb1, mb2, mb3,mb4 là 4 thành ph n a a ch IP a máy tính

ch y h qu n tr s d li u mà ta mu n l u thông tin b t c vào ó.

NumberPacket xác nh s gói tin c n b t.

5.9.Thi t k giao di n PCManager( phiên n ch y trên Windows)

thTên i t ng Ki u i

ngGhi chú

1 IDC_STATIC Label IP

2 IDC_IPADDR_SOURCE IP Address Nh p IP c n filter

3 CboFilterIP Combobox L a ch n ki u filter theo IP

4 IDC_STATIC Label Port

5 IDC_SOURCEPORT Textbox Nh p port c n filter

6 CboFilterPORT Combobox L a ch n ki u filter theo IP

Page 82: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 5: Phân tích và thi t k PacketCap

86

7 IDC_STATIC Label Protocol

8 CboProtocol Combobox Ch n protocol c n filter

9 IDC_STATIC Label Thông báo nh p IP

10 IDC_IPADDR_MYSQL IP Address Ch n máy ch y MySQL

11 IDC_STATIC Label Number of packet

12 IDC_NUMBER Combobox

l ng packet c n b t

13 IDC_STATIC Label Server IP

14 IDC_IPADDR_SERVER Textbox Nh p a ch IP máyPCServer c n u khi n

15 IDC_STATUS Label Báo tình tr ng k t n i

16 BtnStart button B t u b t gói tin

17 BtnStop Button K t thúc vi c b t gói tin

18 BtnGetFilter Button L y thông tin filter hi nth i

19 BtnTermServer Button K t thúc liên k t v server

20 BtnConnect Button K t n i n ma1y server

21 BtnExit Button Thoát kh i ch ng trình

ng 5-10 Mô màn hình PCManager

Page 83: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 6: Cài t và th nghi m

87

Ch ng 6: Cài t và th nghi m

6.1. Cài t

Ph n PCServer c cài t trên môi tr ng Linux, PCManager ccài t trên 2 môi tr ng Linux và Windows.

• Môi tr ng cài t ng ngo Windows XP Professionalo Linux Redhat 9.0

• Môi tr ng l p trìnho C for Linuxo Visual C++ 6.0

• Môi tr ng cài t th nghi mo PCServer: Linux Redhat 9.0o PCManager: Windows XP Professionalo PCManager: Linux Redhat 9.0

• Các ph n m m h tr PCServer : MySQL, th vi n libpap

Page 84: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 6: Cài t và th nghi m

88

6.2. Th nghi m

6.2.1. Mô hình th nghi m 1

Hình 6-1 Mô hình th nghi m 1

• Mô : PCServer và PCStore cùng ch y trên m t máy,

PCManager và PCServer cùng trong m t LAN segment

• K t qu :

o PCManager k t n i vào PCServer thành công

o PCServer th c hi n t t t t các yêu c u do PCManager

g i n

o PCServer ghi k t qu b t c vào c s d li u MySQL

thành công.

Page 85: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 6: Cài t và th nghi m

89

6.2.2. Mô hình th nghi m 2

Hình 6-2 Mô hình th nghi m 2

• Mô : PCServer và PCStore có th l a ch n ch y trên cùng 1

máy ho c 2 máy khác nhau.

• K t qu :

o PCManager k t n i vào PCServer thành công

o PCServer th c hi n t t t t các yêu c u do PCManager

g i n

o PCServer ghi k t qu b t c vào c s d li u MySQL

thành công.

Page 86: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 6: Cài t và th nghi m

90

6.2.3. Mô hình th nghi m 3

Hình 6-3 Mô hình th nghi m 3

• Mô

PCServer và PCManager ch y trên 2 ng LAN khác nhau

c n i qua 1 router.

• K t qu

Ch a th nghi m c mô hình này do không có thi t .

Page 87: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 7: T ng k t

91

Ch ng 7: T ng k t

7.1. K t lu n

7.1.1. K t qu t c

Sau khi th c hi n xong tài, chúng em ã thu c m t s k t

qu :

• Tìm hi u c th vi n mã ngu n m libpcap và vi t c ng

ng b t gói tin d a vào th vi n này. ây là b th vi n mã

ngu n m h tr l p trình ng c p th p c s d ng r t nhi u

trong các ph n m m h tr b t gói tin nh TcpDump, TCPFlow,

Ethereal...

• Tìm hi u h qu n tr s d li u mã ngu n m MySQL.

• Tìm hi u v n l p trình socket, multithread trên môi tr ng

Linux.

• Xây d ng c ng ng phân tán b t các gói tin ph c cho

vi c phân tích thông tin ng.

7.1.2. n ch

• Ch a th b t gói tin ng trên nhi u card ng• l ng protocol có th phân tích và trích c thông tin không

nhi u• Ch a h tr ch c n ng phân tích thông tin t nh ng d li u ã

b t c.

Page 88: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ch ng 7: T ng k t

92

7.2. H ng phát tri n

Trong t ng lai, ng ng PacketCap c phát tri n thêm nh ng

ch c n ng m i và nâng c p ch c n ng hi n i ch a c t t.

• H tr b t các gói tin ng th i trên nhi u card ng

• ng thêm s l ng protocol mà ch ng trình có th phân tích và

trích c thông tin.

• tr u thông tin b t c theo các nh ng a Ethereal,

TcpDump..

Page 89: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ph L c

93

PH L C H ng d n s d ng PacketCap

1.Ch ng trình PCServer

ch y ch ng trình Server n ch c n vào th c ch a ch ng trình

server và gõ l nh ./pcserver thì ch ng trình c th c thi.

thoát kh i ch ng trình PCServer n có th dùng ch ng trình

Client g i yêu c u k t thúc ch ng trình PCServer, ho c nh n t h p phím

Ctrl-C trên console ang ch y PCserver.

2. Ch ng trình PCManager

2.1. PCManager trên môi tr ng Linux

ng t nh khi ch y PCServer, n vào th c có ch a ch ng

trình PCManager r i gõ l nh ./pcman.Ch ng trình yêu c u nh p a

ch IP a máy ch y PCServer. N u k t n i thành công thì ch ng trình

hi n th các dòng thông báo, n ch c n nh p các giá tr hi n th trên

màn hình là có th i u khi n c ho t ng a PCServer.

Page 90: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Ph L c

94

2.2. PCManager trên môi tr ng Windows

Double click chu t vào file PCManager.exe, giao di n a ch ng trình

Hình 7-1 Màn hình PCManager

ánh a ch IP a PCServer vào c PCServerIP, click chu t vào

nút Connect n u k t n i thành công thì dòng tr ng thái phía d i nút

Connect thông báo k t qu k t n i thành công hay không.

N u thành k t n i thành công thì các nút l nh có hi u l c. Lúc

này ta m i có th th c hi n các thao tác i u khi n c.

Ví d b t t t các gói tin i qua card ng( a máy ang ch y

PCServer) và u k t qu vào chính máy tính ang ch y PCServer thì ch

c n click chu t vào nút StartCapture

k t thúc ch ng trình PCServer thì click chu t vào nút

Terminate Server.

Page 91: Xay Dung Ung Dung Bat Goi Tin Cho Viec Phan Tich Thong Tin M_

Tài li u tham kh o

95

TÀI LI U THAM KH O

[1] Nguy n Ph ng Lan – Hoàng c i, L p trình Linux t p 1, NXBGiáo

D c, H Chí Minh, 2001

[2] Sams, Linux Programming Unleashed, 1999

Website

[3] VietNam OpenSource Forum, www.vnoss.org

[4] MySQL, www.mysql.com

[5] libpcap, www.tcpdump.org

[6] SourceForge, www.sourceforge.net