จะค้นหาชื่อโฮสต์ทั้งหมดใน DNS ที่แนบกับ IP ได้อย่างไร


24

หากฉันมีหลายโฮสต์ที่กำหนดค่าไว้ในเครื่องเดียว ( a la apache's VirtualHosts) ฉันจะค้นหา IP และค้นหาโดเมนทั้งหมดที่กำหนดค่าให้เข้าถึงได้อย่างไร

ตัวอย่างเช่นฉันมีโดเมนเว็บและอีเมลหลายโดเมนติดกับเซิร์ฟเวอร์ของฉัน ฉันจะค้นหาโดเมนทั้งหมดที่ชี้ไปยังโดเมนนั้นได้อย่างไร

เป็นไปได้ไหม

ฉันมี DNS A รายการสำหรับโดเมนทั้งหมดที่ฉันเป็นเจ้าของรวมทั้งฉันรู้ว่าโดเมนของเพื่อนบางคนชี้ไปที่เซิร์ฟเวอร์ของฉัน สิ่งที่ฉันต้องการที่จะเห็นคือถ้าคนที่ผมไม่ทราบเกี่ยวกับการจะชี้มีมากเกินไป (หรือถ้ามีคนจดโดเมนไว้ที่อื่นและฉันสามารถลบเว็บไซต์ 'เก่า' ของพวกเขาออกจากเซิร์ฟเวอร์ของฉัน)

คำตอบ:


30

ไม่จริงไม่ นี่คือทั้งหมดที่เกี่ยวกับความแตกต่างระหว่างการค้นหา DNS ไปข้างหน้าและย้อนกลับ

การค้นหาแบบส่งต่อคือชื่อมาตรฐาน -> การค้นหา IP ดังนั้นคุณจะต้องรู้ชื่อทั้งหมดล่วงหน้า

สิ่งที่คุณต้องการคือการค้นหา IP-> ชื่อ แต่อย่างใดรับชื่อทั้งหมดที่คุณใช้ในการกำหนดค่า Apache ของคุณและใน DNS เป็นระเบียน A (หรือ CNAMES หรืออะไรก็ตาม)

สิ่งที่คุณอาจพบคือการทำการค้นหาแบบย้อนกลับ (เช่น dig @nameserver $ ip -x) จะส่งคืนชื่อโฮสต์ที่มอบให้ IP นั้นโดยผู้ที่เป็นเจ้าของ netblock นั้นซึ่งอาจเป็น ISP ของคุณ อาจมีชื่อเช่น 45-23-45-231.big-isp.com ซึ่งไม่ได้มีความหมายอะไรกับคุณมากนัก และอย่างยิ่งใหญ่มีบันทึกย้อนกลับเพียงหนึ่งระเบียนเท่านั้น

ฉันคิดว่ามันทำให้เดือดร้อนสำหรับคำถาม - โซนย้อนกลับรู้เกี่ยวกับบันทึกใด ๆ ในโซนเดินหน้าได้อย่างไร ในการตั้งค่าส่วนใหญ่ลูกค้าจะสามารถใช้โซนเดินหน้าเพื่อทำการเปลี่ยนแปลงได้ แต่เจ้าของ netblock จะเป็นผู้ดูแลโซนย้อนกลับ ทั้งสองระบบไม่จำเป็นต้องรู้อะไรเกี่ยวกับการทำงานของกันและกัน


2
ฟังดูถูกต้องสำหรับฉัน
einstiien

ความอัปยศ - มันก็มีประโยชน์มากเช่นกัน
วอร์เร

12

เป็นไปไม่ได้ที่จะทำกับโปรโตคอล DNS เพราะโดยทั่วไปจะมีเพียงPTRระเบียนเดียวสำหรับที่อยู่ IP แต่ละแห่งแม้ว่าจะมีหลายAระเบียนที่ชี้ไปยังที่อยู่ IP นั้น

อย่างไรก็ตามบาง บริษัท (เช่นhttp://www.ip-adress.com/ ) มีการจัดการเพื่อรวบรวมฐานข้อมูลที่มีสิ่งที่คุณอยู่ด้วยการจัดเก็บผลลัพธ์ของการค้นหา DNS ทั้งหมดแล้วนำเสนอแบบสอบถามแบบย้อนกลับเป็นของตนเอง ฐานข้อมูล

ฐานข้อมูลเหล่านั้นไม่สามารถสรุปได้ แต่พวกเขาไม่สามารถรับประกันได้ว่าจะรู้เกี่ยวกับทุกโดเมนที่เป็นไปได้ที่อาจเกิดขึ้นที่จุดนั้น - พวกเขาสามารถบันทึกรายละเอียด DNS สำหรับชื่อโดเมนที่พวกเขาค้นหา


นั่นคือสิ่งที่ฉันกลัว .. ยี้: - |
วอร์เร

1
แค่หัวขึ้นที่ฉันยังไม่เจอบริการค้นหาที่จัดการ TLD ทั้งหมด อันที่จริงทุกคนที่ฉันพยายามจะล้มเหลวในการแสดงรายการโดเมน. com แม้ว่าจะโฮสต์บนเซิร์ฟเวอร์เดียวกับโดเมน. com
John Gardeniers

1
คี่ - ไม่มีเหตุผลที่บริการเช่นนี้ควรสนใจ TLD ที่ไซต์นั้นเปิดอยู่ ที่กล่าวว่าดังที่ฉันกล่าวถึงฐานข้อมูลเพียงรู้เกี่ยวกับเว็บไซต์ที่ผู้คนถามเกี่ยวกับ - ฉันเดาไม่พอคนสนใจเกี่ยวกับโดเมน. com.au ;-)
Alnitak

4

วิธีเดียวในการทำเช่นนี้คือการมีข้อมูลเนื้อหาของชื่อโดเมนที่คุณต้องการตรวจสอบ

ด้วยเนื้อหานี้คุณสามารถพัฒนาสคริปต์แบบเรียกซ้ำเพื่อค้นหาชื่อโฮสต์ที่สัมพันธ์กับ IP ของคุณ (แบบเรียกซ้ำเนื่องจาก CNAME ในตอนท้ายเพื่อตรวจสอบ)

ในการรับข้อมูลของพันธมิตรชื่อโดเมนคุณสามารถขอให้เป็นข้อมูลรองและรับ DATA ด้วย dig -t axfr


3

ฉันคิดว่าคุณมาที่นี่จากทิศทางที่ผิด นอกเหนือจากก) การสอบถามเซิร์ฟเวอร์ DNS ทุกตัวที่มีอยู่สำหรับชื่อโดเมนที่เป็นไปได้ทั้งหมดแล้วจัดเก็บผลลัพธ์หรือ b) การรับการถ่ายโอนโซนจากเซิร์ฟเวอร์ DNS ที่คุณสนใจไม่มีวิธีดำเนินการกับ DNS

ดีถ้าคุณใช้ Apache vhosts ตามชื่อคุณมีรายการของโดเมนที่จะไปถึงเซิร์ฟเวอร์ของคุณ นอกเหนือจาก vhost ค่าเริ่มต้น vhost แบบใช้ชื่อจะตอบเฉพาะชื่อ 'ของมันเท่านั้น ดังนั้นถ้าฉันชี้ foobar.com ไปที่กล่องของฉันและไม่มี foobar.com vhost มันจะให้บริการโดยค่าเริ่มต้นหรือไม่ได้รับคำตอบ (ถ้าคุณไม่มีเซิร์ฟเวอร์เริ่มต้น)

Apache มีคุณสมบัติการบันทึกที่มีประสิทธิภาพมาก ไม่น่าจะมีปัญหาในการกำหนดรูปแบบบันทึกที่กำหนดเองด้วยบรรทัดคำขอที่คุณต้องการ นอกจากนี้ยังมีฟิลด์ผู้อ้างอิงเสมอ

ในทางกลับกันจดหมายเป็นความเจ็บปวดอีกเล็กน้อย เกี่ยวกับสิ่งที่ดีที่สุดที่ฉันนึกได้ก็คือเลือกสิ่งที่คุณสามารถทำได้จากบันทึกเซิร์ฟเวอร์และถ้าคุณต้องการทราบจริงๆให้ตั้งค่าการดักจับแพ็กเก็ตสำหรับ SMTP


ด้วย apache vhosts ฉันรู้เส้นทางที่ฉันส่งไปยังบางโดเมนเท่านั้น ... ไม่ใช่ทุกโดเมนที่กำหนดค่า: ถ้าคุณชี้ mynewdomain.tld ไปยังเซิร์ฟเวอร์ของฉันเนื่องจากไม่มีรายการ vhost apache จะส่งคืน webroot เริ่มต้น
วอร์เร

1
แม้ว่าการเลือกผ่านบันทึกอาจใช้งานได้ - ไม่ได้คิดเกี่ยวกับสิ่งนั้นเป็นวิธีในการทำบนเซิร์ฟเวอร์เอง
วอร์เร

LogFormat %{Host}i hostnamelogจากนั้นCustomLog /path/to/log hostnamelogใน VHost เริ่มต้นของคุณตรวจสอบให้แน่ใจว่าแยกจาก VHosts "ของจริง" ของคุณ จากนั้นบางครั้งsort /path/to/log | uniq -c | sort -nเพื่อทำความเข้าใจกับสิ่งที่กระทบคุณ
BMDan

2

คุณควรตรวจสอบRobTex ไม่ใช่การออกแบบเว็บที่ดีที่สุด แต่มีประโยชน์มาก! คุณสามารถค้นหา DNS ทั้งหมดที่เกี่ยวข้องกับ IP

แน่นอนตามที่อธิบายไว้ Alnitak

ไม่สามารถทำได้ด้วยโปรโตคอล DNS เอง

นั่นหมายความว่าเว็บไซต์นี้เป็นเพียงฐานข้อมูลขนาดใหญ่ของเซิร์ฟเวอร์ DNS / IP ส่วนใหญ่ มันค่อนข้างมีประสิทธิภาพ แต่ไม่ครบถ้วนสมบูรณ์ 100%


ดูเหมือนว่าลิงก์จะใช้งานไม่ได้หรือมี SSL ที่ไม่ดีจริงๆ
Adam Nofsinger
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.