क्या tcpdump iptables को बायपास करता है?


48

मैंने गलती से ओपन रिज़ॉल्वर डीएनएस सर्वर को सेटअप कर दिया था, जिसका उपयोग जल्द ही डूडो के हमलों के गुच्छा के लिए किया गया था, जो कि कहीं से / रसिया तक उत्पन्न हुआ था। उस कारण से मैंने विश्वसनीय आईपी को छोड़कर सभी के लिए दोनों DNS सर्वरों पर पोर्ट 53 को पूरी तरह से अवरुद्ध कर दिया है। यह काम करता है, मैं अब उनसे कनेक्ट करने में सक्षम नहीं हूं, लेकिन मुझे जो अजीब लगता है वह यह है कि जब मैं एथ 1 पर tcpdump चलाता हूं (जो कि सार्वजनिक इंटरनेट के साथ सर्वर पर है) तो मुझे हमलावर से पोर्ट 53 तक आने वाले कई पैकेट दिखाई देते हैं।

क्या यह सामान्य है कि tcpdump इन पैकेटों को प्रदर्शित करता है, भले ही iptables उन्हें छोड़ दें? या क्या मैंने iptables को गलत तरीके से कॉन्फ़िगर किया है?

दूसरी ओर मुझे अपने सर्वर से कोई भी आउटगोइंग पैकेट दिखाई नहीं देता है, जो मैंने पहले किया था, इसलिए मुझे लगता है कि फ़ायरवॉल काम करने जैसा है। यह सिर्फ मुझे आश्चर्यचकित करता है कि कर्नेल पैकेट को पूरी तरह से नहीं गिराता है? या tcpdumpकर्नेल से इस तरह से जुड़ा हुआ है कि यह पैकेटों को देखने से पहले ही उन्हें iptables में मिल जाता है?

जवाबों:


61

यह एक अच्छा सवाल है।

तथ्य की बात के रूप में, tcpdump है पहले सॉफ्टवेयर (और एनआईसी अगर आप करेंगे) तार के बाद पाया रास्ते पर में , और रास्ते पर पिछले एक बाहर

Wire -> NIC -> tcpdump -> netfilter/iptables

iptables -> tcpdump -> NIC -> Wire

इस प्रकार यह सभी पैकेटों को आपके इंटरफ़ेस तक पहुँचता है, और सभी पैकेट आपके इंटरफ़ेस को छोड़ देता है। चूंकि पैकेट पोर्ट 53 को उत्तर नहीं मिलता है, जैसा कि tcpdump द्वारा देखा गया है, आपने सफलतापूर्वक सत्यापित किया है कि आपके iptables नियम सही रूप से कॉन्फ़िगर किए गए हैं।

संपादित करें

शायद मुझे कुछ विवरण जोड़ना चाहिए। tcpdump libpcap पर आधारित है , एक पुस्तकालय जो एक पैकेट सॉकेट बनाता है । जब नेटवर्क स्टैक में एक नियमित पैकेट प्राप्त होता है, तो कर्नेल पहले यह देखने के लिए जांचता है कि क्या कोई पैकेट सॉकेट है जो नए आने वाले पैकेट में रुचि रखता है और, यदि एक है, तो वह पैकेट को उस पैकेट सॉकेट के लिए आगे करता है। यदि विकल्प ETH_P_ALL चुना जाता है, तो सभी प्रोटोकॉल पैकेट सॉकेट के माध्यम से जाते हैं।

libpcap एक ऐसे पैकेट सॉकेट को सक्रिय विकल्प के साथ लागू करता है, अपने स्वयं के उपयोग के लिए एक प्रतिलिपि रखता है, और पैकेट को नेटवर्क स्टैक पर वापस डुप्लिकेट करता है, जहां इसे कर्नेल द्वारा सामान्य तरीके से संसाधित किया जाता है, जिसमें इसे पहले netililter में पास करना शामिल है , कर्नेल iptables का -स्पेस प्रतिरूप । इसी तरह, रिवर्स ऑर्डर में ( यानी , पहले नेटफिल्टर फिर पैकेट सॉकेट के पास से गुजरता है), बाहर के रास्ते पर।

क्या यह हैकिंग का खतरा है? लेकिन निश्चित रूप से। फ़ायरवॉल पर उनके हाथ रखने से पहले रूटकिट को दिए गए संचार को बाधित करने के लिए libpcap का उपयोग करते हुए निश्चित रूप से प्रूफ-ऑफ-कॉन्सेप्ट रूटकिट्स हैं। लेकिन यह भी इस तथ्य के साथ तुलना में है कि एक साधारण Google क्वेरी काम करने वाले कोड का पता लगाती है, यहां तक ​​कि यातायात को भी libpcap से छुपाता है । फिर भी, अधिकांश पेशेवरों को लगता है कि नेटवर्क पैकेट फ़िल्टर डिबगिंग में नुकसान बहुत अधिक हैं।


क्या इसे प्रदर्शित करने का कोई तरीका है ताकि मैं देख सकूं कि कौन से पैकेटों की अनुमति थी और जिन्हें गिरा दिया गया था?
पेट्र

2
@Petr आप उन पैकेट को लॉग इन कर सकते हैं जो iptables गिरा है, thegeekstuff.com/2012/08/iptables-log-packets
MariusMatutiae
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.