Lệnh tcpdump là một trong những gói phần mềm phổ biến nhất để xem các luồng gói tin qua NIC card của hệ thống Linux của bạn. Nó được cài đặt mặc định trên RedHat/Fedora Linux và có cú pháp rất đơn giản, đặc biệt là khi bạn thực hiện các loại gỡ lỗi đơn giản.

Xem các luồng gói tin bằng tcpdump

Một trong những cách sử dụng phổ biến nhất của tcpdump là xác định xem bạn có đang nhận được giao tiếp hai chiều cơ bản hay không. Thiếu giao tiếp có thể do những nguyên nhân sau:

  • Định tuyến sai
  • Cáp lỗi, giao diện của thiết bị trong luồng gói tin
  • Máy chủ không lắng nghe trên cổng vì phần mềm chưa được cài đặt hoặc khởi động
  • Một thiết bị mạng trong đường truyền gói tin đang chặn lưu lượng; những nguyên nhân phổ biến là tường lửa, router với danh sách kiểm soát truy cập và thậm chí là máy Linux của bạn chạy iptables.
  • Phân tích tcpdump chi tiết hơn nhiều vượt quá phạm vi của phần này.

Giống như hầu hết các lệnh Linux khác, tcpdump sử dụng các công tắc dòng lệnh để sửa đổi đầu ra. Một số công tắc dòng lệnh hữu ích hơn được liệt kê trong Bảng sau:

Tcpdump command switch Mô tả
-c Chỉ định bắt n gói tin
-i Chỉ định interface lắng nghe. Nếu không được chỉ định, lệnh sẽ sử dụng giao diện có số thấp nhất mà đang được KÍCH HOẠT.
-w Lưu đầu ra vào một tệp TCPdump định dạng đặc biệt.
-C Chỉ định kích thước mà tệp dump phải đạt trước khi tạo ra một tệp mới có tiếp đầu ngữ số.
-t Không in thời gian bắt đầu trên mỗi dòng.

 

Bạn cũng có thể thêm các biểu thức sau tất cả các công tắc dòng lệnh. Chúng hoạt động như bộ lọc để giới hạn khối lượng dữ liệu được hiển thị trên màn hình. Bạn cũng có thể sử dụng các từ khóa như “and” hoặc “or” giữa các biểu thức để điều chỉnh tiêu chí lựa chọn của bạn một cách chi tiết hơn. Một số biểu thức hữu ích được liệt kê trong Bảng sau:

tcpdump command expression Mô tả
host host-address Xem gói tin từ IP address host-address
icmp Xem gói tin icmp
tcp port port-number Hiển thị các gói tin TCP với cổng TCP nguồn hoặc đích là số cổng-port-number.
udp port port-number Hiển thị các gói tin UDP với cổng UDP nguồn hoặc đích là số cổng-port-number.

 

Dưới đây là một ví dụ về việc sử dụng tcpdump để xem các gói tin ping ICMP đi qua giao diện wlan0:

vi du ve viec su dung tcpdump

Trong ví dụ này:

  • Cột dữ liệu đầu tiên là mốc thời gian của gói tin.
  • Cột dữ liệu thứ hai hiển thị địa chỉ IP nguồn và đích của gói tin.
  • Cột thứ ba hiển thị loại gói tin.

Giao tiếp hai chiều đang diễn ra khi mỗi gói tin echo nhận được một phản hồi echo.

Ví dụ dưới đây cho thấy việc sử dụng tcpdump để xem các gói tin trên giao diện wlan0 đến/từ máy chủ có địa chỉ 192.168.1.35 trên cổng TCP 22 mà không có mốc thời gian trong kết quả đầu ra (sử dụng tùy chọn -t).

vi du su dung tcpdump

Trong ví dụ này:

  • Cột dữ liệu đầu tiên hiển thị địa chỉ IP nguồn và đích của gói tin.
  • Cột dữ liệu thứ hai hiển thị các cờ TCP trong gói tin.
  • Client đang sử dụng cổng 52784 để giao tiếp với máy chủ có tên smallfry trên cổng SSH TCP 22.
  • Giao tiếp hai chiều đang diễn ra.

Phân tích các tệp tcpdump

Bằng cách sử dụng tùy chọn -w tên tệp, bạn có thể gửi toàn bộ khung Ethernet, không chỉ là thông tin IP ngắn gọn thông thường được hiển thị trên màn hình, vào một tệp. Sau đó, bạn có thể phân tích tệp này bằng các công cụ phân tích đồ họa như Wireshark, có sẵn trên cả Windows và Linux, với bộ lọc tùy chỉnh, đánh dấu màu các bản ghi gói tin dựa trên tiêu chí được coi là quan trọng, và khả năng tự động làm nổi bật các điều kiện lỗi nhất định như tái truyền dữ liệu:

tcpdump -i eth1 -w /tmp/packets.dump tcp port 22

Việc bao quát Wireshark vượt quá phạm vi cuốn sách này, nhưng điều đó không nên ngăn bạn sử dụng nó. Ứng dụng này là một phần của bộ cài đặt RPM của Fedora, và cũng có sẵn phiên bản cho Windows.

Các vấn đề phổ biến với tcpdump

Mặc định, tcpdump sẽ cố gắng xác định tên DNS của tất cả các địa chỉ IP nó nhìn thấy trong quá trình ghi dữ liệu. Điều này có thể làm cho tcpdump chạy chậm đến mức dường như không hoạt động. Tùy chọn -n sẽ ngừng việc tìm kiếm tên DNS và làm cho tcpdump hoạt động ổn định hơn.

Dưới đây là các ví dụ minh họa cách tùy chọn -n ảnh hưởng đến đầu ra:

  • Không có tùy chọn –n

khong co tuy chon -n

  • Có tùy chọn –n

co tuy chon -n

Xem thêm:

(Tips) Hướng dẫn nhanh: Xem luồng gói tin bằng tshark

———————————————————————
Nếu quý khách gặp khó khăn gì khi làm theo hướng dẫn trên xin vui lòng liên hệ VNDATA qua thông tin sau:
  • Công ty Cổ Phần Công Nghệ Lưu Trữ Việt
  • Address: 61/3 Bình Giã, P. 13, Q. Tân Bình, Thành phố Hồ Chí Minh
  • Trang web: https://vndata.vn
  • Hotline: 0971-05-4444
  • Email: support@vndata.vn