Tek uygulamanın ağ trafiğini dökün (strace benzeri)


11

Bir uygulama tarafından oluşturulan ağ verilerinin pcap dökümü için bir yol arıyorum, benzer bir şekilde stracesyscalls, vb dökümlerini:

net-strace somecommand -args

somecommandağ üzerinden bir şey yapar ve net-stracebu uygulama tarafından oluşturulan tüm trafiğin (+ yanıtları ve ilgili trafik) bir pcap dökümü kaydeder.

Bu başarılabilir mi?


Sorun, uygulamaların paket göndermemesi (ping gibi ham yuvalar kullananlar hariç), ancak çekirdeğin adına paket göndermesine (ve ilgili olanı almasına) neden olan bir ağ API'sı kullanmasıdır.
Stéphane Chazelas

Evet, ancak tüm uygulama verilerini bir proxy üzerinden çalıştıran uygulamalar (örn. Proxychains - proxychains.sourceforge.net ) vardır. Nasıl yaptıklarını bilmiyorum, ancak yakalayabilir ve bir proxy üzerinden gönderebilirler. Belki pcap dökümü basit bir proxy (yerel olarak çalıştırın) varsa, proxy elde etmek için proxychains + proxy combo kullanılabilir.
gesti

API'ları (LD_PRELOAD ile) paketlerden daha fazla ele geçirme olasılığı daha yüksektir. Bunu söyledikten sonra, uygulamalara bazı setsockopt (SO_MARK) enjekte edilebilir ve paketleri ulog olarak kaydetmek için netfilter kullanılabilir.
Stéphane Chazelas

3
Uygulama için yeni bir ağ ad alanı oluşturun ve içindeki tüm trafiği yakalayın, bazı kullanım durumları için de kabul edilebilir bir yaklaşım olabilir.
Stéphane Chazelas

Yanıtlar:


3

Askının kendisini kullanmaya ne dersiniz?

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

Verdiğiniz komut satırı yalnızca DNS isteklerini gösteriyor gibi görünüyor. strace'nin -eseçeneği genellikle ne istediğinizi seçmez.
Robin Green

2

Uygulama tarafından oluşturulan trafiği farklı yöntemlerle dökebilirsiniz:

Uygulamanın kullandığı bağlantı noktalarını biliyorsanız, bu bağlantı noktaları için belirli filtreleme kurallarıyla tcpdump veya wireshark'ı çalıştırabilirsiniz .

Bu bir seçenek değilse, uygulama paketlerini , işlemin sahibiyle eşleşen bir iptables kuralı kullanarak işaretleyebilirsiniz . İşlemi tamamen izole etmek için yeni bir kullanıcı hesabı oluşturmanız gerekebilir. Ardından, yalnızca kuralla eşleşen trafiği yakalayabilirsiniz.

Bu konuyla ilgili daha ayrıntılı bilgi bulabilirsiniz: /ubuntu/11709/how-can-i-capture-network-traffic-of-a-single-process

Ayrıca , önceki konunun belirttiği gibi bu program izlemesini ilginç bulabilirsiniz . http://mutrics.iitis.pl/tracedump

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.