Tải bản đầy đủ (.pdf) (29 trang)

Xây dựng ứng dụng bắt gói tin cho mạng quản lý (Giang Quốc Minh) - 3 pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (553.62 KB, 29 trang )


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ính
Use-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ó.

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.

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.

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.

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ó.

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

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.

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.

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
T

Tê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
3
Dest 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

Chng 5: Phân tích và thit k PacketCap
76
6.7.2.4. Table IP
ST
T
Tê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 IP
5.7.2.5. Table TCP
ST
T
Tê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 "}

Chng 5: Phân tích và thit k PacketCap
77
5.7.2.6. Table UDP
ST
T
Tê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
T
Tê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
ICMP message
group
Chu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"},

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
T
Tê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
IGMP message
group
Chu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

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. "}

Chng 5: Phân tích và thit k PacketCap
80
5.7.2.9. Table ARP
ST
T
Tê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 ARP
ARP type:
ARP Request frame
ARP Reply frame

RARP Request frame
RARP Reply frame
Unknown ARP

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

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

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.

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

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)
Mô 

th

Tên i tng Kiu i
ng
Ghi 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

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 Combo
box
 lng packet cn bt
13
IDC_STATIC Label Server IP
14
IDC_IPADDR_SERVER
Textbox Nhp a ch IP máy
PCServer 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n
th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

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  c
cài t trên  2 môi trng Linux và Windows.
• Môi trng cài t ng ng
o Windows XP Professional
o Linux Redhat 9.0
• Môi trng lp trình
o C for Linux
o Visual C++ 6.0
• Môi trng cài t th nghim
o PCServer: Linux Redhat 9.0
o PCManager: Windows XP Professional
o PCManager: Linux Redhat 9.0
• Các phn mm h tr
PCServer : MySQL, th vin libpap


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.

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.

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 .

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.

×