8 पॉइंट द्वारा GN⁺ 2025-02-04 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • httptap एक ऐसा टूल है जो Linux प्रोग्राम द्वारा किए गए HTTP और HTTPS अनुरोधों को आसानी से देखने देता है
    • httptap -- का उपयोग करके किसी खास कमांड के नेटवर्क अनुरोधों को ट्रैक किया जा सकता है
  • उदाहरण के लिए, curl कमांड से किसी विशेष URL पर अनुरोध भेजने पर httptap उस अनुरोध और प्रतिक्रिया को आउटपुट करता है
    • httptap को root अनुमतियों की आवश्यकता नहीं होती और यह पूरे सिस्टम को प्रभावित नहीं करता
    • यह फिलहाल केवल Linux पर काम करता है, और इसे अन्य ऑपरेटिंग सिस्टम पर पोर्ट करना कठिन है
  • इंस्टॉल करने का तरीका
    • प्रीबिल्ट बाइनरी इंस्टॉल करें: curl -L https://github.com/monasticacademy/httptap/… | tar xzf -
    • Go का उपयोग करके इंस्टॉल करें: go install github.com/monasticacademy/httptap@latest
  • क्विक स्टार्ट
    • curl कमांड से HTTP अनुरोध भेजकर, httptap के जरिए अनुरोध और प्रतिक्रिया देखी जा सकती है
    • -L विकल्प का उपयोग करके redirect follow करने पर अतिरिक्त HTTP अनुरोध उत्पन्न होते हैं
  • Google Cloud और kubectl उपयोग के उदाहरण
    • gcloud compute instances list कमांड का उपयोग करते समय Google Cloud के compute instances को सूचीबद्ध करने में होने वाले HTTP अनुरोधों को ट्रैक किया जा सकता है
    • kubectl get all कमांड का उपयोग करते समय Kubernetes क्लस्टर के resources को सूचीबद्ध करने में होने वाले HTTP अनुरोधों को ट्रैक किया जा सकता है
  • DNS-over-HTTP
    • curl के --doh-url विकल्प का उपयोग करके DNS-over-HTTP अनुरोध किए जा सकते हैं
    • httptap का उपयोग करके DNS अनुरोध और प्रतिक्रियाएं देखी जा सकती हैं
  • HAR आउटपुट
    • HTTP अनुरोधों और प्रतिक्रियाओं को HAR फ़ाइल के रूप में dump किया जा सकता है
    • HAR फ़ाइलों को विभिन्न viewers के जरिए visualize किया जा सकता है
  • यह कैसे काम करता है
    • httptap नेटवर्क namespace का उपयोग करके कमांड को एक isolated environment में चलाता है
    • नेटवर्क ट्रैफ़िक को ट्रैक करने के लिए एक TUN device बनाता है, और HTTPS ट्रैफ़िक को डिक्रिप्ट करने के लिए एक अस्थायी certificate authority तैयार करता है
  • ध्यान देने योग्य बातें
    • प्रोसेस incoming network connections स्वीकार नहीं कर सकती
    • /dev/net/tun तक access permission की आवश्यकता होती है
    • सभी ICMP echo requests को वास्तविक नेटवर्क पर ICMP packets भेजे बिना echo किया जाता है

2 टिप्पणियां

 
halfenif 2025-02-06

यह अमेरिका के Vermont में Monastic Academy में विकसित किया गया था। हमारा मानना है कि एक मठवासी दिनचर्या, और अधिक व्यापक रूप से बौद्ध आध्यात्मिक मार्ग का अभ्यास, तकनीकी विकास के लिए आदर्श परिस्थितियाँ प्रदान करते हैं।

टेस्ट करते समय GitHub देखा। लगा कि शायद मठवासी साधना करने वाले लोगों ने इसे आध्यात्मिक उपलब्धि के एक हिस्से के रूप में बनाया होगा।

 
GN⁺ 2025-02-04
Hacker News टिप्पणियाँ
  • README का "How it was made" सेक्शन खुद टूल जितना ही दिलचस्प है

    • सामुदायिक जीवन और ध्यान साधना के जरिए software development किया गया
    • isolated network namespace में process चलाने का विचार कमाल का है
    • HTTPS हिस्से में दिलचस्पी है, और यह environment variable सेट करता है ताकि program temporary directory के CA bundle का इस्तेमाल करे
    • http_proxy जैसी समस्या हो सकती है, और program variable को अनदेखा कर सकता है
    • यह /etc/resolv.conf पर overlay filesystem mount करता है, और सोच रहा हूँ कि क्या temporary CA bundle के साथ /etc/ca-certificates directory को mount करना मददगार होगा
  • httptap एक process-scoped HTTP tracer है जिसे root permission के बिना चलाया जा सकता है

    • httptap <command> के साथ चलाकर HTTP/HTTPS requests और responses को standard output पर trace किया जा सकता है
    • यह command को isolated network namespace में चलाता है और अपना खुद का TCP/IP stack इस्तेमाल करता है
    • यह HTTP proxy नहीं है, इसलिए command को HTTP proxy इस्तेमाल करने के लिए configure करने की जरूरत नहीं है
    • यह real time में CA बनाकर TLS traffic को decrypt करता है
    • यह iptables rules install नहीं करता और न ही system-wide बदलाव करता है
  • root permission के बिना network traffic का analysis करने के लिए एक और टूल rootless Podman और Pasta है

    • --network=pasta:--pcap,myfile.pcap option जोड़कर network traffic को PCAP file में record किया जा सकता है
    • record की गई PCAP file को tshark से analyze करने का एक सरल उदाहरण लिखा गया है
  • TUN device का उपयोग एक शानदार विचार है, और "How it was made" सेक्शन Github README में सबसे बेहतरीन में से एक है

    • Subtrace नाम का एक टूल विकसित किया जा रहा है, जो अपने आप incoming और outgoing requests को intercept कर सकता है
    • Seccomp BPF का उपयोग करके socket, connect, recv, accept जैसी system calls को intercept किया जाता है, और सभी TCP connections को Subtrace के जरिए proxy किया जाता है
    • TCP stream से HTTP requests parse करके उन्हें user को Chrome DevTools के Network tab में दिखाया जाता है
  • nginx config को debug करने के लिए इसे तुरंत इस्तेमाल करने वाला हूँ

    • अभी मैं curl -v का उपयोग करके manually output देखता हूँ, लेकिन यह टूल redirect loop जैसी चीज़ों को तुरंत पकड़ने में मदद करेगा
  • हाल ही में mitmproxy में ऐसा ही feature बनाया था, लेकिन इसमें अलग trade-offs हैं

    • root permission चाहिए, और automatic certificate installation अभी नहीं है
    • app को dedicated namespace में चलाने की जरूरत नहीं होती, इसलिए पहले से चल रहे process को capture किया जा सकता है
  • LD_PRELOAD इस्तेमाल करने वाला दूसरा तरीका statically linked ELF, जैसे golang binary, पर fail हो सकता है

  • gVisor user-space TCP/IP stack का शानदार उपयोग है

  • Mitmproxy v11.1 भी ऐसा ही feature कर सकता है