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

Quản trị hệ thống mạng công cụ TCPdump

18 553 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 18
Dung lượng 790 KB

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

Nội dung

Để phần nào hiểu được cách phát hiện sự cố và giải quyết những vấn đề phát sinh của một hệ thống mạng chúng ta sẽ đi tìm hiểu về Tcpdump, một trong những công cụ phân tích lưu lượng

Trang 1

MỤC LỤC

Phần 1: Mở đầu 1 Phần II Giới thiệu công cụ TCPdump 2

“Nghe” trong mạng sử dụng Router 10

Phần 1: Mở đầu

Ngày nay, việc xây dựng một hệ thống mạng đáp ứng các nhu cầu cơ bản của người dùng không còn quá khó đối với hầu hết những người quản trị mạng Xây dựng một hệ thống đáp ứng được nhu cầu người dùng rất quan trọng tuy nhiên việc duy trì và kiểm soát để hệ thống hoạt động ổn định cũng quan trọng không kém Trong quá trình vận hành hệ thống, không thể tránh khỏi những sự cố, việc phát hiện và kịp thời sửa chữa là vấn đề đầu tiên được đặt ra cho người quản trị hệ thống mạng

Trang 2

_ Ngày nay, Có rất nhiều công cụ được viết ra nhằm hỗ trợ người quản trị trong việc theo dõi

và giám sát hệ thống Để phần nào hiểu được cách phát hiện sự cố và giải quyết những vấn

đề phát sinh của một hệ thống mạng chúng ta sẽ đi tìm hiểu về Tcpdump, một trong những công cụ phân tích lưu lượng mạng được những người quản trị hệ thống sử dụng nhiều nhất

Đây cũng là đề tài nghiên cứu của nhóm trong môn học: Quản trị hệ thống mạng do GV:

Vũ Trí Dũng hướng dẫn thực hiện Xin gởi lời cám ơn sâu sắc nhất tới thầy!

Ngày 30 tháng11 năm 2010

Nhóm sinh viên thực hiện

Phần II Giới thiệu công cụ TCPdump

1 Giới thiệu tổng quan

Với mục đích giới thiệu một công cụ kiểm tra, bảo mật, gỡ rối đơn giản cho những người đang tìm hiểu về vấn đề quản trị hệ thống mạng, bài viết sẽ trình bày một cách đơn giản và

dễ hiểu nhất về cách sử dụng, ưu khuyết điểm mục đích giúp người đọc dễ dàng tiếp thu và nắm bắt được vấn đề

2 Công cụ quản lý mạng

Trang 3

2.1 Giới thiệu về công cụ quản lý mạng

Tcpdump được viết vào năm 1987 bởi Van Jacobson, Craig Leres và Steven McCanne làm việc tại University of California.(1) Tcpdump được tích hợp sẵn trong một số dòng Linux,

nó có vai trò trụ cột trong việc gỡ rối và kiểm tra vấn đề kết nối mạng và bảo mật trong một hệ thống mạng, nó là công cụ đã được các chuyên gia trên khắp thế giới tín nhiệm về

sự hữu dụng Tcpdump là một công cụ dòng lệnh không có các họa tiết đẹp mắt so với các công phân tích lưu lượng khác như Ettercap và Wireshark, tuy nhiên vì tính đơn giản và hiệu quả nên nó được sử dụng rộng rãi

2.2 Các chức năng của tcpdump

Tcpdump cung cấp khả năng phân tích các hành vi trong mạng, hiệu suất và các ứng dụng tạo ra hoặc nhận được trong mạng Nó cũng có thể được sử dụng để phân tích các cơ sở hạ tầng mạng bằng cách xác định liệu tất cả các kết nối và nút mạng

Nó cũng có thể sử dụng để lấy các thông tin liên lạc của một người hoặc máy tính trong mạng bằng cách bắt và đọc các gói tin được gởi qua các giao thức không được mã hóa như: Telnet, HTTP… có thể sử dụng tcpdump để xem ID đăng nhập, mật khẩu, các URL và nội dung của các trang web đang xem, hay bất kỳ thông tin khác không được mã hóa

Trước khi đi vào các chức năng cụ thể của tcpdump chúng ta sẽ tìm hiểu về cấu trúc câu lệnh và cách thức vận hành của tcpdump

 Cú pháp của tcpdump

Trang 4

_ Các miêu tả:

Hình 1: Cú pháp và các miêu tả tùy chọn của tcpdump ( 2 )

Hình 2: Môi trường làm việc của tcpdump.

Để biết rõ hơn cú pháp và các tùy chọn của tcpdump ta có thể dùng lệnh “man tcpdump”

Cấu trúc dòng lệnh tcpdump: #tcpdump tùy chọn + biểu thức

Để lọc và hiển thị các kết quả đầu ra, tcpdump hỗ trợ các tùy chọn và biểu thức:

A Các tùy chọn (3)

• -A: In các gói theo mã ASCII

-B : Định kích cỡ buffer_size.

Trang 5

• -c N: Ký tự N ở đây là số, tùy chọn này thông báo cho tcpdump biết để thoát sau gói N

• -C: Kiểm tra kích thước của file trước khi ghi file

• -d : Dump các gói dưới dạng chuẩn

• -dd: Dump các gói dưới dạng code giống giống 1 chương trình C

• -ddd: Dump các gói dưới dạng code như các số thập phân

• -D : Cho biết tổng số giao diện mạng

• -e: In link-level header trên mỗi dòng

• -E: Dùng giải mã các gói IPsec

• -f: In số lượng địa chỉ IPV4

• -F: Sử dụng tùy chọn này để mở file được ghi bởi tcpdump

• -G: Bắt số gói trong một đơn vị thời gian

• -i: interface: Capturre các gói trên giao diện mạng nào đó

• -I: Đặt các giao diện ở chế độ theo dõi, chỉ hỗ trợ cho các giao diện IEEE 802.11 Wi-Fi và một số hệ điều hành

• -K: Không xác minh các IP, TCP, UDP

• -l: Chọn lọc đầu ra

• -L: In danh sách các kiểu dữ liệu liên kết

• -m: Load module SMI MIB

• -n: Phân giải địa chỉ thành tên miền

• -N: Không in tiền tố của tên miền

• -O: Không tối ưu hóa các gói bắt được

• -p: Không đặt giao diện mạng dưới chế độ promiscuous

• -q: Cung cấp đầu ra đã được lược bớt để các dòng đầu ra ngắn hơn

Trang 6

• -r filename: Đọc các gói từ một file cụ thể thay cho một giao diện mạng, thường được sử dụng sau khi các gói dữ liệu thô đã được ghi vào một file với tùy chọn –w

• -S: In toàn bộ gói cùng các giao thức liên quan

-s: Snarf snaplen từ mỗi gói tin.

• -T: Bỏ qua các gói tin được chỉ định

• -t: Không in nhãn thời gian trên mỗi dòng đầu ra

• -tt: In một nhãn thời gian không được định dạng trên mỗi dòng đầu ra

• -ttt: Thêm một khoảng trống giữa các dòng đầu ra

• -tttt: In nhãn thời gian được đặt mặc định theo ngày trên mỗi dòng

• -ttttt: In nhãn thời gian được đặt mặc định theo ngày trên dòng hiện tại

và dòng đầu tiên trên đầu ra

• -u: In NFS chưa được xử lý

• -U: Kết hợp với –w để tạo ra các tập tin đầu ra khi bộ đệm đầy

• -v: Cung cấp đầu ra dài hơn Dài hơn nữa với -vv, vào thậm chí còn cả -vvv

• -w filename: Ghi các gói dữ liệu thô vào một file nào đó

• -W: Sử dụng với tùy chọn C để hạn chế số lượng tập tin được tạo ra

• -x : In header và các dữ liệu của gói dưới dạng hex, xx sẽ in ra cả cấp liên kết

• -X: In header và các dữ liệu của gói dưới dạng hex và ASCII

• -y: Thiết lập các kiểu dữ liệu liên kết khi bắt các gói dữ liệu liên kết

• -z: Kết hợp với –C hoặc –G để chạy các lệnh khác của hệ thống

B Các biểu thức(4)

 primitive (mẫu), các thuật ngữ

Trang 7

o dst foo (*): Chỉ định một địa chỉ hoặc một hostname nhằm hạn chế các gói

được capture về mặt lưu lượng gửi đến

o host foo: Chỉ định một địa chỉ hoặc một hostname nhằm hạn chế các gói đã

được capture về mặt lưu lượng đến và đi

o net foo: Chỉ định một mạng hoặc một đoạn mạng sử dụng ghi chú CIDR để

hạn chế sự capture gói

o proto foo: Chỉ định một giao thức nhằm hạn chế các gói đã được capturre

về mặt lưu lượng mạng đang sử dụng giao thức đó

o src foo: Chỉ định một địa chỉ hoặc một hostname nhằm hạn chế các gói

được capture đối với lưu lượng được gửi bởi một host

(*): Đại diện cho một địa chỉ IP hoặc một host

 Modifier (từ bổ nghĩa)

o and: Sử dụng modifier này nhằm ràng buộc các mẫu cùng nhau khi muốn

hạn chế các gói đã được capture để có được các yêu cầu cần thiết của các biểu thức trên cả hai phía của and

o not: Sử dụng modifier này trước một mẫu khi muốn hạn chế các gói đã

được capturre để không có được các yêu cầu của biểu thức theo sau

o or: Sử dụng modifier này nhằm trói buộc các mẫu cùng nhau khi muốn hạn

chế các gói đã được capture để có được các yêu cầu cần thiết của một hoặc nhiều biểu thức trên phía của or

Kết hợp các tùy chọn và biểu thức, người quản trị có thể bắt được chính xác các gói tin cần thiết Qua đó dễ dàng phát hiện và khắc phục sự cố

Trang 8

_ Cấu trúc đầu ra của một dòng trong tcpdump tùy thuộc vào việc sử dụng các tùy chọn và biểu thức Sau đây là các dòng đầu ra khi sử dụng tùy chọn: #tcpdump -nne

Trong đó:

[1] TimeStamp [8] Destination IP

[2] SourceMac [9] Destination Port

[3] DestinationMac [10] TCP Flags

[4] Network Protocol [11] TCP Sequence Number

[5] IP Packet Length [12] TCP Last Sequence Number

[6] Source IP [13] TCP Length

[7] Source Port [14] ACK flag

Vậy tcpdump bắt gói tin bằng cách nào? Và sử dụng tcpdump để lắng nghe ở vị trí nào trong mạng thì hiệu quả nhất? Để trả lời câu hỏi trên chúng ta sẽ tìm hiểu các cách thức nghe gói tin trên một số mạng

Các cách thức nghe gói tin trên mạng:

 Living Promiscuously (chế độ bắt tất cả các gói tin đi qua)

Chế độ Promiscuous cho phép card mạng nhìn thấy thất cả các gói tin đi qua hệ thống dây mạng Khi một card mạng không ở chế độ này, nó nhìn thấy một số lượng lớn các gói tin

Trang 9

_ trên mạng nhưng không gửi cho nó, nó sẽ huỷ (drop) các gói tin này Khi nó ở chế độ Promiscuous, nó bắt tất cả các gói tin và gửi toàn bộ tới CPU

 “Nghe” trong mạng có Hub

Cơ chế hoạt động của Hub cho phép gói tin được gửi tất cả các cổng của hub Hơn nữa, để phân tích một máy tinh trên một hub, tất cả các công việc cần làm là cắm máy nghe vào một cổng còn trống trên hub Chúng ta có thể nhìn thấy tất cả các thông tin truyền và nhận

từ tất cả các máy đang kết nối với hub đó, của sổ tầm nhìn không bị hạn chế khi mà máy nghe được kết nối với một mạng hub

 “Nghe” trong mạng Switched

Một môi trường switched là kiểu mạng phổ biến mà chúng ta làm việc Switch cung cấp một phương thức hiệu quả để vận chuyển dữ liệu thông qua broadcast, unicast, multicast Switch cho phép kết nối song công (full-duplex), có nghĩa là máy trạm có thể truyền và nhận dữ liệu đồng thời từ switch Khi cắm một máy nghe vào một cổng của switch, chúng

ta chỉ có thể nhìn thấy các broadcast traffic và những gói tin gửi và nhận của máy tính đang

sử dụng Trong trường hợp này chúng ta có 3 cách để bắt được các gói tin từ một thiết bị mục tiêu trong mạng switch đó là:

o Port Mirroring:

Port mirroring hay còn gọi là port spanning có thể là cách đơn giản nhất để bắt các lưu lượng từ thiết bị mục tiêu trên mạng switch Khi ánh xạ cổng, chúng ta sẽ có toàn bộ lưu lượng đi qua các cổng được copy sang port Mirroring

o Hubbing Out:

Một cách đơn giản khác để bắt các lưu lượng của thiết bị mục tiêu trong một mạng switch là hubbing out Hubbing out là kỹ thuật mà trong đó đặt

Trang 10

thiết bị mục tiêu và máy nghe vào cùng một phân mạng bằng cách đặt chúng trực tiếp vào một hub

o ARP Cache Poisoning

ARP cache poisoning là một kỹ thuật nâng cao trong việc nghe đường truyền trong một mạng switch ARP cache poisoning là quá trình gửi một thông điệp ARP với địa chỉ MAC giả mạo tới switch hoặc router nhằm mục đích nghe lưu lượng của thiết bị mục tiêu

 “Nghe” trong mạng sử dụng Router

Tất cả các kỹ thuật nghe trong mạng switch đều có thể được sử dụng trong mạng router Chỉ có một việc cần quan tâm khi mà thực hiện với mạng router là

sự quan trọng của việc đặt máy nghe khi mà thực hiện xử lý một vấn đề liên quan đến nhiều phân mạng Broadcast domain của một thiết bị được mở rộng cho đến khi nó gặp router Khi đó, lưu lượng sẽ được chuyển giao sang dòng dữ liệu router tiếp theo và chúng ta sẽ mất liên lạc với các gói tin đó cho đến khi nhận được một ACK của các máy nhận trả về Trong tình huống này, dữ liệu sẽ lưu chuyển qua nhiều router, vì vậy rất quan trọng để thực hiện phân tích tất cả lưu lượng trên các giao diện của router

 Một vài ví dụ về tcpdump:

#tcpdump -c 50 dst uit.edu.vn

Trang 11

Hình 3: Lệnh #tcpdump -c 50 dst uit.edu.vn Cho biết các thông tin có thể nhận ra được nguồn của một lưu lượng nặng gửi đến và rất

có thể làm quá tải máy chủ với hostname “uit.edu.vn”, lấy 50 gói đầu tiên

#tcpdump -c 500 -w 'date +"%Y%j%T"'.log

Hình 4: Lệnh #tcpdump -c 500 -w 'date +"%Y%j%T"'.log Ghi 500 gói vào một file có tên time/date hiện hành (ví dụ 2010111915:16:31.log) Ở đây date là hàm hệ thống Bằng cách kết hợp các tùy chọn, Primitive , Modifiers ta sẽ bắt được các gói tin như mong muốn

#tcpdump -w test.pcap -i eth1 tcp port 80

Trang 12

Hình 5: Lệnh #tcpdump -w test.pcap -i eth1 tcp port 80 Trong ví dụ này ta sẽ bắt các gói tin TCP tại giao tiếp eth1 ở port 80 và ghi vào file có tên

“test.pcap”

#tcpdump dst 192.168.1.22 and tcp port 21

Trang 13

Hình 6: Lệnh #tcpdump dst 192.168.1.22 and tcp port 21 Bắt các gói có địa chỉ đích là 192.168.1.22 và đi qua port 21 với giao thức TCP

#tcpdump tcp portrange 20-24

Hình 7: Lệnh #tcpdump tcp portrange 20-24 Chỉ lắng nghe các kết nối TCP trên dãy port được chỉ định

2.3 Đánh giá công cụ

2.3.1 Điểm mạnh

Trang 14

• Là một công cụ nhỏ gọn

• Là công cụ mạnh, khả năng tùy biến cao

• Chiếm ít tài nguyên của hệ thống

• Miễn phí

Tuy không hỗ trợ giao diện đồ họa, xong tcpdump có thể kết hợp với các ngôn ngữ lập trình để tạo các biểu đồ qua đó tạo thuận lợi cho người quản trị hệ thống có cái nhìn khái quát và đánh giá chính xác hơn tình hình hệ thống đang quản lý

Hình 8: Thống kê truy cập kết hợp tcpdump + Perl.

Một điểm đáng chú ý nữa là tcpdump có thể được dùng để đánh cắp các tài khoản của người dùng

Sau đây là bảng so sánh tcpdump với một số phần mềm khác tương tự

Trang 15

+Là cơ sở cho các phần mềm sniff

+Nhẹ, tích hợp sẵn trong OS

+Miễn phí

+Không có giao diện trực quan

+Thao tác trên dòng lệnh +Thân thiện với người dùng

+Miễn phí

+Hỗ trợ nhiều giao thức

+Chạy trên nhiều hệ điều hành

+Chưa hỗ trợ một số giao thức

+Hỗ trợ nhiều giao thức

+Có khả năng giả dạng các gói tin

+Miễn phí

+Giao diện sử dụng gây khó khăn cho người dùng

2.3.2 Điểm yếu

• Không hỗ trợ giao diện đồ họa gây khó khăn cho người sử dụng

• Gây khó khăn cho người sử dụng khi phải nhớ số lượng lớn các tùy chọn và biểu thức

• Đòi hỏi người sử dụng phải có kiến thức cơ sở và thời gian để nghiên cứu

2.4 Lời khuyên

Để sử dụng hiệu quả công cụ tcpdump, chúng ta cần phải:

• Hiểu rõ về hệ thống

Trang 16

• Hiểu rõ về các tùy chọn và biểu thức của tcpdump

• Có khả năng phân tích và đòi hỏi kiến thức lập trình

Cách khắc phục các điểm yếu của công cụ:

Để phát huy hết sức mạnh của công cụ này và khắc phục khó khăn về mặt giao diện chúng

ta nên kết hợp với các chương trình hỗ trợ đồ họa hoặc kết hợp với các ngôn ngữ lập trình

để tạo nên những bản đồ phân tích qua đó có được cái nhìn khái quát hơn về tình hình hệ thống Thực tế người ta sử dụng tcpdump để bắt các gói tin sau đó dùng các phần mềm có

hỗ trợ đồ họa để phân tích Điều này làm tăng tính hiệu quả của công việc

Lưu ý: Để sử dụng được công cụ tcpdump thì người dùng hiện tại phải có quyền cao nhất trên hệ thống(root) hoặc thuộc nhóm super users

Phần III: Kết luận

Tcpdump là một công cụ mạnh hỗ trợ tốt cho người quản trị hệ thống mạng, phục vụ đắc lực trong hoạt động theo dõi, giám sát và khắc phục sự cố của các hệ thống, song để sử dụng hiệu quả công cụ này đòi hỏi người sử dụng phải có được kiến thức và kinh nghiệm

Trang 17

Từ quá trình ra đời và tồn tại của công cụ này, ta cũng thấy được rằng đây là một công cụ rất hay để sử dụng, học tập và nghiên cứu

Qua quá trình tìm hiểu về công cụ này chúng em đã có thêm nhiều kiến thức bổ ích phục

vụ cho việc học tập và làm việc sau này

Phần IV: Tài liệu tham khảo

(1): (Monitoring with tcpdump, http://slac.stanford.edu/monitoring/passive/tcpdump.html )

(Revised 17 August 1999, Ngày xem: 27/11/2010)

(2): TCPDUMP - The Easy Tutorial http://ope nmaniak.com/tcpdump.php

Ngày đăng: 08/06/2017, 10:47

HÌNH ẢNH LIÊN QUAN

Hình 1: Cú pháp và các miêu tả tùy chọn của tcpdump. ( 2 ) - Quản trị hệ thống mạng công cụ TCPdump
Hình 1 Cú pháp và các miêu tả tùy chọn của tcpdump. ( 2 ) (Trang 4)
Hình 4: Lệnh  #tcpdump -c 500 -w 'date +"%Y%j%T"'.log Ghi 500 gói vào một file có tên time/date hiện hành (ví dụ  2010111915:16:31.log) - Quản trị hệ thống mạng công cụ TCPdump
Hình 4 Lệnh #tcpdump -c 500 -w 'date +"%Y%j%T"'.log Ghi 500 gói vào một file có tên time/date hiện hành (ví dụ 2010111915:16:31.log) (Trang 11)
Hình 3: Lệnh  #tcpdump -c 50 dst uit.edu.vn Cho biết các thông tin có thể nhận ra được nguồn của một lưu lượng nặng gửi  đến và rất - Quản trị hệ thống mạng công cụ TCPdump
Hình 3 Lệnh #tcpdump -c 50 dst uit.edu.vn Cho biết các thông tin có thể nhận ra được nguồn của một lưu lượng nặng gửi đến và rất (Trang 11)
Hình 5: Lệnh  #tcpdump -w test.pcap -i eth1 tcp port 80 Trong ví dụ này ta sẽ bắt các gói tin TCP tại giao tiếp eth1 ở port 80 và ghi vào file có tên - Quản trị hệ thống mạng công cụ TCPdump
Hình 5 Lệnh #tcpdump -w test.pcap -i eth1 tcp port 80 Trong ví dụ này ta sẽ bắt các gói tin TCP tại giao tiếp eth1 ở port 80 và ghi vào file có tên (Trang 12)
Hình 7: Lệnh  #tcpdump tcp portrange 20-24 Chỉ lắng nghe các kết nối TCP trên dãy port được chỉ định - Quản trị hệ thống mạng công cụ TCPdump
Hình 7 Lệnh #tcpdump tcp portrange 20-24 Chỉ lắng nghe các kết nối TCP trên dãy port được chỉ định (Trang 13)
Hình 6: Lệnh  #tcpdump dst 192.168.1.22 and tcp port 21 Bắt các gói có địa chỉ đích là 192.168.1.22 và đi qua port 21 với giao thức TCP. - Quản trị hệ thống mạng công cụ TCPdump
Hình 6 Lệnh #tcpdump dst 192.168.1.22 and tcp port 21 Bắt các gói có địa chỉ đích là 192.168.1.22 và đi qua port 21 với giao thức TCP (Trang 13)
Hình 8: Thống kê truy cập kết hợp tcpdump + Perl. - Quản trị hệ thống mạng công cụ TCPdump
Hình 8 Thống kê truy cập kết hợp tcpdump + Perl (Trang 14)

TỪ KHÓA LIÊN QUAN

w