tcpdump บายพาส iptables หรือไม่


48

ฉันตั้งใจติดตั้งเซิร์ฟเวอร์ DNS Resolver ที่เปิดซึ่งใช้ในไม่ช้าสำหรับการโจมตี DDoS ที่มีต้นกำเนิดจาก / ถึงรัสเซีย ด้วยเหตุนี้ฉันจึงปิดกั้นพอร์ต 53 บนเซิร์ฟเวอร์ DNS ทั้งสองสำหรับทุกคนยกเว้น IP ที่เชื่อถือได้ มันใช้งานได้ฉันไม่สามารถเชื่อมต่อกับพวกเขาได้อีกต่อไป แต่สิ่งที่ดูแปลกสำหรับฉันคือเมื่อฉันรัน tcpdump บน eth1 (ซึ่งเป็นอินเตอร์เฟสบนเซิร์ฟเวอร์ที่มีอินเทอร์เน็ตสาธารณะ) ฉันเห็นแพ็คเก็ตขาเข้าจำนวนมากจากผู้โจมตีถึงพอร์ต 53

เป็นเรื่องปกติหรือไม่ที่ tcpdump แสดงแพ็กเก็ตเหล่านี้แม้ว่า iptables จะปล่อยมัน หรือฉันกำหนดค่า iptables ผิดหรือเปล่า?

ในทางกลับกันฉันไม่เห็นแพ็กเก็ตขาออกใด ๆ จากเซิร์ฟเวอร์ของฉันซึ่งฉันทำมาก่อนดังนั้นฉันจึงคิดว่าไฟร์วอลล์นั้นทำงานได้ดี มันทำให้ฉันประหลาดใจที่เคอร์เนลไม่ได้ทิ้งแพ็กเก็ตทั้งหมดหรือเปล่า หรือเชื่อมtcpdumpต่อกับเคอร์เนลในแบบที่มันเห็นแพ็คเก็ตก่อนที่มันจะไปถึง iptables?

คำตอบ:


61

นี่เป็นคำถามที่ดี

เป็นเรื่องของความเป็นจริงtcpdumpเป็นซอฟต์แวร์ที่พบครั้งแรกหลังจากลวด (NIC และถ้าคุณจะ) เกี่ยวกับวิธีการในและคนสุดท้ายที่เกี่ยวกับวิธีการOUT

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

iptables -> tcpdump -> NIC -> Wire

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

แก้ไข

บางทีฉันควรเพิ่มรายละเอียดเล็กน้อย tcpdumpจะขึ้นอยู่กับlibpcapห้องสมุดซึ่งจะสร้างเป็นซ็อกเก็ตแพ็คเก็ต เมื่อได้รับแพ็คเก็ตปกติในสแต็กเครือข่ายเคอร์เนลจะตรวจสอบก่อนว่ามีซ็อกเก็ตแพ็คเก็ตที่สนใจในแพ็กเก็ตที่เพิ่งมาถึงหรือไม่ถ้ามีอยู่แพ็กเก็ตนั้นจะส่งต่อแพ็กเก็ต หากเลือกตัวเลือกETH_P_ALLแล้วโปรโตคอลทั้งหมดจะไปถึงซ็อกเก็ตแพ็คเก็ต

libpcapการดำเนินการอย่างใดอย่างหนึ่งซ็อกเก็ตแพ็คเก็ตดังกล่าวมีตัวเลือกในการเปิดใช้งานเก็บสำเนาสำหรับการใช้งานของตัวเองและทำซ้ำกลับมาแพ็คเก็ตบนเครือข่ายกองซึ่งจะมีการประมวลผลโดยเคอร์เนลในทางปกติรวมทั้งผ่านมันเป็นครั้งแรกที่จะnetfilterเคอร์เนล คู่อวกาศของiptables สิ่งเดียวกันในลำดับย้อนกลับ ( เช่น netfilter แรกจากนั้นผ่านเส้นทางผ่านซ็อกเก็ตแพ็คเก็ต) ในทางออก

มีแนวโน้มที่จะแฮ็กหรือไม่ แต่แน่นอน. มีรูทคิทที่พิสูจน์ความคิดได้อย่างแน่นอนโดยใช้libpcapเพื่อสกัดกั้นการสื่อสารที่กำหนดไว้ที่รูทคิตก่อนที่ไฟร์วอลล์จะวางมือบนพวกเขา แต่ถึงแม้ pales นี้ในการเปรียบเทียบกับความจริงที่ว่าง่าย unearths แบบสอบถาม Google ทำงานจราจรรหัสหลบซ่อนตัวที่แม้จะมาจากlibpcap อย่างไรก็ตามผู้เชี่ยวชาญส่วนใหญ่คิดว่าข้อดีนั้นเกินดุลมากกว่าในการดีบักตัวกรองแพ็คเก็ตเครือข่าย


มีวิธีแสดงหรือไม่เพื่อให้ฉันเห็นว่าแพ็กเก็ตใดบ้างที่ได้รับอนุญาตและที่ถูกทิ้ง?
Petr

2
@Petr คุณสามารถบันทึกแพ็กเก็ตที่ iptables ลดลง, thegeekstuff.com/2012/08/iptables-log-packets
MariusMatutiae
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.