Đố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.
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.
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:
|
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.
Comments are closed.