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.