localhost ในโซน DNS


15

ISP ของเรายังโฮสต์ DNS ภายนอกของเราด้วย โดยค่าเริ่มต้นพวกเขารวมรายการสำหรับ localhost

ตัวอย่างเช่น: localhost.example.com 86400 ใน 127.0.0.1

เมื่อฉันขอให้พวกเขาลบมันพวกเขาให้เวลาฉันลำบากและบอกว่ามันเป็นเพียงวิธีผูกมัด

ฉันได้พยายามค้นคว้าบางอย่างเกี่ยวกับสาเหตุที่ฉันอาจต้องการสิ่งนั้น แต่ไม่พบอะไรมาก ฉันพบสถานที่อย่างน้อยหนึ่งแห่งที่คิดว่าเป็นเวกเตอร์โจมตี XSS ที่เป็นไปได้ ดูเหมือนจะเป็นเรื่องธรรมดาพอสมควรดังนั้นฉันจึงทำการค้นหาในโดเมนเว็บไซต์ 20 อันดับแรกจาก alexa และส่วนใหญ่ไม่มีรายการดังกล่าว แต่มีคู่ทำ มีบางคนที่มีรายการ แต่แทนที่จะชี้ไปที่ 127.0.0.1 พวกเขาจะชี้ไปยังที่อยู่ IP ที่สามารถใช้เส้นทางของโลกได้

ดังนั้นทำไมฉันต้องการที่จะมี locahost ในโซนสำหรับโดเมนของฉัน มีปัญหาอะไรกับพวกเขาหรือไม่? มีวิธีปฏิบัติที่ดีที่สุดเกี่ยวกับเรื่องนี้หรือไม่? มันเป็นค่าเริ่มต้นของการผูกที่ฉันไม่ทราบหรือไม่?

ขอบคุณ


คำถามที่ดี. ฉันไม่เคยได้ยินเรื่องนี้มาก่อน
TomTom

ฉันมี "ลูปแบ็ค" ในไฟล์โซน ISP ของฉันด้วย WTF?
David Tonhofer

คำตอบ:


13

localhost.example.comบางครั้งจะรวมอยู่ในเซิร์ฟเวอร์ DNS ภายในเพื่อป้องกันคำขอ "localhost" ที่รั่วไหลออกไปทางอินเทอร์เน็ต (สำหรับกรณีที่ John Smith พิมพ์http://localhost/ในเบราว์เซอร์ของเขาและด้วยเหตุผลใดก็ตามที่ตัวแก้ไขของเขาไม่ดูในไฟล์โฮสต์ให้ผนวกเส้นทางการค้นหาของเขาexample.com) & เริ่มถามเซิร์ฟเวอร์ชื่อสิ่งที่แก้ไขได้)

คุณไม่จำเป็นต้องมีรายการ localhost (และถ้า ISP ของคุณคิดว่าเป็น "วิธีการทำงานของ BIND" พวกเขาอาจเข้าใจผิดหรือโง่เง่า: BIND ให้บริการสิ่งที่อยู่ในไฟล์โซนและหากพวกเขาลบlocalhostบรรทัดมันจะหยุดให้บริการ บันทึก). เป็นตัวอย่างฟรีlocalhost.google.comไม่สามารถแก้ไขได้และฉันพนันว่า NS สำหรับโดเมนนั้นกำลังเรียกใช้ BIND

เวกเตอร์ XSS เป็นสิ่งที่ฉันไม่เคยนึกถึง แต่มันเป็นเรื่องที่น่ากังวล: การมีlocalhostรายการใน DNS สาธารณะของคุณหมายความว่าเครื่องที่ถูกแฮ็กอาจ "อยู่ในโดเมนของคุณ" (โดยเรียกใช้เว็บเซิร์ฟเวอร์บน 127.0.0.1) และอาจทำ สิ่งที่น่ารังเกียจทุกประเภท อาจเป็นเหตุผลที่ดีพอที่จะกำจัดรายการ


1
โดยส่วนตัวฉันคิดว่านั่นlocalhost.some.testเป็นเพียงเหยื่อรายอื่นที่ไม่ได้รับจุดสิ้นสุด เหตุผลในการมีlocalhost.(หมายเหตุจุด!) ชัดเจน แต่จุดมักจะถูกลืมในโซน DNS จากนั้นก็จะเด้งแล้วจะมีชีวิตลึกลับของตัวเอง
poige

ดูtools.ietf.org/html/rfc1537ข้อผิดพลาดเกี่ยวกับการกำหนดค่าไฟล์ข้อมูล DNS ทั่วไปซึ่งแนะนำว่ารายการ localhost นั้นถูกต้อง
BillThor

1
ไม่ rfc1537 ไม่ได้ระบุว่า มันระบุว่าผู้เรียกซ้ำต้องมี localhost โซนและโซนสำหรับการย้อนกลับ ไม่ว่าโซนของคุณต้องการรายการ localhost
Habbie

@BillThor ความเห็นในคำตอบอื่น ๆที่เกี่ยวข้องกับ RFC 1537 และทายาท (RFC 1912) - ณ Habbie กล่าวถึงโซน localhost.เป็นสิ่งที่เราควรจะมี แต่การปฏิบัติของการมีการlocalhost บันทึกในแต่ละโซนที่เราให้บริการได้หลุดออกไป ของที่ระลึก (คำถามนี้จริง ๆ แล้วนำฉันลงที่หลุมกระต่าย RFC 5 ปีที่ผ่านมาบางทีฉันจะอัปเดตคำตอบของฉันกับ RFC ใหม่และความคิดจากความคิดเห็นที่หัวข้อภายหลัง :))
voretaq7

3

สมมติว่าการแก้ไขชื่อภายในของคุณคือการจัดการการแก้ไขชื่ออย่างถูกต้องคำขอ DNS ใด ๆ สำหรับ localhost ไม่ควรไปที่ผู้ให้บริการ DNS ภายนอกของคุณดังนั้นจึงไม่น่าเป็นปัญหาเลย

เหตุผลหนึ่งว่าทำไมบางคนจะทำสิ่งนี้ที่ฉันสามารถคิดออกจากด้านบนของหัวของฉันคือถ้ามีคนเคยใช้เครื่องมือการเขียนเว็บที่เมาด้วยการอ้างอิงที่แน่นอนไปยังhttp: // localhostแต่นั่นก็ถือว่าคุณ ISP ยังให้บริการพื้นที่บนกล่อง DNS และเป็นระยะเวลานาน

อย่างไรก็ตามRFC 1537 ไม่ระบุ:

มีการพูดคุยกันอย่างกว้างขวางเกี่ยวกับการผนวกโดเมนท้องถิ่นเข้ากับโดเมนนั้นหรือไม่ บทสรุปคือ "localhost" จะเป็นทางออกที่ดีที่สุด; เหตุผลที่ได้รับคือ:

  • "localhost" ถูกใช้และคาดว่าจะทำงานกับบางระบบ

  • การแปล 127.0.0.1 เป็น "localhost.my_domain" อาจทำให้ซอฟต์แวร์บางตัวเชื่อมต่อกับตัวเองโดยใช้ส่วนต่อประสานย้อนกลับเมื่อไม่ต้องการ

โปรดทราบว่าโดเมนทั้งหมดที่มีโฮสต์ควรมีเรคคอร์ด "localhost" ในโดเมน

ดังนั้นการพูดอย่างเคร่งครัดจะปรากฏขึ้นราวกับว่า ISP ของคุณถูกต้องเพื่อรวม localhost แต่ไม่ถูกต้องที่จะใช้ชื่อที่ผ่านการรับรองโดยสมบูรณ์


5
ดูเหมือนว่า RFC-1537 นั้นล้าสมัยโดย RFC-1912 ซึ่งจะเป็นการลบNote that ...ภาษา (ฉันเดาว่าจะตอบสนองต่อปัญหา XSS ที่อาจเกิดขึ้นซึ่งเราน่าจะเริ่มรู้ในปี 1996 :) 1537 อธิบายว่าทำไมมันถึงอยู่ในเทมเพลต BIND
voretaq7

คุณหมายความว่าควรมีรายการเช่นนี้ในโซนสำหรับ example.com: localhost 86400 ใน 127.0.0.1; สังเกตช่วงเวลา
matthew

3
4.1 จาก 1912 มีความชัดเจนมาก: ietf.org/rfc/rfc1912.txt
Maximus Minimus

5 ปีขึ้นไป แต่ก็คุ้มค่าที่จะอธิบาย: 4.1 ของ RFC 1912 เป็นที่ชัดเจนว่าlocalhost โซนควรมีอยู่บนเซิร์ฟเวอร์ (ดังนั้นถ้ามันได้รับการร้องขอเพียงธรรมดา "localhost" มันไม่ผ่านห่วงโซ่ไปยังเซิร์ฟเวอร์ถัดไป) นั่นคือ ห่างไกลจากการรวมlocalhostอยู่ในexample.comโซนของการพูด(สร้างlocalhost.example.com) ซึ่งมันก็ชัดเจนในการบอกว่าคุณไม่ควรทำเพราะผลข้างเคียงที่อาจเกิดขึ้นโดยไม่ตั้งใจ ความคาดหวังสำหรับ "localhost" จะเป็นโดเมนพิเศษที่วิเศษและมีคุณสมบัติครบถ้วนในตัวของมันเอง
voretaq7

0

ฉันไม่แน่ใจว่าสิ่งที่จะเป็น ... โดยค่าเริ่มต้นที่อยู่ภายนอกจะถูก over - ridden โดยไฟล์โฮสต์ซึ่งมักจะแมป localhost ไปที่ 127.0.0.1

ไฟล์โซน BIND เริ่มต้นจะมีโซน localhost อยู่ ไม่เคยคิดเรื่องนี้จริงๆ


นี่ไม่ใช่โซน localhost (ยกเว้นว่าจะมีการกำหนดค่าผิดพลาดของโซนนั้น) มันไม่ใช่ fqdn 'localhost' และโดยทั่วไปจะไม่ถูก over-ridden โดยไฟล์โฮสต์ท้องถิ่น
matthew
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.