/ / Cách nắm bắt lưu lượng mạng trong Linux với tcpdump

Cách nắm bắt lưu lượng mạng trong Linux với tcpdump

Linux được trang bị rất nhiều tiện ích mạng để bạn lựa chọn. tcpdump là một công cụ mạng mạnh mẽ có thể nắm bắt và phân tích lưu lượng mạng nếu bạn cần để khắc phục lỗi mạng trên Linux.

Hãy cùng thực hành với lệnh tcpdump và khám phá cách sử dụng lệnh này để nắm bắt lưu lượng mạng.

LÀM VIDEO TRONG NGÀY

Cài đặt tcpdump trong Linux

tcpdump thường được cài đặt sẵn với tất cả các bản phân phối Linux chính thống và các lựa chọn thay thế dựa trên bảo mật. Vì vậy, bạn sẽ có thể sử dụng nó ngay lập tức bằng cách nhập tcpdump với một sudo tiếp đầu ngữ.

Trong trường hợp bạn không thể chạy lệnh tcpdump và bị kẹt ở “tcpdump: không tìm thấy lệnh“, hãy tìm hiểu cách cài đặt tcpdump trên máy Linux của bạn.

Để cài đặt tcpdump, hãy kích hoạt thiết bị đầu cuối và chạy lệnh tương ứng với bản phân phối Linux mà bạn hiện đang sử dụng:

Trên các dẫn xuất Debian / Ubuntu, hãy chạy:

sudo apt-get install tcpdump

Trên các hệ thống dựa trên Arch, hãy chạy:

sudo pacman -S tcpdump

Để cài đặt tiện ích tcpdump trên Fedora, CentOS và RHEL, hãy phát hành lệnh sau:

sudo dnf install tcpdump

Lưu ý rằng nếu bạn được yêu cầu cài đặt libcapgõ vào Đúng hoặc Y vì nó là một phụ thuộc cốt lõi, nếu không có nó tcpdump sẽ từ chối khởi động. Thao tác này sẽ cài đặt tiện ích tcpdump và giải quyết lỗi “không tìm thấy lệnh”.

Bây giờ tcpdump đã được cài đặt trên hệ thống của bạn, hãy cùng khám phá các tùy chọn và chức năng khác nhau mà nó cung cấp.

Thu hút lưu lượng mạng với tcpdump

tcpdump cung cấp rất nhiều cờ để sửa đổi việc thực thi của nó nhưng nó cũng có thể được chạy như một lệnh độc lập. Tuy nhiên, chạy tcpdump mà không có bất kỳ cờ hoặc đối số nào sẽ bỏ qua tiềm năng đầy đủ của nó. Tốt hơn hết là bạn nên sử dụng một vài cờ để điều chỉnh việc thực thi và đầu ra khi cần thiết.

Nhập lệnh này để theo dõi việc truyền mạng bằng tcpdump:

sudo tcpdump

Bây giờ tcpdump sẽ bắt đầu tự động bắt các gói mạng cho đến khi một tín hiệu ngắt được gửi bằng Ctrl + Z để phá vỡ quy trình theo cách thủ công. Để giới hạn tổng số gói được bắt, hãy sử dụng -c cờ và nhập vào giới hạn mong muốn của các gói bên cạnh nó:


sudo tcpdump -c 5

Nếu bạn không thể hiểu đầu ra ngay bây giờ, trước tiên bạn cần phải làm quen với định dạng đầu ra tcpdump.

Kiểm tra giao diện mạng khả dụng với tcpdump

Theo mặc định, tcpdump nắm bắt lưu lượng truy cập từ bất kỳ giao diện mạng nào có sẵn. Nếu bạn đang sử dụng nhiều giao diện mạng đang hoạt động, bạn có thể muốn xác định giao diện mạng mà từ đó tcpdump sẽ nắm bắt các gói tin. Để bắt đầu tcpdump trên một giao diện cụ thể, trước tiên bạn sẽ phải tìm hiểu về tên giao diện.

Dưới đây là cách liệt kê tất cả các giao diện mạng có sẵn với tcpdump:

sudo tcpdump -D

Hoặc, bạn có thể thêm – danh sách-giao diện gắn cờ cho lệnh:

sudo tcpdump --list-interfaces

Kết quả trả về chứa danh sách tất cả các giao diện mạng đang hoạt động mà tcpdump có thể lắng nghe. Để định cấu hình tcpdump để nắm bắt các đường truyền từ một giao diện mạng cụ thể, hãy nhập lệnh sau:

sudo tcpdump -i interface_id

Hoặc, bạn có thể thêm –giao diện gắn cờ cho lệnh:

sudo tcpdump --interface interface_id

Bây giờ chúng ta đã nắm bắt được một vài gói tin, hãy nghiên cứu kỹ chúng và tìm hiểu cách bạn có thể điều chỉnh đầu ra để dễ đọc hơn.

Khám phá Bộ lọc tcpdump

tcpdump có khả năng thu hút một lượng lớn lưu lượng truy cập trong một lần chạy. Tình trạng quá tải thông tin như vậy có thể khiến bạn chệch hướng khi điều tra hoặc khắc phục sự cố với một máy chủ lưu trữ hoặc giao thức mạng cụ thể.

Đây là nơi mà các bộ lọc tcpdump phát huy tác dụng. Bạn có thể nối lệnh tcpdump với một số cờ nhất định để lọc ra lưu lượng mạng và nắm bắt các gói tin cụ thể. Sau đó, bạn có thể lưu trữ các gói tin đó và sau đó phân tích chúng để tìm ra gốc rễ của bất kỳ vấn đề nào liên quan đến mạng. Hãy cùng tìm hiểu cách sử dụng bộ lọc trong tcpdump.

Lọc gói dựa trên giao thức mạng đang được sử dụng

Để lọc các gói được truyền qua một giao thức cụ thể, hãy nhập tên giao thức bằng lệnh tcpdump và nó sẽ chỉ bắt các gói truyền qua giao thức mạng đã xác định.

Ví dụ: để nắm bắt các gói dựa trên ICMP, bạn chỉ cần đính kèm icmp ở cuối lệnh tcpdump. Quá trình này cũng giống như vậy nếu bạn chỉ muốn nắm bắt các gói UDP hoặc TCP.

sudo tcpdump -c 5 icmp

Lệnh này sẽ chỉ trả về đầu ra nếu có sự trao đổi dữ liệu thông qua giao thức ICMP.

Lọc gói dựa trên máy chủ

Bạn có thể định cấu hình tcpdump để nắm bắt các gói liên quan đến một máy chủ duy nhất với chủ nhà tham số. Điều này đặc biệt hữu ích khi tất cả các hệ thống trong mạng của bạn đang hoạt động ngoại trừ một hệ thống. Bộ lọc này cho phép bạn thực hiện điều tra được nhắm mục tiêu và tăng tốc quy trình khắc phục sự cố tổng thể vì bạn không bị phân tâm bởi dữ liệu không cần thiết.

Để nắm bắt các gói liên quan đến một máy chủ cụ thể, hãy xác định địa chỉ mạng của máy chủ đó với chủ nhà tham số:

sudo tcpdump -c 5 host 192.168.2.1

Tương tự như bộ lọc giao thức mạng, lệnh này sẽ chỉ trả về đầu ra nếu bất kỳ quá trình truyền đang diễn ra nào có liên quan đến máy chủ đã xác định.

Lọc gói dựa trên cổng hoạt động

tcpdump được trang bị một tham số cho phép bạn lọc lưu lượng mạng và chỉ nắm bắt các gói được truyền đến hoặc từ một cổng cụ thể.

Để nắm bắt các gói đến từ một cổng cụ thể, hãy nối Hải cảng gắn cờ cho lệnh tcpdump và xác định số cổng bên cạnh nó. Ví dụ: để nắm bắt mọi lưu lượng HTTP đến hoặc đi, hãy xác định cổng 80:

sudo tcpdump -c 5 port 80

tcpdump sẽ lắng nghe trên cổng 80, chờ truyền HTTP. Khi nó phát hiện các gói HTTP trong mạng, nó sẽ bắt chúng.

Kết hợp các bộ lọc với nhau để sắp xếp nâng cao

Các phần trước đã thảo luận về cách bạn có thể lọc lưu lượng dựa trên cổng, giao thức hoặc máy chủ lưu trữ, nhưng nếu bạn muốn nắm bắt lưu lượng truy cập từ một cổng của một máy chủ cụ thể bằng một giao thức mạng cụ thể thì sao? Chà, bạn thật may mắn vì điều này là có thể, do khả năng sử dụng các toán tử logic với lệnh tcpdump.

Để nắm bắt các gói từ một máy chủ riêng lẻ bằng cách sử dụng cổng 443, hãy sử dụng lệnh sau:

sudo tcpdump -c 5 host 192.168.2.1 and port 443

Kiểm tra nội dung của các gói đã chụp

Theo mặc định, tcpdump hiển thị các tiêu đề của một gói trong đầu ra. Mặc dù trong hầu hết các trường hợp như vậy là quá đủ, nhưng đôi khi, bạn có thể muốn hoặc cần xem xét sâu hơn dữ liệu đã thu thập. Bạn có thể chuyển một số tham số nhất định bằng lệnh tcpdump để kiểm tra nội dung của gói đã capture.

Đây là cách xem nội dung của các gói:

sudo tcpdump -c 5 -x

Lệnh này trả về phiên bản hex của nội dung trong một gói được bắt. Nếu bạn muốn xem dạng ASCII của dữ liệu, bạn có thể chuyển -MỘT tham số với:

sudo tcpdump -A

Lưu đầu ra tcpdump vào một tệp

Giống như hầu hết các công cụ dòng lệnh Linux khác, bạn có thể lưu trữ kết quả đầu ra do tcpdump tạo ra thành một tệp để tham chiếu sau này.

Điều này có thể được thực hiện bằng cách thêm -w cờ cho lệnh. Khi thực thi, tcpdump sẽ lưu trữ dữ liệu đã thu thập vào một .pcap tệp mà sau này có thể được phân tích bằng tcpdump hoặc các công cụ giám sát mạng khác như Wireshark.

Nhập lệnh này để lưu đầu ra lệnh tcpdump của bạn thành một tệp:

sudo tcpdump -w capture.pcap

Để đọc một .pcap bạn có thể sử dụng tcpdump với -r tham số:

sudo tcpdump -r capture.pcap

Linux cung cấp rất nhiều công cụ mạng có thể giải quyết mọi vấn đề mạng miễn là nó thuộc về mặt phần mềm. Biết cách sử dụng một số công cụ mạng tốt nhất trong Linux chắc chắn sẽ rất hữu ích, cho dù bạn là một sysadmin quản lý mạng để kiếm sống hay chỉ là một người dùng Linux hàng ngày.

Vì danh sách thực tế các lệnh mạng có sẵn có thể quá khó hiểu, đây là danh sách một số công cụ mạng Linux quan trọng nhất mà bạn nên biết.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *