ถ่ายโอนข้อมูลเครือข่ายของแอปพลิเคชันเดียว (เหมือน strace)


11

ฉันกำลังมองหาวิธีที่จะถ่ายโอนข้อมูลเครือข่าย pcap ที่สร้างโดยแอปพลิเคชั่นในแบบที่คล้ายคลึงกันจะstraceทิ้ง syscalls เป็นต้นเช่น:

net-strace somecommand -args

somecommandจะทำอะไรบางอย่างผ่านเครือข่ายและnet-straceจะบันทึก pcap การถ่ายโอนข้อมูลทั้งหมดที่สร้างขึ้นโดยแอปนั้น

สามารถทำได้หรือไม่


ปัญหาคือแอปพลิเคชันไม่ส่งแพ็กเก็ต (ยกเว้นที่ใช้ซ็อกเก็ตดิบเช่น ping) แต่ใช้เครือข่าย API ที่ทำให้เคอร์เนลส่งแพ็กเก็ต (และรับที่เกี่ยวข้อง) ในนามของพวกเขา
Stéphane Chazelas

ใช่ แต่มีแอปพลิเคชั่น (เช่น proxychains - proxychains.sourceforge.net ) ซึ่งเรียกใช้ข้อมูลแอปพลิเคชันทั้งหมดผ่านพร็อกซี ไม่ทราบว่าพวกเขาทำได้อย่างไร แต่พวกเขาสามารถจับภาพและส่งผ่านพร็อกซี บางทีถ้ามีพร็อกซีแบบธรรมดา (รันในเครื่อง) ซึ่งสามารถถ่ายโอน pcap, คำสั่งผสมพร็อกซี + พร็อกซีสามารถใช้สำหรับการรับดัมพ์
gesti

พวกเขากำลังแย่งชิง API (ด้วย LD_PRELOAD) มากกว่าแพ็คเก็ต ต้องบอกว่าอย่างใดอย่างหนึ่งอาจจะสามารถฉีด setockopt (SO_mark) บางส่วนลงในแอปพลิเคชันและใช้ netfilter เพื่อบันทึกแพ็กเก็ตไปยัง ulog
Stéphane Chazelas

3
สร้างเนมสเปซเครือข่ายใหม่สำหรับแอปพลิเคชันและรับปริมาณข้อมูลทั้งหมดในอาจมีวิธีการที่ยอมรับได้สำหรับบางกรณีการใช้งานเช่นกัน
Stéphane Chazelas

คำตอบ:


3

วิธีการเกี่ยวกับการใช้ strace ตัวเอง?

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

บรรทัดคำสั่งที่คุณให้ปรากฏขึ้นเพื่อแสดงเฉพาะคำขอ DNS -eตัวเลือกของ strace บ่อยครั้งไม่ได้เลือกสิ่งที่คุณต้องการจริงๆ
Robin Green

2

คุณสามารถถ่ายโอนข้อมูลแอปพลิเคชันที่สร้างขึ้นโดยวิธีการต่าง ๆ :

หากคุณรู้ว่าพอร์ตที่แอปพลิเคชันใช้อยู่คุณสามารถรันtcpdumpหรือwiresharkด้วยกฎการกรองเฉพาะสำหรับพอร์ตเหล่านี้

หากไม่ใช่ตัวเลือกคุณสามารถทำเครื่องหมายแพ็คเก็ตแอปพลิเคชันโดยใช้กฎiptablesจับคู่กับเจ้าของกระบวนการ คุณอาจต้องสร้างบัญชีผู้ใช้ใหม่เพื่อแยกกระบวนการอย่างสมบูรณ์ จากนั้นคุณสามารถจับภาพการรับส่งข้อมูลที่ตรงกับกฎเท่านั้น

คุณสามารถค้นหาข้อมูลที่สมบูรณ์เพิ่มเติมเกี่ยวกับหัวข้อที่เกี่ยวข้องนี้: /ubuntu/11709/how-can-i-capture-network-traffic-of-a-single-process

นอกจากนี้คุณยังอาจพบว่าโปรแกรมนี้น่าติดตามตามที่ระบุไว้ในหัวข้อก่อนหน้า http://mutrics.iitis.pl/tracedump

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.