Đại học Quốc Gia TP. Hồ Chí Minh
Trường Đại học Công Nghệ Thông Tin
Khoa: Mạng máy tính & Truyền thông
Môn: Quản trị hệ thống mạng
Tìm hiểu về TCPdump
Nhóm sinh viên thực hiện:
Vũ Văn Hiệu
Nguyễn Quang Gia Khang
Ngô Duy Thống
07520125.
07520170.
07520338.
1
Giảng viên hướng dẫn: Th.s Vũ Trí Dũng.
Tìm hiểu về TCPdump
Phần
Phần
Phần
Phần
Phần
I: Giới thiệu về công cụ TCPdump.
II: Sử dụng TCPdump.
III: Đánh giá công cụ.
IV: Tổng kết.
V: Tài liệu tham khảo.
2
Giới thiệu về TCPdump
TCPdump là gì?
TCPdump là một công cụ dùng để theo dõi
hoạt động của hệ thống mạng.
Tcpdump được viết bởi Van Jacobson,
Craig Leres, và Steven McCanne giảng viên
của University of California.
3
Giới thiệu về Tcpdump
Môi trường làm việc: Trên dòng lệnh.
Chế độ: promiscuous mode.
Chức năng: Bắt tất các các gói tin trên một
giao tiếp mạng, qua đó giúp người quản trị hệ
thống nắm được tình hình của hệ thống.
Tên gọi:
Linux: TCPdump.
Windows: Windump.
4
Sử dụngTCPdump
Cú pháp của TCPdump:
#tcpdump “options”
5
Sử dụngTCPdump
6
Sử dụngTCPdump
Các tùy chọn:
Tcpdump cung cấp khá nhiều các tùy chọn, ở đây
chỉ giới thiệu một số trong chúng:
-A: In các gói theo mã ASCII.
-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.
-i interface: Capturre các gói trên giao diện
mạng nào đó.
7
Sử dụngTCPdump
Các tùy chọn: (tiếp theo).
-q: Cung cấp đầu ra ngắn để các dòng đầu ra ngắn
hơn.
-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.
-t: Không in thời gian trên mỗi dòng đầu ra.
-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.
8
Sử dụngTCPdump
Các biểu thức:
Tcpdump hỗ trợ các biểu thức dòng lệnh.
Các biểu thức gồm :
primitive (mẫu), các thuật ngữ.
modifier (từ bổ nghĩa).
9
Sử dụngTCPdump
1. Primitive (mẫu):
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.
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.
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.
10
Sử dụngTCPdump
1. Primitive (mẫu): (tiếp theo)
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 đó.
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.
11
Sử dụng TCPdump
2. Modifiers (từ bổ nghĩa)
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.
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.
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
12
của or.
Sử dụng TCPdump
Một vài công dụng của TCPdump:
Sử dụng tcpdump để đo thời gian phản ứng và
tỷ lệ mất gói tin. Nó cũng có thể cho biết về khả
năng tiếp cận đối với một số máy chủ ở xa.
Sử dụng tcpdump có thể quan sát trên bất kỳ
kết nối TCP / UDP được tạo và kết thúc. TCP sử
dụng một cơ chế đặc biệt để thiết lập và đóng
các kết nối , có thể đo thời gian giữa các gói liên
quan đến cơ chế này để biết một số các kết nối
13
hoạt động.
Sử dụng TCPdump
Kết hợp các tùy chọn, primitive và modifier
này, cùng với một số tùy chọn khác được được
sử dụng để xây dựng các lệnh rất cụ thể nhằm
cung cấp đầu ra chính xác những packets cần
lấy. Tạo thuận lợi cho việc phân tích các gói
sau này.
14
Sử dụng TCPdump
Chú ý: Để sử dụng được TCPdump cần chạy dưới quyền root
15
Ví dụ
man tcpdump: Tất cả thông tin về
TCPdump
16
Ví dụ
tcpdump: chạy tcpdump không tùy chọn. Với tùy
chọn này, ta sẽ bắt mọi packets trên giao tiếp
mạng
17
Ví dụ
Tcpdump -A: In các gói dưới dạng mã
ascii.
-A
18
Ví dụ
#tcpdump -c 50 dst uit.edu.vn
Cho bạn 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
Ghi 500 gói vào một file có tên time/date hiện
hành (ví dụ 2010111915:16:31.log) để chúng có thể
được lọc sau theo các thông tin mà bạn muốn xem. Ở
đây date là hàm hệ thống.
19
Ví dụ
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 6881
Trong ví dụ này ta sẽ bắt các gói tin TCP tại giao tiếp
eth1 ở
port 6881 và ghi vào file có tên “test.pcap”
20
tcpdump -w test.pcap -s 1550 dst 10.168.28.22 and tcp port 22
Ví dụ
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 -s 1550 dst 192.168.1.22 and tcp port 22
Thông thường kích thước các packets là 96 bytes, dùng
tùy chọn –s để thay đổi kích thước.
tcpdump tcp portrange 20-24
Lắng nghe trên một dãy port.
21
tcpdump -w test.pcap -s 1550 dst 10.168.28.22 and tcp port 22
Ví dụ
#tcpdump
‘icmp[icmptype] != icmp-echo
and
icmp[icmptype] != icmp-echoreply’
To print all ICMP packets that are not echo requests/replies
?????
22
Demo Sniff packets
Video demo Sniff packets with Tcpdump
23
Đánh giá công cụ
Ưu điểm:
Là một công cụ nhỏ gọn. Được tích hợp sẵ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í.
24
Đánh giá công cụ
Khuyết điểm:
Giao diện dòng lệnh gây khó khăn cho người mới
sử dụng.
Có thể bắt được những gói tin giả mạo.
25