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:
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).
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
- Có tùy chọn –n
Xem thêm:
- 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