Kết xuất lưu lượng mạng của ứng dụng đơn (giống như strace)


11

Tôi đang tìm kiếm một cách để loại bỏ pcap dữ liệu mạng được tạo bởi một ứng dụng, theo cách tương tự như các stracetòa nhà chọc trời, v.v.

net-strace somecommand -args

somecommandsẽ làm một cái gì đó qua mạng và net-stracesẽ lưu một kết xuất pcap của tất cả lưu lượng truy cập được tạo bởi ứng dụng đó (+ trả lời và lưu lượng liên quan).

Điều này có thể đạt được?


Vấn đề là các ứng dụng không gửi các gói (ngoại trừ các ứng dụng sử dụng ổ cắm thô như ping) mà sử dụng API mạng khiến hạt nhân gửi các gói (và nhận gói liên quan) thay mặt chúng.
Stéphane Chazelas

Có, nhưng có những ứng dụng (ví dụ: proxychains - proxychains.sourceforge.net ) chạy tất cả dữ liệu ứng dụng thông qua proxy. Không biết làm thế nào họ làm điều đó, nhưng họ có thể nắm bắt nó và gửi nó thông qua một proxy. Có thể nếu có một proxy đơn giản (chạy cục bộ), có thể kết xuất pcap, thì có thể sử dụng kết hợp proxy + proxy để lấy kết xuất.
cử chỉ

Họ có nhiều khả năng chiếm quyền điều khiển API (với LD_PRELOAD) so với các gói. Có nói rằng, người ta có thể có thể tiêm một số setsockopt (SO_MARK) vào các ứng dụng và sử dụng bộ lọc mạng để ghi nhật ký các gói vào ulog.
Stéphane Chazelas

3
Tạo một không gian tên mạng mới cho ứng dụng và nắm bắt tất cả lưu lượng trong đó có thể là một cách tiếp cận chấp nhận được đối với một số trường hợp sử dụng.
Stéphane Chazelas

Câu trả lời:


3

Làm thế nào về việc sử dụng strace chính nó?

strace -f -e trace=network -o output_file -s 10000 somecommand -args

Dòng lệnh bạn đưa ra dường như chỉ hiển thị các yêu cầu DNS. -etùy chọn của strace thường không chọn những gì bạn thực sự muốn.
Robin Green

2

Bạn có thể kết xuất lưu lượng ứng dụng được tạo bằng các phương pháp khác nhau:

Nếu bạn biết các cổng mà ứng dụng đang sử dụng, bạn có thể chạy tcpdump hoặc wireshark với các quy tắc lọc cụ thể cho các cổng này.

Nếu đó không phải là một tùy chọn, bạn có thể đánh dấu các gói ứng dụng bằng quy tắc iptables , phù hợp với chủ sở hữu của quy trình. Bạn có thể cần tạo một tài khoản người dùng mới để cô lập hoàn toàn quy trình. Sau đó, bạn có thể nắm bắt lưu lượng truy cập chỉ phù hợp với quy tắc.

Bạn có thể tìm thấy thông tin đầy đủ hơn về chủ đề liên quan này: https://askubfox.com/questions/11709/how-can-i-capture-network-traffic-of-a-single- process

Bạn cũng có thể tìm thấy thú vị chương trình này tracedump như đã nêu theo chủ đề trước. http://mutrics.i viêm.pl/tracedump

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.