1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

31 274 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Ứng Dụng Bắt Gói Tin Cho Mạng Quản Lý (Giang Quốc Minh) - 1 pot
Tác giả Giang Quốc Minh
Người hướng dẫn Ng Dân Ng Tân
Trường học Trường Đại Học Nguyễn Tất Thành
Chuyên ngành Khoa Học Tự Nhiên
Thể loại Luận Văn Tốt Nghiệp
Năm xuất bản 2005
Thành phố TP.HCM
Định dạng
Số trang 31
Dung lượng 211,85 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Các danh cDANH SÁCH HÌNH.... Các thành ph n PacketCap .... Xây d ng mô hình use case.... Xác nh Actor và use case ..... Xây d ng PCServer server, PCManagerclient.... PCManager trên môi t

Trang 1

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

QU N LÝ

KHOÁ LU N C NHÂN TIN H C

TP HCM, M 2005

Trang 2

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

Trang 3

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

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

Trang 4

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

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

Trang 5

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, ónggó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/2005Nhóm sinh viên th c hi nGiang Qu c Minh – H Ph m Thái Vinh

Trang 6

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ênmô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 tinng

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

Trang 7

Các danh 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

Trang 8

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

Trang 9

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

Trang 10

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

Trang 11

Các danh c

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

Trang 12

Ph n 1: T ng quan

PH N 1: T NG QUAN

Ch ng 1 Gi i thi u tài

Trang 13

Ch ng 1: Gi i thi u tài

Ch ng 1: Gi i thi u tài

1.1 t v nNgày nay công ngh thông tin nói chung và Intenet nói riêng ngày càngphá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 acác doanh nghi p, các t ch c và công ty trong n n kinh t th tr ng hômnay, s l ng các doanh nghi p thi t l p các h th ng m ng và k t n i Intenetngà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 ucá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 chotruy 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 ngthông t ng kh n ng áp ng thông tin, giao d ch v i khách hàng ng th itrá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àitoá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

Trang 14

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áncho 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 achúng

• i s l ng các máy tính l n thì vi c tri n khai GridComputing 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 mGrid 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íchthô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ântí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 1xây d ng (Ph n II)

Trang 15

Ch ng 1: Gi i thi u tài

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 tindù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 tgói tin khác nh Ethereal, TCPDump

Trang 17

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

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

2.1 Gi i thi u libpcapLibpcap 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, chophé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 snifferpacket 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 n hành cài t:

Trang 18

• 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ácframe 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 filternà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 ngTrê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

Trang 19

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

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);

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

exit(1);

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

Trang 20

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àmpcap_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)

Trang 21

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

• 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 chpromiscuos mode ây là ch libpcap s sniff t t c các frametrên dây d n N u t b ng 0 thì interface s ho t ng chnon promiscuos mode, trong ch này,pcap ch sniff nh ngframe g i n máy

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

if(descr == NULL) {

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êncho bi t str là opyimize hay không (1 là true, 0 là false) Cu i cùng là

Trang 22

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

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 atrong pcap_compile())

nh d ng str mô t cho filter:

• Filter theo source ip

Trang 23

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);

Trang 24

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 sniffframe Chúng ta có th b t frame và a vào vòng l p ch x lý utiê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 thhai là pointer ch n c u trúc l u gi thông tin chung v frame ( th igian b t, chi u dài frame …) pcap_next tr v m t con tr có d ngu_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)

}

Trang 25

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);

Trang 26

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

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));

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 âmthì s sniff n khi nào có l i x y ra Tham s th ba là tên c a hàm

Trang 27

tatic int count = 1;

fflush(stdout);

count++;

}

Ngày đăng: 12/08/2014, 12:21

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm