1. Trang chủ
  2. » Công Nghệ Thông Tin

ứng dụng bắt gói tin cho mạng quản trị

91 190 1

Đ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

Định dạng
Số trang 91
Dung lượng 869,2 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 gói tin sau khi b逸t, 8逢嬰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鵜.. Gi噂i thi羽u libpcapLibpcap là m瓜t th逢 vi羽n mã ngu欝n m荏 j厩

Trang 1

TR姶云NG A萎I H窺C KHOA H窺C T衛 NHIÊN KHOA CÔNG NGH烏 THÔNG TIN

D浦 MÔN CÔNG NGH烏 PH井N M陰M

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

KHOÁ LU 一N C盈 NHÂN TIN H窺C

TP HCM, P; M 2005

Trang 2

TR姶云NG A萎I H窺C KHOA H窺C T衛 NHIÊN KHOA CÔNG NGH烏 THÔNG TIN

NIÊN KHÓA 2001 – 2005

Trang 3

NH 一N XÉT E曳A GIÁO VIÊN H姶閏NG D郁N

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

Trang 4

NH 一N XÉT E曳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ô e栄a

tr逢運ng A衣i H丑c Khoa H丑c T詠 Nhiên TP H欝 Chí Minh, 8員c bi羽t là các Th亥y

cô trong Khoa Công ngh羽 Thông tin 8ã t壱n tình gi違ng f衣y, trang d鵜 cho chúng

em nh英ng ki院n th泳c c亥n thi院t, b鰻 ích trong su嘘t nh英ng n<m j丑c t壱p v衣i tr逢運ng.Chúng em xin chân thành e違m 挨n Th亥y Cao A<ng Tân, ng逢運i Th亥y 8ã

t壱n tình quan tâm h逢噂ng d磯n, giúp 8叡 chúng em trong su嘘t th運i gian làm lu壱nx<n này

Chúng con xin g穎i lòng bi院t 挨n sâu s逸c và s詠 kính tr丑ng 8院n ông bà, cha

o姻, cùng toàn th吋 gia 8ình, nh英ng ng逢運i 8ã nuôi f衣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 8叡, 8瓜ng viên, nh壱n xét, 8ónggóp ý ki院n c栄a các anh ch鵜, d衣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

B渦 C影C E曳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隠"8隠 tài

PH井N 2: TÌM HI韻U CÁC V遺N A陰 L一P TRÌNH Ph亥n này gi噂i thi羽u

các v医n 8隠 l壱p trình c挨 d違n nh医t 8吋 xây d詠ng 1"泳ng f映ng có kh違 p<ng b逸tcác gói tin và cho phép ng逢運i dùng có th吋 8i隠u khi吋n t瑛 xa qua môi

tr逢運ng o衣ng

Ch 逢挨ng 2 Tìm hi吋u th逢 vi羽n l壱p trình m衣ng c医p th医p libpcap, 8ây là

“trái tim”e栄a h亥u h院t các 泳ng f映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鵜 e挨 s荏 d英 li羽u t亥m trung

8逢嬰c s穎 d映ng ph鰻 bi院n nh医t hi羽n nay

Ch逢挨ng 4 Tìm hi吋u m悦 thu壱t l壱p trình socket 8吋 vi院t các 泳ng f映ng trên

môi tr逢運ng o衣ng

Ph亥n 3 Xây f映ng 泳ng f映ng PacketCap Ph亥n này u胤 s穎 d映ng các ki院n

th泳c 8ã tìm hi吋u 荏 ch逢挨ng 2, 3, 4 8吋 xây d詠ng m瓜t 泳ng f映ng b逸t gói tin,

n逢u các k院t qu違 b逸t 8逢嬰c vào c挨 s荏 d英 li羽u 8吋 phân tích các thông tino衣ng

Ch逢挨ng 5 Phân tích, thi院t k院"泳ng f映ng PacketCap

Ch逢挨ng 6 Cài 8員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違 8衣t 8逢嬰c,

nh英ng j衣n ch院 và h逢噂ng phát tri吋n PacketCap trong t逢挨ng lai

Trang 7

Các danho映c

M影C N影C

DANH SÁCH HÌNH 14

DANH SÁCHD謂NG 15

PH井N 1: T蔚NG QUAN 16

Ch逢挨ng 1: Gi噂i thi羽u 8隠 tài 17

1.1.A員t v医n 8隠 17

1.2 Gi噂i thi羽u 8隠 tài 18

1.3 Yêu c亥u e栄a 8隠 tài 19

PH井N 2: TÌM HI韻U CÁC V遺N A陰 L一P TRÌNH 20

Ch逢挨ng 2 : Th逢 vi羽n l壱p trình o衣ng libpcap 21

2.1 Gi噂i thi羽u libpcap 21

2.2 Cài 8員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 o衣ng) 23

3.4.2 M荏 device 8吋 l逸ng nghe( sniff) d英 li羽u 24

3.4.3.N丑c traffic 25

Ch逢挨ng 3: H羽 qu違n tr鵜 e挨 s荏 d英 li羽u MySQL 34

3.1 Gi噂i thi羽u v隠 MySQL 34

3.2 Cài 8員t MySQL 34

3.2.1 Cài A員t MySQL t瑛 các gói nh鵜 phân 34

3.2.2 Cài 8員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 danho映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 8瓜ng e栄a socket 42

4.3 L壱p trình v噂i socket 44

4.3.1 Các thu瓜c tính e栄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 e栄a socket( protocol) 47

4.3.2.V衣o socket 48

4.3.3 A鵜nh 8鵜a ch雨 cho socket 49

4.3.4.A員t tên cho socket 51

4.3.5.V衣o hàng 8嬰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 Aóng k院t n嘘i 55

4.3.9 Giao ti院p b茨ng socket 56

4.4 S穎 d映ng socket trong 泳ng f映ng minh j丑a 58

PH井N 3: XÂY D衛NG 永NG F影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 8鵜nh yêu c亥u 61

5.2.1 Phân tích 61

5.2.2 Xác 8鵜nh yêu c亥u 61

5.3 Các h逢噂ng xây d詠ng 泳ng f映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 8鵜nh Actor và use case 66

5.5.2 Mô hình use case 66

5.6.A員t v違 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 danho映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院 e挨 s荏 f逢 li羽u 75

5.7.2.1 Danh sách các 8鰻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 8欝 PCServer 81

5.8.2 L逢u 8欝 PCManager( Client) 82

5.8.3 C医u trúc d英 li羽u trao 8鰻i gi英a PCServer và PCManager 83

5.9.Thi院t k院 giao di羽n PCManager( phiên d違n ch衣y trên Windows) 85

Ch逢挨ng 6: Cài 8員t và th穎 nghi羽m 87

6.1 Cài 8員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違 8衣t 8逢嬰c 91

7.1.2.J衣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 danho映c

DANH SÁCH HÌNH

Hình 5-1 Các thành ph亥n e栄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 8欝 PCServer 81

Hình 5-7 L逢u 8欝 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 danho映c

DANH SÁCH D謂NG

D違ng 4-1 Các giá tr鵜 c栄a domain 48

D違ng 4-2 Các mã l厩i e栄a hàm bind() 51

D違ng 4-3 Các mã l厩i e栄a domain AF_UNIX 52

D違ng 4-4 Mã l厩i e栄a hàm connect() 55

D違ng 5-1 Xác 8鵜nh yêu c亥u 62

D違ng 5-2 Danh sách các 8嘘i t逢嬰ng 75

D違ng 5-3 Table PACKET 75

D違ng 5-4 Table IP 76

D違ng 5-5 Table TCP 76

D違ng 5-6 Table UDP 77

D違ng 5-7 Table ICMP 77

D違ng 5-8 Table IGMP 78

D違ng 5-9 Table ARP 80

D違ng 5-10 Mô v違 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 8隠 tài

Trang 13

Ch逢挨ng 1: Gi噂i thi羽u 8隠 tài

Ch 逢挨ng 1: Gi噂i thi羽u 8隠 tài

1.1.A員t v医n 8隠Ngày nay công ngh羽 thông tin nói chung và Intenet nói riêng ngày càngphát tri吋n o衣nh o胤 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 8鰻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 8逢嬰c trao 8鰻i trên m衣ng làm n違y sinh m瓜t s嘘 v医n 8隠quan tr丑ng là b違o m壱t thông tin trên m衣ng 8吋 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 8吋 t<ng kh違 n<ng 8áp 泳ng thông tin, giao d鵜ch v噂i khách hàng 8欝ng th運itránh 8逢嬰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 8òi h臼i n<ng l詠c tính toán r医t l噂n, vì v壱y

mu嘘n làm 8逢嬰c vi羽c này c亥n ph違i trang b鵜 các siêu máy tính 8吋 th詠c hi羽n bàitoán này Trong 8k隠u ki羽n kinh t院 n逢噂c ta thì không th吋 trang b鵜 nh英ng h羽

th嘘ng này 8逢嬰c vì chúng quá 8逸t 8臼

Trang 14

Ch逢挨ng 1: Gi噂i thi羽u 8隠 tài

X壱y gi違i pháp nào 8吋 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

j羽 th嘘ng nh臼 g欝m nhi隠u máy tính 8逢嬰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嘘io衣ng nh逢ng ch逢a s穎 d映ng 8逢嬰c h院t kh違 n<ng tính toán c栄achúng

• X噂i s嘘 l逢嬰ng các máy tính 8栄 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ìo衣nh g医p nhi隠u l亥n 1 siêu máy tính ( lúc 8ó các siêu máy tính

có th吋 ch雨 là m瓜t node trong h羽 th嘘ng Grid Computing)

X噂i nh英ng 逢u 8k吋m trên chúng tôi ch丑n 8隠 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 8隠 tài

A隠 tài “永ng f映ng th穎 nghi羽m Grid Computing trong vi羽c phân tíchthông tino衣ng ph映c x映 qu違n lý” là m瓜t 8隠 l噂n g欝m 2 nhóm th詠c hi羽n

Nhóm th泳 1 u胤 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院"8瓜 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êno衣ng"8吋 ph映c x映 cho vi羽c theo dõi và phân tích thông tin o衣ng (Ph亥n I).Nhóm th泳 2 u胤 tìm hi吋u Grid Computing và xây d詠ng 泳ng f映ng 8吋 phântích hi羽n tr衣ng c栄a m衣ng d詠a trên thông tin t瑛 e挨 s荏 d英 li羽u do nhóm th泳 1xây d詠ng (Ph亥n II)

Trang 15

Ch逢挨ng 1: Gi噂i thi羽u 8隠 tài

1.3 Yêu c亥u e栄a 8隠 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 8吋 phân tích thông tin o衣ng ph映c x映 qu違n lý

• Các gói tin sau khi b逸t, 8逢嬰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鵜

• J羽 th嘘ng cho phép c医u hình 泳ng d映ng t瑛 xa

• H鰻 tr嬰 n逢u k院t qu違 b逸t 8逢嬰c theo 8鵜nh f衣ng e栄a các 泳ng f映ng b逸tgói tin khác nh逢 Ethereal, TCPDump

Trang 16

Ph亥n 2: Tìm hi吋u các v医n 8隠 l壱p trình

PH井N 2: TÌM HI韻U CÁC V遺N A陰 L一P TRÌNH

Ch逢挨ng 2 Th逢 vi羽n l壱p trình o衣ng libpcap

Ch逢挨ng 3 H羽 qu違n tr鵜 e挨 s荏 d英 li羽u MySQL

Ch逢挨ng 4 L壱p trình socket

Trang 17

Ch逢挨ng 2: Th逢 vi羽n l壱p trình o衣ng libpcap

Ch 逢挨ng 2 : Th逢 vi羽n l壱p trình o衣ng libpcap

2.1 Gi噂i thi羽u libpcapLibpcap là m瓜t th逢 vi羽n mã ngu欝n m荏 j厩 tr嬰 l壱p trình o衣ng c医p th医p,cho phép b逸t các gói tin trên 8逢運ng truy隠n theo nhi隠u h逢噂ng khác nhau, chophép phân tích các frame v瑛a tìm 8逢嬰c

Th逢 vi羽n libcap 8逢嬰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 d違n m噂i nh医t e栄a libpcap là 0.9.1

2.2 Cài 8員t th逢 vi羽n libpcap

Ch逢挨ng trình ngu欝n c栄a libpcap có th吋 download 荏 8鵜a ch雨

www.tcpdump.org , các phiênd違n m噂i nh医t e栄a libpcap 8隠u có 荏 8鵜a ch雨 này

Gi違 s穎 b衣n v違i v隠 gói libpcap-0.8.3.tar.tar, ti院nhànhcài 8員t:

• Gi違i nén gói tar

Trang 18

Ch逢挨ng 2: Th逢 vi羽n l壱p trình o衣ng libpcap

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

• D逢噂c 1: Xác 8鵜nh interface (card o衣ng) mà ta mu嘘n b逸t frame vào(Trong Linux, interface th逢運ng là eth0,eth1… Ta có th吋 dùng cáchàm pcap_lookupdev() c栄a th逢 vi羽n libpcap 8吋 l医y t医t c違 cácinteface

• D逢噂c 2: Kh荏i t衣o pcap Cung c医p cho pcap bi院t interface nào trong

u嘘 các interface 8ã l医y v隠"荏 b逢噂c trên s胤"8逢嬰c ch丑n 8吋 sniff

• D逢噂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 f鵜ch filternày 8吋 báo cho pcap bi院t b瓜 l丑c nó s胤 dùng

• D逢噂c 4: Pcap th詠c thi vi羽c sniff frames

• D逢噂c 5: Aóng phiên làm vi羽c và k院t thúc 泳ng d映ngTrên 8ây là qui trình t鰻ng quát cách libpcap b逸t gói tin trong 8ó 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 o衣ng libpcap

3.4 Chi ti院t các b逢噂c

3.4.1 Ch丑n Interface( card o衣ng)

Có 3 cách thi院t l壱p devices 8吋 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 8ó argv[1] là tham s嘘 dòng l羽nh 8亥u tiên

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

ki院m các interface t欝n v衣i trên máy tính

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

exit(1);

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

}

Trang 20

Ch逢挨ng 2: Th逢 vi羽n l壱p trình o衣ng libpcap

Trong tr逢運ng h嬰p này, pcap t詠 tìm ra thi院t b鵜 errbuf là chu厩i ch泳athông báo l厩i n院u có

• Cách 3 : Dùng hàm pcap_findalldevs 8吋 tìm t医t c違 thi院t b鵜 sau 8ó8逢a vào m瓜t m違ng

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 8吋 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 :

Trang 21

Ch逢挨ng 2: Th逢 vi羽n l壱p trình o衣ng libpcap

• snaplen cho bi院t s嘘 byte l噂n nh医t mà pcap có th吋 b逸t frames

• promisc n院u 8員t b茨ng 1 thì interface s胤 ho衣t 8瓜ng trong ch院"8瓜promiscuos mode Aây là ch院"8瓜 libpcap s胤 sniff t医t c違 các frametrên dây d磯n N院u 8員t b茨ng 0 thì interface s胤 ho衣t 8瓜ng 荏 ch院"8瓜non promiscuos mode, trong ch院"8瓜 này,pcap ch雨 sniff nh英ngframe g穎i 8院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嘘"8亥u tiên là handle c栄a phiên làm vi羽c (pcap_t) Tham s嘘

th泳 hai là tham s嘘 ch雨" 8院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院"8院n là s嘘 nguyêncho bi院t str là opyimize hay không (1 là true, 0 là false) Cu嘘i cùng lànetmask c栄a 8逢運ng m衣ng

Trang 22

Ch逢挨ng 2: Th逢 vi羽n l壱p trình o衣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雨"8院n compile version c栄a filter (8ã 8逢嬰c 8鵜nh ngh atrong pcap_compile())

A鵜nh d衣ng str mô t違 cho filter:

• Filter theo source ip

Trang 23

Ch逢挨ng 2: Th逢 vi羽n l壱p trình o衣ng libpcap

• Filter theo protocal

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

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

exit(1);

}

Trang 24

Ch逢挨ng 2: Th逢 vi羽n l壱p trình o衣ng libpcap

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詠 : 雲"8ây ta 8鵜nh ngh a m瓜t thi院t b鵜 m瓜t thi院t b鵜"8吋 chu育n b鵜 sniff frame(thi院t l壱p filter n院u c亥n) Có 2 k thu壱t chính 8逢嬰c dùng trong vi羽c sniffframe Chúng ta có th吋 b逸t frame và 8逢a vào vòng l員p ch運 x穎 lý A亥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嘘"8亥u tiên là handle qu違n lý phiên làm vi羽c Tham s嘘 th泳hai là pointer ch雨"8院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臼"8院n frame 8逢嬰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

Ch逢挨ng 2: Th逢 vi羽n l壱p trình o衣ng libpcap

Ví d映 v隠 sniff frame s穎 d詠ng c医u trúc này

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

Trang 26

Ch逢挨ng 2: Th逢 vi羽n l壱p trình o衣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));

pcap_close(descr);

}

Ch逢挨ng trình này in ra chi隠u dài và th運i gian b逸t gói tin 8亥u tiên mà

nó b逸t 8逢嬰c Hàm pcap_close() dùng 8吋"8óng phiên làm vi羽c

O瓜t k悦 thu壱t khác ph泳c t衣p h挨n là dùng hàm pcap_loop() c栄alibpcap 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嘘"8亥u tiên là handle qu違n lý phiên làm viêc, tham s嘘 th泳 hai

là s嘘 frame s胤"8逢嬰c sniff tr逢噂c khi thoát ra N院u tham s嘘 này là s嘘 âmthì s胤 sniff 8院n khi nào có l厩i x違y ra Tham s嘘 th泳 ba là tên c栄a hàmcallback Tham s嘘 cu嘘i cùng 8逢嬰c s穎 d映nng trong m瓜t s嘘" 泳ng d映ng,8挨n gi違n hãy d員t là NULL

Trang 27

Ch逢挨ng 2: Th逢 vi羽n l壱p trình o衣ng libpcap

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嘘"8亥u tiên là tham s嘘 cu嘘i cùng c栄a hàm pcap_loop truy隠nvào (th逢運ng là NULL) Tham s嘘 th泳 hai là c医u trúc pcap_pkthdr

tatic int count = 1;

fflush(stdout);

count++;

}

Trang 28

Ch逢挨ng 2: Th逢 vi羽n l壱p trình o衣ng libpcap

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

}

Trang 29

Ch逢挨ng 2: Th逢 vi羽n l壱p trình o衣ng libpcap

pcap_loop(descr,atoi(argv[1]),my_callback,NULL); fprintf(stdout,"\nDone processing packets wheew!\n"); return 0;

}

Trang 30

Ch逢挨ng 3: H羽 qu違n tr鵜 c挨 s荏 d英 li羽u MySQL

Ch 逢挨ng 3: H羽 qu違n tr鵜 e挨 s荏 d英 li羽u MySQL

3.1 Gi噂i thi羽u v隠 MySQLCông ty Tcx mu嘘n phát tri吋n m瓜t 泳ng d映ng web và mu嘘n s穎 d映ng c挨 s荏

f英 li羽u c栄a riêng mình Tcx 8ã d詠a trên ti院p c壱n l壱p trình API c栄a mSQL vàngôn ng英 SQL 8吋 phát tri吋n nên MySQL

MySQL ho衣t 8瓜ng theo mô hình client-server, r医t 8挨n gi違n, không có cáctính n<ng cao c医p nh逢 qu違n lý giao tác, chia s飲 k院t n嘘i A逢嬰c s穎 d映ng r瓜ng rãitrong Linux 8嘘i v噂i các 泳ng d映ng cgi hay Perl trong môi tr逢運ng Web,Internet

A鵜a ch雨 download MySQL :http://www.MySQL.com

Trang 31

Ch逢挨ng 3: H羽 qu違n tr鵜 c挨 s穎 d英 li羽u MySQL

Trình cài 8員t script s胤 t詠"8瓜ng t衣o:

• O瓜t CSDL database m磯u

• Script init.d và mysql 8吋 kh荏i 8瓜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 CSDLcho bi院t v鵜 trí các file CSDL c栄a MySQL:

bindir=/usr/bindatadir=/var/lib/mysqlpid_file=/var/lib/mysql/mysqld.pidmysql_daemon_user=mysql # Run mysql as thisuser

• User mang tên mysql dùng 8吋"8<ng nh壱p và kh荏i 8瓜ng d鵜ch

• Gk違i nén file ch泳a mã ngu欝n

• Th詠c hi羽n cài 8員t b茨ng t鰻 h嬰p l羽nh sau :

Trang 32

Ch逢挨ng 3: H羽 qu違n tr鵜 c挨 s穎 d英 li羽u MySQL

$ 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 : 8鰻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 n衣i n院u có tham s嘘 là tên database thì

Trang 33

Ch逢挨ng 3: H羽 qu違n tr鵜 c挨 s穎 d英 li羽u MySQL

3.3.4 L羽nh grant

E医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 8鰻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 8瓜ng 8院n m丑i b違ngtrên databasename

N逢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

Trang 34

Ch逢挨ng 3: H羽 qu違n tr鵜 c挨 s穎 d英 li羽u MySQL

V衣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;

N羽nh trên 8逢嬰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 8隠u lác 8瓜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

• 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

Trang 35

Ch逢挨ng 3: H羽 qu違n tr鵜 c挨 s穎 d英 li羽u MySQL

unsigned port_num ,const char * unit_socket_name , unsigned int flag )

db_name : tên c栄a database

port_num : s嘘 hi羽u c鰻ng mysql dùng (m員c 8鵜nh b茨ng 0)

unit_socket_name ki吋u socket (m員c 8鵜nh NULL)

flag: ki吋u giao th泳c s胤 k院t n嘘i

Trang 36

Ch逢挨ng 3: H羽 qu違n tr鵜 c挨 s穎 d英 li羽u MySQL

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

Cú pháp :

MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)

Trang 37

Ch逢挨ng 3: H羽 qu違n tr鵜 c挨 s穎 d英 li羽u MySQL

Trang 38

Ch逢挨ng 4: L壱p trình socket

Ch 逢挨ng 4: L壱p trình socket

4.1 Gi噂i thi羽u v隠 l壱p trình socketKhi vi院t 泳ng f映ng và có nhu c亥u t逢挨ng tác v噂i m瓜t 泳ng f映ng khác,chúng ta th逢運ng d詠a vào mô hình khách/ ch栄 (client/server) Theo mô hìnhnày, 泳ng f映ng có kh違 p<ng ph映c x映 ho員c cung c医p nh英ng thông tin gì 8ó g丑i

là 泳ng f映ng ch栄 (trình ch栄 hay server) 永ng f映ng g穎i yêu c亥u 8院n trình ch栄8逢嬰c i丑i là 泳ng f映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 o衣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 f鵜ch x映 c栄a trình ch栄 th詠c hi羽n 8i隠u gì8ó, trình khách (client) ph違i có kh違 p<ng k院t n嘘i 8逢嬰c v噂i trình ch栄 Quá trình

k院t n嘘i này 8逢嬰c th詠c hi羽n thông qua m瓜t c挨 ch院 tr瑛u t逢嬰ng hóa i丑i là socket(v衣m f鵜ch là “c挨 ch院"鰻 c逸m”) K院t n嘘i gi英a trình khách và trình ch栄 v逢挨ng t詠

nh逢 vi羽c c逸m phích 8i羽n vào 鰻 c逸m 8i羽n Trình khách th逢運ng 8逢嬰c coi nh逢phích c逸m 8i羽n, còn trình ch栄 8逢嬰c coi nh逢 鰻 c逸m 8i羽n, m瓜t 鰻 c逸m có th吋 c逸mvào 8ó nhi隠u phích 8i羽n khác nhau e ng nh逢 m瓜t máy ch栄 có th吋 k院t n嘘i và

ph映c x映 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 8鰻i d英

li羽u v噂i nhau, th詠c hi羽n các yêu c亥u v隠 trao 8鰻i d英 li羽u

4.2 Nguyên lý ho衣t 8瓜ng e栄a socketA亥u tiên server m荏 m瓜t 鰻 c逸m socket Aây ch雨 là quá trình h羽 8i隠u hànhphân b鰻 tài nguyên 8吋 chu育n d鵜 k院t n嘘i Dùng hàm socket() 8吋 t衣o “鰻 c逸m”cho trình ch栄 server

Ti院p 8院n, 8吋"泳ng f映ng khách bi院t 8院n 鰻 c逸m socket e栄a trình ch栄, d衣n

ph違i 8員t cho server ch栄 m瓜t cái tên N院u trên máy e映c b瓜 và d詠a vào h羽 th嘘ngfile e栄a UNIX hay Linux, d衣n có th吋 8員t tên cho socket nh逢 là m瓜t tên file

Trang 39

Ch逢挨ng 4: L壱p trình socket

(v噂i 8亥y 8栄 8逢運ng d磯n) D衣n ch雨 c亥n 8員t tên còn 8逢運ng d磯n th逢運ng 8員t trong

th逢 o映c /tmp hay /usr/tmp A嘘i v噂i giao ti院p o衣ng thông qua giao th泳cTCP/IP têne栄a socket 8逢嬰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 d衣n có th吋 ch丑n 8員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áchnhau, giao th泳c TCP/IP còn yêu c亥u xác 8鵜nh thêm 8鵜a ch雨 IP 8吋 k院t n嘘i 8院nmáy ch栄"荏 xa

Sau khi 8ã ch雨 8鵜nh tên ho員c s嘘 hi羽u port cho socket, d衣n i丑i hàm bind()8吋 ràng bu瓜c hay 8員t tên chính th泳c cho socket e栄a trình ch栄 Ti院p 8院n là ch運

k院t n嘘i t瑛 phía trình khách, trình ch栄 s胤 g丑i hàm listen() 8吋 t衣o hàng 8嬰i nh壱ncác k院t n嘘i do trình khách 8逢a 8院n N院u có yêu c亥u k院t n嘘i t瑛 phía trìnhkhách, trình ch栄 g丑i hàm accept() 8吋 ti院p nh壱n yêu c亥u e栄a trình khách.accept() u胤 t衣o m瓜t socket vô danh khác (unnamed socket), c逸m k院t n嘘i e栄atrình khách vào socket vô danh này và th詠c hi羽n quá trình chuy吋n d英 li羽u trao8鰻i gi英a khách ch栄 Socket 8逢嬰c 8員t tên tr逢噂c 8ó v磯n ti院p v映c ho衣t 8瓜ng 8吋

ch運 nh壱n yêu c亥u t瑛 trình khách khác

O丑i giao ti院p 8丑c ghi thông qua socket e ng 8挨n gi違n nh逢 vi羽c dùng

l羽nh read/write 8吋 8丑c ghi trên file N院u file d詠a vào s嘘 mô v違 (file descriptor)8吋 xác 8鵜nh socket c亥n 8丑c ghi cho hàm read/write

Phía trình khách ch雨 c亥m v衣o m瓜t socket vô danh, ch雨 8鵜nh tên và v鵜 trísocket e栄a trình ch栄 Yêu c亥u k院t n嘘i b茨ng hàm connect() và 8丑c ghi, truy

xu医t d英 li羽u e栄a socket b茨ng l羽nh read/ write ho員c l羽nh send/ recv

Trang 40

Ch逢挨ng 4: L壱p trình socket

4.3 L壱p trình v噂i socket

4.3.1 Các thu瓜c tính e栄a socket

Socket 8逢嬰c 8鵜nh ngh a d詠a trên 3 thành ph亥n thu瓜c tính( attribute)8ó là: vùng( domain), ki吋u( type) và giao th泳c( protocol) Socket còn c<n

c泳 vào m瓜t 8鵜a ch雨 k院t h嬰p v噂i nó A鵜a ch雨 này ph映 thu瓜c vào vùng e栄asocket và th逢運ng 8逢嬰c i丑i là dòng giao th泳c (protocol family) Ví d映

nh逢 dòng giao th泳c theo h羽 th嘘ng file e栄a Sun th逢運ng l医y tên file làm8逢運ng d磯n 8鵜a ch雨, trong khi giao th泳c TCP/IP n衣i l医y 8鵜a ch雨 IP (32 bits)8吋 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 8鵜nh j衣 t亥ng o衣ng n挨i giao ti院p e栄a Socket

di宇n ra Vùng giao ti院p Socket thông f映ng nh医t hi羽n nay làAF_INET hay gia ti院p socket theo chu育n o衣ng Internet Chu育n này

s穎 d映ng 8鵜a ch雨 IP 8吋 xác 8鵜nh nút k院t n嘘i v壱t lý trên o衣ng Ngoài

ra, n院u d衣n ch雨 c亥n giao ti院p e映c b瓜, d衣n có th吋 dùng vùng giao ti院ptheo chu育n e栄a Sun AF_UNIX, 8ó là dùng 8逢運ng d磯n và h羽 th嘘ngfile 8吋 8員t tên và xác 8鵜nh k院t n嘘i gi英a hai hay nhi隠u 泳ng f映ng

Ch鰯ng j衣n nh逢 ví d映 trên, chúng ta 8ã th詠c hi羽n b茨ng cách 8員t têncho socket là server_socket, và Linux 8ã t衣o ra file server_socketngay trên th逢 o映c hi羽n hành (hay trong th逢 o映c v衣m /tmp tùy theophiên d違n e栄a Linux và UNIX) Tuy nhiên vùng giao ti院pAF_UNIX l衣i ít 8逢嬰c s穎 d映ng trong th詠c t院 Ngày nay h亥u h院t các泳ng f映ng o衣ng s穎 d映ng socket 8隠u theo vùng AF_INET là ch栄 y院u.Chúng tau胤 bàn sâu v隠 phân vùng này ngay sau 8ây

Vùng AF_INET nh逢" 8ã nêu s穎 d映ng 8鵜c ch雨 IP (InternetProtocol) là m瓜t ch栄 ngh a s嘘 32 bits 8吋 xác 8鵜nh k院t n嘘i v壱t lý S嘘này th逢運ng 8逢嬰c vi院t 荏 d衣ng nhòm nh逢 192.168.1.1, 203.162.42.1

Ngày đăng: 12/04/2015, 03:09

HÌNH ẢNH LIÊN QUAN

Hình 5-1 Các thành ph亥n e栄a PacketCap - ứng dụng bắt gói tin cho mạng quản trị
Hình 5 1 Các thành ph亥n e栄a PacketCap (Trang 61)
Hình 5-2 Mô hình use case - ứng dụng bắt gói tin cho mạng quản trị
Hình 5 2 Mô hình use case (Trang 62)
Hình 5-3 Mô hình l逢u tr英 1 - ứng dụng bắt gói tin cho mạng quản trị
Hình 5 3 Mô hình l逢u tr英 1 (Trang 68)
Hình 5-4 Mô hình l逢u tr英 2 - ứng dụng bắt gói tin cho mạng quản trị
Hình 5 4 Mô hình l逢u tr英 2 (Trang 69)
Hình 5-5 Mô hình l 逢 u tr 英 3 - ứng dụng bắt gói tin cho mạng quản trị
Hình 5 5 Mô hình l 逢 u tr 英 3 (Trang 70)
Hình 5-6 L逢u 8欝 PCServer - ứng dụng bắt gói tin cho mạng quản trị
Hình 5 6 L逢u 8欝 PCServer (Trang 77)
Hình 5-7 L逢u 8欝 PCManager - ứng dụng bắt gói tin cho mạng quản trị
Hình 5 7 L逢u 8欝 PCManager (Trang 78)
Hình 6-1 Mô hình th穎 nghi羽m 1 - ứng dụng bắt gói tin cho mạng quản trị
Hình 6 1 Mô hình th穎 nghi羽m 1 (Trang 84)
Hình 6-2 Mô hình th穎 nghi羽m 2 - ứng dụng bắt gói tin cho mạng quản trị
Hình 6 2 Mô hình th穎 nghi羽m 2 (Trang 85)
Hình 6-3 Mô hình th穎 nghi羽m 3 - ứng dụng bắt gói tin cho mạng quản trị
Hình 6 3 Mô hình th穎 nghi羽m 3 (Trang 86)
Hình 7-1 Màn hình PCManager - ứng dụng bắt gói tin cho mạng quản trị
Hình 7 1 Màn hình PCManager (Trang 90)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w