Bài viết này Giới Thiệu TCPDUMP Và Các Thủ Thuật Sử Dụng. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về support@vinahost.vn hoặc chat với VinaHost qua livechat https://livechat.vinahost.vn/chat.php.
Giới Thiệu TCPDUMP
Là công cụ được phát triển nhằm mục đích phân tích các gói dữ liệu mạng theo dòng lệnh. Nó cho phép khách hàng chặn và hiển thị các gói tin được truyền đi hoặc được nhận trên một mạng mà máy tính có tham gia.
Có thể lưu ra file và đọc bằng công cụ đồ họa Wireshark.
TCPDUMP Và Các Thủ Thuật Sử Dụng
Cài đặt
Để sử dụng được lệnh tcpdump trên Linux, chúng ta phải cài một gói với tên tương tự.
Ở Ubuntu, debian ta dùng lệnh
$ sudo apt-get install tcpdump -y
Với CentOS, redhat family:
$ yum install tcpdump -y
Các lệnh tcpdump cơ bản
Xem các Interface (cổng mạng) đang hoạt động:
$ tcpdump -D

Bắt gói tin trên interface cụ thể:
$ tcpdump -i <INTERFACE>
Chỉ định số lượng packet cần capture với flag -c:
$ tcpdump –c number –I <INTERFACE>

- Packet capture: số lượng gói tin bắt được và xử lý.
- Packet received by filter: số lượng gói tin được nhận bởi bộ lọc.
- Packet dropped by kernel: số lượng packet đã bị dropped bởi cơ chế bắt gói tin của hệ điều hành.
Lưu file .pcap để có thể dùng wireshark để đọc nội dung:
$ tcpdump –i eth0 -w /path/to/capture_eth0.pcap
Chỉ bắt gói tin TCP với số lượng 5 packet:
$ tcpdump -i eth0 tcp -c 5

Định dạng chung của tcpdump:
time-stamp src > dst: flags data-seqno ack window urgent options
Time-stamp: hiển thị thời gian gói tin được capture.
Src và dst: hiển thị địa IP của người gởi và người nhận.
Cờ Flag thì bao gồm các giá trị sau:
- S(SYN): Được sử dụng trong quá trình bắt tay của giao thức TCP.
- .(ACK): Được sử dụng để thông báo cho bên gửi biết là gói tin đã nhận được dữ liệu thành công.
- F(FIN): Được sử dụng để đóng kết nối TCP.
- P(PUSH): Thường được đặt ở cuối để đánh dấu việc truyền dữ liệu.
- R(RST): Được sử dụng khi muốn thiết lập lại đường truyền.
Data-sqeno: Số sequence number của gói dữ liệu hiện tại.
ACK: Mô tả số sequence number tiếp theo của gói tin do bên gởi truyền (số sequence number mong muốn nhận được).
Window: Vùng nhớ đệm có sẵn theo hướng khác trên kết nối này.
Urgent: Cho biết có dữ liệu khẩn cấp trong gói tin.
Ngoài TCP, chúng ta có thể bắt theo UDP, IMCP,…
$ tcpdump –i ens18 udp –c 5

Bắt các gói theo port
$ tcpdump -i ens18 port 22 -c 5 –n

Bắt theo địa chỉ IP nguồn hoặc IP đích
Địa chỉ nguồn:
$ tcpdump -i interface src ip-address
Địa chỉ đích:
$ tcpdump -i interface dst ip-address
Lọc các gói tin ARP chạy qua card mạng eth0, xuất phát từ dãy IP 192.168.1.0/24
$ tcpdump –i eth0 arp src net 192.168.1.0/24
Cách Filter nội dung file .pcap bằng Tool Wireshark
Cách cài đặt Wireshark trên window OS bằng cách truy cập vào URL sau để tải bạn phù hợp về:
Sau khi cài đặt xong, các bạn mở phần mềm wireshare, chọn Menu File > Open (Ctrl O) > chọn tới file .pcap đã lưu.

Ta có thể sử dụng filter để loại bỏ các gói mà ta không quan tâm. Filter có thể được sử dụng khi bắt các gói tin realtime hoặc cũng có thể được sử dụng đối với các gói tin được mở từ file .pcap
Chỉ bắt các gói có IP trùng khớp IP đích: 192.168.20.1

Tương tự cú pháp để Filter gói tin có IP nguồn match với IP 192.168.20.1
ip.src == 192.168.20.1
Filter gói tin có IP nguồn trùng với tất cả IP ngoại trừ 192.168.20.1
ip.src != 192.168.20.1
Lọc theo giao thức TCP và port 80 hoặc TCP và port 443
tcp.port == 80 or tcp.port == 443
Lọc theo giao thức UDP và port 53
udp.port == 53
Lọc các gói tin ngoại trừ port 443
not tcp.port == 443
Lọc các gói tin udp or icmp
udp or icmp
Nếu bạn muốn tìm hiểu sâu hơn về wireshark, có thể tham khảo đường dẫn sau:
Kết luận
Tcpdump và Wireshark là những công cụ cực kỳ mạnh mẽ và hướng dẫn này chỉ nói sơ qua về những gì bạn có thể làm với nó. Các chuyên gia sử dụng nó để gỡ lỗi triển khai giao thức mạng, kiểm tra các vấn đề bảo mật và kiểm tra nội bộ giao thức mạng. Chúc bạn thành công với hướng dẫn TCPDUMP Và Các Thủ Thuật Sử Dụng này nhé!