Ad
Thủ Thuật Công Nghệ

Tcpdump là gì? Tổng Hợp Các Lệnh Thông Dụng

Pinterest LinkedIn Tumblr

Đối với người sử dụng hệ điều hành Linux hoặc Unix, TCPDUMP là một công cụ cực kỳ hữu ích để nhanh chóng kiểm tra lưu lượng mạng và gói tin mà nó bắt được. Trong bài viết dưới đây, Wiki.lanit sẽ cung cấp thông tin chi tiết về TCPDUMP là gì cũng như những khái niệm quan trọng khác liên quan  giúp bạn hiểu rõ hơn về công cụ này!

Tcpdump là gì?

TCPDUMP là một công cụ quan trọng được phát triển để hỗ trợ việc phân tích gói dữ liệu trong mạng thông qua dòng lệnh, đồng thời cung cấp khả năng chặn, lọc, và hiển thị các gói tin TCP/IP được truyền và nhận trên một mạng mà máy tính tham gia.

Tcpdump là gì?
Tcpdump là gì?

Có thể 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 & Linux. Nó cho phép người dùng nắm bắt và lưu trữ các gói tin này để sử dụng cho mục đích phân tích sau này.

Sử dụng TCPDUMP mang đến những lợi ích gì?

Sau khi tìm hiểu khái niệm TCPDUMP là gì, hãy cùng đến với những lợi ích nổi bật của TCPDUMP dưới đây:

  • TCPDUMP cho phép người dùng xem trực tiếp các gói tin, thông qua giao diện dòng lệnh, giúp quan sát và theo dõi các dữ liệu được truyền qua mạng.
  • Công cụ này có khả năng bắt và lưu trữ các gói tin dưới định dạng PCAP, một định dạng phổ biến có thể được đọc và phân tích bởi các phần mềm như Wireshark, giúp người dùng phân tích chi tiết các dữ liệu gửi nhận trên mạng.
  • TCPDUMP cung cấp khả năng tạo các bộ lọc (filter) để chọn lọc và bắt các gói tin dựa trên loại dịch vụ hoặc giao thức cụ thể như HTTP, FTP, SSH, giúp người dùng tập trung vào việc quan sát các loại gói tin cần thiết.
  • TCPDUMP có thể sử dụng cùng với Wireshark để xem trực tiếp các gói tin điều khiển hệ thống Linux, giúp người dùng hiểu rõ hơn về cách thức hoạt động và truyền dẫn dữ liệu trong hệ thống.
  • TCPDUMP hoạt động ở tầng mạng, cho phép bắt và quan sát tất cả các gói tin gửi và nhận trên mạng. Điều này cung cấp cái nhìn toàn diện về hoạt động mạng, giúp trong việc chẩn đoán và giải quyết vấn đề.
  • TCPDUMP cho phép người dùng bắt và lưu trữ các gói tin vào một tệp cụ thể, từ đó có thể phân tích và kiểm tra lại dữ liệu sau này để tìm ra các vấn đề hoặc phân tích chi tiết.

TCPDUMP  được tồn tại dưới hình thức nào?

TCPDUMP tồn tại dưới dạng một công cụ dòng lệnh (command-line tool) trong môi trường Unix và Linux. Nó cho phép người dùng hiển thị các gói tin mạng trên card mạng mà máy chủ đang lắng nghe, tuân theo các biểu thức logic chọn lọc mà người dùng nhập vào.

TCPDUMP  được tồn tại dưới hình thức nào?
TCPDUMP  được tồn tại dưới hình thức nào?

Khi chạy mà không có tùy chọn cụ thể nào, TCPDUMP sẽ tiếp tục hoạt động cho đến khi nhận được một tín hiệu ngắt từ người dùng. Sau khi kết thúc quá trình bắt gói tin, TCPDUMP sẽ báo cáo về các cột thông tin sau:

  • Packet capture (gói tin bắt được): Số lượng gói tin mà TCPDUMP đã bắt được và xử lý
  • Packet received by filter (gói tin nhận được qua bộ lọc): Số lượng gói tin đã được nhận bởi bộ lọc được áp dụng.
  • Packet dropped by kernel (gói tin bị loại bỏ bởi hạt nhân): Số lượng gói tin bị hệ điều hành loại bỏ do các cơ chế bắt gói tin của hệ thống.

TCPDUMP cũng có khả năng xuất nội dung các gói tin bắt được ra một file “pcap”, cho phép người dùng phân tích sau này bằng cách sử dụng các tùy chọn như -r hoặc bằng cách sử dụng các phần mềm như Wireshark để đọc và phân tích dữ liệu trong file pcap đó.

Định dạng chung của một dòng giao thức TCPDUMP là gì?

Một dòng giao thức TCPDUMP tuân theo định dạng cơ bản: time-stamp src > dst: flags data-seqno ack window urgent options. Trong đó:

Định dạng Giải nghĩa
Time-stamp Hiển thị thời gian bắt gói tin
src và dst Hiển thị địa chỉ IP đầy đủ của nguồn và đích
Flags Bao gồm các giá trị cơ bản:

  • S (SYN): Được sử dụng trong quá trình thiết lập kết nối TCP.
  • . (ACK): Gửi thông báo đã nhận dữ liệu thành công cho phía gửi.
  • F (FIN): Đóng kết nối TCP.
  • P (PUSH): Đánh dấu các thao tác truyền dữ liệu.
  • R (RST): Thiết lập lại đường truyền.
  • Data-seqno: Số sequence number hiện tại của gói tin dữ liệu.
  • ACK: Mô tả số sequence number tiếp theo được mong muốn nhận từ bên gửi.
  • Window: Vùng nhớ đệm trên kết nối theo một hướng khác.
  • Urgent: Cho biết có dữ liệu khẩn cấp ngay trong gói tin.

Một số tùy chọn phổ biến nhất trong lệnh Tcpdump

Dưới đây là một số tùy chọn được sử dụng phổ biến trong lệnh Tcpdump

Tùy chọn Giải nghĩa
-i Chụp gói tin trên một interface được chỉ định.
-D Liệt kê các interface hiện có có thể chụp gói tin.
-c N Dừng capture sau khi chụp N gói tin
-n Không phân giải địa chỉ IP sang một  hostname.
-nn Không phân giải địa chỉ IP hoặc portname
-v, -vv, -vvv Tăng cấp độ thông tin về gói tin
-s Định nghĩa snap length (kích thước) gói tin được lưu lại.
-q Hiển thị ít thông tin hơn
-w filename Capture gói tin và lưu vào file
-r filename Đọc nội dung file đã được  lưu từ trước
-x Hiển thị dữ liệu gói tin dưới dạng mã Hex
-A Hiển thị packet dưới dạng mã ACSII
-S Hiển thị số sequence number ACK theo relative
-F filename Filter gói tin theo luật trong file.
-e Hiển thị địa chỉ MAC thay vì IP của nguồn và đích
-t, -tt Bỏ qua thời gian bắt gói tin hoặc format thời gian hiển thị
-K Bỏ qua việc checksum của gói tin
N Không in các quality domain name ra ngay màn hình.
-B size Cài đặt buffer_size
-L Hiển thị danh sách data link type của interface.
-y Lựa chọn data link type khi bắt gói tin.

Một số bộ lọc được sử dụng phổ biến trong Tcpdump

Các bộ lọc cho phép TCPDUMP lựa chọn cụ thể và lọc các gói tin dựa trên các tiêu chí như địa chỉ nguồn/đích, cổng, dung lượng, hoặc loại gói tin (broadcast, multicast). Dưới đây là một số bộ lọc cơ bản được sử dụng trong TCPDUMP:

Bộ lọc Giải nghĩa
dst A Chỉ capture các gói tin có địa chỉ đích là “A”. Để chỉ định một dãy mạng cụ thể, có thể sử dụng kèm từ khoá “net”.
src A Capture những gói tin có địa chỉ nguồn là “A”.
host A Capture những gói tin có địa chỉ đích hoặc địa chỉ nguồn là “A”.
port / port range Capture các gói tin có địa chỉ port được chỉ định hoặc nằm trong khoảng range định trước. Có thể kết hợp với option dst hoặc src.
less Lọc các gói tin có dung lượng nhỏ hơn giá trị chỉ định.
greater Lọc các gói tin có dung lượng lớn hơn giá trị chỉ định.
(ether | ip) broadcast Capture các gói tin ip hoặc ethernet broadcast.
(ether | ip | ip6) multicast Capture các gói tin ethernet, ip & ipv6 multicast.

Cách cài đặt Tcpdump nhanh chóng nhất

Trong hệ thống Linux, Tcpdump thường được cài đặt một cách  mặc định. Tuy nhiên, đôi khi trong một số bản phân phối Linux, gói Tcpdump có thể không được đi kèm theo mặc định, và bạn sẽ cần cài đặt nó thủ công.

Để kiểm tra xem Tcpdump đã được cài đặt trên Linux hay chưa, bạn có thể sử dụng lệnh ‘which’. Khi gói này đã được cài đặt, lệnh ‘which’ sẽ trả về đường dẫn thư mục (ví dụ: /usr/bin/Tcpdump).

Để cài đặt Tcpdump, bạn cần sử dụng các lệnh tương ứng với bản phân phối Linux:

  • Debian hoặc Ubuntu: sudo apt-get install Tcpdump
  • CentOS: sudo yum install Tcpdump
  • Arch Linux: sudo pacman -S Tcpdump
  • Fedora: sudo dnf install Tcpdump

Lưu ý rằng khi cài đặt Tcpdump, hệ thống của bạn cần có thư viện libcap. Vì vậy, hãy đảm bảo rằng gói này đã được cài đặt sẵn trên hệ thống của bạn.

FAQS ( Câu Hỏi Thường Gặp)

Làm sao để dừng hoạt động của TCPDUMP?

Để dừng TCPDUMP, bạn có thể sử dụng tổ hợp phím Ctrl + C. Khi đã capture được các gói tin cần thiết, TCPDUMP sẽ dừng. Nếu không chỉ định giao diện nào, TCPDUMP sẽ tự động chọn giao diện đầu tiên và capture các gói tin qua giao diện đó.

TCPDUMP có miễn phí không?

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

Có thể sử dụng TCPDUMP trên hệ điều hành Windows hay không?

Có, phiên bản TCPDUMP trên Windows được gọi là Windump và dựa trên Wincap để capture gói tin tương tự như TCPDUMP trên Linux. WinPcap và AirPcap, thuộc sở hữu của Riverbed Technology, là các công cụ hỗ trợ capture gói tin cho Windows.

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

TCPDUMP đóng vai trò quan trọng trong việc gỡ rối, kiểm tra vấn đề kết nối mạng và bảo mật. Nó được coi là công cụ quan trọng cho chuyên gia an ninh mạng. TCPDUMP là một công cụ mạnh mẽ trong việc capture gói tin và có thể hỗ trợ rất nhiều trong việc phân tích mạng và an ninh mạng. Mặc dù có thể có vẻ phức tạp ban đầu, nhưng khi hiểu rõ về cách hoạt động và sử dụng, TCPDUMP có thể mang lại những lợi ích tuyệt vời cho người dùng.

Lời kết

Dựa vào bài viết trên về khái niệm của Tcpdump là gì của chúng tôi rất hy vọng những gì tôi chia sẻ sẽ thật sự hữu ích đối với các bạn. Nếu bạn là một nhà quản trị mạng hoặc nhà phát triển mạng, thì đừng bỏ qua TCPdump để tối ưu quản lý và phân tích mạng một cách nhanh chóng và hiệu quả nhất.

Mình là Tú Anh - Hiện mình đang đảm nhận một số mảng trong chiến dịch Marketing tại LANIT. Mình đã có kinh nghiệm nhiều năm trong mảng kinh doanh online, nên rất hy vọng với những kiến thức mình chia sẻ về lĩnh vực này sẽ thật sự hữu ích đối với các bạn.

Comments are closed.