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 PH C
QU N LÝ
KHOÁ LU N C
TP. HCM,
NHÂN TIN H C
M 2005
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 - 0112016
H PH M THÁI VINH - 0112081
XÂY D NG NG
NG B T GÓI TIN CHO
VI 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
GVC CAO
NG D N
NG TÂN
NIÊN KHÓA 2001 – 2005
NH N XÉT
A GIÁO VIÊN H
NG D N
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
Tp.HCM, ngày…..tháng….n m 2005
NH N XÉT
A GIÁO VIÊN PH N BI N
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
...........................................................................................................................
Tp.HCM, ngày…..tháng….n m 2005
L I CÁM
Chúng em xin chân thành cám
tr
ng
N
n Ban giám hi u, quý Th y cô
i H c Khoa H c T Nhiên TP. H Chí Minh,
cô trong Khoa Công ngh Thông tin ã t n tình gi ng
c bi t là các Th y
y, trang
em nh ng ki n th c c n thi t, b ích trong su t nh ng n m
Chúng em xin chân thành
t n tình quan tâm h
m n Th y Cao
ng d n, giúp
a
cho chúng
c t p i tr
ng Tân, ng
ng.
i Th y ã
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
, cùng toàn th gia ình, nh ng ng
i ã nuôi
n ông bà, cha
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
góp ý ki n c a các anh ch ,
,
ng viên, nh n xét, óng
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
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
các v n
l p trình c
n nh t
các gói tin và cho phép ng
tr
ng
Ch
L P TRÌNH. Ph n này gi i thi u
xây d ng 1 ng
i dùng có th
ng có kh
ng b t
i u khi n t xa qua môi
ng.
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”
Ch
a h u h t các ng
ng b t gói tin mã ngu n m hi n nay.
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
môi tr
ng
thu t l p trình socket
vi t các ng
ng trên
ng
Ph n 3 Xây
ng ng
th c ã tìm hi u
ch
u các k t qu b t
ng PacketCap. Ph n này
ng 2, 3, 4
s d ng các ki n
xây d ng m t ng
c vào c s d li u
ng b t gói tin,
phân tích các thông tin
ng.
Ch
ng 5. Phân tích, thi t k
Ch
ng 6. Cài
Ch
ng 7. T ng k t. Ch
nh ng
ng
ng PacketCap
t và th nghi m PacketCap
n ch và h
ng này trình bày nh ng k t qu
ng phát tri n PacketCap trong t
t
ng lai.
c,
Các danh
c
M C
C
DANH SÁCH HÌNH.................................................................................... 14
DANH SÁCH
NG .................................................................................. 15
PH N 1: T NG QUAN .............................................................................. 16
Ch ng 1: Gi i thi u tài .......................................................................... 17
1.1. t v n .......................................................................................... 17
1.2. Gi i thi u tài.................................................................................. 18
1.3. Yêu c u a tài .............................................................................. 19
PH N 2: TÌM HI U CÁC V N
L P TRÌNH ...................................... 20
Ch ng 2 : Th vi n l p trình ng libpcap ................................................ 21
2.1. Gi i thi u libpcap............................................................................... 21
2.2. Cài t th vi n libpcap ..................................................................... 21
3.3. Các b c xây d ng ch ng trình s d ng libpcap.............................. 22
3.4. Chi ti t các b c ................................................................................ 23
3.4.1. Ch n Interface( card ng) ......................................................... 23
3.4.2. M device l ng nghe( sniff) d li u......................................... 24
3.4.3. c traffic .................................................................................... 25
Ch ng 3: H qu n tr
s d li u MySQL ............................................... 34
3.1. Gi i thi u v MySQL......................................................................... 34
3.2. Cài t MySQL.................................................................................. 34
3.2.1. Cài t MySQL t các gói nh phân ............................................ 34
3.2.2. Cài t t mã ngu n..................................................................... 35
3.3. S d ng MySQL ................................................................................ 36
3.3.1. L nh mysql .................................................................................. 36
3.3.2. L nh mysqladmin ........................................................................ 36
3.3.3. L nh mysqlshow.......................................................................... 36
3.3.4. L nh grant.................................................................................... 37
3.3.5. L nh Revoke................................................................................ 38
3.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 .................................................... 38
4.4.1 mysql_init..................................................................................... 38
3.4.2 mysql_real_connection ................................................................. 39
3.4.3 mysql_query ................................................................................. 40
3.4.4. mysql_affected_rows ................................................................... 40
3.4.5. mysql_store_result....................................................................... 40
3.4.6. mysql_fetch_row ......................................................................... 40
3.4.7. mysql_row_seek .......................................................................... 41
3.4.8. mysql_free_result ........................................................................ 41
11
Các danh
c
Ch ng 4: L p trình socket .......................................................................... 42
4.1. Gi i thi u v l p trình socket ............................................................. 42
4.2. Nguyên lý ho t ng a socket......................................................... 42
4.3. L p trình v i socket ........................................................................... 44
4.3.1. Các thu c tính a socket............................................................. 44
4.3.1.1. Vùng( domain) ...................................................................... 44
5.3.1.2. Ki u socket(type)................................................................... 46
4.3.1.3. Giao th c a socket( protocol) ............................................. 47
4.3.2. o socket.................................................................................... 48
4.3.3. nh a ch cho socket................................................................ 49
4.3.4. t tên cho socket........................................................................ 51
4.3.5. o hàng i cho socket .............................................................. 52
4.3.6. Ch và ch p nh n k t n i............................................................. 53
4.3.7. Yêu c u k t n i ............................................................................ 54
4.3.8. óng k t n i ................................................................................ 55
4.3.9. Giao ti p b ng socket................................................................... 56
4.4. S d ng socket trong ng ng minh a ....................................... 58
PH N 3: XÂY D NG NG
NG TH NGHI M PACKETCAP ......... 59
Ch ng 5: Phân tích và thi t k PacketCap .................................................. 60
5.1. Kh o sát hi n tr ng ............................................................................ 60
5.2. Phân tích và xác nh yêu c u ............................................................ 61
5.2.1. Phân tích ...................................................................................... 61
5.2.2. Xác nh yêu c u ......................................................................... 61
5.3. Các h ng xây d ng ng ng PacketCap......................................... 63
5.3.1. Phân tích h ng phát tri n d a trên Ethereal................................ 63
5.3.2. Phân tích h ng phát tri n d a trên libcap ................................... 64
5.3.3. L a ch n h ng phát tri n PacketCap ......................................... 64
5.4. Các thành ph n PacketCap ................................................................. 65
5.5. Xây d ng mô hình use case................................................................ 66
5.5.1. Xác nh Actor và use case .......................................................... 66
5.5.2. Mô hình use case ......................................................................... 66
5.6. t use case.................................................................................... 67
5.6.1. Connect........................................................................................ 67
5.6.2. StartCapture................................................................................. 68
5.6.3. StopCapture ................................................................................. 69
5.6.4. GetFilter....................................................................................... 70
5.6.5. Terminate..................................................................................... 71
12
Các danh
c
5.7.Thi t k d li u ................................................................................... 72
5.7.1. Phân tích các h ng l u tr ......................................................... 72
5.7.2. Thi t k
s
li u................................................................... 75
5.7.2.1. Danh sách các i t ng (table)............................................. 75
5.7.2.2 Table PACKET ...................................................................... 75
6.7.2.4. Table IP ................................................................................. 76
5.7.2.5. Table TCP ............................................................................. 76
5.7.2.6. Table UDP............................................................................. 77
5.7.2.7 Table ICMP ............................................................................ 77
5.7.2.8 Table IGMP............................................................................ 78
5.7.2.9. Table ARP ............................................................................. 80
5.8. Xây d ng PCServer( server), PCManager(client)............................... 81
5.8.1. L u PCServer ......................................................................... 81
5.8.2. L u PCManager( Client)......................................................... 82
5.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) .......... 85
Ch ng 6: Cài t và th nghi m................................................................. 87
6.1. Cài t................................................................................................ 87
6.2. Th nghi m........................................................................................ 88
6.2.1. Mô hình th nghi m 1.................................................................. 88
6.2.2. Mô hình th nghi m 2.................................................................. 89
6.2.3. Mô hình th nghi m 3.................................................................. 90
Ch ng 7: T ng k t ..................................................................................... 91
7.1. K t lu n.............................................................................................. 91
7.1.1. K t qu
t
c.......................................................................... 91
7.1.2. n ch ........................................................................................ 91
7.2. H ng phát tri n ................................................................................ 92
PH L C H ng d n s d ng PacketCap ................................................... 93
1.Ch ng trình PCServer.......................................................................... 93
2. Ch ng trình PCManager ..................................................................... 93
2.1. PCManager trên môi tr ng Linux ................................................. 93
2.2. PCManager trên môi tr ng Windows............................................ 94
TÀI LI U THAM KH O ............................................................................ 95
13
Các danh
c
DANH SÁCH HÌNH
Hình 5-1 Các thành ph n a PacketCap...................................................... 65
Hình 5-2 Mô hình use case ........................................................................... 66
Hình 5-3 Mô hình l u tr 1 .......................................................................... 72
Hình 5-4 Mô hình l u tr 2 .......................................................................... 73
Hình 5-5 Mô hình l u tr 3 .......................................................................... 74
Hình 5-6 L u PCServer........................................................................... 81
Hình 5-7 L u PCManager ....................................................................... 82
Hình 6-1 Mô hình th nghi m 1 ................................................................... 88
Hình 6-2 Mô hình th nghi m 2 ................................................................... 89
Hình 6-3 Mô hình th nghi m 3 ................................................................... 90
14
Các danh
c
DANH SÁCH
NG
ng 4-1 Các giá tr c a domain .................................................................. 48
ng 4-2 Các mã l i a hàm bind() ............................................................ 51
ng 4-3 Các mã l i a domain AF_UNIX ................................................ 52
ng 4-4 Mã l i a hàm connect().............................................................. 55
ng 5-1 Xác nh yêu c u........................................................................... 62
ng 5-2 Danh sách các i t ng ............................................................... 75
ng 5-3 Table PACKET............................................................................. 75
ng 5-4 Table IP ........................................................................................ 76
ng 5-5 Table TCP..................................................................................... 76
ng 5-6 Table UDP .................................................................................... 77
ng 5-7 Table ICMP .................................................................................. 77
ng 5-8 Table IGMP .................................................................................. 78
ng 5-9 Table ARP .................................................................................... 80
ng 5-10 Mô màn hình PCManager ....................................................... 86
15
Ph n 1: T ng quan
PH N 1: T NG QUAN
Ch
ng 1. Gi i thi u
16
tài
Ch
ng 1: Gi i thi u
tài
Ch
1.1.
ng 1: Gi i thi u
tài
tv 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
nay, s l
ng hôm
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
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
mu n làm
th ng này
ng m ng òi h i n ng l c tính toán r t l n, vì v y
c vi c này c n ph i trang b các siêu máy tính
toán này. Trong
ng th i
u ki n kinh t n
c vì chúng quá
t
th c hi n bài
c ta thì không th trang b nh ng h
.
17
Ch
ng 1: Gi i thi u
tài
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
thông tin
ng ph c
Nhóm th 1
xa ch
ng
ng th nghi m Grid Computing trong vi c phân tích
qu n lý” là m t
l n g m 2 nhóm th c hi n.
xây d ng ng d ng phân tán trên m ng cho phép thi t l p t
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
ph c
cho vi c theo dõi và phân tích thông tin
Nhóm th 2
ng (Ph n I).
tìm hi u Grid Computing và xây d ng ng
tích hi n tr ng c a m ng d a trên thông tin t
xây d ng (Ph n II).
18
ng
phân
s d li u do nhóm th 1
Ch
ng 1: Gi i thi u
1.3. Yêu c u
a
tài
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
• Các gói tin sau khi b t,
ng ph c
qu n lý.
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
gói tin khác nh Ethereal, TCPDump...
19
ng
a các ng
ng b t
Ph n 2: Tìm hi u các v n
l p trình
PH N 2: TÌM HI U CÁC V N
Ch
ng 2. Th vi n l p trình
Ch
ng 3. H qu n tr
Ch
ng 4. L p trình socket
20
L P TRÌNH
ng libpcap
s d li u MySQL
Ch
ng 2: Th vi n l p trình
Ch
ng libpcap
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
cho phép b t các gói tin trên
ng truy n theo nhi u h
phép phân tích các frame v a tìm
Th
vi n libcap
tr l p trình
ng c p th p,
ng khác nhau, cho
c.
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
2.2. Cài
Ch
n m i nh t
a libpcap là 0.9.1.
t th vi n libpcap
ng trình ngu n c a libpcap có th
www.tcpdump.org , các phiên
n m i nh t
download
a libpcap
u có
Gi s b n i v gói libpcap-0.8.3.tar.tar, ti n hành cà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
21
t ã hoàn t t.
a ch
a ch này.
Ch
ng 2: Th vi n l p trình
3.3. Các b
c xây d ng ch
Có 5 b
ng libpcap
ng trình s d ng libpcap
c chính trong vi c s d ng th vi n libpcap
•
c 1: Xác
nh interface (card
(Trong Linux, interface th
ng) mà ta mu n b t frame vào
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
này
ch filter
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
là tùy ch n có th có ho c không.
22
c3
Ch
ng 2: Th vi n l p trình
3.4. Chi ti t các b
ng libpcap
c
3.4.1. Ch n Interface( card
ng)
Có 3 cách thi t l p devices
• Cách 1 : Cho ng
sniff các frames d li u
i dùng nh p tên thi t b t dòng l nh
#include
#include
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
• Cách 2 : S
u tiên
d ng hàm pcap_lookupdev() c a libpcap
ki m các interface t n i trên máy tính.
#include
#include
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);
}
23
tìm
Ch
ng 2: Th vi n l p trình
Trong tr
ng libpcap
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
#include
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
24
nh ngh a
trên