ฉันจะสร้างบันทึกของแบบสอบถาม DNS ทุกรายการที่คอมพิวเตอร์ทำพร้อมกับคำตอบที่ได้รับได้อย่างไร
ฉันจะสร้างบันทึกของแบบสอบถาม DNS ทุกรายการที่คอมพิวเตอร์ทำพร้อมกับคำตอบที่ได้รับได้อย่างไร
คำตอบ:
คุณสามารถtcpdump
บันทึกกิจกรรม 53 UDP และ TCP พอร์ตทั้งหมดได้
./doc/How-it-works.txt
tcpdump udp port 53
tcpdump --list-interfaces
มันอาจจะไม่เลือกเชื่อมต่อเครือข่ายขาออกโดยปริยายดังนั้นคุณต้องบิตเพิ่มเติมได้ที่: tcpdump udp port 53 --interface (pickone)
, ยังพิจารณาฟุ่มเฟื่อย:-vv
วิธีที่ง่ายที่สุดคือการติดตั้ง Bind ภายในเครื่อง การติดตั้งเริ่มต้น distros ส่วนใหญ่ของ Bind จะเป็นการแคชแบบไม่ใช้สิทธิ์โดยอัตโนมัติ
เพียงเพิ่มlogging {}
บล็อกการตั้งค่า (ตามที่อธิบายไว้ในการอ้างอิงการกำหนดค่า Bind 9 ) จากนั้นตั้งค่าระบบของคุณให้ใช้127.0.0.1
หรือ::1
เป็นตัวแก้ไข DNS
/etc/resolv.conf
รายการตัวแก้ไขระบบ การกำหนดค่าเริ่มต้นของ Bind คือการค้นหาเซิร์ฟเวอร์ชื่อที่มีสิทธิ์และถามพวกเขา คุณสามารถส่งต่อคำขอทั้งหมดไปยังเซิร์ฟเวอร์เฉพาะ (หรือตั้งค่าเช่น ISP ของคุณ OpenDNS หรือ Google Public DNS) แต่ไม่จำเป็นต้องทำในการกำหนดค่า ฉันทำสิ่งนี้ตลอดเวลา ฉันไม่สามารถนับจำนวนครั้งที่ฉันตั้งค่าแคชเซิร์ฟเวอร์ชื่อเท่านั้น
dnsmasqนั้นง่ายกว่าที่จะกำหนดค่าเป็น DNS aggregator / caching daemon มากกว่า BIND และเพื่อจุดประสงค์นั้นประสิทธิภาพอาจจะดีขึ้น หากคุณเปิดการเข้าสู่ระบบเพื่อ "ดีบั๊ก" คำถามและคำตอบทั้งหมดจะปรากฏในสิ่งที่syslog
กำหนดค่าไว้สำหรับข้อความดีบั๊ก
Dnsmasq ยังทำให้ง่ายต่อการกำจัดผู้โฆษณาที่ไม่เหมาะสมและความเป็นส่วนตัวของถุงผ้าย่ำยีย่น "วิเคราะห์" ครีพโดยการทำให้นามแฝงทั้งโดเมนเป็น 127.0.0.1
ถ้าฉันจำได้อย่างถูกต้อง Snort สามารถตรวจสอบปริมาณการใช้ข้อมูลตามกฎที่ผู้ใช้กำหนด อย่างไรก็ตาม Snort จะไม่สร้างบันทึกสำหรับการร้องขอ DNS เมื่อคอมพิวเตอร์ของคุณเช่นตัวแก้ไขปัญหาสามารถตอบคำถามจากแคชได้
หากต้องการแสดงและบันทึกลงในไฟล์A
คำขอ DNS ทั้งหมดให้เรียกใช้สิ่งนี้:
script -q -c "sudo tcpdump -l port 53 2>/dev/null | grep --line-buffered ' A? ' | cut -d' ' -f8" | tee dns.log
ตัวอย่างผลลัพธ์:
google.com
wikipedia.org