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 đề về lập trình cơ bản nhất để xây dựng 1 ứng dụng có khả nă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 mạng.
Chương 2: Tìm hiểu thư viện lập trình mạng cấp thấp libcap, đây là "trái tim" của hầu hết các ứng dụng bắt gói tin mã nguồn mở hiện nay.
Chương 3: Giới thiệu MySQL, một hệ quản trị cơ 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 kỹ thuật lập trình socket để viết các ứng dụng trên môi trường mạng
PHẦN 3: XÂY DỰNG ỨNG DỤNG PACKETCAP. Phần này sẽ 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 dụng bắt gói tin, lư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 mạng.
Chương 5: Phân tích, thiết kế ứng dụ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 hạn chế và hướng phát triển PacketCap trong tương lai
91 trang |
Chia sẻ: diunt88 | Lượt xem: 2370 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Luận văn Xây dựng ứng dụng bắt gói tin cho việc phân tích thông tin mạng phục vụ quản lý, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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 0ɝNG PHͤC
9ͤ QUɟN LÝ
KHOÁ LUҰN CӰ NHÂN TIN HӐC
TP. HCM, 1Ă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 0ɝNG PHͤC
9ͤ 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
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 ѪN
Chúng em xin chân thành cám ѫn Ban giám hiӋu, quý Thҫy cô Fӫ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 Gҥy, trang Eӏ cho chúng
em nhӳng kiӃn thӭc cҫn thiӃt, bә ích trong suӕt nhӳng năm Kӑc tұp Wҥi trѭӡng.
Chúng em xin chân thành Fҧ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
Yă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
Pҽ, cùng toàn thӇ gia ÿình, nhӳng ngѭӡi ÿã nuôi Gҥ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ӏ, Eҥ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 Ĉӄ LҰP TRÌNH. Phҫn này giӟi thiӋu
các vҩn ÿӅ lұp trình cѫ Eҧn nhҩt ÿӇ xây dӵng 1ӭng Gөng có khҧ Qă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 Pҥ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” Fӫa hҫu hӃt các ӭng Gө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ӏ Fѫ 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 Nӻ thuұt lұp trình socket ÿӇ viӃt các ӭng Gөng trên
môi trѭӡng Pҥng
Phҫn 3 Xây Gөng ӭng Gөng PacketCap. Phҫn này VӁ 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 Gөng bҳt gói tin,
Oѭ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
Pҥng.
Chѭѫng 5. Phân tích, thiӃt kӃӭng Gө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 Kҥn chӃ và hѭӟng phát triӇn PacketCap trong tѭѫng lai.
Các danhPөc
11
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 Fӫ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 Pҥ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 Pҥ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ӏ Fѫ 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
Các danhPөc
12
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 Fӫa socket......................................................... 42
4.3. Lұp trình vӟi socket ........................................................................... 44
4.3.1. Các thuӝc tính Fӫ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 Fӫa socket( protocol) ............................................. 47
4.3.2. 7ҥo socket.................................................................................... 48
4.3.3. Ĉӏnh ÿӏa chӍ cho socket................................................................ 49
4.3.4. Ĉһt tên cho socket........................................................................ 51
4.3.5. 7ҥ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 Gөng minh Kӑ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 Gө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 Wҧ 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
Các danhPөc
13
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Ӄ Fѫ sӣ Gѭ 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 Eҧ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
Các danhPөc
14
DANH SÁCH HÌNH
Hình 5-1 Các thành phҫn Fӫa PacketCap.................................................