TCPDUMP là gì? Tìm hiểu về những thông tin về lệnh TCPDUMP

2158
26-05-2022
TCPDUMP là gì? Tìm hiểu về những thông tin về lệnh TCPDUMP

Đối với những người sử dụng hệ điều hành Linux hay Unix thì TCPDUMP là một công cụ vô cùng hữu ích giúp kiểm tra nhanh chóng lưu lượng mạng và những gói tin mà nó bắt được. Trong bài viết được chia sẻ dưới đây, Bizfly Cloud sẽ giúp bạn tìm hiểu TCPDUMP là gì cũng như một số thông tin quan trọng khác có liên quan để bạn có thể hiểu rõ hơn về thuật ngữ này nhé!

TCPDUMP là gì?

TCPDUMP là công cụ hữu ích được ra đời và phát triển để phục vụ cho mục đích hỗ trợ phân tích các gói dữ liệu mang theo dòng lệnh đồng thời cho phép khách hàng thực hiện việc chặn, lọc và hiển thị các gói tin TCP/IP được truyền đi hoặc nhận trên một mạng có sự tham gia của máy tính.

Hiểu đơn giản hơn, TCPDUMP là một phần mềm có khả năng bắt các gói tin trong mạng đang hoạt động trên các phiên bản hệ điều hành Unix và Linux. Nó cho phép người dùng có thể bắt và lưu lại những gói tin này để phục vụ cho việc phân tích về sau.

TCPDUMP là gì - Ảnh 1.

TCPDUMP là công cụ giúp phát triển để phục vụ cho mục đích hỗ trợ phân tích các gói dữ liệu

Lợi ích khi sử dụng TCPDUMP

Một số lợi ích tuyệt vời của TCPDUMP bao gồm:

  • Hỗ trợ xem các bản tin DUMP trên terminal
  • Capture các bản tin và lưu dưới định dạng PCAP (hỗ trợ đọc bởi Wireshark)
  • Tạo các bộ lọc Filter để capture các bản tin http, ftp, ssh…
  • Hỗ trợ xem trực tiếp các bản tin điều khiển hệ thống Linux thông qua Wireshark

TCPDUMP là công cụ có khả năng capturing packets mạnh mẽ. Hoạt động trên network layer, TCPDUMP có thể capture tất cả các gói ra vào máy tính. Ngoài ra, TCPDUMP cũng được sử dụng để capture và save các gói tới một file cụ thể và phân tích sau.

Biểu thức của TCPDUMP

Biểu thức của TCPDUMP hỗ trợ thêm lập trình vào lựa chọn gói. Khác với chương trình thông thường, bộ hướng dẫn này thường được viết thành một dòng. Nếu bạn là người thường xuyên sử dụng Unix hoặc Linux, bạn sẽ có thể làm quen nhanh chóng với các biểu thức quen thuộc của kịch bản lệnh shell, từ đó hạn chế các sự cố xảy ra.

Những gói đáp ứng bài kiểm tra đều được hệ thống lưu lại, do đó kết quả của mỗi biểu thức đều mang giá trị đúng.

Dưới đây là một số biểu hiện hiếm gặp trong kịch bản lệnh shell:

len

Điều này trả về độ dài của một gói.

Ví dụ: len! = 5.

- proto [expr: size]

Trong đối tượng này:

nguyên sinh là tên của một lớp giao thức. Nó có thể là:

ête

fddi

ip

arp

hiếm

tcp

udp

icmp

expr là phần bù byte. Cái này cần được đưa vào, nhưng cũng có thể được đưa ra là 0 để lấy giá trị từ đầu đối tượng.

kích thước là tùy chọn và đại diện cho số byte trong tùy chọn. Giá trị mặc định là 1, hoặc cũng có thể là 2, 3 hoặc 4.

Ví dụ:

ether [0] & 1! = 0 đúng với tất cả lưu lượng truy cập phát đa hướng.

ip [0] & 0xf! = 5 đúng với tất cả các gói IP với các tùy chọn.

ip [6: 2] & 0x1fff = 0 đúng với các datagram không phân mảnh và các số 0 của các datagram phân mảnh.

TCPDUMP tồn tại ở hình thức nào? 

TCPDUMP sẽ xuất ra màn hình nội dung các gói tin chạy trên card nhà mạng mà máy chủ đang lắng nghe sao cho phù hợp với biểu thức logic chọn lọc mà khách hàng đã sử dụng và nhập vào máy tính. Khách hàng có thể xuất ra các mô tả về gói tin thành một file pcap để phân tích sau dựa trên từng loại tùy chọn khác nhau. Để đọc được nội dung của file pcap này, bạn chỉ cần sử dụng các phần mềm khác như Wireshark hay với option -r của lệnh TCPDUMP.

Trong các trường hợp không có tùy chọn nào, TCPDUMP sẽ vẫn tiếp tục chạy cho đến khi nó nhận được tín hiệu ngắt từ phía khách hàng. Sau khi việc bắt các gói tin kết thúc, TCPDUMP sẽ đưa ra các báo cáo sau:

  • Packet capture: Số lượng các gói tin đã bắt được và tiến hành xử lý.
  • Packet received by filter: Số lượng các gói tin mà bộ lọc nhận được.
  • Packet dropped by kernel: số lượng packet bị dropped do cơ chế bắt gói tin.
TCPDUMP tồn tại ở hình thức nào

TCPDUMP sẽ xuất ra màn hình nội dung các gói tin chạy trên card nhà mạng

Định dạng chung của một dòng giao thức TCPDUMP 

Một dòng giao thức TCPDUMP sẽ có định dạng chung là time-stamp src > dst: flags data-seqno ack window urgent options. Trong đó:

- Time-stamp: Hiển thị thời gian capture của các gói tin.

- scr và dst: Hiển thị đầy đủ địa chỉ IP của cả người gửi và người nhận.

- Cờ Flags sẽ bao gồm các giá trị cơ bản đó là:

  • S (SYN): Trong quá trình bắt tay của giao thức TCP, giá trị SYN thường được sử dụng.
  • .(ACK): Giá trị này thường được sử dụng với mục đích gửi lại thông báo đã nhận được dữ liệu thành công cho phía người gửi.
  • F (FIN): Giá trị này được ứng dụng để đóng thành công kết nối TCP.
  • P (PUSH): Giá trị này thường được đặt ở cuối để phục vụ cho việc đánh dấu các thao tác truyền dữ liệu.
  • R (RST): Khi người dùng muốn thiết lập lại đường truyền thì giá trị này sẽ được sử dụng.
  • Data-sqeno: Số lượng sequence number hiện tại của gói dữ liệu.
  • ACK: Mô tả số sequence number tiếp theo được truyền đến của gói tin mà bên gửi mong muốn nhận được.
  • Window: Đây là vùng nhớ đệm có sẵn trên kết nối theo một hướng khác.
  • Urgent: Giá trị này cho người dùng biết được các gói dữ liệu khẩn cấp có trong gói tin.
Định dạng chung của một dòng giao thức TCPDUMP

Những tùy chọn thông dụng trong lệnh TCPDUMP 

Trong lệnh TCPDUMP sẽ có một số những tuỳ chọn thông dụng mà bạn có thể bắt gặp được đó là:

  • -i: Khi khách hàng muốn chụp các gói tin trên một interface được chỉ định thì các option này sẽ được sử dụng.
  • -D: Khi option này được sử dụng, TCPDUMP sẽ tiến hành liệt kê ra toàn bộ các interface đang hiện đang tồn tại trên máy tính mà nó có thể capture được.
  • -c N : Sau khi capture nhiều gói tin, TCPDUMP sẽ dừng hoạt động khi bạn sử dụng option này.
  • -n: Khi sử dụng option này, TCPDUMP sẽ không thực hiện việc phân giải từ địa chỉ IP sang hostname.
  • -nn: Tương tự như option –n, TCPDUMP sẽ không tiến hành phân giải từ địa chỉ IP sang hostname mà nó cũng không phân giải cả portname.
  • -v: Option này sẽ giúp người dùng gia tăng số lượng thông tin về gói tin thậm chí có thể tăng thêm với option –vv hoặc –vvv mà họ có thể nhận được.
  • -s: Với option này, các định nghĩa snap length (kích thước) gói tin sẽ lưu lại, để mặc định, người dùng phải sử dụng 0.
  • -q: Khi option này được sử dụng thì lệnh TCPDUMP sẽ hiển thị được ít thông tin hơn.
  • -w filename: TCPDUMP khi sử dụng option này sẽ capture các packet và lưu xuống file chỉ định.
  • -r filename: Option này được sử dụng đi kèm với option –w với mục đích sử dụng là đọc nội dung file đã lưu từ trước.
  • -x: Dữ liệu của gói tin capture sẽ được hiển thị dưới dạng mã Hex.
  • -A: Các packet được capture được hiển thị dưới dạng mã ACSII.
  • -S: Khi TCPDUMP capture packet, các số sequence number ACK sẽ được chuyển đổi thành các relative sequence number hay relative ACK. Nếu sử dụng option –S này thì TCPDUMP sẽ không tiến hành chuyển đổi nữa mà sẽ để mặc định.
  • -F filename: Các packet với các luật đã được định trước trong tập tin filename sẽ được Filter bởi TCPDUMP.
  • -e: Thay vì hiển thị địa chỉ IP của người gửi và người nhận, TCPDUMP khi sử dụng option này sẽ thay thế các địa chỉ IP nói trên bằng địa chỉ MAC.
  • -t: TCPDUMP khi sử dụng option này sẽ bỏ qua thời gian bắt được gói tin khi thực hiện việc hiển thị cho khách hàng.
  • -tt: Thời gian hiển thị trên mỗi dòng lệnh sẽ không được format theo dạng chuẩn khi TCPDUMP sử dụng option này.
  • -K: TCPDUMP sẽ bỏ qua việc checksum các gói tin.
  • -N: TCPDUMP với option này sẽ không tiến hành in các quality domain name ra màn hình.
  • -B size: TCPDUMP thường sử dụng option này để cài đặt buffer_size .
  • -L: Danh sách các data link type mà interface hỗ trợ sẽ được hiển thị với option này.
  • -y: Lựa chọn data link type khi bắt các gói tin.

Một số bộ lọc cơ bản trong TCPDUMP 

Bên cạnh những tuỳ chọn thông dụng thì bạn cũng cần nắm rõ một số bộ lọc cơ bản trong TCPDUMP dưới đây:

  • dst A: TCPDUMP khi sử dụng option này sẽ chỉ capture các gói tin có địa chỉ đích là "A". Để chỉ định một dãy mạng cụ thể, TCPDUMP có thể sử dụng kèm với từ khoá net.
  • src A: Thay vì capture các gói tin có địa chỉ đích cụ thể như option dst thì TCPDUMP sẽ capture các gói tin có địa chỉ nguồn theo quy định.
  • host A: Khi sử dụng option này, TCPDUMP sẽ chỉ capture các gói tin có địa chỉ đích hoặc địa chỉ nguồn là "A".
  • port / port range: TCPDUMP sẽ chỉ capture các gói tin có địa chỉ port được chỉ định rõ, hoặc nằm trong khoảng range định trước khi sử dụng option này. Ngoài ra, nó có thể sử dụng kèm với option dst hoặc src.
  • less: TCPDUMP khi sử dụng từ khoá này sẽ tiến hành việc lọc (filter) các gói tin có dung lượng nhỏ hơn giá trị chỉ định.
  • greater: TCPDUMP khi sử dụng từ khoá này sẽ tiến hành việc lọc (filter) các gói tin có dung lượng cao hơn giá trị chỉ định.
  • (ether | ip) broadcast: Các gói tin ip broadcast hoặc ethernet broadcast sẽ được capture.
  • (ether | ip | ip6) multicast: Các gói tin ethernet, ip , ipv6 multicast sẽ được capture.

Một số câu hỏi thường gặp về TCPDUMP

Làm thế nào để dừng lệnh TCPDUMP?

Để gửi tín hiệu ngắt và dừng lệnh, bạn sử dụng tổ hợp phím Ctrl + C. Khi đã capture được các gói, TCPDUMP sẽ dừng. Khi không có giao diện nào được chỉ định, TCPDUMP sẽ sử dụng giao diện đầu tiên mà nó tìm thấy được để kết xuất tất cả các gói đi qua giao diện đó.

TCPDUMP có được cung cấp miễn phí hay không?

TCPDUMP là phần mềm mã nguồn mở miễn phí được phân phối theo giấy phép BSD, cho phép mọi người dùng có thể đóng góp để phát triển.

Có thể sử dụng TCPDUM cho hệ điều hành Windows hay không?

Phiên bản TCPDUMP trên hệ điều hành Windows được gọi là Windump và dựa vào Wincap để capture gói như TCPDUMP cho Linux.

WinPcap thuộc sở hữu của Riverbed Technology, nhà tài trợ chính của Wireshark – công cụ dò tìm gói tin nổi tiếng trên thế giới. AirPcap là phiên bản không dây của WinPcap. Người dùng có thể tải xuống miễn phí WinDump, WinPcap và AirPcap từ chính website của WinPcap.

TCPDUMP có hỗ trợ an ninh mạng hay không?

TCPDUMP đóng vai trò quan trọng trong việc gỡ rối, kiểm tra các vấn đề về kết nối mạng và bảo mật. Chính vì vậy, đây được coi là công cụ thiết yếu cho bất kỳ chuyên gia an ninh mạng nào.

Qua bài viết mà Bizfly Cloud chia sẻ có thể thấy, TCPDUMP là một công cụ hữu ích đối với nhiều người dùng nhờ khả năng capture packets vô cùng mạnh mẽ. Mặc dù nhìn qua, TCPDUMP có vẻ khá phức tạp nhưng khi bạn hiểu rõ TCPDUMP là gì và biết cách sử dụng TCPDUMP một cách thành thạo thì bạn sẽ thấy được những lợi ích tuyệt vời từ lệnh này.

Bizfly Cloud là nhà cung cấp dịch vụ điện toán đám mây với chi phí thấp, được vận hành bởi VCCorp.

Bizfly Cloud là một trong 4 doanh nghiệp nòng cốt trong "Chiến dịch thúc đẩy chuyển đổi số bằng công nghệ điện toán đám mây Việt Nam" của Bộ TT&TT; đáp ứng đầy đủ toàn bộ tiêu chí, chỉ tiêu kỹ thuật của nền tảng điện toán đám mây phục vụ Chính phủ điện tử/chính quyền điện tử.

Độc giả quan tâm đến các giải pháp của Bizfly Cloud có thể truy cập tại đây.

DÙNG THỬ MIỄN PHÍ và NHẬN ƯU ĐÃI 3 THÁNG tại: Manage.bizflycloud

TAGS: TCPDUMP
SHARE